基于51单片机的数字钟设计_毕业论文

上传人:be****l 文档编号:74582534 上传时间:2022-04-14 格式:DOC 页数:30 大小:4.54MB
收藏 版权申诉 举报 下载
基于51单片机的数字钟设计_毕业论文_第1页
第1页 / 共30页
基于51单片机的数字钟设计_毕业论文_第2页
第2页 / 共30页
基于51单片机的数字钟设计_毕业论文_第3页
第3页 / 共30页
资源描述:

《基于51单片机的数字钟设计_毕业论文》由会员分享,可在线阅读,更多相关《基于51单片机的数字钟设计_毕业论文(30页珍藏版)》请在装配图网上搜索。

1、 大学电子信息学院电子系统综合设计课程论文基于51单片机的数字钟设计目 录1 作品的背景与意义12 功能指标设计13 作品方案设计13.1总体方案的选择13.1.1方案一:基于单片机的数字钟设计23.1.1方案二:基于数电实验的数字钟设计33.1.2两种方案的比较.33.2控制方案比较33.3显示方案比较33.4单片机理论知识介绍43.4.1单片机型号.5 3.4.2硬件电路平台.6 3.4.3部时钟电路. 7 3.4.4复位电路.7 3.4.5按键部分. 84 硬件设计94.1显示模块电路图95 软件设计115.1主程序流程图115.2中断服务以与显示126 系统测试136.1测试环境136

2、.2测试步骤136.2.1硬件测试136.2.2软件测试13 1.连接单片机和计算机串接.13 6.2.3实施过程.14 6.3测试结果187 实验总结.18 7.1代码编写过程中出现问题.18 7.2整个实验过程的体会.19 7.3实验误差分析。19参考文献20附录1 系统电路图21附录2 系统软件代码21附录3 系统器件清单2627 / 301 作品的背景与意义数字钟是采用数字电路实现对.时,分,秒。数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 而且大扩展了钟表原先的报时功能。基于单片机的数字钟具有功能强,体积小,功耗低,价格便

3、宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以与家用电器等各个领域,生活中诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等也可广泛应用,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以与针对具体应用对象特点的软件结合,以作完善。因此,研究数字钟与扩大其应用,有着非常现实的意义。2 功能指标设计 本实验中,数字钟是基于单片机实现时、分、秒计时的装置,以单片机SST89E516RD为核心元件同时结合LCD显示器、74HC573

4、锁存器、74HC138译码器、74HC02或非门等芯片在同相应软件结合动态显示“时”、“分”、“秒”的现代计时装置。还可以具有校时功能,秒表功能,和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。3 作品方案设计3.1总体方案的选择3.1.1方案一:基于单片机的数字钟设计 在软件各个步骤做到位的前提下,程序主要分为三个板块来设计。第一,实现数码管的点亮。16位的指针DPTR高8位是连接P2端口的8位I/O口,可控制与P0口连接的锁存器74HC573的使能控制端;DPTR低8位连接P0端口的8位I/O口,通过DPTR数据的设置和传输,锁存在74HC573中,一旦使能端有效

5、,便可实现选取数码管的显示位与现实数据,此过程经过两次传输实现。第二,实现定时器的1S定时,时间到转向秒位的加1。根据机器周期,计算初值,由于机器部已经产生周期性脉冲,只需人为通过代码控制计数,1S后转向处理函数即可。第三,实现按键校正时间。实验室的单片机有4*4按键和单独与P3口相连的四个按键,由于只实现时分秒的校正,故可选择与P3.2,P3.3,P3.4,P3.5口连接的四个按键较方便,主函数循环扫描是否有按键按下,由于人按键有时间延迟,可选择下降沿触发,若采用电平触发,则需要在处理代码中循环检查,按键松开的后,更改相应位的时间,之后返回主程序。3.1.1方案二:基于数电实验的数字钟设计

6、采用集成电路定时器555组成多谐振荡器,输出1000Hz的振荡频率信号,再由三片74LS90芯片级联组成的分频器进行分频,每片为1/10分频器,三片级联正好获得1Hz的标准脉冲,实现“秒”的记时功能。再用两片74LS90芯片级联组成六十进制计数器,输入分频器产生的1Hz标准脉冲,实现“分”的计时功能,采用中规模集成电路74LS193计数器两片组成“12翻1”的计数器件,输入六十进制计数器产生的脉冲,在通过LED显像管显示时间,即可实现数字钟功能。即当计数器计时到12时59分59秒,再来一个秒脉冲,数字钟自动显示00时00分00秒,实现日常的生活习惯用的计量规律。图3.1 数字钟电路3.1.2两

