ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:150.31KB ,
资源ID:20365084      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20365084.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机AT89S51控制的数字时钟课程设计报告Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机AT89S51控制的数字时钟课程设计报告Word格式文档下载.docx

1、图2-1总体方案方框图3 硬件设计本数字时钟系统的硬件电路主要包括晶振电路、数码显示电路及其它外围电路等。3.1复位电路【2】9复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。下图所示的RC复位电路可以实现上述基本功能,Sm为手动复位开关。图3-0 复位电路图3.2晶振电路1 AT89S51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是放大器的输入端和输出端,这个放大器与作为反馈元件的石英晶体构成自激震荡电路。外接石英晶体及电

2、容C1,C2接在放大器的反馈回路中构成并联震荡电路。图3-1晶体震荡电路3.3数码管原理图4810。 图3-2 数码管管脚图3.3.1 AT89S51的管脚说明2 图3-3 AT89S51管脚图VCC 电源电压.GND 接地.RST 复位输入.当RST变为高电平并保持2个机器周期时,将使单片机复位.WDT溢出将使该引脚输出高电平,设置SFR AUXR的DISRTO位(地址8EH)可打开或关闭该功能.DISKRTO位缺省为RESET输出高电平打开状态.XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入.XTAL2 来自反向振荡放大器的输出.P0口 一组8位漏极开路型双向I/O口.也即地址/

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

4、8位地址. P2口 一个带内部上拉电阻的8位双向I/O口.P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对端口写,通过内部的上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据.在访问8位地址的外部数据存储器时,P2口线上的内容在整个访问期间不改变.Flash编程和程序校验期间,P2亦接收低8位地址.P3口 一个带内部上拉电阻的8位双向I/O口.P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路.对P3口写时,它们被

5、内部的上拉电阻把拉到高电并可作输入端口.作输入端口使用时,被外部拉低的P3口将用上拉电阻输出电流(IIL).P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下图所示.P3口还接收一些用于Flash闪速存储器编程和程序校验期间的控制信号.PSEN/ 程序储存允许输出是外部程序存储器的读先通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN/有效,即输出两个脉冲.当访问外部数据存储器,没有两次有效的PSEN/信号.EA/VPP 外部访问允许.欲使CPU仅访问外部程序存储器,EA端必须保持低电平,需注意的是:如果加密位LB1被编程,复位时内部会锁存EA

6、端状态.Flash存储器编程时,该引脚加上+12V的编程电压VPP.4 软件设计4.1 主程序流程图5 制作和调试中的一些问题和解决办法数字时钟设计刚完成时,我经过检查,发现了一些问题147:1 刚弄好电路板并烧写程序进去后发现数码管不能正确显示时间,每个数码管中显示的数字几乎一样。经过询问老师,自己查阅资料,终于找出问题的原因:由于我在电路中采用的是动态数码管显示,需准确地调整延时子程序DEL1MS。我在程序中采取的延时时间为1毫秒。2复位电路中的开关不能使电路复位到初始状态即12:00:00,经过认真检查电路后我发现我是开关的管脚没接对。测试后重新接下开关的管脚就可以了。6 结论经过调试之

7、后,我发现我做的基于AT89S51设计的数字时钟,经过调试,一天的时间里面,差不多在1秒,计时是相对准确。而且该设计的成本不高,硬件电路简单,可以用在对时间精度要求不高的场合. 由于时钟电路的重要性,时钟电路在很多应用系统中必不可少,用软件方法可以实现,但误差很大。在对时间精度要求很高的情况下,通常采用时钟芯片来实现。典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足精度要求。致谢辞在论文完成之际,谨向关心我、支持我的师长、朋友和亲人表示最衷心的感谢。首先要感谢我尊敬的指导老师陈弢和唐幼君,本论文的工作得到了陈老师悉心的指导和启发,从论文的选题和具体实现都给予极大的帮助。唐

