毕业设计论文基于AT89S51单片机的电子钟的设计.doc

上传人:sccc 文档编号:4860941 上传时间:2023-05-20 格式:DOC 页数:42 大小:908.02KB
返回 下载 相关 举报
毕业设计论文基于AT89S51单片机的电子钟的设计.doc_第1页
第1页 / 共42页
毕业设计论文基于AT89S51单片机的电子钟的设计.doc_第2页
第2页 / 共42页
毕业设计论文基于AT89S51单片机的电子钟的设计.doc_第3页
第3页 / 共42页
毕业设计论文基于AT89S51单片机的电子钟的设计.doc_第4页
第4页 / 共42页
毕业设计论文基于AT89S51单片机的电子钟的设计.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《毕业设计论文基于AT89S51单片机的电子钟的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于AT89S51单片机的电子钟的设计.doc(42页珍藏版)》请在三一办公上搜索。

1、毕业设计(论文)题 目: 基于AT89S51单片机的电子钟的设计 系 部: 信息技术系 专 业: 电子信息工程技术 学 号: 学生姓名: 指导教师姓名: 指导教师职称: 二一年五月八日摘要随着人类科技文明的发展,人们对于时钟的要求在不断地提高。时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向9。本文正是基于这种设计方向,以单片机为控制核心,设计制作一个符合指标要求的多功能数字时钟。本设计基于单片机技术原理,以单片机芯片AT89

2、S51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个电子时钟系统。该时钟系统主要由时钟电路模块、复位电路模块、LED数码管显示模块、以及键盘控制模块组成。系统具有简单清晰的操作界面,能在4V7V直流电源下正常工作。能够准确显示时间(显示格式为时时:00.00.00,刚上电时为12.00.00,当显示到23.59.59,即有重新从00.00.00开始显示),可随时进行时间调整。设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。关键词AT89S51单片机电子钟

3、目录第一章 绪论11.1 单片机的特点11.2 单片机应用简述11.3 电子时钟简介21.4 电子时钟的基本特点2第二章 控制系统的硬件设计32.1芯片的选择32.1.1 AT89S51的功能概述32.1.2 AT89S51引脚功能说明(附引脚图)32.1.3 AT89S51与AT89C51的比较62.2 电子时钟电路设计框图72.2.1 按键电路72.2.2 LED数码管显示电路8第三章 控制系统的软件设计123.1 主程序部分123.2 显示子程序153.3 中断服务子程序19第四章 电路测试224.1 硬件测试224.2 软件测试234.3 测试结果分析与结论234.3.1 测试结果分析

4、234.3.2 测试结论23第五章 作品总结与感想24第六章 致谢25第七章 参考文献26第八章 附录27附录一 程序清单27附录二 电路原理图35附录三 PCB图36附录四 3D图36附录五 元件清单37附录六 硬件实物图38IVI第一章 绪论1.1 单片机的特点20世纪末,单片机技术获得了飞速的发展,在其在推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使得现代电子产品性能进一步提高1。单片机有以下特点:1. 单片机的存储器ROM和RAM是严格区分的。ROM称为程序存储器,只存放程序、固定常数及数据表格。RAM则为数据存储器,用作工作

5、区及存放用户数据12. 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力1;3. 单片机的I/O口通常是多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或机器状态来区分1;4. 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便1。1.2 单片机应用简述目前,单片机正朝着高性能和多品种方向发展趋势是进一步向着CMOS化、低功耗、小体积,大容量、高性能、低价格

6、和外围电路内装化等几个方面发展。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。在以前,是必须由模拟或是数字电路实现的大部分功能的,而现在已经能用单片机通过软件的方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命2。1.3 电子时钟简介时间对于人们来说总是那么宝贵,工作的忙碌性和繁杂性容易是人忘记当前时间。忘记了要做的事情,当事情不是很重要的时候这种遗忘无伤大雅。但是,一旦是重要的事情,一时的耽误可能酿成大祸3。1957年,Ventura发明了世界上第一只电子表,从而奠定了电子时钟的基础,电子时钟也飞速的发展起来4。现代的电子时钟的