7、种方案的比较 基于单片机的数字中设计可将软件与硬件相结合,在计算机的上编写代码,然后将代码通过数据线输入到单片机,输出指令运行。其显示的精确度除了与本身的程序优劣外还收到计算机的运行速度有关,但可以人为的提高代码质量和优化计算机运算速度来实现改善。而且可以在只变代码的情况下扩展数字钟功能,如特定时间响鸣,如显示星期,功能多变实用,软件代码编写测试检验相对简单。基于555的硬件数字钟,由于硬件芯片已经封装集成,芯片本身存在传输数据误差,且在人为连接组装芯片的时候会由于导线等各种原因会出现较大误差。功能比较有限,如果需要附加功能,可能需要改变硬件线路,这比软件编写较困难。3.2控制方案比较 基于单

8、片机设计数字钟方案的控制器件包括SST89E系列51单片机系统,电脑提供的+5V电源,LED动态显示电路,按键输出部分,输出电路等几部分组成。单片机有多种选择,数字钟设计用51单片机较好,51单片机是单片机中的一种,单片(single-chip microcomputer)是一块集成芯片,但不是一块实现某一个逻辑作用的芯片,而是在这块芯片当中,集成了一个计算机系统。如中央处理器(CPU)、存储器(ROM,RAM)、I/O接口、定时器/计数器、中断系统等。中央处理器是单片机的核心单元,他由运算器和控制器组成,他的主要作用是实现算术运算、逻辑运算、和控制。SST89E系列51单片机主要包括SST8

9、9E51RD,SST89E52RD,SST89E54RD,SST89E58RD, SST89E554RD,SST89E554564等。与其它MCS51系列单片机相比,其突出特点是:部嵌入SuperFlash存储器:提高器件抗干扰性能,SST的MCU在51系列中是抗干扰性能最好的;可编程计数器阵列(产生PWM输出);有IAP功能(能够支持远程在线下载和修改程序);增强的双倍速模式:比其它所有的51单片机执行速度快一倍。3.3显示方案比较 依次点亮八段码,设置较快的扫描频率,在段式液晶上面形成稳定的输出。本实验中的C51单片机上采用8位8段LED数码管显示,数码管引脚如下:图3.2 LED管实图

10、图3.3 LED电路图 LED有共阴极和共阳极两种。二极管的阴极连接在一起,通常此为公共阴极接地,而加电压则暗。共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;为了保护各段LED不被损坏,需外加限流电阻。本实验利用利用人眼的视觉残留现象,依次点亮每个八段码单元,只要扫描速度超过人眼可以识别的频率,就可以看到稳定的信息输出。本实验中写了一个小程序,来测试此单片机是共阳极还是共阴极。 图3.4共阴极 高电平驱动 图3.5共

11、阳极 低电平驱动本设计中,应用单片机平台上的LED显像管比较合适和方便。3.4单片机理论知识介绍51单片机: 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。51 系列单片机是国目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受与应用,51 系列单片机的发展又进入了一个新的阶段。在今后很长一段时间51 系列单片机仍将占据嵌入式系统产品的中低端市场。汇编语言: 汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。汇编语言

12、保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。汇编语言可以与高级语言配合使用,应用十分广泛。ISP: ISP(In-System Programming)在系统可编程,是当今流行的单片机编程模式,指电路板上的空白元器件可以编程写入最终用户代码,而不需要从电路板上取下元器件。已经编程的器件也可以用ISP方式擦除或再编程。本次课程设计便使用ISP方式,直接将编写好的程序下载到连接好的单片机中进行调试。3.4.1单片机型号 SST89E516RD是SST公司出产的一款基于8051核的8 位单片机,SST89E516