8、老师平易近人,我非常感两位老师。 本设计的完成,当然也少不了同学的帮助,感谢他们对我的帮助,没有他们的帮助,设计的任务是不可能这么快顺利完成的。同时,也要感谢我的爸爸妈妈,感谢他们这么多年来默默地支持着我的学业,我会再接再厉,以更加饱满的热情投入到今后的学习和工作中去。参考文献: 1 曹巧媛 单片机原理与应用M.京:电子工业出版社, 20022 何立民 MCS-51系列单片机应用系统设计.北京航空航天大学出版社,20003 丁元杰 单片微机原理及应用第2版M.北京机械工业出版社,20014 郁凯平 MCS-51单片机串口一口两用在LED显示屏的一例应用 电子与电脑2008年第1期5 陈忠平 P

9、89LPC935驱动数码管显示时钟的设计 湖南工业职业技术学院学报2007 年第 02 期6 林成武等 MCS-51单片机PO口扩展技术研究.电子元器件应用2007 年第 4 期7 谢自美 电子线路设计、实验、测试 .华中理工大学出版社,20008 李正浩等 51单片机在LED数码管显示中的应用.实验科学与技术 2006 年第z1 期9 包国宾、张建民 单片机复位电路的设计与分析.光电技术应用 2005 年第 03 期10 唐光明 基于中断技术的开关软件消抖算法现代机械 2006 年第 03 期11 N. Ambramson, Editor, Multiple Acess Communicat

10、ion-Foundation of Emerging Tecnologies, IEEE Press,1992附录1 C语言程序附录ORG 0000HLJMP MAIN ;跳到主程序ORG 0003HLJMP INT0 ;跳到外部中断0ORG 000BH LJMP T0 ;跳到定时器0ORG 0013HLJMP INT1 ;跳到外部中断1ORG 001BHLJMP T1 ;跳到定时器1ORG 0100HMAIN: ;主函数CLR P3.0 ;关蜂鸣器ACALL INITIAL ;调用初始化函数DONE:JNB 00H,DONE1 ;是否显示时间MOV R0,#73H ;显示时间ACALL CO

11、NVERT ;把时间存储器转化到显示存储器AJMP TEST ;是否处于调整状态DONE1:JNB 01H,DONE2 ;是否显示日期MOV R0,#70H ;显示日期转化DONE2:JNB 02H,DONE3 ;是否显示定时时间MOV R0,#63H ;显示定时时间DONE3:MOV R0,#60H ;显示秒表LJMP DISP ;跳到显示函数TEST:判断是否处于调整状态 JNB 18H,TEST10 ;是否按键已经按下 JNB P3.5,TEST7 ;按键是否已经释放 AJMP TEST11TEST10:JB 16H,TEST8 ;判断是否有按键按下 JB P3.5,TEST7 SETB

12、 16H AJMP TEST7TEST8:JB P3.5,TEST9 SETB 18H TEST11:CLR 18H CPL 17H MOV C,17H MOV P0.0,C CLR 16H CLR 12H ;定时结束 CLR TR1 ;关定时器1 CLR P3.0 ; CLR 13H ; MOV 59H,#00H ; MOV 58H,#01H TEST9:CLR 16H TEST7:JNB 12H,TEST6 JB P3.4,TEST6 MOV 58H,#01H ;TEST6:JNB 01H,TEST5 ;是否处于日期状态 JB P3.4,TEST4 ;案键3是否按下 MOV 20H,#01

13、H ; 返回时间状态 MOV 21H,#00H LJMP DISP TEST5:JNB 02H,TEST4 ;是否处于定时时间状态按键3是否按下返回时间状态 TEST4:JNB 15H,DO ;闪烁标志是否有效 LJMP DISP ;无效则进入显示函数DO: MOV A,21H ; CJNE A,#00H,TEST2 ;是否在调整状态不处于调整状态则进入显示函数 TEST2: JB P3.4,TEST3 MOV 20H,#01H TEST3:JNB 08H,DONE4 ;是否秒位置处于调整状态 MOV 78H,#11 ;不显示 MOV 79H,#11 ;进入显示函数 DONE4:JNB 09H

