单片机控制的可调LCD时钟

来源:期刊VIP网所属分类:应用电子技术发布时间:2012-07-04浏览:

  利用单片机的控制程序结合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] 单片机原理与应用.李群芳.武汉大学出版社

期刊VIP网,您身边的高端学术顾问

文章名称: 单片机控制的可调LCD时钟

文章地址: http://www.qikanvip.com/yingyongdianzijishu/2488.html