13、RD最大的特点是具有在线调试和在线下载功能,为工程开发中的调试提供了最大的方便。该芯片中含有1K的RAM和64K+8K的置可擦除程序存储器ROM。其程序存储器达到了51核结构单片机寻址的最大围,能够满足大容量程序存储的要求。SST89E156RD在5V电压下可以工作在040MHz的频率围。SST的MCU除了具备和一般单片机一样,可以通过专用编程器将程序代码烧写到片ROM中,然后装入系统运行程序以外,还具备另外两种特殊的下载和仿真功能。程序下载功能:SST单片机可以不需要编程器,直接通过串行通信口,将程序下载到单片机ROM中,且下载的程序在单片机断电后仍会保存,不会丢失。程序下载后,直接复位或者

14、重新上电单片机就可以工作。在线仿真功能:SST单片机还具有在线仿真功能,同样通过单片机的串口,通过在keil软件中设置可以实现在线仿真,具有单步执行、全速执行、设置端点等调试功能。图3.6 SST89E156RD芯片图3.4.2硬件电路平台:“MCS51单片机系统学习板V1.1”是大学电子创新平台中的单片机学习和开发平台。它兼容DIP40封装的51系列单片机,板上配备SST公司的SST89E516RD高性能单片机,可利用串口进行在线下载、硬件仿真和断点调试。系统采用基于总线结构的设计,板上既具有普通的IO实验,更多的采用总线方式扩展板上资源。图3.7 51单片机平台3.4.3部时钟电路 部时钟

15、电路是单片机的心脏,它控制着单片机的工作节奏,CPU就是通过复杂的时序电路完成不同的指令功能的。部时钟的产生方式是利用单片机部的振荡器,然后在引脚X1(18脚)和X2(19脚)两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入部时钟电路,外接晶振时,晶振两端的电容一般选择为30PF左右;这两个电容对频率有微调的作用,晶振的频率围可1.2MHz-12MHz之间选择。为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。3.4.4复位电路MCS-51单片机的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发

16、器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到部复位操作所需要的信号。复位方式有上电复位和按键手动复位两种方式。上电复位:上电复位电路是种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。下图为复位电路RC。 图3.8 复位电路手动复位:通过接通按钮开关,使单片

17、进入复位状态。 复位电路虽简单,但很重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。初步检查可用示波器探头监视RST引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路阻容值进行实验。3.4.5按键部分它是整个系统中最简单的部分,根据功能要求,本系统共需四个按键:功能移位键、功能加键、功能减键、定闹键。并采用独立式按键。在XD12键盘上选定3个键分别作为小时、分、秒的调校键。每按一次键,对应的显示值便加1。分、秒加到59后变为00;小时加到23后再按键即变为00。再调校时均不向上一单位进位(例如分加到59后变为00;但小时不发生改变)。按键的开关状态通过

18、一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。4 硬件设计4.1显示模块电路图图3.9 LED电路图 由MCS51单片机系统的硬件原理图可知,8位数码管的显示由SEL18端控制由哪个数码管显示,由SEG_A-G端控制显示

19、的数据,同时这两个端口都与P0口相接的74HC573的输出有关,而控制端分别为与非门输出口的CS_LED_SEL11,CS_LED_SEG11,由此找到CS3,CS2与非门输入端,同时CS3,CS2为HC138译码器的输出,由高8位的A8,9,10,15控制,故可通过对高8位的设置从而来控制数码管的显示。 图4.1 74HC138芯片图图4.2 或非门电路 图4.3 74HC573芯片图5 软件设计5.1主程序定时器的程序流图 图4.4 主程序定时器的程序流图 5.2中断服务以与显示 图4.5 中断服务以与显示6系统测试6.1测试环境硬件:MCS51单片机系统一片一片,计算机一台,通讯电缆一根

20、,数据线一根。 软件:Windows XP操作系统、Keil51软件,SoftICE监控程序。6.2测试步骤6.2.1硬件测试先检测单片机与计算机的连接问题,将单片机设置为可控制状态;由于我们拿到的是现成的51单片机,首先编先一段程序检测LED数码管是否完好,同时利用这个小程序可以检测数码管是共阴极还是共阳极类型,查看晶体振荡器的振荡频率,复位是否有效,电源是否接通好等硬件设施。6.2.2软件测试1. 连接单片机和计算机串接SoftICE的下载与使用:SoftICE的英文是Software In Circuit Emulator的简称,其翻译成中文就是在线的软件仿真器的意思,它是SST公司为方