7、基于单片机的一种计时工具采用延时程序产生一定的时间中断,用于一秒定义,通过计数方式进行六十秒分钟进一,满六十分小时进一,满二十四小时清零,从而达到计时的功能,是人们日常生活不可缺少的工具。1.4 电子时钟的基本特点现在高精度的计时工具大多数采用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此,走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LCD显示器或数码管代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好3。第二章 控制系统的硬件设计2.1芯片的选择经过多

8、种单片机性能的分析及现有实验设备的限制,在本设计中单片机芯片采用了AT89S51单片机芯片。AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程既通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域5。2.1.1 AT89S51的功能概述AT89S51提供以下标准功能:4K

9、字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时、计数器,一个5向量两级中断结构,一个全双工通信口,片内振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时、计数器,串行通信口及中断系统继续工作。掉电方式RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位5。2.1.2 AT89S51引脚功能说明(附引脚图)Vcc:电源电压GND:接地P0口:P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复用口。作为输出口用时,每

10、位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。5图2- 1 AT89S51引脚图 P1口:P1口是一个带有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期

11、间,P1接收低8地址5。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(例如执行MOVX Ri指令)时,P2口线上的内容(即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash编程和程序校验期间,P2亦接收高位

12、地址和其他控制信号5。P3口:P3口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能5。P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。表2- 1 P3口第二功能端口引脚第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据发送P3.2/INT0外部中断0请求P3.3/INT1外部中断1请求P3.4T0定时/计数器0的外部输入P3.5T1定时

13、/计数器1的外部输入P3.6/WR外部RAM写选通P3.7/RD外部RAM读选通RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRT0位(地址8EH)可打开或关闭该功能。DIRT0位缺省为RESET输出高电平打开状态5。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此可对外输出时钟或用以定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Fl

14、ash存储器编程期间,该引脚还用于出入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,单片机执行外部程序时,应设置ALE无效5。/PSEN:程序储存允许(/PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)使,每个机器周期两次/PSEN有效,即输出两个脉冲。当访问外部数据存储器。没有两次有效的/PSEN信号5。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平

15、(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程电压VPP5。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.1.3 AT89S51与AT89C51的比较AT89S51相对于AT89C51新增加了很多功能,性能有了较大的提升,价格基本上不变,甚至比89C51更低!3AT89S51具有ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要芯片从工作环境上拔出,可以在线烧写。AT89S51的最高工作频率为33MHz,89C51的极限工作频率是24M,就是说89S51具有更改的工作频率,

16、从而有了更快的计算速度。AT89S51具有双工UART串行通道。AT89S51内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。AT89S51具有双数据指示器。AT89S51具有电源关闭标识。AT89S51具有全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效保护知识产权不被侵犯10。在兼容性方面,AT89S51向下完全兼容51全部字系列产品。比如8051、89C51等产品。也就是说不论教科书上采用的单片机是8051还是89C51还是MCS-51的等等,在89S51上一样可以照常运行,这就是所谓的向下兼容。3总之,无论是比其他品牌同

17、类产品相比,还是与同品牌产品相比都显示了AT89S51优良的性能,更高的性价比。所以AT89S51芯片成为了本系统的首选。2.2 电子时钟电路设计框图晶振电路模块复位电路模块LED显示电路 AT89S51主控制模块按键电路电路设计框图 图2-22.2.1 按键电路设计用了4个按键K1/K2/K3/S1,分别用于调时、调分、调秒及用作复位按钮,达到了时间调节的目的。按键电路 图2-32.2.2 LED数码管显示电路数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳极,一种是共阴极。共阳极就是把多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极

18、连接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。数码管的显示方法可分为静态显示和动态显示,在本设计中采用的是动态显示,其原理:各个数码管的相同端连接在一起,共同占用8位段引管线:每位数码管的阳极连接在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来6。本设计由两个LED四位一体阴极数码管、8个9012(PNP)三极管、8个510欧上拉电阻等组成,由于LED

19、数码管的位电流较大,故采用三极管来驱动。8个电阻一端接到单片机的P1口,另一端分别接到三极管的基极,发射极接地,集电极与所述数码管芯片的位控制端相连。此驱动电路采用主芯片的通用口并配合三极管来实现四位数码管的动态扫描和显示驱动,具有电路结构简单、占用电路板空间小、驱动能力强、成本低等优点,其缺点是共阴极的数码管采用PNP三极管驱动,这样三极管的损耗比较大。位码由P1口输出,段码由P3口输出,P1口线与LED之间5.1K的限流电阻和PNP三极管,显示的方式为动态显示方式。表2-2 字型与字段关系显示字符gfedcba字型码共阴极共阳极001111113FHC0H1000011006HF9H210

20、110115BHA4H310011114FHB0H4110011066H99H511011016DH92H611111017DH82H7000011107HF8H811111117FH80H911011116FH90HA111011177H88HB11111007CH83HC011100139HC6HD10111105EHA1HE111100179H86HF111000171H8EH数码管驱动的意义:第一:假如不驱动的话,单片机的高低电平仍然可以控制数码管的亮度,形在动态显示,但这时细心的你会发现这时的数码的亮度会比较暗,并且扫描频率很高,仍然有微小的闪动现象,因为单片机的输出的电流本身就很弱

21、;第二:三极管的作用是:1、起到开关的作用,即某一时刻打开或关闭数码管,形成动态显示;2、驱动数码管,静态显示可以不明显,动态显示的时候,效果就出来了。具体电路图如下:图2-4 数码管显示电路整体电路图如下:图2-5 电子钟硬件电路图第三章 控制系统的软件设计软件系统主要分为以下几个部分:主程序、显示子程序及中断服务子程序。以动态显示作为主程序,主要是初始化部分和不断调用动态显示子程序。动态显示子程序,它被主程序不断调用,以保证稳定可靠的显示;按键查询采用中断方式;秒定时采用定时器T0中断方式进行,定时时间为50MS,每50MS溢出一次,中断两次达100MS。然后通过显示子程序将单元里面的十六

22、进制数拆开为BCD码,送到显示缓冲区。3.1 主程序部分a)程序的起始地址:MCS-51单片机复位后,(PC)=0000H,而0003H-002BH分别是各中断源的入口地址。所以,编程时应在0000H处写一条跳转指令。b)主程序的初始化:将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作设定。流程图如下:启动定时器设置初始常数置定时器模式及工作方式显示缓冲区初始化单元初始化开始图3-1 主程序流程图程序如下:SECOND EQU 30H;秒单元MINITE EQU 31H;分单元HOUR EQU 32H;时单元HOURK BIT P2.0;时按键MINITEK BIT P2.1;分