14、,DONE5 ;是否分位置处于调整状态 MOV 7BH,#11 ; MOV 7CH,#11 ; DONE5:MOV 7EH,#11 ;时位置不显示 MOV 7FH,#11 ;进入主函数CONVERT:转化成数码管显示所对应的存储器MOV A,R0 ;把R0存储的地址所对应的存储器的内容转化到秒位置的存储器MOV B,#10 ;DIV AB ;MOV 79H,A ;高位存储?MOV 78H,B ;地位存储INC R0 ;地址加一取数据MOV 7CH,A ;高位存储MOV 7BH,B ;低位存储MOV 7FH,A ;MOV 7EH,B ;RETINITIAL: MOV 7FH,#1 ;数码管显示1

15、2:00:00 MOV 7EH,#2 MOV 7DH,#10 MOV 7CH,#0 MOV 7BH,#0 MOV 7AH,#10 MOV 79H,#0 MOV 78H,#0 MOV 75H,#12 ;初始化时间 12: MOV 74H,#0 MOV 73H,#0 MOV 72H,#08 ;初始化日期 08.3.20 MOV 71H,#3 MOV 70H,#20 MOV 65H,#12 ;初始化定时时间 12:20 MOV 64H,#0 MOV 63H,#20 MOV 62H,#00 ;初始化秒表00:00.00 MOV 61H,#00 MOV 60H,#00 MOV 50H,#100 ;1s定

16、时100*10ms MOV 51H,#20 ;200ms闪烁计时 MOV 52H,#10 ;秒表计数器 MOV 53H,#5 ;每放一个音时延时5ms MOV 58H,#1 ;存放音乐表的指针 MOV TH0,#0D8H ;T0定义为10ms中断 MOV TL0,#0F0H MOV TMOD,#11H ;定时器工作在方式1 MOV IP,#2 ;定时器0高优先级 MOV IE,#8FH ;开中断 SETB IT0 ;外部中断为边缘触发 SETB IT1 ; SETB TR0 ;开定时器0 MOV 20H,#0 ; SETB 00H ;设置成处在时间显示状态 00H为时间显示标志,01h为日期显

17、示标志,02h为定时时间显示标志,03h秒表显示标志 ;08h为秒位置选择标志,09h为分位置选者标志,0ah为时位置选择标志 ;10h为秒表开始或暂停标志,11h为,12h为是否正在放音乐标志,13h为是否延时标志,15h为闪烁标志,16h,17h为判断定时按键标志 MOV 21H,#0 ;位存储器初始化 MOV 22H,#0 ; SETB 17H ; 开定时器 SETB P0.0 ;开定时器指示灯DISP:显示函数 MOV R0,#78H ;显示第一 个位置 MOV DPTR,#TAB ;MOV R7,#0FEH ;第一位有效NEXT: MOV A,R0 ; MOVC A,A+DPTR ;

18、把十进制数转化成数码管对应的数据 MOV P1,A ;数据送出端口 MOV P2,R7 ;地址送出端口 ACALL DEL1MS ;延时一毫秒 MOV A,R7 ; RL A ;地址位左移到下一位 MOV R7,A ; INC R0 ;数据地址加1 CJNE R0,#80H,NEXT ;是否已经显示完LJMP DONETAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H,00H0 1 2 3 4 5 6 7 8 9 - 空DEL1MS:延时1毫秒函数 MOV R6,#2 DEL1:MOV R5,#250 DJNZ R5,$ DJNZ R6,DEL