21、便SST用户在使用SST单片机(包括SST89C5xSST89x564RD/554RC/516RD2/5XRD2 )调试程序所开发的开发工具,这个SST 的仿真器功能可以代替大部分的专用仿真器的功能,使单片机工程师在开发单片机时省却了价格昂贵的仿真器和编程器,使得51单片机的开发更加容易和普与并且SST的单片机价格便宜,出厂时就包含了在线下载和在线仿真的功能。SoftICE 监控程序占用89E516RD的MCU 的5Kbyte 程序空间为:BLOCK1的4Kbyte 从0000h 到0FFFh BLOCK0的1Kbyte 从FC00h 到FFFFh由于SST的MCU在出厂时已经将BOOT LO

22、ADER的下载监控程序写入到芯片中,因此无需编程器就可通过SST BOOT-STRAP LOADER软件工具将用户程序下载到SST的MCU中,从而运行用户程序。 SST BOOT-STRAP LOADER软件工具还可将原来的MCU部的下载监控程序转换为SoftICE的监控程序从而实现SOFTICE的仿真功能。 执行SSTEasyIAP11F.exe软件运行SST Boot-Strap Loader,在部模式下检测到对应器件的型号后,SoftICE固件通过按SoftICE菜单下“Download SoftICE”选项下载,便将SoftICE固件下载到MCU, 在BLOCK1的SST Boot-S

23、trap Loader会被SoftICE固件代替,详细操作步骤如下: 1、选择连接的串口,选择Detect Target MCU for Firmware1.1F and RS232 Config: 2、选择芯片型号和部存储器模式,选择SST89E/V516RD2和Internet Memory: 3、选择串口波特率MCU的晶振频率,串口号为COM1,晶振频率为11.0592MHz: 4、按确定后再重新复位MCU: 5、如果通讯成功在窗口的右上角可以显示出芯片的型号与BOOT LOADER的版本信息: 6、点击DOWNLOAD SOFTICE的按钮即可将MCU部的BOOT LOADER的监控程

24、序更换为SOFTICE的监控程序: 7、点击确定按钮确认转换为SOFT ICE的监控程序: 8、这是转换后的提示信息,说明转换SOFTICE监控程序成功: 9、此时这片SST89E516RD芯片便具备了SOFTICE的在线仿真的功能。 10、若要将Keil C编译生成的HEX文件下载到MCU中,则在通讯成功(参见5)后,点击Download或者Dnload/Run UserCode: 11、点击浏览后选择需要下载的HEX文件,然后点击“OK”确定: 12、然后点击“是”确认下载,或者点击“否”放弃下载。 6.2.3实施过程 1.第一个小程序:点亮最右边的数码管,显示设定的数字ORG 0000H

25、JMP MAIN ;转入主程序ORG 0100H ;主程序MAIN: MOV A,#0FEH ;选择最右边的数码管 MOV DPTR,#8300H ;通过SEL选择数码管地址端 MOVX DPTR,A ;将最右边数码管的地址传给低8位p0口,点亮 MOV A,#3FH ;设置显示数字,0 MOV DPTR,#8200H ;通过SEG选择显示的数据 MOVX DPTR,A ;将要显示的数据的地址传给低8位p0口,显示 LJMP MAIN ;使程序一直在主程序中,之前少了这句,编译 通过,却运行不了 END2.第二个小程序:点亮最右边的数码管,从TAB字表中选择想要显示的数字ORG 0000HJM

26、P MAINORG 0100HMAIN: MOV 7EH,#3 ;用地址7EH做十进制数据3的缓冲区 MOV R0,#7EH ;将数据3寄存在R0寄存器 MOV DPTR,#TAB ;将DPTR指针指向字表 MOV A,R0 ;把R0中的数据放到A中,注意区别于A,R0 MOVC A,A+DPTR ;从字表中取出从0开始的编号为3的数存在A MOV DPTR,8200H ;显示A中的数据 MOVX DPTR,A MOV A,0FEH ;选择最右边的数码管 MOV DPTR,8300H MOVX DPTR,ATAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6

27、FHEND3.第三个小程序:用定时器T0在秒位(最右边的数码管)上实现1S加1显示 初始值的计算: 模式0最长定时约16ms, 模式1最长可定时约130ms, 模式2最长可定时约510us 要实现1s定时,可选择模式1,每个50ms中断一次,中断20次为1s。 根据公式,设初值为X (216 -X)*12/(12*106HZ)=50*10-3s 所以算得 X =15536=3CB0H 故初值 (TL0)=0B0H,(TH0)=3CH代码:ORG 0000HJMP MAINORG 000BH ;T0中断入口AIMP SERVE ;转入中断ORG 0030HMAIN: MOV B,#14H ;中断

