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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机数字时钟设计文档三.docx

1、单片机数字时钟设计文档三单片机课程设计课题:数字时钟设计系 别:专 业: 姓 名: 学 号: 指导教师:成绩评定一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。二、评分(按下表要求评定)课程设计成绩评定班级 姓名 学号成绩: 分(折合等级 )指导教师签字 年 月 日一、设计目的用8013单片机CPU及接口电路设计并实现显示时间的实时时钟。二、设计要求(1) 在ZY15MCU12BD型综合单片机试验箱的硬件结构上编写软件完成设计。(2) 程序的首地址应使目标机可以直接运行,即从0000H开始。在主程序的开始部分必须设置一个合适的栈底。程序放置的地址须连续且靠前,不要在中间

2、留下大量的空间地址,以使目标机可以使用较少的硬件资源。(3) 6位LED数码管从左到右分别显示时. 分. 秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后变成000000.(4) 在XD12键盘上选定3个键分别作为小时. 分. 秒的调校键。每按一次键,对应的显示值便加1。分. 秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向上一单位进位(例如分加到59后变为00;但小时不发生改变).(5) 软件设计必须使用8031片内定时器,采用定时中断结构,不得使用软件延时法。(6) 上机调试程序。(7) 写出设计报告。三、总体设计 1、设计的总体原理

3、框图 见附录3 2、工作原理电子时钟主要由8031片内定时器定时中断,并取一存储单元作为计数器使用,每中断一次,在中断服务程序中使计数器加1、8031芯片、74LS373锁存器、8255A接口芯片、74LS240驱动器、LED数码显示管和4*4键盘组成。主要用8031片内定时器定时中断服务程序完成秒、分、时的运算即计时功能,TIME0的中断服务程序完成调时、调分、调秒功能。8255A负责将内存里的时位、分位和秒位数值输出到数码管。同时按键01键、02键、03键是分别对时、分、秒的加1校对;05键、06键、07键时分别对时、分、秒的减1校对;00键是清零键。并且开机时时钟时从000000开始计时

4、的,到235959时在回到000000.四、各部分电路分析此实时时钟的设计与实现,主要采用了6只LED数码管,8031内部二进制16位定时器/计数器,可编程中断控制器8031等芯片,包括显示模块,运算模块和校时模块三大功能模块。1、显示模块:用8255控制,用数码管的显示功能来设计。显示部分硬件用六只LED为显示管,这些LED发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过在这8只发光二极管的阳极加+5 V或0 V的电压使不同的二极管发光,形成不同的数字。该模块主要是将运算模块和校时模块运算出来并存放在内存单元里的十六进制表示的时位、分位和秒位数值转化为十进制,并通过8只数码管显

5、示出来。该模块实现的硬件是DVCC8086JH实验箱中的LED单元,采用软件译码,即在程序中设置一个段选码表。CPU直接往LED输出八段代码,省去了硬件译码器。A0A3作为8段数据输出口,经74LS07驱动后到达各LED。只要做到每送一次段选码时也送一次位扫描码,并且每送一次位扫描码后,位码中的0右移一位作为下一次的位扫描码,即可实现由左向右使6只LED依次出现数字显示。2、运算模块:该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。该模块可以细分为秒定时模块和运算模块。秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗

6、一定的时间,所以中断信号最好通过硬件来实现。本实验中用8031定时器/计数器,但因为8031供的信号的周期是毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。中断信号是8031工作方式为方式1,产生一个50ms的脉冲信号。运算模块负责时、分、秒的计算,该模块主要通过8031的IR1号中断来实现,但由于每50ms一次中断请求,所以在中断服务程序必须利用已申请内存单元26H来统计中断请求的次数,只有当26H的值为20时,才能让秒单元内的数值加1。在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1 、秒

7、清零;当分加到60时,时加1、分清零。当时加到24时,直接清零。然后转到调用处。3、校时模块:该模块主要功能是修改时、分、秒内存单元的数值。每按一次键,对应的显示值便加1。分、 秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向上一单位进位(例如分加到59后变为00;但小时不发生改变)。注意:在主程序中对时间进行调校前应关闭中断,以防在调校过程中定时中断服务程序也对时间进行修改而造成混淆。4. 整体功能:在6块LED数码管上能实现数字时钟的时、分、秒显示,并能对时、分、秒进行加1校对、减1校对和清零。本实验中01键、02键、03键是分别对时、分、秒的加1校对;05键、06键、

8、07键时分别对时、分、秒的减1校对;00键是清零键。并且开机时时钟时从000000开始计时的,到235959时在回到000000.五、设计的整体电路图 见附录4。六、设计总结1、设计过程中遇到的问题及解决方法将编写好的源程序输入电脑,编译后出现很多错误,这些错误有许多时平时的实验遇到过的,例如:输入的分号格式不正确,零和字母O弄混淆了,LOOP5出现了几次,CJNE写成了CJNZ等等,幸好这些错误在平时的实验中遇到了,所以改错误很容易,但同时也说明了,平时的错误现在还在换,证明错误我还没有完全的改正,这点我以后一定要注意了。争起错误换了两次就不能在换了。除了常见的错误外,还有几条错误时我从来没