19、1T0:定时器0函数 PUSH DPH PUSH DPL PUSH PSW PUSH ACC定时时间设置为10毫秒 DJNZ 50H,MIAO1 ;是否已经延时1秒 AJMP NEXT5 ; MIAO1:LJMP MIAOBIAO ;一秒还没到,进入秒表 NEXT5:MOV 50H,#100 ; 重新循环100次,即一秒 INC 73H ;秒加一 MOV A,73H ; CJNE A,#60,MIAO2 ;是否已经加到60 AJMP NEXT6 ; MIAO2:没到60,进入秒表 NEXT6:MOV 73H,#0 ;已经加到60,秒清0 INC 74H ;分加一 MOV A,74H ; CJN

20、E A,#60,MIAO3 ;分是否已经加到60 AJMP NEXT7 ; MIAO3: NEXT7:MOV 74H,#0 ;已经到60,分清0 INC 75H ;时加1 MOV A,75H ; CJNE A,#24,MIAO4 ;是否已加到24 AJMP NEXT8 ; MIAO4:没到24则进入秒表 NEXT8:MOV 75H,#0 ;时清0 INC 70H ;日加1 MOV A,70H ; CJNE A,#29,MONTH ;是否是29 MOV A,71H ; CJNE A,#2,MIAO5 ;是否是2月 AJMP NEXT9 ;MIAO5:不是2月,进入秒表NEXT9:MOV 71H,

21、#3 ;月份为3 MOV 70H,#1 ;日为1 LJMP MIAOBIAO ;MONTH: CJNE A,#31,MONTH1 ;是否是日是31 CJNE A,#4,MONTH6 ;是否是4月 MOV 71H,#5 ;月份为5 AJMP MIAOBIAO ; MONTH6:MOV A,71H ; CJNE A,#6,MONTH9 ;是否是6月 MOV 71H,#7 ;月份为7 MONTH9: CJNE A,#9,MONTH11 ;是否是 9月 MOV 71H,#10 ;月分为10 MONTH11: CJNE A,#11,MIAOBIAO ;是否是11月 MOV 71H,#12 ;月份为12

22、日为1MONTH1: CJNE A,#32,MIAOBIAO ;是否日是32 CJNE A,#12,MONTH0 ;是否是 12月年加1月为1 MOV 71H,#1 ; MONTH0:INC 71H ;不是12月,月加1日为MIAOBIAO:秒表函数 JNB 03H,DINGSHI ;是否进入计时 JNB 10H,DINGSHI ;是否开始计时 DJNZ 52H,DINGSHI ;是否100毫秒已到 JNB P3.4,CLEAR ;按键按下时清0 INC 60H ;0.1秒位加1 MOV A,60H ; CJNE A,#10,DINGSHI ;是否已加到10 MOV 60H,#0 ;0.1秒位

23、清0 INC 61H ;秒位加1 MOV A,61H ; CJNE A,#60,DINGSHI ;秒是否已经加到60 MOV 61H,#0 ;秒位清0 INC 62H ;分加1 MOV A,62H ;是否是60分 MOV 62H,#0 ;分为清0 AJMP DINGSHI ; CLEAR:MOV 60H,#0 ;清0 CLR 10H ;停止计数DINGSHI:定时函数 JB 17H,YSTART ;定时器有效 LJMP BAOSHI ;定时器无效 YSTART:JB 12H,START ;是否已经在放音乐 MOV A,63H ; CJNE A,73H,BAO1 ;是否时已到 AJMP NEXT

24、10 ; BAO1:LJMP BAOSHI ; NEXT10:MOV A,64H ; CJNE A,74H,BAO2 ;是否分已到 AJMP NEXT11 ; BAO2: NEXT11:MOV A,65H ; CJNE A,75H,BAO3 ;是否秒已到 AJMP NEXT12 ; BAO3: NEXT12:SETB 12H ;设置定时已到 MOV 55H,#10H ;第一个节拍 MOV 57H,#0FBH ;第一个音调高位 MOV 56H,#8BH ;第一个音调低位 SETB TR1 ;启动定时器1START:DJNZ 55H,BAO4 ;节拍是否已结束 AJMP NEXT13 ;BAO4:NEXT13: CPL 13H ;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1