51单片机在智能时钟控制系统中的应用设计

控制/MCU

1878人已加入

描述

随着电子技术产业结构调整,生产工艺的飞速发展,人们生活水平的不断提高,家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。本文所述智能时钟控制系统主要指时钟显示、时间设置、闹铃及家用电器定时开关机(可扩展功能)等控制系统。

本文采用进入市场时间早、总线开放、仿真开发设备多、芯片及其开发设备价格低廉、速度较快、电磁兼容性较好的MCS-51型单片机为核心实现智能时钟控制。

硬件系统设计

智能时钟控制系统以MCS-51兼容单片机AT89C51微处理器为核心,由时钟显示模块、定时控制模块、电源模块等电路组成。

AT89C51微处理器

AT89C51是一款采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容的单片机,其主要性能特点有:

(1)高性能、低功耗的8Byte微控制器,RISC精简指令集机构,指令功能强大,且多数为单周期指令,具有低功耗的闲置和掉电控制模式、5个中断源、两个16位定时器/计数器等功能。

(2)片内集成4KB可编程闪烁存储器,可进行1000次以上写/擦循环操作,数据保留时间可达10年,支持三级程序存储器锁定。

(3)丰富强大的外部接口性能:32可编程I/O线,可编程串行通道,片内振荡器和时钟电路。

时钟显示模块

显示模块采用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微处理器为核心,具有集成度高、性能稳定、抗干扰能力强、性价比高的优点。经软件仿真和实际功能验证,证明设计可靠、设计方案可行,在实际应用中有较大的实 用价值。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分