收藏 分销(赏)

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

上传人:二*** 文档编号:4532983 上传时间:2024-09-27 格式:DOCX 页数:15 大小:66.43KB
下载 相关 举报
单片机课程设计f--数字时钟.docx_第1页
第1页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、单片机课程设计课题:数字时钟设计系另U:电气与电子工程系专业:电气工程及其自动化姓名:王鹏学号:121206202指导教师:葛广军河南城建学院2008年12月30日L00P4C: CJNE A,#07H,LOOP30L00P30:L00P40:L00P5A:L00P5B:DIS:MOV A, 25HDEC 25HCJNE A, #0, LOOPOOMOV 25H,#9MOV A, 24HDEC 24HCJNE A,#0,LOOPOOMOV 2411, #5SJMP LOOPOOCJNE A,#06H, L00P40MOV A, 23HDEC 23HCJNE A, #011, LOOPOOMOV

2、 23H,#9MOV A, 22HDEC 2211CJNE A,#0,LOOPOOMOV 22H,#5SJMP LOOPOOCJNE A,#05H, LOOPOOMOV A,21HCJNE A,#0,L00P5AMOV A, 20HCJNE A,#0, L00P5BMOV 21H, #3MOV 20H,#2SJMP LOOPOODEC 21HLJMP LOOPOODEC 20HMOV 21H, #9LJMP LOOPOO一一显示子程序-一-MOV PSW, #08HMOV RO,#20HMOV R2,#0FEHLOOP1O:MOV A,ROMOV DPTR, #ASCTABMOVC A, A+

3、DPTRMOV DPTR, #4001HMOVX DPTR, AMOV A, R2MOV DPTR, #4000HMOVX DPTR, AMOV Rl,#250DJNZ Rl, $MOV A,#OFFHMOVX DPTR, AMOV A, R2RL AMOV R2, AINC ROCJNE RO, #2611, LOOP 10RET;查字形代码;字形代码送B段口;字形代码送A位口;关闭所有的显示位即位口置高电平ASCTAB: DBOCOH,0F9H,0A4H, OBOH,99HDB92H,82H,0F8H, 80H,9011DB88H,83H,0C6H, 0A1H,86HDB8EH,40H,7

4、9H, 24H,30HDB19H,12H,02H, 78H,0011DB80H,08H,03H, 46H,21HDB06H,OEH,OBFH, OFFH扫描子程序KEY:MOV DPTR, #4002HMOV A, #0000111 IBMOVX DPTR, AMOVX A,DPTRANL A,#OFHCJNE A, #OFH, NEXTSJMP L00P8NEXT: MOV R2, #1110111 IBL00P6: MOV A, R2MOV DPTR, #400211MOVX DPTR, AMOVX A,DPTRANL A,#OFHCJNE A, #OFH, NEXT1LOOP7:MOV

5、A, R2RL AMOV R2,AJB ACC. 0, L00P6L00P8:MOV A,#0FFHRETNEXT1:MOV R6,AMOV R3, #100L00P9:MOV R4,#100DJNZ R4, $DJNZ R3,L00P9MOVX A,DPTRANL A, #OFHXRL A, R6JNZ L00P7L00P20:MOVX A, DPTRANL A, #01HCJNE A, #OFH,LOOP20 MOV A, R6 ANL A, #OFII MOV R6, A MOV A, R2 ANL A,#OFOH ORL A, R6 CALL KEY20 RET;查键子程序一-KEY2

6、O: PUSH ACCMOV R1,#OOHKEY21: JNB ACC. 4, KEY22RR AINC R1SJMP KEY21KEY22: MOV A, R1MOV B, #4MUL ABMOV R1,APOP ACCKEY23: JNB ACC.0,KEY24RR AINC R1SJMP KEY23KEY24: MOV DPTR, #KEYTABMOV A, R1MOVC A, A+DPTRRETKEYTAB: DB OFH,OBH, 07H, 03HDB OEH, OAH, 06H, 02HDB ODH, 09H, 0511,0111DB OCH, 08H, 04H, OOH;定时器

