版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、家用电器定时控制器设计目 录摘 要21引 言21.1设计要求21.2设计思路21.3硬件电路设计框图32定时器的硬件设计42.1LED显示电路的设计42.2 发光二极管电路的设计62.2键盘电路的设计63 定时器的软件设计73.1 初始化程序73.2 全局使能程序73.3 开机显示“HELLO”并亮灯程序73.4 清零程序83.5 查询式键盘程序83.6 定时时间设置程序93.7 定时中断程序103.8结束显示“HELP”并亮灯程序12实习心得13参考文献13附 录14摘 要本文详细介绍了基于AT89C51单片机的家用定时器的设计。本文设计的定时器实现了通过拨动开关开始和暂停定时,通过查询式键
2、盘清零、设置定时时间和调整当前时间,通过8位共阴极LED数码管显示当前时间。开机时LED数码管显示“HELLO”,并使某只发光二极管闪亮。开始定时后,LED数码管显示倒计时。当定时时间到时,八只发光二极管间隔闪亮,LED数码管显示“HELP”。关键字:AT89C51,定时器,键盘设置,LED数码管显示1 引 言日常生活中,经常碰到一些需要定时的事情,例如,空调可以定时开启与关闭,洗衣机洗涤衣物需要定时在几分钟到几十分钟的时间。完成定时的定时器多种多样,以往在家用电器中采用的机械定时器就是根据一般上弦钟表原理设计的,这种定时器虽然结构简单,成本低,维修也比较方便,但是它的触头频繁接触和断开,大大
3、缩减了使用寿命,也不利于进一步全自动化。在电子技术突飞猛进的今天,电子定时器逐步取而代之。 在生活和生产的各个领域中,凡是有自动控制要求的地方都会有单片机的身影出现。从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。鉴此,本文设计了一款基于AT89C51单片机的家用定时器。1.1 设计要求设计一个家用电器的定时控制程序,要求显示定时时间,并可用键盘对定时时间进行设定。程序功能:(1)开机时数码管显示“HELLO”,使某只发光二
4、极管亮;(2)用键可使定时控制器清零,允许对定时时间设定;(3)用键可对分设定,用键可对秒设定;(4)按“运行键”开始定时,并且运行过程中动态显示时间状态,时间到时八只发光二极管间隔亮。附加程序功能:(1)在按“设定”键之前按任何键都无效;(2)在进入倒计时状态后, 仍可以对定时时间再次调节,即重新设定;(3)运行结束即时间到使八只发光二极管间隔亮,数码管显示“HELP”。1.2 设计思路根据设计要求,初步确定设计方案如下:(1)系统显示采用8位共阴极LED数码管。LED数码管的串行数据线DIN由P0.2产生,移位信号CLK由P0.3产生。8个串/并移位寄存器芯片74LS164首尾相连。每片的
5、并行输出作为LED数码管的段码。(2)定时时间的设置与调整通过接入查询式键盘实现。设计10个按键,分别定义为:RT:Reset,清零键。其功能是当该键按下时,显示清零。EN:Enable,设定键。其功能是当该键按下时,其余按键才生效。BN:Begin,开始键。其功能是当该键按下时,定时开始。ST:Stop,暂停键。其功能是当该键按下时,定时停止。HH:High Hour:时十位计数置数按键。HL:Low Hour:时个位计数置数按键。MH:High Minute:分十位计数置数按键。ML:Low Minute:分个位计数置数按键。SH:High Second:秒十位计数置数按键。SL:Low
6、Second:秒个位计数置数按键。(3)按键的接入方式:RT键:通过P1口P1.0引脚接入,查询工作方式。EN键:通过P0口P0.0引脚接入,查询工作方式。BN键:通过P1口P1.1引脚接入,查询工作方式。HH键:通过P1口P1.2引脚接入,查询工作方式。HL键:通过P1口P1.3引脚接入,查询工作方式。MH键:通过P1口P1.4引脚接入,查询工作方式。ML键:通过P1口P1.5引脚接入,查询工作方式。SH键:通过P1口P1.6引脚接入,查询工作方式。SL键:通过P1口P1.7引脚接入,查询工作方式。(4)指示灯闪亮采用8个发光二极管,接入P2口。1.3 硬件电路设计框图根据设计要求与设计思路
7、,硬件电路设计框图如图1.1所示。硬件电路结构由5个部分:按键输入电路、发光二极管电路、LED显示器及驱动电路、时钟与复位电路和电源电路组成。按键电路发光二极管电路时钟电路复位电路AT89C51单 片 机驱动电路8位LED显示器图1.1 硬件电路设计框图2 定时器的硬件设计2.1 LED显示电路的设计显示器由8个共阴极LED数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。8个串/并移位寄存器芯片74LS164首尾相连。每片的并行输出作为LED数码管的段码。74LS164的引脚图如图2.1所示:图2.1 74LS164的引脚图74LS164为8位串入并出移位寄存器,1、2为
8、 串行输入端,QAQH为并行输出端,CLK为移位时钟脉冲,上升沿移入一位;CLR为清零端,低电平时并行输出为零。图2.2 LED显示电路原理图2.2 发光二极管电路的设计图2.3 发光二极管电路原理图2.2 键盘电路的设计本文采用了8个按钮的独立式键盘,接到单片机的并行口P1,如果有键按下,则相应输出为低,否则输出为高。单片机通过识别,判断按下什么键。有键按下后,加入一段延时,防止由于键盘抖动而引起的误操作。图2.4键盘电路原理图3 定时器的软件设计3.1 初始化程序TICK EQU 5000 ;5000*2*100us = 1sT100us EQU 156 ;100us时间常数(12M)C1
9、00us EQU 05H ;100us记数单元DBUF0 EQU 30HTEMP EQU 40HRT BIT P1.0 ;清零端EN BIT P0.0 ;全局使能端LED BIT P0.1 ;LED灯亮灯端DIN BIT P0.2 ;数码管静态显示端CLK BIT P0.3 ;数码管静态显示端ST BIT P0.5 ;暂停端ORG 0000HLJMP LOOP1ORG 000BHLJMP T0INTORG 0100H3.2 全局使能程序LOOP1:SETB ENMOV C,ENCPL CJC START ;判断全局使能按键是否按下LJMP LOOP13.3 开机显示“HELLO”并亮灯程序ST
10、ART:MOV 30H,#10H;MOV 31H,#15H;HMOV 32H,#16H;EMOV 33H,#17H;LMOV 34H,#17H;L MOV 35H,#00H;OMOV 36H,#10H;MOV 37H,#10H;CLR LED ;定时开始时点亮LED灯3.4 清零程序LOOP2: SETB RTMOV C,RTCPL CJC CLEAR ;判断清零按键是否按下LJMP LOOP2 ;若没有按下则继续判断CLEAR:MOV 30H,#00H;0MOV 31H,#00H;0MOV 32H,#14H;-MOV 33H,#00H;0MOV 34H,#00H;0 MOV 35H,#14H
11、;-MOV 36H,#00H;0MOV 37H,#00H;03.5 查询式键盘程序KEYBOARD:MOV P1,#0FFH ;置P1口为输入态MOV A,P1 ;读入键值LCALL DELAYMOV B,P1CJNE A,B,KEYBOARDJNB ACC.0,CLEAR ;清零按键P1.0JNB ACC.1,BEGIN ;开始定时按键P1.1JNB ACC.2,HH ;时十位计数置数按键P1.2JNB ACC.3,HL ;时个位计数置数按键P1.3JNB ACC.4,MH ;分十位计数置数按键P1.4JNB ACC.5,ML ;分个位计数置数按键P1.5JNB ACC.6,SH ;秒十位计
12、数置数按键P1.6JNB ACC.7,SL ;秒个位计数置数按键P1.7LJMP KEYBOARD ;若没有按键按下则继续判断3.6 定时时间设置程序/设置时十位HH: MOV A,30HINC AMOV 30H,ACJNE A,#06H,JUMPMOV 30H,#00HCALL DELAYLJMP DISP2/设置时个位HL:MOV A,31HINC AMOV 31H,ACJNE A,#0AH,JUMPMOV 31H,#00HCALL DELAYLJMP DISP2/设置分十位MH:MOV A,33HINC AMOV 33H,ACJNE A,#06H,JUMPMOV 33H,#00HCALL
13、 DELAYLJMP DISP2/设置分个位ML:MOV A,34HINC AMOV 34H,ACJNE A,#0AH,JUMPMOV 34H,#00HCALL DELAYLJMP DISP2/设置秒十位SH:MOV A,36HINC AMOV 36H,ACJNE A,#06H,JUMPMOV 36H,#00HCALL DELAYLJMP DISP2/设置秒个位SL:MOV A,37HINC AMOV 37H,ACJNE A,#0AH,JUMPMOV 37H,#00HCALL DELAYLJMP DISP23.7 定时中断程序/开启中断BEGIN:MOV TMOD, #02H ;方式2, 定时
14、器MOV TH0, #T100usMOV TL0, #T100usMOV IE, #10000010B ;EA=1, IT0 = 1SETB TR0 ;开始定时MOV C100us, #HIGH(TICK)MOV C100us+1, #LOW(TICK)/等待进入中断WAIT:SJMP WAIT/中断程序T0INT: PUSH PSW MOV A, C100us+1 JNZ GOON DEC C100usGOON: DEC C100us+1 MOV A, C100us ORL A, C100us+1 JNZ JUMP4 ;100us 记数器不为0, 返回 MOV C100us, #HIGH(T
15、ICK) ;#HIGH(Tick) MOV C100us+1, #LOW(TICK) ;#LOW(Tick) ;100us 记数器为0, 重置记数器/开始定时TIMING:SETB RTMOV C,RTCPL CJC JUMP2;判断清零按键是否按下SETB STMOV C,STCPL CJC JUMP3;判断暂停按键是否按下MOV A,37HDEC AMOV 37H,ACJNE A,#0FFH,DISP3MOV 37H,#09HMOV A,36HDEC AMOV 36H,ACJNE A,#0FFH,DISP3MOV 36H,#05HMOV A,34HDEC AMOV 34H,ACJNE A,
16、#0FFH,DISP3MOV 34H,#09HMOV A,33HDEC AMOV 33H,ACJNE A,#0FFH,DISP3MOV 33H,#05HMOV A,31HDEC AMOV 31H,ACJNE A,#0FFH,DISP3MOV 31H,#09HMOV A,30HDEC AMOV 30H,ACJNE A,#0FFH,DISP3MOV 30H,#05HLJMP HELPEXIT: POP PSW RETI3.8结束显示“HELP”并亮灯程序HELP:MOV 30H,#10H;MOV 31H,#10H;MOV 32H,#15H;HMOV 33H,#16H;EMOV 34H,#17H;L
17、 MOV 35H,#18H;PMOV 36H,#10H;MOV 37H,#10H;/定时结束后间隔闪灯FLASH: SETB LED MOV A, #0FEH;11111110 MOV R5, #8OUTPUT: MOV P2, A RL A LCALL DELAY DJNZ R5, OUTPUT SJMP FLASH实习心得一周的实习让我看到了自身的不足,也收获了宝贵的经验教训。从设计一个小型系统时要考虑的方方面面到真正动手搭接面包板时需要注意的各个细节,电子设计的每一个环节都是整体中密不可分的一部分,必须经过全局考虑和仔细思索,这里面还有很多知识值得虚心学习。除了知识方面启发,这次实习也让
18、我看到了自己的不足。我们的团队分工合作不够明朗,导致我们浪费了许多时间。这主要是因为队员之间的交流不够,造成彼此分工不明确,工作效率低下。这些都是我在后续学习中需要注重改进提高的。最后,本次实习给我的启发是:要想真正掌握电气专业的知识技能,仅仅依靠现行的课堂学习是远远不够的,不能仅仅满足于掌握理论知识,还应该在课后学习一些专业软件,用它们来做仿真测试,加深自己对于知识的理解;同时还要多动手,多调试一些电路,熟悉各种元器件的特性,积累设计和分析电路时的经验。总而言之,非常感谢这次实习给我的反思与启发,让我有机会提高自己的专业技能。略带戏谑地说,实习就是这样一个过程:谁不曾感觉过苦恼,谁不曾放弃过
19、自己原先的设想,我们总是在检线无果狠狠失望过一回,然后突然醒悟般地发现问题所在。我们终究还是做到了,做到了超越昨天的自我。参考文献1 黄建新.单片机原理、接口技术及应用M. 北京:化学工业出版社, 2013附 录整体程序/*/家用电器定时控制器 /*/ P0.0接使能开关K0 P0.1接LED灯 P0.2接数码管DIN / P0.3接数码管CLK P0.4接电机 p0.5接暂停开关K1 / / P1口接查询式键盘: / P1.0-清零按键 / P1.1-开始定时按键 / P1.2-时十位计数置数按键 / P1.3-时个位计数置数按键 / P1.4-分十位计数置数按键 / P1.5-分个位计数置
20、数按键 / P1.6-秒十位计数置数按键 / P1.7-秒个位计数置数按键 / / P2口接跑马灯 /*/TICK EQU 5000 ;5000*2*100us = 1s T100us EQU 156 ;100us时间常数(12M) C100us EQU 05H ;100us记数单元DBUF0 EQU 30HTEMP EQU 40HRT BIT P1.0 ;清零端 EN BIT P0.0 ;全局使能端LED BIT P0.1 ;LED灯亮灯端DIN BIT P0.2 ;数码管静态显示端CLK BIT P0.3 ;数码管静态显示端ST BIT P0.5 ;暂停端ORG 0000HLJMP LOO
21、P1ORG 000BHLJMP T0INTORG 0100H/全局使能LOOP1:SETB ENMOV C,ENCPL CJC START ;判断全局使能按键是否按下LJMP LOOP1START:MOV 30H,#10H;MOV 31H,#15H;HMOV 32H,#16H;EMOV 33H,#17H;LMOV 34H,#17H;L MOV 35H,#00H;OMOV 36H,#10H;MOV 37H,#10H;CLR LED ;定时开始时点亮LED灯/显示定时开始前的 HELLO 界面DISP:MOV R0, #DBUF0MOV R1, #TEMPMOV R2, #8DP10:MOV DP
22、TR,#SEGTABMOV A, R0MOVC A, A+DPTR MOV R1, A INC R0 INC R1 DJNZ R2, DP10 MOV R0, #TEMP MOV R1, #8DP12:MOV R2, #8 MOV A, R0DP13:RLC A MOV DIN, C CLR CLK SETB CLK DJNZ R2, DP13 INC R0 DJNZ R1, DP12/清零LOOP2: SETB RTMOV C,RTCPL CJC CLEAR ;判断清零按键是否按下LJMP LOOP2 ;若没有按下则继续判断CLEAR:MOV 30H,#00H;0MOV 31H,#00H;0
23、MOV 32H,#14H;-MOV 33H,#00H;0MOV 34H,#00H;0 MOV 35H,#14H;-MOV 36H,#00H;0MOV 37H,#00H;0/显示清零界面DISP2:MOV R0, #DBUF0MOV R1, #TEMPMOV R2, #8DP20:MOV DPTR,#SEGTABMOV A, R0MOVC A, A+DPTR MOV R1, A INC R0 INC R1 DJNZ R2, DP20 MOV R0, #TEMP MOV R1, #8DP22:MOV R2, #8 MOV A, R0DP23:RLC A MOV DIN, C CLR CLK SET
24、B CLK DJNZ R2, DP23 INC R0 DJNZ R1, DP22 /判断哪个按键被按下KEYBOARD:MOV P1,#0FFH ;置P1口为输入态MOV A,P1 ;读入键值LCALL DELAYMOV B,P1CJNE A,B,KEYBOARDJNB ACC.0,CLEAR ;清零按键P1.0JNB ACC.1,BEGIN ;开始定时按键P1.1/JNB ACC.2,HH ;时十位计数置数按键P1.2 /JNB ACC.3,HL ;时个位计数置数按键P1.3 JNB ACC.4,MH ;分十位计数置数按键P1.4JNB ACC.5,ML ;分个位计数置数按键P1.5JNB
25、ACC.6,SH ;秒十位计数置数按键P1.6JNB ACC.7,SL ;秒个位计数置数按键P1.7LJMP KEYBOARD ;若没有按键按下则继续判断/置数/设置时十位/HH:/MOV A,30H/INC A/MOV 30H,A/CJNE A,#06H,JUMP/MOV 30H,#00H/CALL DELAY/LJMP DISP2/设置时个位/HL:/MOV A,31H/INC A/MOV 31H,A/CJNE A,#0AH,JUMP/MOV 31H,#00H/CALL DELAY/LJMP DISP2/设置分十位MH:MOV A,33HINC AMOV 33H,ACJNE A,#06H,
26、JUMPMOV 33H,#00HCALL DELAYLJMP DISP2/设置分个位ML:MOV A,34HINC AMOV 34H,ACJNE A,#0AH,JUMPMOV 34H,#00HCALL DELAYLJMP DISP2/设置秒十位SH:MOV A,36HINC AMOV 36H,ACJNE A,#06H,JUMPMOV 36H,#00HCALL DELAYLJMP DISP2/设置秒个位SL:MOV A,37HINC AMOV 37H,ACJNE A,#0AH,JUMPMOV 37H,#00HCALL DELAYLJMP DISP2JUMP:LCALL DELAYLJMP DIS
27、P2 ;显示当前置数值JUMP2:LJMP CLEAR ;定时过程中清零JUMP3:LJMP KEYBOARD ;定时过程中暂停JUMP4: LJMP EXIT/开启中断BEGIN:MOV TMOD, #02H ;方式2, 定时器MOV TH0, #T100usMOV TL0, #T100usMOV IE, #10000010B ;EA=1, IT0 = 1SETB TR0 ;开始定时MOV C100us, #HIGH(TICK)MOV C100us+1, #LOW(TICK)/等待进入中断WAIT:SJMP WAIT/中断程序T0INT: PUSH PSW MOV A, C100us+1 J
28、NZ GOON DEC C100usGOON: DEC C100us+1 MOV A, C100us ORL A, C100us+1 JNZ JUMP4 ;100us 记数器不为0, 返回 MOV C100us, #HIGH(TICK) ;#HIGH(Tick) MOV C100us+1, #LOW(TICK) ;#LOW(Tick) ;100us 记数器为0, 重置记数器/开始定时TIMING:SETB RTMOV C,RTCPL CJC JUMP2 ;判断清零按键是否按下SETB STMOV C,STCPL CJC JUMP3 ;判断暂停按键是否按下MOV A,37HDEC AMOV 37
29、H,ACJNE A,#0FFH,DISP3MOV 37H,#09HMOV A,36HDEC AMOV 36H,ACJNE A,#0FFH,DISP3MOV 36H,#05HMOV A,34HDEC AMOV 34H,ACJNE A,#0FFH,DISP3MOV 34H,#09HMOV A,33HDEC AMOV 33H,ACJNE A,#0FFH,DISP3MOV 33H,#05HMOV A,31HDEC AMOV 31H,ACJNE A,#0FFH,DISP3MOV 31H,#09HMOV A,30HDEC AMOV 30H,ACJNE A,#0FFH,DISP3MOV 30H,#05HLJMP HELP/延时程序DELAY:MOV R6, #0 MOV R7, #0DELAYLO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东酒店管理职业技术学院《客舱服务操作与管理》2023-2024学年第一学期期末试卷
- 广东建设职业技术学院《电子商务企业运营沙盘实训》2023-2024学年第一学期期末试卷
- 广东海洋大学《证券与投资》2023-2024学年第一学期期末试卷
- 广东东软学院《大数据处理与智能决策》2023-2024学年第一学期期末试卷
- 《课件工伤保险》课件
- SWOT分析培训课件
- 《经济型连锁酒店》课件
- 赣州师范高等专科学校《教育数据挖掘理论与实践》2023-2024学年第一学期期末试卷
- 赣东学院《生物工程进展与创业指导》2023-2024学年第一学期期末试卷
- 七年级科学上册10.1.1身体降的标志学案无答案牛津上海版
- 血液科侵袭性真菌的治疗
- 重点专科建设实施方案(四篇)
- 浅析岩溶地区工程地质勘察手段及应用
- 2023-2024学年六年级上期末数学考试试卷附答案解析
- 罗伊模式个案护理
- 公益性岗位开发申请审批表
- 中国马克思主义与当代知到章节答案智慧树2023年西安交通大学
- 组织协同运用平衡计分卡创造企业合力
- 车辆剐蹭自愿和解协议书模板
- 儿科课件过敏性紫癜
- 学校安全事故应急处置流程图
评论
0/150
提交评论