标题:
lcd1602.h单片机源代码
[打印本页]
作者:
cqupt.qwert
时间:
2019-6-12 00:45
标题:
lcd1602.h单片机源代码
这几天刚好用51做了一个lcd1602显示的温度器,过程还算顺利,现在附上1602的源代码
引脚都是根据开发板上定义的,lcd1602的显示较数码管可以说更为简单,在初始化之后,只要先写入指令,然后再直接写入数据就行,
相对于数码管需要段码和位码选择显示方便了很多,显示的功能也更为强大
lcd1602.h
#ifndef _1602_H_
#define _1602_H_
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
#define LCD P0
sbit RS = P2^6;
sbit RW = P2^5;
sbit E = P2^7;
void delay(uint c);
void Init_1602();
void write_com(uchar com);
void write_dat(uchar dat);
void Init1();
void Init2();
#endif
lcd1602.c
#include"lcd1602.h"
void delay(uint c)
{
uchar a,b;
for (; c>0; c--)
{
for (b=199;b>0;b--)
{
for(a=1;a>0;a--);
}
}
}
void write_com(uchar com)
{
E = 0;
RS = 0;
RW = 0;
LCD = com;
delay(1);
E = 1;
delay(5);
E = 0;
}
void write_dat(uchar dat)
{
E = 0;
RS = 1;
RW = 0;
LCD = dat;
delay(1);
E = 1;
delay(5);
E = 0;
}
void Init_1602()
{
delay(10);
write_com(0x38);
delay(5);
write_com(0x0c);
delay(5);
write_com(0x06);
delay(5);
write_com(0x01);
delay(5);
write_com(0x80);
delay(5);
}
void Init1()
{
write_com(0x80);
write_dat('T');
write_com(0x81);
write_dat('e');
write_com(0x82);
write_dat('m');
write_com(0x83);
write_dat('p');
write_com(0x84);
write_dat(':');
}
void Init2()
{
write_com(0xc1);
write_dat('T');
write_com(0xc2);
write_dat('H');
write_com(0xc3);
write_dat(':');
write_com(0xc8);
write_dat('T');
write_com(0xc9);
write_dat('L');
write_com(0xca);
write_dat(':');
}
作者:
51hei团团
时间:
2019-6-12 06:53
楼主能分享下工程文件吗?
作者:
abc111111
时间:
2019-6-12 09:22
谢谢,正需要
作者:
rsx9583
时间:
2019-6-12 15:07
支持楼主!我也没怎么好好玩过1602.
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1