7、中断T1ME0: PUSH ACCPUSH PSWMOV THO, #3CHMOV TLO, ttOBOHINC 26HMOV A, 26H;未到1秒,则转RETURN;到1秒,秒单元的个位加1;未到60秒,则转;分单元个位加1CJNE A, #20, RETURNMOV 26H,#00HINC 25HMOV A, 25HCJNE A,#10,RETURN;MOV 25H,#00HINC 2411MOV A, 24HCJNE A, #6, RETURNMOV 24H, #0011INC 23HMOV A, 2311CJNE A,#10, RETURNMOV 23H,#00HINC 2211MO

8、V A, 2211;若未到60分,则转CJNE A,#06H, RETURNMOV 22H,OOHINC 21HMOV A,21HCJNE A, #4H, CCCCMOV A, 20HCJNE A, #2H, CCCCMOV 21H,#OOHMOV 20H,#OOHCCCC: CJNE A,#10, RETURNMOV 2111, #0011INC 20HMOV A, 20HRETURN: POP PSWPOP ACCRET IEND3.系统框图实时控制校时定时电路单片机显示电捋系统的方框图图三系统的方框图4.整体电路图5VVccIT FrIL ri_- 5XTAL1RESETXTAL2V*R

9、ST/VTO R 089C51VccPA7IPAO而VRRESET8255PB5PB4PB3PB2P81P80PC7PCSPCSPC4PC3PC2PCIPCO GND王鹏=1214062班画于2008年12月29日图四总电路图成绩评定一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。二、评分(按下表要求评定)课程设计成绩评定班级姓名学号成绩:分(折合等级)指导教师签字 年 月曰一、设计目的用8013单片机CPU及接口电路设计并实现显示时间的实时时钟。二、设计要求在ZY15MCU12BD型综合单片机试验箱的硬件结构上编写软件完成设计。(1) 程序的首地址应使目标机可以直接运

10、行,即从0000H开始。在主程序的 开始部分必须设置一个合适的栈底。程序放置的地址须连续且靠前,不 要在中间留下大量的空间地址,以使目标机可以使用较少的硬件资源。(2) 6位LED数码管从左到右分别显示时.分.秒(各占用2位),采用24小 时标准计时制。开始计时时为000000,到235959后变成000000.(3) 在XD12键盘上选定3个键分别作为小时.分.秒的调校键。每按一次 键,对应的显示值便加1。分.秒加到59后变为00;小时加到23后再按键 即变为00.再调校时均不向上一单位进位(例如分加到59后变为00;但小 时不发生改变).(4) 软件设计必须使用8031片内定时器,采用定时

11、中断结构,不得使用软件 延时法。(5) 上机调试程序。(6) 写出设计报告。三、总体设计1、设计的总体原理框图见附录32、工作原理电子时钟主要由8031片内定时器定时中断,并取一存储单元作为计数器使用, 每中断一次,在中断服务程序中使计数器加1、8031芯片、74LS373锁存器、8255A 接口芯片、74LS240驱动器、LED数码显示管和4*4键盘组成。主要用8031片内定时 器定时中断服务程序完成秒、分、时的运算即计时功能,TIME0的中断服务程序完 成调时、调分、调秒功能。8255A负责将内存里的时位、分位和秒位数值输出到数 码管。同时按键01键、02键、03键是分别对时、分、秒的加1

12、校对;05键、06键、 07键时分别对时、分、秒的减1校对;00键是清零键。并且开机时时钟时从000000 开始计时的,到235959时在回到000000.四、各部分电路分析此实时时钟的设计与实现,主要采用了6只LED数码管,8031内部二进制16位定时 器/计数器,可编程中断控制器8031等芯片,包括显示模块,运算模块和校时模块 三大功能模块。1、显示模块:用8255控制,用数码管的显示功能来设计。显示部分硬件用六只LED为显示管, 这些LED发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过在 这8只发光二极管的阳极加+5 V或0 V的电压使不同的二极管发光,形成不同的数 字。

