今天用
1602液晶试了,图很快就画好了,下面是看1602的芯片手册,这里看了两份,一份是长沙太阳人的1602,还有一份
是DOC格式的,有需要的朋友,一块可以在附件下载
先上我画好的图,显示了HELLO WORLD
因为之前看过郭天详的十天学会单片机中的液晶这一节,所以代码很快就搞定,我想说的就是那个时序图,
RS高电平的时候,是写数据,低电平的时候是写指令,RW 就是高电平了,还有一个就是时间,这个看芯片手册的话,会具体点
代码的话,我写了4个函数,
长沙太阳人1602手册
|
文件: |
1602液晶说明.pdf |
大小: |
255KB |
下载: |
下载 | |
#include <stdio.h> #include <reg51.h>
#define uchar unsigned char #define uint unsigned int
#define LCD P0 sbit RS = P3^0; //数据/指令选择
sbit RW = P3^1; //读写
sbit E = P3^2;
void delay(uint tm) { uint i,j; for(i=0;i<tm;i++) { for(j=0;j>100;j++) { } } }
void ReadData(uchar Data) //读数据
{ }
void WriteData(uchar Data) //写数据
{ RS = 1; E = 0; RW = 0; LCD = Data; delay(5); E = 1; delay(1); E = 0; RW = 1; } void ReadCommand(uchar com) //读指令
{ RS = 1; RW = 0; E = 0; com = LCD; RW = 0; E = 0; }
void WriteCommand(uchar com) //写指令
{ RS = 0; E = 0; RW = 0; LCD = com; delay(5); E = 1; delay(1); E = 0; RW = 1; }
void init() //初始化
{ delay(15); WriteCommand(0x38); delay(5); WriteCommand(0x38); delay(5); WriteCommand(0x38); //上面这段可要可不要
WriteCommand(0x38); //功能设置
WriteCommand(0x08); //关闭显示
WriteCommand(0x06); //输入方式设置
WriteCommand(0x0C); WriteCommand(0x01); //清屏
delay(50);
} void Display(uchar *a) { while(*a != '\0') { WriteData(*a); a++; } }
void main() { init(); Display(" hello world"); while(1) { } }
|
阅读(4152) | 评论(0) | 转发(0) |