9、有遇到过的,如:LJMP跳转指令跳不回指定的位置,是因为跳转的长度大于LJMP跳转的长度,最后只好设置跳转两次后才能跳到指定的位置。经过多次的修改和向别人请教,错误都拍除了,编译通过了,但功能没有达到设计的要求,第一、小时加1键加到23时还可以向上加而不是回到00.第二、时钟走到235959时不能回到000000的状态。这两个错误都出现在小时的位置,说明小时键很特殊,的确,小时键当小于23时个位遇到10要进位,当大于23时个位遇到4时要进位,小时的十位也是一样,要判断两次,才能实现完整的功能。最后,经过几天在机房的努力,终于实现了时钟的全部要求。在前期的程序编写和几天的上机调试,使我又获得了很

10、多新的知识,因为前期编写程序时查了很多资料学到了很多知识,这几天的调试更时获得很新的知识,因为程序中又很多的错误,为了修改错误必须看书或向别人请教,在这个过程中无意识的获得了很多知识。同时也使我对单片机更感兴趣了,这点我觉得很重要,因为兴趣使最好的老师,相信在以后的单片机相关的学习中会表现的更好。2、设计体会本次课程设计是用8031单片机CPU及接口电路设计一个数字时钟,经过一个星期的调试,结果满足设计要求,验证无误。设计主要用到了多种芯片,程序也比较长比较麻烦,同时也遇到了不少困难,尤其是关于校时模块的设计实现。关于显示模块,在以前的实验中做过,所以问题很容易解决。通过本次设计,我系统的了解

11、了实时时钟的设计流程,尤其是硬、软件的设计方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的一般原理,也进一步掌握了8031定时器的使用和中断处理器程序的编程方法。开拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,达到了本次课程设计的目的3、对设计的建议希望下次有机会能在更充足的时间里完成,我想会完成的更好参 考 文 献 1、胡汉才编著,单片机原理及其接口技术清华大学出版社,2004。2贾金铃等编著,微型计算原理及应用重庆大学出版社,2006。3、吴清秀,周荷琴编著,微型计算机原理与接口技术中国科学技术大学出版社,2004。4、吴向军、罗源明等

12、编著汇编语言程序设计高等教育出版社,2001。附录1. 程序流程图开始初始化( 定时器、显示区、中断系统、计数单元等) 开中断调用显示子程序调用键盘扫描子程序 有键按下? N关中断 秒键? N秒加1处理 分键? N分加1处理 小时键? N小时加1处理图1 主程序流程图定时器中断处理重送初值保护现场 计数单元加1 到1秒? N秒加1 秒到60? N 秒清0、分加1 分到60? N分清0、小时加1 小时到24? N 小时清0 恢复现场 中断返回图2 定时器中断程序流程图2.程序清单 ORG 0000H LJMP START ORG 000BH LJMP TIME0START: MOV SP,#60

13、HAGAIN: CPL P1.0 MOV R0,#10LOOP1: MOV R1,#100LOOP2: MOV R2,#250DJNZ R2,$ DJNZ R1,LOOP2 DJNZ R0,LOOP1 MOV DPTR,#4003H ;8255初始化 MOV A,#10000001B MOVX DPTR,A MOV TMOD,#01H ;选择方式. MOV TH0,#3CH MOV TL0,#0B0H MOV 20H,#00H ;赋初值 MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H MOV 25H,#00H MOV 26H,#00H L

14、OOP: MOV IE,#82H ;开中断SETB TR0 ;启动T0计数 LCALL DISLCALL KEY CJNE A,#0FFH, DDDD ;若有键按下,DDDDSJMP LOOP ;无键按下,则转LOOPDDDD: MOV IE,#00H ;关中断 CJNE A,#03H,LOOP3 ;按下的键为秒键往下执行INC 25H MOV A,25H CJNE A,#10,LOOP MOV 25H,#0 INC 24H MOV A,24H CJNE A,#6,LOOP MOV 24H,#0 SJMP LOOPLOOP3: CJNE A,#02H,LOOP4 ;按下的键为分键往下执行INC

15、 23H MOV A,23H CJNE A,#10,LOOP MOV 23H,#0 INC 22H MOV A,22H CJNE A,#6,LOOP MOV 22H,#0 SJMP LOOPLOOP4: CJNE A,#01H,LOOP4B ;按下的键为小时键往下执行 INC 21H MOV A,21H CJNE A,#10,LOOP5 MOV 21H,#0 INC 20HLOOP4B: CJNE A,#00H,LOOP4C MOV 20H,#00H MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H MOV 25H,#00HLOOP5: M