23、按键SECONDK BIT P2.2;秒按键DISPBUF EQU 40H;显示缓冲区DISPBIT EQU 48HT2SCNTA EQU 49HT2SCNTB EQU 4AHTEMP EQU 4BHORG 0000HLJMP STARTORG 000BH;定时器T0中断入口地址LJMP INT_T0;主程序START: MOV SECOND,#00H;秒单元清0MOV MINITE,#00H;分单元清0MOV HOUR,#12;上电时单元显示12MOV DISPBIT,#00HMOV T2SCNTA,#00HMOV T2SCNTB,#00HMOV TEMP,#0FEHLCALL DISP;调

24、用显示子程序MOV TMOD,#01H;设定时器T0工作方式为方式1MOV TH0,#3CH;T0置初值MOV TL0,#0B0HSETB TR0;启动定时器T0SETB ET0;启动定时器T0中断允许SETB EA;总中断允许3.2 显示子程序功能:扫描8个数码管,数值。流程图如下返回小时单元清0YN24H到?小时单元加1分单元清0YYN60M到?分单元加1秒单元清0N60S到?秒单元加1调用延时程序图3-2 显示程序流程图显示程序如下:;显示子程序WT:JB SECONDK,NK1;位转移LCALL DELY10MS;延时1sJB SECONDK,NK1INC SECOND;s+1MOV

