1、 单片机课程设计题 目: 智能电脑钟的设计 专 业: 07自动化(2)班 学 号: 200710320234 姓 名: 杨琳琳 完成日期: 2010-6-27 指导教师: 张老师 景德镇陶瓷学院单片机原理及应用课程设计任务书班级: 07自动化(2)班 姓名:杨琳琳 指导老师:张 玲 2010年06月21 日设计题目:智能电脑钟的设计设计任务要求以单片机为主控制器设计一个功能强的电脑钟,能实现如下功能:1 能将用户提供的作息时间表存入存储器,按作息时间的要求进行定时打铃。2 能实现计时的清零、启动和停止,显示出累计时间。3 设置功能选择开关和相应的操作按键。4 具有定时功能。设计要求1 调研、查
2、找并收集资料。2 总体设计。3 硬件设计::用A4纸画出硬件的接线图。4 软件设计:画流程图及编写程序。5 撰写设计说明书(字数约2000字左右)。6 参考资料目录参考资料单片机原理及接口技术 胡汉才 清华大学出版社单片机中级教程 张俊谟 北航出版社单片机原理及接口技术 李全利 高等教育出版社教研室主任签字: 年 月 日目录1总体设计42 单元电路设计52.1 主控制电路设计52.2 显示电路设计62.3 按键电路设计63硬件电路设计及原理说明73.1硬件电路介绍73.2电路工作原理说明74软件设计84.1智能电脑钟的软件设计流程图84.2 智能电脑钟的汇编语言源程序85元器件清单156设计小
3、结167总电路图178参考文献181总体设计时钟是人们生产和生活的基本设备。构成时钟电路的方法很多,根据任务书的要求,设计出的智能电脑钟需满足下列条件: 能将用户提供的作息时间表存入存储器,按作息时间的要求进行定时打铃; 能实现计时的清零、启动和停止,显示出累计时间; 设置功能选择开关和相应的操作按键。 具有定时功能; 要求以单片机为主控制器。所以设计出的智能电脑钟必须要满足上述条件。根据上述条件,选用8031作主控制器,扩展一片程序存储器,如存储容量为8K8的EPROM2764,扩展6位LED显示接口,以用于时钟显示,设置两路输出信号,用于推动外部定时控制设备或音响报时电路。扩展一个包括0一
4、9的十个数字键和若干功能键的键盘。这些功能键的作用是:作时钟时,设置报时、校时;作定时时,设置定时时间的启动;作跑表时,设置清零、启动和停止。输出设备分为两个方面,一是由6位数码管组成的时间显示器,可利用8031的串行口,经移位寄存器74LSl64送出显示器的段控制信号,其位控制信号分别由P10P15输出。报时信号由P35输出,定时信号由P36输出,这个输出信号可控制各种外部设备。时钟信号的产生可利用8031片内的定时器。产生定时中断,进行时、分、秒的计时,并将信号送到显示电路。根据上述分析可知,智能电脑钟的总体电路应主要包括主控制电路(以8031为控制芯片),显示电路和按键电路。总体连接框图
5、如下图1所示。图1 智能电脑钟总体连接框图2 单元电路设计根据上述分析可知,智能电脑钟总体电路主要包括主控制电路(以8031为控制芯片),显示电路和按键电路。2.1 主控制电路设计如下图2所示,选用单片机8031作主控制器,并用存储容量为8K8的EPROM2764扩展一片程序存储器。选用地址锁存器74LS373连接8031和2764,74LS373 是一种带三态门的8D锁存器,连接方式如下图2所示。晶振电路由两1.5P电容C1,C2和11.000MHZ晶体振荡器连接在XTAL1和XTAL2上。RESET管脚接复位信号如下图2所示。报时信号由P35输出,定时信号由P36输出,输出信号通过固态继电
6、器去控制被控对象。 图2 智能电脑钟主控制电路图2.2 显示电路设计LED数码管能够显示数字和部分字符,价格便宜,硬件电路,软件编程均非常简单,而且使用动态扫描技术可节省大量硬件成本。所以显示电路选用LED数码管作为显示器件 。由于系统要求显示小时,分钟和秒,所以选用6位LED数码管即可。并用反相器7406与按键电路连接,用反相器7404与单片机8031的PI口连接。具体连接方式如下图3所示。图3 智能电脑钟LED显示电路2.3 按键电路设计按键电路用移位寄存器74LS164与键盘电路连接,键盘包括09十个数字键和REG、NEXT两个命令键。数字键0、6、1、7和命令键NEST设置为双功能键,
7、分别为跑表启动、停止、报时、定时和跑表清零,用以选择电脑钟的不同功能。74LS164与8031P2口连接。按键电路具体连接方式如下图4所示。图4 智能电脑钟按键电路3硬件电路设计及原理说明3.1硬件电路介绍智能电脑钟总体连接图如图6所示。该电脑钟主要由8031单片机,地址锁存器74LS373,EPROM2746组成。而且扩展了6位LED显示器和12键盘。显示器显示电脑钟的走时时间,从左至右时、分、秒各占两位;用于跑表时,显示器从左至右为分、十秒、秒、百毫秒、十毫秒、1毫秒。键盘包括09十个数字键和REG、NEXT两个命令键。数字键0、6、1、7和命令键NEST设置为双功能键,分别为跑表启动、停
8、止、报时、定时和跑表清零,用以选择电脑钟的不同功能。要显示的时间数据从8031的串行口送出,经移位寄存器74LS164送至LED显示器进行断选。从8031的P1.01.5送出位选信号。开关S1和S2用于选择报时时间表。输出信号通过固态继电器去控制被控对象。3.2电路工作原理说明报时和定时控制的原理是利用8031片内的定时器0,定时发出中断,进行秒、分、时计时,并把计时时间送至显示器。为能按照时间表发出相应的控制信号,采用了查表的方法。电脑钟在每次分计时和小时计时之后去查时间表,并与电脑钟的走时进行比较,查到相等的值时就发出相应的控制信号。报时与定时控制的区别在于,定时控制是定点开、停,交替发出
9、开、停控制信号。而报时控制在于到点发出报时控制信号,经较短时间(比如10秒),就需要关掉报时信号。为此目的,电脑在秒计时之后,把秒时单元的数值与给定发报时信号时间进行比较,相等时就发出关报时的控制信号。跑表功能的原理是利用8031片内的定时器1,定时1毫秒发出中断,进行毫秒、秒和分秒时。电脑钟测试IO口上相应位的输入信号,决定计时的启、停。4软件设计4.1智能电脑钟的软件设计流程图设置定时器工作方式设置定时器初值开中断向显示器缓冲区放数显示子程序(01.秒单元)+101.秒单元0,.秒单元+1.秒单元0,.分单元+1向显示缓冲区取数测试初值合法性分单元0,.时单元+1时单元0(01.秒单元)=
10、10秒单元=60分单元=60时单元=24中断返回图5 智能电脑钟软件设计流程图4.2 智能电脑钟的汇编语言源程序ORG 0000HLJMP MAINORG 0003HSETB PSE.5RET1ORG 000BHLJMP CLOCKORG 0013HSETB 7FHRET1ORG 0030HMAIN:MOV SP,#60HMOV TMOD,#01HMOV IE,#87HSETB PT0MOV TL0,#0B7HMOV TH0,#3CHMOV 20H,#00HMOV 21H,#00HMOV 22H,#00HMOV 23H,#00HMOV 50H,#06HMOV 51H,#28HMOV 52H,#
11、00HCLR PSW.5CLR 7FHSETB TR0SETB IT0SETB IT1CLR P3.0SS:LCALL CUTIN0LCALL SSCANJNB PSW.5,LKLCALL KEY0LK:JNB 7FH,SSLCALL KEY1SJMP SSCUTIN0:PUSH PSWPUSH ACCMOV 25H,R0MOV R0,#79HMOV A,22HACALL BCDMOV A,21HACALL BCDMOV A,20HACALL BCDMOV R0,25HPOP ACCPOP PSWRETCUTIN1:PUSH PSWPUSH ACCMOV 25H,R0MOV R0,#79HMO
12、V A,42HACALL BCDMOV A,41HACALL BCDMOV A,40HACALL BCDMOV R0,25HPOP ACCPOP PSWRETBCD:MOV B,#0AHDIV ABMOV R0,BINC R0MOV R0,AINC R0RETCLOCK:JNB PSW.5,ZCLJMP FHZC:MOV TL0,#OB7HMOV TH0,#3CHPUSH PSW PUSH ACCINC 23HMOV A,23HCJNE A,#0AH,RET0MOV 23H,#00HINC 22HMOV A,22HCJNE A,#3CH,RET0MOV 22H,#00HSETB P1.0CLR
13、 P3.0INC 21HMOV A,21HCJNE A,#3CH,RET0MOV 21H,#00HCLR P1.0INC 20HMOV A,20HCJNE A,#18H,RET0MOV 20H,#00HAJMP RET0RET0:MOV A,21HCJNE A,51H,B0MOV A,20HCJNE A,50H,B0SETB P3.0B0:POP ACCPOP PSWFH:RET1SSCAN:MOV R6,#05HSS2:MOV 30H,#20HMOV 31H,#7EHMOV R7,#06HSS1:MOV R1,#21HMOV A,30HMOVX R1,AMOV R0,31HMOV A,R0M
14、OV DPTR,#SCMOVC A,A+DPTRMOV R1,#22HMOVX R1,ALCALL D1MOV A,30HRR AMOV 30H,ADEC 31HDJNZ R7,SS1DJNZ R6,SS2 RETSC:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFHKEY:MOV 42H,#00HA0:MOV P1,#0FFHMOV A,P1ANL A,38HMOV R3,ALCALL DELAYMOV P1,#0FFHMOV A,P1ANL A,#38HCLR CSUBB A,R3JNZ A0MOV A,R3CJNE A,#38H,A
15、00SJMP A0A00:CJNE A,#30H,T0K2INC 41HMOV R2,41HCJNE R2,#3CH,A1MOV 41H,#00HA1:MOV P1,#0FFHMOV A,P1ANL A,#08HJNZ A0LCALL DELAYSJMP A1T0K2:CJNE A,#28H,T0K3DEC 41HMOV R2,41HCJNE R2,#0FFH,A2MOV 41H,#3BHA2: MOV P1,#0FFHMOV A,P1ANL A,#10HJNZ A0LCALL DELAYSJMP A2TOK3: CJNE A,#18H,A0AA: MOV P1,#0FFHMOV A,P1AN
16、L A,#20HJNZ A3LCALL DELAYSJMP AAA3: MOV P1,#0FFHMOV A,P1ANL A,#38HMOV R3,ALCALL DELAYMOV P1,#0FFHMOV A,P1ANL A,#38HCLR CSUBB A,R3JNZ A3MOV A,R3CJNE A,#38H,A33SJMP A3A33: CJNE A,#30H,TO2INC 40HMOV R2,40H CJNE R2,#18H,A4 MOV 40H,#00HA4: MOV P1,#0FFHMOV A,P1ANL A,#08HJNZ A3LCALL DELAYSJMP A4TO2: CJNE A
17、,#28H,TO3DEC 40HMOV R2,40HCJNE R2,#0FFH,A5MOV 40H,#17HA5: MOV P1,#0FFHMOV A,P1ANL A,#10HJNZ A3LCALL DELAYSJMP A5TO3: CJNE A,#18H,A3RETKEY0: MOV 41H,21HMOV 40H,20HCLR TR0ACALL KEYCLR PSW.5MOV 22H,42HMOV 21H,41HMOV 20H,40HMOV TL0,#0B7HMOV TH0,#3CHSETB TR0RETKEY1: MOV 41H,51HMOV 40H,50HLCALL KEYCLR 7FH
18、MOV 51H,41HMOV 50H,40HRETD1: MOV R4,#02HD11: MOV R5,#0FFHDJNZ R5,$DJNZ R4,D11RETDELAY: PUSH ACCLCALL CUTIN1LCALL SSCANPOP ACCRET程序中的一些存储单元的定义如下: :时、分、秒单元; :校时或闹钟校时期间的时、分、秒单元; :起闹时间的时、分单元; :显示缓冲区; 用户标志位:校时标志,当时,表示校时; 位:闹钟校时标志,当时,表示闹钟校时;5元器件清单名称数量8031174LS373(地址锁存器)174LS164(移位寄存器)1276417406974046RES(1
19、0欧姆)136位LED显示器112位键盘1CAP(1.5P)2SW-PB(开关)1SW-SPST(开光)2CRYSTAL.LIB(11.000MHz晶体振荡器)1ELECTR01(10uf)16设计小结短短的一个星期就快过去了,终于完成单片机课程设计了。从开始的一头雾水到现在的独立完成设计,感觉真的过了很久。在课程设计的过程中,开始一看到题目“智能电脑钟”感觉无从下手,便在图书馆,网上查有关智能电脑钟的各种资料。发现自己对所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,对以前所学过的知识不仅温习了一遍,更加深了理解。设
20、计智能电脑钟所用的8031、74LS373、74LS164、2746在单片机课上都学过,不过到了真的要把它们连接在一起用的时候却有好多东西不会,才发现理论与实践相差真的太多了。有很多知识也忘了,通过这次设计对8031、74LS373、74LS164、2746的接口和性质有了更深的理解。智能电脑钟还要设置键盘,这个刚开始也不知道,在网上查了很多资料终于学会了。硬件电路好了,还要设计相应的软件。软件当然是要用汇编语言了。在单片机课上所学的都是设计一个小小的程序,一个智能电脑钟有那么多功能都需要程序来实现,所以需要设计一个既复杂又长的程序。开始的时候也是无从下手,查了好多别人设计的程序,看看他们怎么设计的,最后才根据智能电脑钟硬件电路的特点设计好了程序。一个星期的课程设计真的学到很多很多的的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。7总电路图8参考文献 郝迷振,王冠华.智能电脑钟.天津轻工业学院.5-6页. 胡汉才.单片机原理及接口技术.清华大学出版社. 张俊谟.单片机中级教程.北航出版社. 李全利.单片机原理及接口技术.高等教育出版社. 18