跟着电子技能产业结构调整,生产工艺的飞速发展,人们生活水平的不断提高,家用电器逐步遍及,商场关于智能时钟操控体系的需求也越来越大。本文所述智能时钟操控体系首要指时钟显现、时刻设置、闹铃及家用电器守时开关机(可扩展功用)等操控体系。
本文选用进入商场时刻早、总线敞开、仿真开发设备多、芯片及其开发设备价格低廉、速度较快、电磁兼容性较好的MCS-51型单片机为中心完结智能时钟操控。
硬件体系规划
智能时钟操控体系以MCS-51兼容单片机AT89C51微处理器为中心,由时钟显现模块、守时操控模块、电源模块等电路组成。
AT89C51微处理器
AT89C51是一款选用ATMEL高密度非易失存储器制作技能制作,与工业规范的MCS-51指令集和输出管脚相兼容的单片机,其首要功用特色有:
(1)高功用、低功耗的8Byte微操控器,RISC精简指令集组织,指令功用强大,且大都为单周期指令,具有低功耗的搁置和掉电操控形式、5个中止源、两个16位守时器/计数器等功用。
(2)片内集成4KB可编程闪耀存储器,可进行1000次以上写/擦循环操作,数据保存时刻可达10年,支撑三级程序存储器确定。
时钟显现模块
显现模块选用LG2841BH数码管,动态扫描,8550三极管位选驱动 , AT89C51微处理器P0口直接段选完结小时、分钟显现,具有显现亮度强、安稳功用好、显现差错少等长处。
守时操控模块
该模块合作相应程序可完结时刻调整、闹铃、家用电器守时开关机等功用。P3.2为时刻调整形式选择键、P3.3为小时调整键、P3.5为分钟调整键;守时操控经过继电器JZC-32F和JRC-Z7F完结操控功用,且经过修正程序可进行守时操控功用扩展,完结家用电器守时开关机等功用。
电源模块
电源模块规划的质量直接关系到单片机体系的安稳性,规划体系中因为单片机、操控继电器等元器件均可选用直流+5V供电,可选用稳压功用较好的三端稳压集成电路LM7805完结。
软件体系规划
体系使用伟福6000编写源代码,MEP500烧写AT89C51芯片完结智能时钟操控功用。因为体系软件首要完结时钟显现、闹铃、时刻设置等功用。源程序首要包含主程序、中止子程序、显现子程序、守时子程序、延时子程序等。
完结程序如下:
……
;**************************; 以下为主程序 (检测各键是否按下)
;***************************MainLoop:
jb AlarmSetKey,CheckMinuteKey
call Delay
jb AlarmSetKey,CheckMinuteKey
setb ClockMode
call AlarmSet
CheckMinuteKey:
jb MinuteKey,CheckHourKey
mov a,Minute
add a,#1
mov Minute,a
cjne a,#3ch,NotOver1
mov Minute,#0
NotOver1:
jnb MinuteKey,$
CheckHourKey:
jb HourKey,CheckAlarmA
mov a,Hour
add a,#1
mov Hour,a
cjne a,#18h,NotOver2
mov Hour,#0
NotOver2:
jnb HourKey,$
CheckAlarmA:
jnb AlarmTImeOnA,CheckAlarmP
call StartPc; call AlarmProcess
ajmp ToReturn
CheckAlarmP:
jnb AlarmTImeOnP,ToReturn
call ShutPc
ToReturn:
ajmp MainLoop
;**************************; 守时器TImer0中止服务程序(此程序每8ms履行一次)
;***************************
TImeInt:
mov th0,#0E0h
mov tl0,#0bfh
push acc
push psw
SETB rs0
clr rs1
d jnz OneSecondCounter,NotoneSecond
mov OneSecondCounter,#125
call Clock
call ConvertoBuffer
NotoneSecond:
call ScanDisplay
pop psw
pop acc
reti
; ***************************
; 扫描显现子程序
;***************************
ScanDisplay:
mov r1,#DisplayBuffer
mov R4,#11111011b
play:
mov a,R4
mov P2,A
mov A,@R1
mov DPTR,#TAB
movc A,@A+DPTR
mov P0,A
lcall Delay
inc R1
mov A,R4
jnb ACC.7,ENDOUT
rl A
mov R4,A
ajmp PLAY
endout: SETB P2.7
mov P0,#0FFH ret
TAB:DB 0C0H,0F9H,0A4H,0B0H,
99H,92H,82H,0F8H,80H,90H,7FH,
0B7H,0FFH
;***************************
; 时钟内容加1秒的子程序
;***************************
Clock:
mov a,Second
add a,#1
mov Second,a
cjne a,#3cH,NotOverFlow
mov Second,#0
mov a,Minute
add a,#1
mov Minute,a
cjne a,#3cH,NotOverFlow
mov Minute,#0
mov a,Hour
add a,#1
mov Hour,a
cjne a,#18H,NotOverFlow
mov Hour,#0
NotOverFlow:
mov a,Second
jnz NotAlarm
jnb AlarmAOnOff,PAlarm
mov a,Minute
cjne a,AlarmAMinute,PAlarm
mov a,Hour
cjne a,AlarmPHour,PAlarm
ajmp alarming
PAlarm:
jnb AlarmPOnOff,NotAlarm
mov a,Minute
cjne a,AlarmPMinute,NotAlarm
mov a,Hour
cjne a,AlarmPHour,NotAlarm
ajmp Alarming1
Alarming:
setb AlarmTimeOnA
ajmp NotAlarm
Alarming1:
setb AlarmTimeOnP;
NotAlarm:
ret
;***************************
; 将时钟内容或闹时设置值转换到显现缓冲区子程序
;***************************
ConvertoBuffer:
mov r1,#DisplayBuffer
jb ClockMode,DispAlarmSet
mov a,Second
mov DispSecond,a
mov a,Minute
mov Dispminute,a
mov a,Hour
mov DispHour,a
ajmp Convert
DispAlarmSet:
jb AlarmAOnOff,AlarmAOn
mov DispSecond,#00h
jb AlarmPOnOff,AlarmPOn
mov DispSecond,#00h
ajmp Convert
AlarmAOn:
mov DispSecond,#11
NextA:
mov a,AlarmAMinute
mov Dispminute,a
mov a,AlarmAHour
mov DispHour,a
ajmp Convert
AlarmPOn:
mov DispSecond,#11
NextP:
mov a,AlarmPMinute
mov Dispminute,a
mov a,AlarmPHour
mov DispHour,a
Convert:
mov a,DispSecond
mov b,#10
div ab
mov @r1,b
inc r1
mov @r1,a
inc r1
mov a,DispMinute
mov b,#10
div ab
mov @r1,b
inc r1
mov @r1,a
inc r1
mov a,DispHour
mov b,#10
div ab
mov @r1,b
inc r1
mov @r1,a
ret
结束语
该智能时钟操控体系,以AT89C51微处理器为中心,具有集成度高、功用安稳、抗干扰能力强、性价比高的长处。经软件仿真和实践功用验证,证明规划牢靠、规划方案可行,在实践使用中有较大的实 用价值。