25、A,SECONDCJNE A,#60,NS60;判断是否到60m?判断是否到60s?若未到,则返回;到了则跳转NM60MOV SECOND,#00HNS60: LCALL DISPJNB SECONDK,$NK1: JB MINITEK,NK2LCALL DELY10MSJB MINITEK,NK2INC MINITE;m+1MOV A,MINITECJNE A,#60,NM60;判断是否到60m?判断是否到60s?若未到,则返回;到了则跳转NM60MOV MINITE,#00H;60分到,则分单元清0NM60: LCALL DISPJNB MINITEK,$NK2: JB HOURK,NK3

26、LCALL DELY10MSJB HOURK,NK3INC HOUR;h+1MOV A,HOURCJNE A,#24,NH24;判断是否到60m?判断是否到60s?若未到,则返回;到了则跳转NM60MOV HOUR,#00HNH24: LCALL DISPJNB HOURK,$NK3: LJMP WTDISP:MOV A,#DISPBUF;显示小时十位值ADD A,#8DEC AMOV R1,AMOV A,HOURMOV B,#10DIV AB;除以10.,得到时间值的各位和十位MOV R1,A;十位送相应的显示缓冲区DEC R1;指向显示缓冲区的个位MOV A,B;各位给ACCMOV R1,

27、A;个位置送缓冲区的相应位置DEC R1MOV A,#10MOVR1,ADEC R1MOV A,MINITE;显示分钟十位值MOV B,#10DIV ABMOV R1,ADEC R1MOV A,B;显示分钟个位值MOV R1,ADEC R1MOV A,#10MOVR1,ADEC R1MOV A,SECONDMOV B,#10;显示秒十位值DIV ABMOV R1,ADEC R1MOV A,BMOV R1,ADEC R1RET3.3 中断服务子程序每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是11.0592MHz,所以定时常数的设置可按以下方法计算:机器周期=1211.0592MHz

28、1.0857S程序中,定时器T0采用方式1=65536,因要求每50MS溢出一次,计数值=(501000)1=5000 ,所以计数器的初值为X=65536-50000=15536=3CB0H 初值寄存器的初值 TH0=3CH,TL0=B0H置T0方式1定时,所以TMOD=01H功能:50MS执行一次完成显示数据的刷新并拆开放到显示缓冲区.程序如下:;中断服务子程序INT_T0:MOV TH0,#3CHMOV TL0,#0B0HMOV A,#DISPBUFADD A,DISPBITMOV R0,AMOV A,R0MOV DPTR,#TABLE;查表MOVC A,A+DPTRMOV P3,A;段码

29、送P3口MOV A,DISPBITMOV DPTR,#TABMOVC A,A+DPTRMOV P1,A;位码送P1口INC DISPBITMOV A,DISPBITCJNE A,#08H,KNAMOV DISPBIT,#00H第四章 电路测试4.1 硬件测试由于在硬件电路是用通用板做的,所以在电路焊接方面是不可忽视的,只要有一处的错误,则会对检测造成很大的不便,而且电路的交线很多,对于各种锋利的引脚要注意处理,否则刺破带有封皮的导线,使得电路造成短路现象。另外还要对元器件先进行检测,如果有坏的器件要进行更换,还有就是要注意元器件的正确放置与安装以及布线的合理,便于成品电路的检测和维护7。在本设

30、计中的调试过程遇到了很多的问题,回想这些问题,其实只要认真点、仔细点、思考多一点大部分是可以避免的,以下为主要问题:电路做成后,数码管的正常显示应为12-00-00,却显示成了00-00-12,就是前四位和后四位调换了。解决:查出P1口的8个电阻低4位和高4位接反了,拆了重新接之后,显示却变为正常显示数值12-00-00的反面,就像一张纸的正面和反面反了下,后来想到从硬件中修改的话,改动的比较大也比较麻烦,后来决定从软件中修改,把共阴极后面代码改了,问题就得到了解决。4.2 软件测试该电子钟的功能虽少,但是程序也比较为复杂,所以在编写程序和调试程序时出现了相对较多的问题。最后,鉴于以前学过的单

