单片机控制可调LCD时钟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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