河南理工大学毕业设计(论文)说明书
1602采用标准的16脚接口,其中: 第1脚:VSS为地电源。 第2脚:VCC接5V正电源。
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生重影,使用时可以通过一个1K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15~16脚:背光灯电源。
LCD1602指令与时序说明如下 :
表 3-1 LCD1602指令表
数据位 RS 命令 RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 清屏 0 0 0 0 0 0 0 0 0 1 归位 0 0 0 0 0 0 0 0 0 * 输入方式 0 0 0 0 0 0 0 1 I/D S 显示开关 0 0 0 0 0 0 1 D C B 光标、画面 0 0 0 0 0 1 S/C R/L * * 功能设置 0 0 0 0 1 DL N F * * CGRAM地址 0 0 0 1 A5 A4 A3 A2 A1 A0 DDRAM地址 0 0 1 A6 A5 A4 A3 A2 A1 A0 读BF及AC 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0
写数据 1 0 数 据
读数据 1 1 数 据
LCD1602在工作的过程中,在数据线上传送数据时,需将传送数据在数据线上持续一小段时间,保证单片机的P0口数据传送或接收成功,其基本操作时序如表 3-2所示:
12
河南理工大学毕业设计(论文)说明书
表 3-2 LCD1602基本操作时序
操作 读状态 写指令 读数据 写数据
输入 RS=L,R/W=H,E=H
RS=L,R/W=L,D0~D7=指令码,E=高脉冲
RS=H,R/W=H,E=H
RS=H,R/W=L,D0~D7=数据,E=高脉冲
输出 D0~D7=状态字
无 D0~D7=数据
无
3.3 键盘电路
在单片机应用系统中,除了复位按键外,还需要其他按键,即键盘按键,以便控制系统的运行状态或向系统输入运行参数。键盘电路一般由键盘接口电路、按键(由控制系统运行状态的功能键和向系统输入数据的数字调节键组合)以及键盘扫描程序等部分组成。本系统键盘电路共有8个按键组成,按4×2的格式布置。键盘的电路连接如图 3-6所示:
图 3-6 系统按键电路连接图
键盘的工作原理是:按下键帽时,按键内的复位弹簧被压缩,动片触点与静片触点相连,按键接通,相应键向单片机端口发送一个低电平,松开键帽,按键断开。
13
河南理工大学毕业设计(论文)说明书
3.4 蜂鸣器报警电路
系统中单片机的P2.3脚与蜂鸣器相连,开启蜂鸣器功能。当单片机的管脚输出固定频率电平时蜂鸣器响起。声音是由振动所产生的,一定频率的震动就产生了一定频率的声音,其电路连接图如图 3-7所示:
图 3-7 蜂鸣器电路连接图
一般情况下,P2.3脚处于高电平,当系统进入报警时间时,单片机控制P2.3脚输出一定频率方波,蜂鸣器振动发声,实现声音报警功能。
3.5 发光二极管电路
发光二极管在系统中结合蜂鸣器报警同步作用,其电路连接如图 3-8所示:
图 3-8 发光二极管电路连接图
发光二极管一端接电源供电,通过电阻与单片机P2.4脚连接,一般情况下,P2.4
14
河南理工大学毕业设计(论文)说明书
为高电平,发光二极管处于熄灭状态,当进入报警时间时,P2.4脚降为低电平,发光二极管导通亮起,其中的电阻起到对通过二极管的电流的调节作用,使得二极管正常发光。
3.6 定时模式装入初值的计算
对于定时模式,是对机器周期计数,而机器周期与选定的主频密切相关。因此,需根据应用系统所选定的主频计算出机器周期值。现在以主频12MHz为例,则机器周期为
一个机器周期?实际定时时间Tc = x×Tp。
式中Tp为机器中期,Tc为所需定时时间,x为所需计数次数,x为所需计数次数。Tp和Tc一般为已知值,在求出Tp后即可求得所需计数值x,再将x求补码,即求得定时计数初值。即
(x)补?2n?x
例如设定时时间为Tc =5ms,机器周期Tp=1μs ,可求得定时计数次数
x?1212??s?1?s
主振频率12?1065ms?5000次 1μs设选用工作方式1,则n=16,则应设置的定时时间计算出值为 (x)补?216?x?65536?5000?15536
还需将它分解成两个8位十六进制数,分别求得低8位为B0H装入TLx,高8位为3CH装入THx中。
工作方式0、1、2的最大计数次数分别为8192、65536和256。
15
河南理工大学毕业设计(论文)说明书
4 系统软件设计
本软件所实现的功能是:单片机检测按键的输入信息,并实时地显示在LCD1602上,在系统记录下四次用药时间和每次的用药量之后,调节好系统时钟后系统开始运行,在运行的过程中,单片机将定时的四个时间与系统的实时时间相比较,相等时即报警,并显示此次用药的服用量。主程序调用子程序,子程序之间又嵌套调用,总之,各元件所对应的子程序在主程序的调用驱动作用下,协调运行工作,共同实现实现药盒的系统功能。
各个程序模块的结构如图 4-1所示:
初始化子程序键盘扫描子程序数据刷新子程序系统主程序中断子程序
图 4-1 各程序模块结构图
4.1 系统主程序
主程序模块主要完成控制系统各部件的初始化和实现各功能子程序的调用,也可经两重或多重嵌套调用子程序,主程序下辖多个子程序模块,系统通过运行主程序将各个子程序模块的功能协调实现。整个的系统运行在主程序的无尽循环中,不断地进行运算操作,实现各阶段的相应功能。
在本系统的主程序中,随主程序运行到不同的阶段,主程序要在时钟的驱动下,首先完成对系统各个模块的初始化,之后进入到循环当中;在进入到循环后对键盘扫描子程序进行调用,扫描键盘输入信息,经运算后调用数据刷新子程序将输入信息实时地显示在LCD1602上,实现四次时间定时和和每次用药服用量的设定,然后完成对实时时间的调节;当实时时钟向前运行时,将定时时间与系统实时时间作比较,两者相等时则进入报警程序。 主程序流程如图 4-2所示:
16