利用单片机的控制程序结合LCD设计一个简易的微电脑时钟,可以告知现在的时间或记录完成一件工作花费的时间(通过重置计时),设计过程中可以学习利用单片机定时器设计时间计时处理,这是许多电子装置最基本的功能。LCD在电子产品设计中使用率相当的高,普通的七段显示器只能用来显示数字若遇到要显示英文文字时,则一定会选用LCD。通常我们在电子商城买到的LCD,其背面都含有控制电路,其上面有专门的IC来完成LCD的动作控制,在自行设计的接口中,只要送入适当的命令码和欲显示的数据,LCD便会将其字符显示出来,在控制上非常方便。本次设计是利用单片机8051的控制程序结合LCD设计一个简易的可调微电脑时钟。 一、设计思路 定时器0计时中断程序每隔5ms中断一次当作一次中断完成,每中断一次计数器加1,计数200次,表示1秒依次判断1min、1h,计数到了相关变量清零;用K1、K2、K3、K4进行时间调节:K1(P2.4)---进入时间调节;K2(P2.5)---调节小时;K3(P2.6)---调节分钟;K4(P2.7)---调节完成。 二、硬件电路 1、原理图 其中LCD引脚说明如下: D0----D7:双向数据总线 RS:寄存器选择控制线 R/W:读写控制线 EN:启用控制线 VCC:电源正端 VO:字符显示亮度控制引脚 GND:电源地端 值得注意的是:有的第1脚是接+5V,第2脚接地;有的第1脚是接地的,第2脚接+5V(最好能拿到原厂的引脚图)。 2、实物电路 三、开发环境 开发环境选择Keil C51 Vision2,Keil C51软件是德国Keil Software/Keil Elektronik 公司开发的功能完善的C51开发软件,近年来在国内得到了迅速普及。 在keil的uV2集成环境下使用伟福仿真器需要在keil环境中做如下设定:1、设置“编译后运行程序”,以便初始化伟福仿真器;2、设置硬件调试方式,并设置串口参数。 四、软件原理 1、使用定时器0模式0 INIT_TIMER: MOV TMOD,#00000000B MOV IE,#10000010B MOV TL0,#LO MOV TH0,#HI SETB TR0 RET 2、设置目前的时间 SZSJ: CLR TR0 MOV SEC,#0 L0: JB K2,L1 INC HOUR MOV A,HOUR CJNE A,#24,L2 MOV HOUR,#0 L2: CALL CONV MOV R5,#20 CALL DELAY JMP L0 L1: JB K3,L3 INC MIN MOV A,MIN CJNE A,#60,L4 MOV MIN,#0 L4: CALL LCDZB MOV R5,#20 CALL DELAY JMP L0 L3: JB K4,L0 JNB K4,$ SETB TR0 RET 3、一秒中断子程序 INT: PUSH ACC MOV TL0,#24 MOV TH0,#99 INC DEDA MOV A,DEDA CJNE A,#200,K K: POP ACC RETI 4、将时分秒的数据转换成数字数据显示在LCD上 LCDZB: MOV A,HOUR MOV X,#5 CALL SZZA INC X MOV A,#: MOV B,X CALL LCDXS MOV A,MIN INC X CALL SZZA INC X MOV A,#: MOV B,X CALL LCDXS MOV A,SEC INC X CALL SZZA RET 5、在LCD上显示数字 SZZA: MOV B,#10 DIV AB ADD A,#30H PUSH B MOV B,X CALL LCDXS POP B MOV A,B ADD A,#30H INC X MOV B,X CALL LCDXS RET 6、以4位控制方式将命令写至LCD MDL: MOV P0,A CLR RS CALL DMC RLC A RLC A RLC A RLC A MOV P0,A CLR RS CALL DMC RET 7、以4位控制方式将数据写入LCD SDL: MOV P0,A SETB RS CALL DMC RLC A RLC A RLC A RLC A MOV P0,A SETB RS CALL DMC RET 8、更新时分秒数据 TIMERGX: MOV A,SEC MOV B,SEC0 CJNE A,B,W1 JMP W2 W1: CALL LCDZB MOV SEC0,SEC W2:RET 9、在LCD上显示字符 LCDXS: PUSH ACC MOV A,B ADD A,#0C0H CALL MDL POP ACC CALL SDL RET 10、总延迟时间(R5*10ms) DELAY: MOV R6,#50 LOOP: MOV R7,#100 DJNZ R7,$ DJNZ R6,LOOP DJNZ R5,DELAY RET 其中:DMC-----短脉冲信 结语:本次设计使用了一般的LCD显示器来显示字符数据,尤其是在教学中不仅能使学生L灵活掌握定时器的应用,而且能掌握模块化的设计思路。另外根据本设计可以自行扩充其他的功能,如:增加闹铃、产生音乐声、启动继电器控制家电等。 参考文献 [1] 单片机实践与应用.吴金成.清华大学出版社 [2] 单片机实用技术.陶春鸣.人民邮电出版社 [3] 单片机原理与应用.李群芳.武汉大学出版社 |