单片机控制可调LCD时钟

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机控制的可调LCD时钟

摘要:单片机到底是什么呢?就是一个电脑,只不过是微型的,麻雀虽小,五脏俱全:它内部也用和电脑功能类似的模块,比如cpu,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机,排烟罩、vcd等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。

关键词单片机、字符型lcd显示器、可调时钟

利用单片机的控制程序结合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、主程序控制流程图

2、计时中断程序流程图

二、硬件电路

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

相关文档
最新文档