收藏 分销(赏)

单片机课程设计f--数字时钟.docx

上传人:二*** 文档编号:4532983 上传时间:2024-09-27 格式:DOCX 页数:15 大小:66.43KB 下载积分:5 金币
下载 相关 举报
单片机课程设计f--数字时钟.docx_第1页
第1页 / 共15页
本文档共15页,全文阅读请下载到手机保存,查看更方便
资源描述
单片机课程设计课题:数字时钟设计 系 另U: 电气与电子工程系 专 业: 电气工程及其自动化 姓 名: 王鹏 学 号: 121206202 指导教师: 葛广军 河南城建学院 2008年12月30日 L00P4C: CJNE A,#07H,LOOP30L00P30: L00P40: L00P5A: L00P5B: DIS: MOV A, 25HDEC 25H CJNE A, #0, LOOPOOMOV 25H,#9 MOV A, 24HDEC 24H CJNE A,#0,LOOPOOMOV 2411, #5 SJMP LOOPOOCJNE A,#06H, L00P40 MOV A, 23HDEC 23H CJNE A, #011, LOOPOOMOV 23H,#9 MOV A, 22HDEC 2211 CJNE A,#0,LOOPOOMOV 22H,#5 SJMP LOOPOOCJNE A,#05H, LOOPOO MOV A,21HCJNE A,#0,L00P5A MOV A, 20HCJNE A,#0, L00P5B MOV 21H, #3MOV 20H,#2 SJMP LOOPOODEC 21H LJMP LOOPOODEC 20H MOV 21H, #9LJMP LOOPOO 一一显示子程序-一-MOV PSW, #08H MOV RO,#20HMOV R2,#0FEH LOOP1O:MOV A,@ROMOV DPTR, #ASCTAB MOVC A, ©A+DPTRMOV DPTR, #4001H MOVX @DPTR, AMOV A, R2 MOV DPTR, #4000HMOVX @DPTR, A MOV Rl,#250DJNZ Rl, $ MOV A,#OFFHMOVX @DPTR, A MOV A, R2RL A MOV R2, AINC RO CJNE RO, #2611, LOOP 10RET ;查字形代码 ;字形代码送B段口 ;字形代码送A位口;关闭所有的显示位即位口置高电平 ASCTAB: DB OCOH, ,0F9H, ,0A4H, OBOH, 99H DB 92H, 82H, 0F8H, 80H, 9011 DB 88H, 83H, 0C6H, 0A1H, 86H DB 8EH, 40H, 79H, 24H, 30H DB 19H, 12H, 02H, 78H, 0011 DB 80H, 08H, 03H, 46H, 21H DB 06H, OEH, OBFH, OFFH 扫描子程序 KEY:MOV DPTR, #4002HMOV A, #0000111 IB MOVX @DPTR, AMOVX A,©DPTR ANL A,#OFHCJNE A, #OFH, NEXT SJMP L00P8 NEXT: MOV R2, #1110111 IB L00P6: MOV A, R2MOV DPTR, #400211 MOVX ©DPTR, A MOVX A,@DPTR ANL A,#OFH CJNE A, #OFH, NEXT1 LOOP7: MOV A, R2 RL A MOV R2,A JB ACC. 0, L00P6 L00P8: MOV A,#0FFH RET NEXT1: MOV R6,A MOV R3, #100 L00P9: MOV R4,#100 DJNZ R4, $ DJNZ R3,L00P9 MOVX A,@DPTR ANL A, #OFH XRL A, R6 JNZ L00P7 L00P20: MOVX A, @DPTR ANL A, #01'HCJNE A, #OFH,LOOP20 MOV A, R6 ANL A, #OFII MOV R6, A MOV A, R2 ANL A,#OFOH ORL A, R6 CALL KEY20 RET ;查键子程序一- KEY2O: PUSH ACCMOV R1,#OOH KEY21: JNB ACC. 4, KEY22RR A INC R1SJMP KEY21 KEY22: MOV A, R1MOV B, #4 MUL ABMOV R1,A POP ACC KEY23: JNB ACC.0,KEY24RR A INC R1SJMP KEY23 KEY24: MOV DPTR, #KEYTABMOV A, R1 MOVC A, ©A+DPTRRET KEYTAB: DB OFH,OBH, 07H, 03HDB OEH, OAH, 06H, 02H DB ODH, 09H, 0511,0111DB OCH, 08H, 04H, OOH ;定时器中断 T1ME0: PUSH ACCPUSH PSW MOV THO, #3CHMOV TLO, ttOBOH INC 26HMOV A, 26H ;未到1秒,则转RETURN ;到1秒,秒单元的个位加1 ;未到60秒,则转 ;分单元个位加1 CJNE A, #20, RETURNMOV 26H,#00H INC 25HMOV A, 25H CJNE A,#10,RETURN;MOV 25H,#00H INC 2411MOV A, 24H CJNE A, #6, RETURNMOV 24H, #0011 INC 23HMOV A, 2311 CJNE A,#10, RETURNMOV 23H,#00H INC 2211MOV A, 2211 ;若未到60分,则转 CJNE A,#06H, RETURNMOV 22H,OOH INC 21HMOV A,21H CJNE A, #4H, CCCCMOV A, 20H CJNE A, #2H, CCCCMOV 21H,#OOH MOV 20H,#OOHCCCC: CJNE A,#10, RETURN MOV 2111, #0011INC 20H MOV A, 20H RETURN: POP PSWPOP ACC RET IEND 3.系统框图 实时控制校时定时电路 单片机 显示电捋 系统的方框图 图三系统的方框图 4.整体电路图♦5V VccIT 」 FrIL ri_- 5 XTAL1RESET XTAL2V*« RST/VTO R 0 89C51Vcc PA7 I PAO而 VRRESET 8255 PB5 PB4 PB3 PB2 P81 P80 PC7 PCS PCS PC4 PC3 PC2 PCI PCO GND 王鹏=1214062班画于2008年12月29日图四总电路图 成绩评定・ 一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。 二、评分(按下表要求评定)课程设计成绩评定 班级姓名学号 成绩:分(折合等级) 指导教师签字 年 月曰一、设计目的 用8013单片机CPU及接口电路设计并实现显示时间的实时时钟。 二、设计要求在ZY15MCU12BD型综合单片机试验箱的硬件结构上编写软件完成设计。 (1) 程序的首地址应使目标机可以直接运行,即从0000H开始。在主程序的 开始部分必须设置一个合适的栈底。程序放置的地址须连续且靠前,不 要在中间留下大量的空间地址,以使目标机可以使用较少的硬件资源。 (2) 6位LED数码管从左到右分别显示时.分.秒(各占用2位),采用24小 时标准计时制。开始计时时为000000,到235959后变成000000. (3) 在XD1—2键盘上选定3个键分别作为小时.分.秒的调校键。每按一次 键,对应的显示值便加1。分.秒加到59后变为00;小时加到23后再按键 即变为00.再调校时均不向上一单位进位(例如分加到59后变为00;但小 时不发生改变). (4) 软件设计必须使用8031片内定时器,采用定时中断结构,不得使用软件 延时法。 (5) 上机调试程序。 (6) 写出设计报告。 三、总体设计 1、设计的总体原理框图见附录3 2、工作原理 电子时钟主要由8031片内定时器定时中断,并取一存储单元作为计数器使用, 每中断一次,在中断服务程序中使计数器加1、8031芯片、74LS373锁存器、8255A 接口芯片、74LS240驱动器、LED数码显示管和4*4键盘组成。主要用8031片内定时 器定时中断服务程序完成秒、分、时的运算即计时功能,TIME0的中断服务程序完 成调时、调分、调秒功能。8255A负责将内存里的时位、分位和秒位数值输出到数 码管。同时按键01键、02键、03键是分别对时、分、秒的加1校对;05键、06键、 07键时分别对时、分、秒的减1校对;00键是清零键。并且开机时时钟时从000000 开始计时的,到235959时在回到000000. 四、各部分电路分析此实时时钟的设计与实现,主要采用了6只LED数码管,8031内部二进制16位定时 器/计数器,可编程中断控制器8031等芯片,包括显示模块,运算模块和校时模块 三大功能模块。 1、显示模块: 用8255控制,用数码管的显示功能来设计。显示部分硬件用六只LED为显示管, 这些LED发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过在 这8只发光二极管的阳极加+5 V或0 V的电压使不同的二极管发光,形成不同的数 字。该模块主要是将运算模块和校时模块运算出来并存放在内存单元里的十六进制 表示的时位、分位和秒位数值转化为十进制,并通过8只数码管显示出来。该模块 实现的硬件是DVCC-8086JH实验箱中的LED单元,采用软件译码,即在程序中设 置一个段选码表。CPU直接往LED输出八段代码,省去了硬件译码器。A0〜A3作为8 段数据输出口,经74LS07驱动后到达各LED。只要做到每送一次段选码时也送一次 位扫描码,并且每送一次位扫描码后,位码中的0右移一位作为下一次的位扫描码, 即可实现由左向右使6只LED依次出现数字显示。 2、运算模块: 该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已 经开辟的内存单元里,以便显示模块即时地显示出来。该模块可以细分为秒定时模 块和运算模块。秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一 定的时间,所以中断信号最好通过硬件来实现。木实验中用8031定时器/计数器, 但因为8031供的信号的周期是毫秒级的,因此必须通过软件的方法在运算模块中设 置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。中断 信号是8031T作方式为方式1,产生一个50ms的脉冲信号。运算模块负责时、分、 秒的计算,该模块主要通过8031的IR1号中断来实现,但由于每50ms 一次中断请求, 所以在中断服务程序必须利用已申请内存单元26H来统计中断请求的次数,只有当 26H的值为20时,才能让秒单元内的数值加1。在中断服务程序里,必须对秒、分和 时的单元内的数值进行判断,当秒加到60时,分必须加1、秒清零;当分加到60时, 时加1、分清零。当时加到24时,直接清零。然后转到调用处。 3、校时模块: 该模块主要功能是修改时、分、秒内存单元的数值。每按一次键,对应的显示值 便加1。分、秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向上 一单位进位(例如分加到59后变为00;但小时不发生改变)。注意:在主程序中对 时间进行调校前应关闭中断,以防在调校过程中定时中断服务程序也对时间进行修 改而造成混淆。 4. 整体功能: 在6块LED数码管上能实现数字时钟的时、分、秒显示,并能对时、分、秒进行加1 校对、减1校对和清零。本实验中01键、02键、03键是分别对时、分、秒的加1校对; 05键、06键、07键时分别对时、分、秒的减1校对;00键是清零键。并且开机时时 钟时从000000开始计时的,到235959时在回到000000. 五、设计的整体电路图 见附录4。 六、设计总结 1、设计过程中遇到的问题及解决方法 将编写好的源程序输入电脑,编译后出现很多错误,这些错误有许多时平时的实 验遇到过的,例如:输入的分号格式不正确,零和字母。弄混淆了,L00P5出现了几 次,CJNE写成了CJNZ等等,幸好这些错误在平时的实验中遇到了,所以改错误很容 易,但同时也说明了,平时的错误现在还在换,证明错误我还没有完全的改正,这 点我以后一定要注意了。争起错误换了两次就不能在换了。除了常见的错误外,还 有几条错误时我从来没有遇到过的,如:LJVP跳转指令跳不回指定的位置,是因为 跳转的长度大于LJMP跳转的长度,最后只好设置跳转两次后才能跳到指定的位置。 经过多次的修改和向别人请教,错误都拍除了,编译通过了,但功能没有达到 设计的要求,第一、小时加1键加到23时还可以向上加而不是回到00.第二、时钟走 到235959时不能回到000000的状态。这两个错误都出现在小时的位置,说明小时键 很特殊,的确,小时键当小于23时个位遇到10要进位,当大于23时个位遇到4时要 进位,小时的十位也是一样,要判断两次,才能实现完整的功能。最后,经过几天 在机房的努力,终于实现了时钟的全部要求。 在前期的程序编写和几天的上机调试,使我又获得了很多新的知识,因为前期 编写程序时查了很多资料学到了很多知识,这几天的调试更时获得很新的知识,因 为程序中又很多的错误,为了修改错误必须看书或向别人请教,在这个过程中无意 识的获得了很多知识。同时也使我对单片机更感兴趣了,这点我觉得很重要,因为 兴趣使最好的老师,相信在以后的单片机相关的学习中会表现的更好。 2、设计体会 本次课程设计是用8031单片机CPU及接口电路设计一个数字时钟,经过一个星期 的调试,结果满足设计要求,验证无误。设计主要用到了多种芯片,程序也比较长 比较麻烦,同时也遇到了不少困难,尤其是关于校时模块的设计实现。关于显示模 块,在以前的实验中做过,所以问题很容易解决。 通过本次设计,我系统的了解了实时时钟的设计流程,尤其是硬、软件的设计 方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的 一般原理,也进一步掌握了 8031定时器的使用和中断处理器程序的编程方法。开 拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能 力,达到了本次课程设计的目的 3、对设计的建议希望下次有机会能在更充足的时间里完成,我想会完成的更好 参考文献 1、胡汉才编著,《单片机原理及其接口技术》清华大学出版社,2004。 2贾金铃等编著,《微型计算原理及应用》重庆大学出版社,2006o 3、吴清秀,周荷琴编著,《微型计算机原理与接口技术》中国科学技术 大学出版社,2004o 4、吴向军、罗源明等编著《汇编语言程序设计》高等教育出版社,2001 o附录1.程序流程图 开始 I初始化(定时器、显示区、 中断系统、计数单元等) I 开中断 I调用显示子程序 I调用键盘扫描子程序 I有键按 > I关中断 小时键?工 I小时加.1处理 图1主程序流程图 定时器中断处理重送初值 I保护现场 I计数单元加1 I至 lj 1N_ I秒加1 I秒到60?N I 秒清0、分加1I 分到60?NI 分清0、小时加1 I 小时到24?NI 小时清0I v 恢复现场I 中断返回图2定时器中断程序流程图 2.程序清单 ORG 0000H LJMP START ORG OOOBH LJMP TIMEO START: MOV SP,#60H AGAIN: CPL P1.0 MOV RO,#10 L00P1: MOV Rl,#100 L00P2: MOV R2,#250 DJNZ R2, $ DJNZ R1,LOOP2 DJNZ RO,L00P1 MOV DPTR, #400311 MOV A,#10000001B MOVX @DPTR, A ;8255初始化 MOV TMOD, #01H MOV THO, #3CH MOV TLO, #0B01I ;选择方式. MOV 20H, #00H MOV 21H, #00H MOV 22H, #0011 MOV 2311, #0011 MOV 24H, #00H MOV 25H,#00H MOV 2611, #0011 ;赋初值 LOOP: MOV IE, #82H ;开中断 SETB TRO ;启动TO计数 LCALL DIS LCALL KEY CJNE A,#OFFH, DDDD ;若有键按下,DDDD SJMP LOOP ;无键按下,则转LOOP DDDD: MOV IE, #00H ;关中断 CJNE A, #03H, L00P3 INC 2511 ;按下的键为秒键往下执行 MOV A, 25H CJNE A, #10, LOOPMOV 25H, #0 INC 24HMOV A, 24H CJNE A, #6, LOOP MOV 24H, #0SJMP L00P3: SJMP L00P3: SJMP L00P4: L00P4B: L00P5: LOOPOO: LOOPCJNE A, #02H, L00P4;按下的键为分键往下执行 INC 23HMOV A, 23H CJNE A, #10, LOOPMOV 23H,#0 INC 22HMOV A, 2211 CJNE A, #6, LOOPMOV 22H,#0 LOOPCJNE A, #0111, L00P4B;按下的键为小时键往下执行 INC 21HMOV A,21H CJNE A, #10, L00P5MOV 21H,#0 INC 2011CJNE A, #0011, L00P4C MOV 20H,#00HMOV 2111, #0011 MOV 22H, #00HMOV 23H,#00H MOV 2411, #0011MOV 25H, #00H MOV A, 20HSWAP A ORL A,21HCJNE A,#24H, LOOP MOV 20H, #0MOV 21H,no SJMP LOOP一-各键减1校时程序 LJMP LOOP
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服