13、该模块主要是将运算模块和校时模块运算出来并存放在内存单元里的十六进制 表示的时位、分位和秒位数值转化为十进制,并通过8只数码管显示出来。该模块 实现的硬件是DVCC-8086JH实验箱中的LED单元,采用软件译码,即在程序中设 置一个段选码表。CPU直接往LED输出八段代码,省去了硬件译码器。A0A3作为8 段数据输出口,经74LS07驱动后到达各LED。只要做到每送一次段选码时也送一次 位扫描码,并且每送一次位扫描码后,位码中的0右移一位作为下一次的位扫描码, 即可实现由左向右使6只LED依次出现数字显示。2、运算模块:该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已 经

14、开辟的内存单元里,以便显示模块即时地显示出来。该模块可以细分为秒定时模 块和运算模块。秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一 定的时间,所以中断信号最好通过硬件来实现。木实验中用8031定时器/计数器, 但因为8031供的信号的周期是毫秒级的,因此必须通过软件的方法在运算模块中设 置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。中断 信号是8031T作方式为方式1,产生一个50ms的脉冲信号。运算模块负责时、分、 秒的计算,该模块主要通过8031的IR1号中断来实现,但由于每50ms 一次中断请求, 所以在中断服务程序必须利用已申请内存单元26H来统计

15、中断请求的次数,只有当 26H的值为20时,才能让秒单元内的数值加1。在中断服务程序里,必须对秒、分和 时的单元内的数值进行判断,当秒加到60时,分必须加1、秒清零;当分加到60时, 时加1、分清零。当时加到24时,直接清零。然后转到调用处。3、校时模块:该模块主要功能是修改时、分、秒内存单元的数值。每按一次键,对应的显示值 便加1。分、秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向上 一单位进位(例如分加到59后变为00;但小时不发生改变)。注意:在主程序中对 时间进行调校前应关闭中断,以防在调校过程中定时中断服务程序也对时间进行修 改而造成混淆。4. 整体功能:在6块

16、LED数码管上能实现数字时钟的时、分、秒显示,并能对时、分、秒进行加1 校对、减1校对和清零。本实验中01键、02键、03键是分别对时、分、秒的加1校对; 05键、06键、07键时分别对时、分、秒的减1校对;00键是清零键。并且开机时时 钟时从000000开始计时的,到235959时在回到000000.五、设计的整体电路图见附录4。六、设计总结1、设计过程中遇到的问题及解决方法将编写好的源程序输入电脑,编译后出现很多错误,这些错误有许多时平时的实 验遇到过的,例如:输入的分号格式不正确,零和字母。弄混淆了,L00P5出现了几 次,CJNE写成了CJNZ等等,幸好这些错误在平时的实验中遇到了,所

17、以改错误很容 易,但同时也说明了,平时的错误现在还在换,证明错误我还没有完全的改正,这 点我以后一定要注意了。争起错误换了两次就不能在换了。除了常见的错误外,还 有几条错误时我从来没有遇到过的,如:LJVP跳转指令跳不回指定的位置,是因为 跳转的长度大于LJMP跳转的长度,最后只好设置跳转两次后才能跳到指定的位置。经过多次的修改和向别人请教,错误都拍除了,编译通过了,但功能没有达到 设计的要求,第一、小时加1键加到23时还可以向上加而不是回到00.第二、时钟走 到235959时不能回到000000的状态。这两个错误都出现在小时的位置,说明小时键 很特殊,的确,小时键当小于23时个位遇到10要进

18、位,当大于23时个位遇到4时要 进位,小时的十位也是一样,要判断两次,才能实现完整的功能。最后,经过几天 在机房的努力,终于实现了时钟的全部要求。在前期的程序编写和几天的上机调试,使我又获得了很多新的知识,因为前期 编写程序时查了很多资料学到了很多知识,这几天的调试更时获得很新的知识,因 为程序中又很多的错误,为了修改错误必须看书或向别人请教,在这个过程中无意 识的获得了很多知识。同时也使我对单片机更感兴趣了,这点我觉得很重要,因为 兴趣使最好的老师,相信在以后的单片机相关的学习中会表现的更好。2、设计体会本次课程设计是用8031单片机CPU及接口电路设计一个数字时钟,经过一个星期 的调试,结

