1、基于基于 5151 单片机的灯光控制系统单片机的灯光控制系统 摘 要:本设计主要以 ATMEL 公司生产的 AT89C52 为核心处理器,利用其内部的定时器 进行精确定时,并通过 74HC573 锁存器做驱动通过 I/O 口在数码管显示时间,通过 CPU 检 测程序设定的时间,控制 5v 继电器的通断已达到控制照明器件的通断。本系统还具有外部 可调时间部分以便対误差进行修正, 以及备用电源防止停电造成单片机复位, 使下次来电时 不能对程序设定的时间进行准确响应。本试验通过在研展 YZ200 单片实验箱上进行硬件调 试,用 Keil uVision3 进行软件的调试。通过调试仿真是单片机能精确地
2、控制电源的通断时 间即照明设备的通断时间,调试之后定时可以精确到秒。 关键词:AT89C52 定时器 仿真调试 1 方案比较,设计与论证 方案一:通过单片机内部定时,不接外部显示设备(数码管)以及外部调整设备(独立 键盘) 。只要单片机内部定时器到程序设定的时间就控制继电器的通断,以达到控制照明设 备通断的目的,但存在误差不能修正 方案二: 通过单片机控制数码管把单片机内部程序控制时间直观的在数码管上显示出来, 在用三个独立键盘来控制时间即便是出现误差也可以通过键盘来调整, 是误差始终在容许范 围之内已实现精确的定时。 AT89C52 继电器继电器 照明设备照明设备 AT89C52 独立键盘独
3、立键盘 数码管数码管 继电器继电器 照 明 设 备 照 明 设 备 方案一:不能直观的显示单片机内部情况,而且对系统产生的误差时间不能修正,虽说 可以通过仿真调试减小误差短时间内影响不是很大但是长时间使用的话误差还是很大的。 方案二: 不但直观地显示了单片机内部的情况, 而且对系统经过时间累积产生的误差进 行修正,再加上仿真调试减小误差,以达到定时精确到秒的要求。 2 理论分析系统设计 2.1 定时显示模块 单片机时钟产生方式有两种,一是内部时钟方式(图 a) ,二是外部时钟方式(图 b) , 内部时钟方式要在单片机的和引脚外接晶振即可。 图中电容器和 的作用是稳定频率和快速起振,电容值在,典
4、型值为。晶振 的振荡频率要小于,典型值为,或 。 外部时钟方式是把外部已有的时钟信号引如单片机内, 此方式多用于多片单 片机同时工作, 并要求各单片机同步运行的场所。 本实验因为是定时所以采用晶 振。 图 图 晶振周期为最小的时序单位, 晶振信号经分频后形成两相错开的信号和。 和的周期也称为状态,他是晶振周期的倍,即一个状态包含个晶振周期。在每 个状态的前半周期,相位()信号有效;在每个状态的前后半周期,相位( )信号有效;每个状态有两个节拍(相) ,和,以和为基本节 拍指挥各个部件协调工作。 晶振信号分频后形成机器周期, 即一个机器周期包含个 晶荡周期。 这样以来采用晶振则机器周期为,本设计
5、用定时器的定时方式, 即十六位,设定 = =(-)/ =(-)% 这样定时时间为,计数次就是一秒。满秒则分钟加而秒清零,满 分钟时小时数加分钟清零,把时分秒分成两位分别在数码管上显示,显示电路如下: 振荡器 本设计选用的数码管是共阳极的及图中所示的 com1 到 com4, 而 P00 到 P07 则控制相应的各 段及图中二极管的 a,b,c,d,e,f,dp.分别送十六进制显示码是不同的二极管发光已达到显 示不同数的目地,如要左边第一个显示显示1其他不显示,则 P1 口要送 0x80 而 P0 口要 送 0xf9 以此类推就可以显示各数字了。本设计锁存器 74HC573 主要做驱动使数码管发光因 为单片机的驱动能力很弱不能驱动数码管显示, 而显示原理是数码管动态显示原理, 分别给 每个数码管送十六进制显示编码, 然后延时在给下一个数码管送十六进制显示编码, 以此类 推给八位送完后循环再送新的一组十六进制编码, 使数码挂动态显示时间。 值得注意的是要 在显示过程中消隐,及送完一位后要给 P0 口送 0xff,使数码管短时熄灭(小于 5ms) ,再给 下一位送数显示,以不影响下一位的显示。使显示更清晰以防出现乱码。 2.2 键盘模块 本设计再用三个独立键盘来控制数码管的时分秒显示,相应按键按下后时分秒相对应的 加 1, 已达到