28、次数20 MOV TMOD,#01H ;打开定时器T0,模式1 MOV TL0,#0B0H ;设定初始值 MOV TH0,#3CH SETB TR0 ;启动定时器T0 SETB ET0 ;允许T0中断 SETB EA ;允许CPU中断 MOV R1,#0 ;将0存入R1 SJMP $ ;等待中断SERVER: MOV TL0,#0B0H ;重设初始值 MOV TH0,#3CH DJNZ B,LOOP ;循环,中断20次后转到一下句 MOV B,#14H ;重设中断次数20 MOV A,#0FEH ;点亮最右边的数码管 MOV DPTR,#8300H MOVX DPTR,A MOV A,R1 ;

29、R1中的数据存入A INC R1 ;R1中数据自加 MOV DPTR,#TAB ;显示R1数据在字表中指的数 MOVC A,A+DPTR MOV DPTR,8200H MOVX DPTR,ALOOP:RETI ;中断返回,区别于RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND4.主程序:实现时分秒的计时,采用23:59:59数制 代码用了地址33H作为中断次数的存储,用32H,31H,30H分别作为秒分时数据的存储,在主程序中编写显示程序,在中断中对秒分时进行处理,即1S到,秒位加1,秒位满59,分位加1,分位满59,时位加1,时位满23

30、,全部归零,同时在中断中对秒分时位数据进行DIV处理,提出个位和十位数字,时十位存入39H,时个位存入38H,分十位存入37H,分个位存入36H,秒十位存入35H,秒个位存入34H,分别对应数码管的左边第三个数码管以后的六位。其中用到了R0的#00H与#0FFH的转换来作为标识,来控制1S到后才显示刷新一次,否则数码管显示飞快。5 拓展功能按键实现时间校正 在主函数中进行P3.2,P.3.3,P3.4,P3.5口判断,经试验,发现当按键按下时,有效电平是低电平,故采用JNB指令来判断是否按键,若按下,则将程序转移,键1按下,关闭定时器T1,此时要不断扫描键盘有无按键按下,故需要返回主函数;键2

31、按下时,分位加1,由于主程序不断扫描键盘,这里调用加1函数时采用了和JMP循环扫描键2指令,即当按下键2松开的瞬间,调用程序分位加1,此时肉眼看到数码管时间好像是闪烁一次加1,否则由于人按键时间的延迟,会使分位增加的并不是1,时位的情况与分位类似;当键4按下时,重新启动定时器T1,返回主函数,即实现数码管显示为校正后的时间正常走时的情况。 按键部分代码如下:(完整加键的代码见附录2) JNB P3.2,LP1 ;键1按下 JNB P3.3,LP2 ;键2按下 JNB P3.4,LP3 ;键3按下 JNB P3.5,LP4 ;键4按下LP1: CLR TR1 ;关定时器T1 LJMP LOOP

32、;循环主函数,使重新扫描键盘LP2: P3.3,LD1 ;键2按下松开瞬间,调用MINUTE,分位加1 JMP LP2 LD1: LCALL MINUTE LJMP LOOPLP3: P3.4,LD2 ;键3按下松开瞬间,调用HOUR,时位加1 JMP LP3 LD2: LCALL HOUR LJMP LOOPLP4: SETB TR1 ;打开定时器T1 LJMP LOOP6.3测试结果 图4.6 实验结果图 正常时间显示:右边六位数码管实现了时分秒的时间显示,秒位每1s加1,待加到59时,下1秒分位显示加1,而个位自动返回00,分位加到59时,下1秒时位显示加1,而分位和秒位自动返回00,从

33、而实现时间显示。时间校正:本实验用了与P3.2,P3.3,P3.4,P4.5口连接的四个键来对分位和时位进行时间的校正,键1按下,数码管上时间显示暂停,定时器T1关闭,键2每按一次,分位显示加1,键3每按一次,时位显示加1,且同时满足满数时的进位要求,键4按下,定时器重新启动,数码管在修改后的时间上正常显示。7 实验总结7.1代码编写过程中出现问题(1)对数码管的结构的测试,是共阴极,故8个数码管的位显示为底电平有效;(2)8位数的高位超过9,前要加0,否则报出错;(3)主程序从0030H 以后的入口进入,之前000BH以与001BH分别为定时器T0,T1中断入口;(4)区别传输数据存在寄存器