19、果满足设计要求,验证无误。设计主要用到了多种芯片,程序也比较长 比较麻烦,同时也遇到了不少困难,尤其是关于校时模块的设计实现。关于显示模 块,在以前的实验中做过,所以问题很容易解决。通过本次设计,我系统的了解了实时时钟的设计流程,尤其是硬、软件的设计 方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的 一般原理,也进一步掌握了 8031定时器的使用和中断处理器程序的编程方法。开 拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能 力,达到了本次课程设计的目的3、对设计的建议希望下次有机会能在更充足的时间里完成,我想会完成的更好参考文献1、胡汉才编著,

20、单片机原理及其接口技术清华大学出版社,2004。2贾金铃等编著,微型计算原理及应用重庆大学出版社,2006o3、吴清秀,周荷琴编著,微型计算机原理与接口技术中国科学技术大学出版社,2004o4、吴向军、罗源明等编著汇编语言程序设计高等教育出版社,2001 o附录1.程序流程图开始I初始化(定时器、显示区、中断系统、计数单元等)I 开中断I调用显示子程序I调用键盘扫描子程序I有键按 I关中断小时键?工I小时加.1处理图1主程序流程图定时器中断处理重送初值I保护现场I计数单元加1I至 lj 1N_I秒加1I秒到60?NI秒清0、分加1I分到60?NI分清0、小时加1 I小时到24?NI小时清0I

21、v恢复现场I中断返回图2定时器中断程序流程图2.程序清单ORG 0000HLJMP STARTORG OOOBHLJMP TIMEOSTART: MOV SP,#60HAGAIN: CPL P1.0MOV RO,#10L00P1:MOV Rl,#100L00P2:MOV R2,#250DJNZR2, $DJNZR1,LOOP2DJNZRO,L00P1MOV DPTR, #400311MOV A,#10000001BMOVX DPTR, A;8255初始化MOV TMOD, #01HMOV THO, #3CHMOV TLO, #0B01I;选择方式.MOV 20H, #00HMOV 21H, #

22、00HMOV 22H, #0011MOV 2311, #0011MOV 24H, #00HMOV 25H,#00HMOV 2611, #0011;赋初值LOOP:MOV IE, #82H;开中断SETBTRO;启动TO计数LCALLDISLCALLKEYCJNE A,#OFFH, DDDD;若有键按下,DDDDSJMPLOOP;无键按下,则转LOOPDDDD:MOV IE, #00H;关中断CJNE A, #03H, L00P3INC 2511;按下的键为秒键往下执行MOV A, 25HCJNE A, #10, LOOPMOV 25H, #0INC 24HMOV A, 24HCJNE A, #

23、6, LOOPMOV 24H, #0SJMPL00P3:SJMPL00P3:SJMPL00P4:L00P4B:L00P5:LOOPOO:LOOPCJNE A, #02H, L00P4;按下的键为分键往下执行INC 23HMOV A, 23HCJNE A, #10, LOOPMOV 23H,#0INC 22HMOV A, 2211CJNE A, #6, LOOPMOV 22H,#0LOOPCJNE A, #0111, L00P4B;按下的键为小时键往下执行INC 21HMOV A,21HCJNE A, #10, L00P5MOV 21H,#0INC 2011CJNE A, #0011, L00P4CMOV 20H,#00HMOV 2111, #0011MOV 22H, #00HMOV 23H,#00HMOV 2411, #0011MOV 25H, #00HMOV A, 20HSWAP AORL A,21HCJNE A,#24H, LOOPMOV 20H, #0MOV 21H,noSJMP LOOP一-各键减1校时程序LJMP LOOP

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

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

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服