作息时间控制系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训3 作息时间控制系统设计
实训考核时间:6课时
1.系统设计要求
该时钟控制器有4位LED数码显示器,具有基本时钟(显示当前时间的小时及分钟)功能,通过外扩继电器、光电耦合器或国体继电器还可实现多点、多路电气设备的控制。该控制器可广泛应用于学校、工厂和机关的自动打铃、电视、路灯、室内照明及其他对象控制,也可用于家庭或学生寝室进行时间指示及多点时间提醒。
2.硬件电路
硬件电路如图所示。
电路采用单片机A T89C51,显示器采用四联共阴极LED数码显示器。其中字段由串入并出的移位寄存器74LS164控制,74LS164的串行数据输入端由P1.4控制,移位脉冲由P1.5提供;宇位由P1.0~P1.3控制,Pl.0~P1.3对应控制L4~L1。SW1~Sw3用来迸行时间校准及控制时间点的设定。LEDl~LED8用来模拟被控对象。另有铃响信号输出(铃响信号驱动蜂鸣器发声)。
图作息时间控制系统
3.设计要求
(l)时间校对
在任何时候均可通过按压SW2和SW3按钮进行时间校准。每按动一下SW2,小时自动加1;持续按住不放,小时将自动连续加1。当小时指示为24时,再加1将自动回零。每按动一下SW3,分钟自动加l:持续按住SW3按钮不放,分钟将自动连续加1。当分钟指示为59时,再按动SW3,分钟将变为00。
(2)控制时间设定
需要设定控制时间点时,应首先按Swl按钮,然后再按动Sw2和SW3,使指示时间与要求时间一致,再按Sw1按钮进入“控制码”(控制对象)设置状态,按Sw3进行对象切换,最后按Sw2保存时间点;也可以按SW1取消本次设定。如此可设定多个控制时间点。
在正常状态按下SW1不放,然后再按Sw3按钮可删除所有的控制时间点。
4.实训考核要求
软件采用MCS-51汇编语言编写,使用T0产生50ms时基信号,通过软计数器产生时、分、秒信号。主程序已给出,请按图连线正确并编写有关的子程序。
5.评分标准:
1)连线不正确、子程序基本思路不清晰<60分
2)连线基本正确、子程序基本思路清晰60-69分
3)连线正确、子程序基本思路清晰完整70-85分
4)连线正确、子程序思路清晰完整86-100分
参考程序如下:
;******************************************************************
;实训7.asm
;作息时间控制系统
;************************头文件************************************
SDA TA BIT P1.4 ;定义74LS164串行移位数据端
SCLK BIT P1.5 ;定义74Is164串行移位时钟端
DIS EQU Pl ;定义字形口
Control EQU P0 ;控制输出
Swl EQU P3.2
Sw2 EQU P3.3
Sw3 EQU P3.4
Ms EQU 10H ;定义50ms计数器
Secs EQU 11H ;定义秒计数器
Minute EQU 12H ;定义分钟计数器
Hour EQU 13H ;定义时计数器
T-Minute EQU 18H ;定义定时分单元
T-Hour EQU 19H ;定义定时时单元
TControl EQU 1AH ;定义控制码单元
;******************************************************************* ORG 0000H
LJMP Main
;******************************************************************* ORG 000BH
LJMP T0INT
;*******************************************************************
Main∶MOV SP,#70H ;将栈区设置在70H~7FH
MOV IE,#10000010B ;允许T0中断
MOV TMOD,#01H ;T0定时方式1
MOV Ms,#20 ;50ms单元初值,使20×50ms=1s
MOV secs,#0
MOV Minute,#0
MOV Hour,#12H ;开机显示12∶00
MOV T-Minute
MOV T-Hour,#6
MOV B,#20H
CLR F0
CLR Fl
MOV R0,,#80
MOV TH0,#0B0H
SETB TR0
LOOP:MOV R1,#Minute
LCALL Split
LCALL DISP
LCALL V erify
NOP
LCALL setup
MOV A,secs
CJNE A,#5,$+3
JNC LOOP
LCALL Compare
SJMP LOOP
;****************中断服务程序***********
;***********************************
Compare:
;***************************************************** CLP1: INC R0 ;指向分
CLP2∶INC R0 ;指向控制码
MOV A,@R0
JNZ CLP3
RET
;***************************************************** CPL3:INC R0 ;指向下一个时间的开始