31、片机知识,一步一步的完成各个子程序,终于得到了最后的程序。解决了软件问题。在写中断程序和显示程序时遇到了很多的问题,如调试时显示乱码等等。但是经过努力,程序还是成功了。4.3 测试结果分析与结论4.3.1 测试结果分析1.在测试中遇到LED数码管为不显示时,首先要仔细观察电路板是否存在漏焊、虚焊、或者元件损坏。2.LED数码管显示不正常,还有亮度不够,要注意观察电路是否存在短路现象。若硬件无误后,再查看烧写的程序是否正确,并对程序进行认真修改。4.3.2 测试结论经过了多次的反复测试与分析,可以对电路原理及功能更加熟悉,同时提高了设计能力以及对电路的分析能力,同时在软件的编程方面得到更高的提高

32、,对编程能力也得到了加强,同时对所学的只是得到了很到的提高与巩固7。对于初学者来说,更是有更大的益处,能理论联系实际运用,学到更多的知识,真正将这门课程所包含的知识用于实际生活中的具体创造和设计中。第五章 作品总结与感想通过这次单片机课程设计,发现了自身所学知识存在许多的不足和问题,同时也学到了不少东西,提高了动手能力。在整个设计过程中,从设计方案的确定,到具体电路的设计,最后到总体电路的联接构建以及程序的编写烧写,整个设计工程量的比较大的,单靠个人能力,很多方面考虑不周,有的地方甚至毫无头绪,想不出具体方案,因此,绝对不能心急,不明白的地方和其他的同学讨教,毕竟群策力办法要多些,让自己也多个

33、机会,碰上是在不能解决的问题,就去找辅导老师,用过老师的指点,把问题彻底搞清楚并加以掌握。另外,在这次的设计过程中,我还查阅了很多相关设计的资料,通过参考和研究别人的一些设计,使得自己的设计思路更加清晰和周密,从而使设计出来的产品也更加完善和高质量。尽管这次设计中遇到了很多问题,但是也都一一得以解决,比如软件设计时,遇到了很多问题,但是经过向同学讨教及想老师询问,静下心来思考,慢慢就理清了思路;在硬件电路板焊接过程中,也遇到了很多问题,在电路焊接虽然并没有什么大的问题,但是线多,需要一定的耐心,慢慢来,不能心急才能焊接成功。通过这次设计,也使我知道了无论做任何事情,都要有一颗平常心,不要急着想

34、要成功、走捷径,要一步一个脚印,把每一部都认认真真的做好来,才能取得最后的成功,同时也练就了我的耐心,做什么事情都要有耐心,不要遇到困难就退缩,而是要静下心来去寻找解决的方法,否则很难有最后的成功。在此过程中,充分发挥人的主观能动性,自主学习,学到了很多没有学到过的知识,另一方面,碰到问题注意与同学和老师写作、讨论、寻求解决的方案,最终完成作品,达到预期的目的7。虽然这次设计的课题有些简单,但是要真的做进去还是有一定的困难的,但是经过自己的努力,得出最后的作品,我个人还是蛮有成就感的,更重要的是学到了平时没有学到的知识。因此,我自己觉得这次的课程设计对我而言算的上是一次全新的尝试,也是一个小小

35、的成功,更是一次很好的锻炼,让我有了全方位的提高和进步。第六章 致谢半年的毕业设计时间虽然短暂,但是我却学到了很多以前没有学到的道理和知识,感谢我的指导老师,他严谨细致、一丝不苟的作风是我工作、学习中的榜样;他循循善诱的教导和不拘一格的思路给予我无尽的启迪。在此,谨向导师多年来给予学生的培养和教诲表示崇高的敬意和深深的感谢!将牢记导师对我的谆谆教诲,以指导今后的工作、学习和生活。 此外还要感谢帮助过我的其他老师和同学,给予我鼓励和支持。还要感谢我的亲人,感谢他们对我生活上的关心、始终如一的支持和殷切的期望,他们的希望是我最大的动力。衷心感谢评阅论文的各位领导!第七章 参考文献1 楼然苗, 李光