34、中还是传输的数据作为地址存放在寄存器中;(5)重设初值的问题,容易忘记;(6)在写调用语言时要考虑调用代码的位置,太靠后的话考虑用长调用指令;(7)尽管代码分解成几个阶段来编写,可能在一个小程序中测试成功,但将定时器和显示整合在一起后中间各种值的传送以与存储都会由于马虎而出现各种问题,故在写汇编语言时必须对整个流程熟悉,而且保持清醒的头脑。(8)学会程序的调试。通过编译可以找到语法上的错误,编译没错误时还不一定一定能运行,当结果不是预期的时候,可以选择一步一步运行,或者设置断点,有时可以通过查看RAM中数据每步变化情况来查看每步代码时候运行以与是否运行正确。(9)本实验中代码不够简化,之前的方

35、案是设置两个定时器,一个计时,一个显示,结果导致代码相当的麻烦,尽管已经去掉了显示的计时器,显示部分还是显得有庸长,如果时间允许,我们会尝试更简便的显示方案。7.2整个实验过程的体会(1)当确定主题后,我们有必要查阅相关的资料,由于是小组协作,故每个人分工明确,这是正式着手开始的应当考虑的。本实验中,炳林主要负责代码的编写以与报告中软件部分的撰写,胡柳依主要负责硬件资料的查询以与报告中硬件、资料概述方面的撰写和绘制电路图,通过合作,共同完成本次试验。 (2)在查资料过程中,我们需要考虑目前实验室所提供的期间以与元件,各种型号需要对应,给查资料带来一定的困难,由于小组人数有限,论文的下载,查阅以

36、与汇编语言的理解都用去的相当的时间。(3) 在写报告,展示成果的时候我们也遇到一些问题,首先,需要用流程图来描绘实现方案流程图,由于时间和小组人数的限制,在这方面的完成略显粗糙。其次,由于单片机显示的灯光不是那么明显,在拍照的时候显示的不是那么清晰,至此我们没有更好的电子器件来记录显示的结果。7.3实验误差分析系统的误差跟每秒中断次数和个人计算机有关,系统每次调用定时中断程序的过程中硬件由软件置数来实现的,而在程序调用过程中堆栈建立,参数传递等都是需要耗时,这些时间都被无形中加到了定时长度中去,所以使得每次定时长度都大于理论推导值。解决方案:系统每次调用中断处理程序所执行的操作都是一样的,即系

37、统每次定时的时间误差应该是一个常数,故可以根据个人试验情况稍加修改公式: X=2n-50ms/(振荡周期*12)+x 其中x可有试验测试数据得出。参考文献1 朝青.单片机原理与接口技术.航空航天大学.2 涵芳MCS-51系列单片机原理与应用M 航空航天大学3 王毓银数字电路逻辑设计M 高等教育2004-24 华东. 单片机原理与应用. 电子工业5 军. 51系列单片机高级实例开发指南. 航空航天大学6 许伟敏程佩青.多功能电子数字钟2009.7 电子技术基础实验课程组.电子技术基础实验指导书.大学电子信息学院.附录1 系统显示电路图 系统总电路图附录2 系统软件代码ORG 0000HAJMP

38、MAINORG 001BHLJMP SERVEORG 0100HMAIN: MOV TMOD,#10H MOV 33H,#14H MOV R0,#0FFH;标示 CLR A MOV 30H,#17H ;时,23 MOV 31H,#3BH;分,59 MOV 32H,#3BH;秒,59 MOV 34H,#09H;显示秒个位初始化 MOV 35H,#05H;显示秒十位初始化 MOV 36H,#09H;显示分个位始化 MOV 37H,#05H;显示分十位初始化 MOV 38H,#03H ;显示时个位初始化 MOV 39H,#02H ;显示时十位初始化 SETB ET1 ;允许定时器T1中断 SETB

