单片机中,常用的显示方式大抵以下:8段式数码管,点阵LED,LCD1602,LCD12864。其中数码管和点阵表示的信息有限,所以此处不考虑。对于LCD1602和LCD12864,LCD1602能表示16x2=32位字母数字,而LCD12864虽然能表示更多信息,但是其电路和内部代码指令也更为复杂。因此我选择使用LCD1602,这个显示足够满足点滴报警器的需要。
protues仿真电路
此处需要注意的就是在VEE处需要上拉一个10kΩ的滑动电阻,以调节显示。其次VSS指的是地电压,VDD为5V.
实际芯片图片
在实际模块中,还需要对显示的背光度进行调节(即多出来的两个接口A和K),太亮会很耗电,太暗会看不清上面的字符。
内部调用代码
把lcd调用的代码封装在一个头文件里
#ifndef __LCD1602_H__
#define __LCD1602_H__
#include "Delay.h"
#define lcd1602_io P2
sbit lcd1602_en = P1 ^ 0;
sbit lcd1602_rw = P1 ^ 1;
sbit lcd1602_rs = P1 ^ 2;
void lcd1602_write_cmd(unsigned char cmd)
{
lcd1602_io = cmd;
lcd1602_rs = 0;
lcd1602_en = 0;