36、飞。 单片机课程设计指导,北京航空航天大学出版社。2 张友德,赵志英,涂时亮。单片机原理、应用与实验(第五版),复旦大学出版社。 3佚名。单片机电子数字钟论文,豆丁网文档在线, 4 张永枫。单片机应用实训教程,西安电子科技大学出版社5佚名。AT89S51中文资料,电子驿站,6 严天峰。单片机应用系统设计与仿真调试,北京航空航天大学出版社。7 佚名。毕业论文基于AT89S51单片机的数字时钟,豆丁网文档在线, 第八章 附录附录一 程序清单SECOND EQU 30H;秒单元MINITE EQU 31H;分单元HOUR EQU 32H;时单元HOURK BIT P2.0;时按键MINITEK BI

37、T P2.1;分按键SECONDK BIT P2.2;秒按键DISPBUF EQU 40H;显示缓冲区DISPBIT EQU 48HT2SCNTA EQU 49HT2SCNTB EQU 4AHTEMP EQU 4BHORG 0000HLJMP STARTORG 000BH;定时器T0中断入口地址LJMP INT_T0;主程序START: MOV SECOND,#00H;秒单元清0MOV MINITE,#00H;分单元清0MOV HOUR,#12;上电时单元显示12MOV DISPBIT,#00HMOV T2SCNTA,#00HMOV T2SCNTB,#00HMOV TEMP,#0FEHLCAL

38、L DISP;调用显示子程序MOV TMOD,#01H;设定时器T0工作方式为方式1MOV TH0,#3CH;T0置初值MOV TL0,#0B0HSETB TR0;启动定时器T0SETB ET0;启动定时器T0中断允许SETB EA;总中断允许WT: JB SECONDK,NK1;位转移LCALL DELY10MS;延时1sJB SECONDK,NK1INC SECOND;s+1MOV A,SECONDCJNE A,#60,NS60;判断是否到60s?若未到,继续计时;到了则跳转NS60MOV SECOND,#00HNS60: LCALL DISPJNB SECONDK,$NK1: JB MI

39、NITEK,NK2LCALL DELY10MSJB MINITEK,NK2INC MINITE;m+1MOV A,MINITECJNE A,#60,NM60;判断是否到60m?判断是否到60s?若未到,则返回;到了则跳转NM60MOV MINITE,#00H;60分到,则分单元清0NM60: LCALL DISPJNB MINITEK,$NK2: JB HOURK,NK3LCALL DELY10MSJB HOURK,NK3INC HOUR;h+1MOV A,HOURCJNE A,#24,NH24;判断是否到24h?判断是否到60s?若未到,继续计时;到了则跳转NH24MOV HOUR,#00H

40、NH24: LCALL DISPJNB HOURK,$NK3: LJMP WT;一秒延时程序DELY10MS:MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RET;显示子程序DISP:MOV A,#DISPBUF;显示小时十位值ADD A,#8DEC AMOV R1,AMOV A,HOURMOV B,#10DIV AB;除以10.,得到时间值的各位和十位MOV R1,A;十位送相应的显示缓冲区DEC R1;指向显示缓冲区的个位MOV A,B;个位给ACCMOV R1,A;个位置送缓冲区的相应位置DEC R1MOV A,#10MOVR1,ADEC R1M

41、OV A,MINITE;显示分钟十位值MOV B,#10DIV ABMOV R1,ADEC R1MOV A,B;显示分钟个位值MOV R1,ADEC R1MOV A,#10MOVR1,ADEC R1MOV A,SECONDMOV B,#10;显示秒十位值DIV ABMOV R1,ADEC R1MOV A,BMOV R1,ADEC R1RET;中断服务子程序INT_T0:MOV TH0,#3CHMOV TL0,#0B0HMOV A,#DISPBUFADD A,DISPBITMOV R0,AMOV A,R0MOV DPTR,#TABLE;查表MOVC A,A+DPTRMOV P3,A;段码送P3口MOV A,DISPBITMOV DPTR,#TABMOVC A,A+DPTRMOV P1,A;位码送P1口INC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号