39、EA ;允许定时器T2中断 MOV TH1,#3CH;初始值 MOV TL1,#0B0H SETB TR1 LOOP: LCALL TIME_COUNTER MOV A,#0FEH ;显示秒个位 MOV DPTR,#8300H MOVX DPTR,A MOV A,34H MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#8200H MOVX DPTR,A LCALL DELAY LCALL TIME_COUNTER MOV A,#0FDH;显示秒十位 MOV DPTR,#8300H MOVX DPTR,A MOV A,35H MOV DPTR,#TAB MOVC A,

40、A+DPTR MOV DPTR,#8200H MOVX DPTR,A LCALL DELAY LCALL TIME_COUNTER MOV A,#0FBH ;显示分个位 MOV DPTR,#8300H MOVX DPTR,A MOV A,36H MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#8200H MOVX DPTR,A LCALL DELAY LCALL TIME_COUNTER MOV A,#0F7H ;显示分十位 MOV DPTR,#8300H MOVX DPTR,A MOV A,37H MOV DPTR,#TAB MOVC A,A+DPTR MOV D

41、PTR,#8200H MOVX DPTR,A LCALL DELAY LCALL TIME_COUNTER MOV A,#0EFH;显示时个位 MOV DPTR,#8300H MOVX DPTR,A MOV A,38H MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#8200H MOVX DPTR,A LCALL DELAY LCALL TIME_COUNTER MOV A,#0DFH ;显示时十位 MOV DPTR,#8300H MOVX DPTR,A MOV A,39H MOV DPTR,#TAB MOVC A,A+ DPTR MOV DPTR,#8200H M

42、OVX DPTR,A LCALL DELAY LCALL TIME_COUNTER JNB P3.2,LP1 ;键1按下 JNB P3.3,LP2 ;键2按下 JNB P3.4,LP3 ;键3按下 JNB P3.5,LP4 ;键4按下 LJMP LOOP ;循环显示 LJMP $LP1: CLR TR1 ;关定时器T1 LJMP LOOP ;循环主函数,使重新扫描键盘LP2: P3.3,LD1 ;键2按下松开瞬间,调用MINUTE,分位加1 JMP LP2 LD1: LCALL MINUTE LJMP LOOPLP3: P3.4,LD2 ;键3按下松开瞬间,调用HOUR,时位加1 JMP LP

43、3 LD2: LCALL HOUR LJMP LOOPLP4: SETB TR1 ;打开定时器T1 LJMP LOOP SERVE: PUSH PSW;中断,保护现场 PUSH ACC CLR TR1 MOV TH1,#3CH MOV TL1,#0B0H DJNZ 33H,RETURN MOV R0,#00H ;R0置零说明1s到了,显示加1,如果没有R0,会出现显示飞快 MOV 33H,#14H ;重设中断次数20RETURN: SETB TR1 POP ACC ;恢复现场 POP PSW RETI TIME_COUNTER: CJNE R0,#00H,RETURN_0 MOV R0,#0F

44、FH ACALL SECONDRETURN_0: RETSECOND: MOV A,#01H ;秒处理 ADD A,32H MOV 32H,A MOV B,#0AH DIV AB MOV 35H,A MOV 34H,B MOV A,32H CJNE A,#60,RETURN_1 ;未计60s返回 MOV 32H,#00H MOV 35H,#00H MOV 34H,#00H ACALL MINUTERETURN_1 : RETMINUTE: ;分处理 MOV A,#01H ADD A,31H MOV 31H,A MOV B,#0AH DIV AB MOV 37H,A MOV 36H,B MOV

45、A,31H CJNE A,#60,RETURN_2 ;未计60min返回 MOV 31H,#00H MOV 37H,#00H MOV 36H,#00H ACALL HOURRETURN_2: RETHOUR: ;时处理 MOV A,#01H ADD A,30HMOV 30H,A MOV B,#0AHDIV AB MOV 39H,AMOV 38H,B MOV A,30H CJNE A,#24,RETURN_3 ;未计24h返回MOV 30H,#00H MOV 39H,#00H MOV 38H,#00H RETRETURN_3 : RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH DELAY: MOV R7,#02H ;延时1msLOOP1: MOV R6,#0FFHLOOP2: DJNZ R6,LOOP2 DJNZ R7,LOOP1 RETEND附录3 系统器件清单器件清单实验项目基于51单片机的数字钟设计申购日期2012年6月1日申请人员炳林学号91联系方式胡柳依52 序号器件名称规格数量备注1单片机系统学习平台1MCS512电脑1

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!