16、OV A,20H SWAP A ORL A,21H CJNE A,#24H,LOOP MOV 20H,#0 MOV 21H,#0 SJMP LOOP-各键减1校时程序-LOOP00: LJMP LOOPLOOP4C: CJNE A,#07H,LOOP30 MOV A,25H DEC 25H CJNE A,#0,LOOP00 MOV 25H,#9 MOV A,24H DEC 24H CJNE A,#0,LOOP00 MOV 24H,#5 SJMP LOOP00LOOP30: CJNE A,#06H,LOOP40 MOV A,23H DEC 23H CJNE A,#0H,LOOP00 MOV 23

17、H,#9 MOV A,22H DEC 22H CJNE A,#0,LOOP00 MOV 22H,#5 SJMP LOOP00LOOP40: CJNE A,#05H,LOOP00 MOV A,21H CJNE A,#0,LOOP5A MOV A,20H CJNE A,#0,LOOP5B MOV 21H,#3 MOV 20H,#2 SJMP LOOP00LOOP5A: DEC 21H LJMP LOOP00LOOP5B: DEC 20H MOV 21H,#9 LJMP LOOP00;-显示子程序-DIS: MOV PSW,#08H MOV R0,#20H MOV R2,#0FEHLOOP10: M

18、OV A,R0 MOV DPTR,#ASCTAB MOVC A,A+DPTR ;查字形代码 MOV DPTR,#4001H ;字形代码送B段口MOVX DPTR,A MOV A,R2 MOV DPTR,#4000H ;字形代码送A位口 MOVX DPTR,A MOV R1,#250 DJNZ R1,$ MOV A,#0FFH ;关闭所有的显示位即位口置高电平 MOVX DPTR,A MOV A,R2 RL A MOV R2,A INC R0 CJNE R0,#26H,LOOP10 RETASCTAB: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H, 82H, 0F8H,8

19、0H, 90H DB 88H, 83H, 0C6H,0A1H,86H DB 8EH, 40H, 79H, 24H, 30H DB 19H, 12H, 02H, 78H, 00H DB 80H, 08H, 03H, 46H, 21H DB 06H, 0EH, 0BFH,0FFH;-扫描子程序-KEY: MOV DPTR,#4002H MOV A, #00001111B MOVX DPTR, A MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,NEXT SJMP LOOP8 NEXT: MOV R2,#11101111BLOOP6: MOV A,R2 MOV DPTR,#40

20、02H MOVX DPTR,A MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,NEXT1 LOOP7: MOV A,R2 RL A MOV R2,A JB ACC.0,LOOP6 LOOP8: MOV A,#0FFH RETNEXT1: MOV R6,A MOV R3,#100 LOOP9: MOV R4,#100 DJNZ R4,$ DJNZ R3,LOOP9 MOVX A,DPTR ANL A,#0FH XRL A,R6 JNZ LOOP7LOOP20: MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,LOOP20 MOV A,R6 ANL A

21、,#0FH MOV R6,A MOV A,R2 ANL A,#0F0H ORL A,R6 CALL KEY20 RET;-查键子程序-KEY20: PUSH ACC MOV R1,#00HKEY21: JNB ACC.4,KEY22 RR A INC R1 SJMP KEY21KEY22: MOV A,R1 MOV B,#4 MUL AB MOV R1,A POP ACCKEY23: JNB ACC.0,KEY24 RR A INC R1 SJMP KEY23KEY24: MOV DPTR,#KEYTAB MOV A,R1 MOVC A,A+DPTR RETKEYTAB: DB 0FH,0BH

22、,07H,03H DB 0EH,0AH,06H,02H DB 0DH,09H,05H,01H DB 0CH,08H,04H,00H;-定时器中断-TIME0: PUSH ACC PUSH PSW MOV TH0,#3CH MOV TL0,#0B0H INC 26H MOV A,26H CJNE A,#20,RETURN ;未到1秒,则转RETURN MOV 26H,#00H INC 25H ;到1秒,秒单元的个位加1 MOV A,25H CJNE A,#10,RETURN; MOV 25H,#00H INC 24H MOV A,24H CJNE A,#6,RETURN ;未到60秒,则转 MO

23、V 24H,#00H INC 23H ;分单元个位加1 MOV A,23H CJNE A,#10,RETURN MOV 23H,#00H INC 22H MOV A,22H CJNE A,#06H,RETURN ;若未到60分,则转 MOV 22H,00H INC 21H MOV A,21H CJNE A,#4H,CCCC MOV A,20H CJNE A,#2H,CCCC MOV 21H,#00H MOV 20H,#00H CCCC: CJNE A,#10,RETURN MOV 21H,#00H INC 20H MOV A,20HRETURN: POP PSW POP ACC RETI END 3.系统框图图三 系统的方框图4.整体电路图图四 总电路图

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

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