📄 smc1601.c
字号:
//lcd液晶显示器的使用
/*线路图
89C58RD+ lcd
--------
| 8
DataPort.0-1.7|=========== D0-7
|
P3.0|----------- RS
P3.1|----------- R/W
P3.2|----------- E
| -- /CS
| |
| ---
|
RESET |
--------
*/
#include <reg52.h>
#include<intrins.h>
#define DataPort P1 // 数据端口
sbit lcd_E = P3^2; //E
sbit lcd_RW = P3^1; //RW
sbit lcd_RS = P3^0; //RS
#define Busy 0x80 //LCD_RAM Addriess
#define L 0 //L代表O
#define H 1 //H代表1
unsigned char x=0; //x轴显示内容
unsigned char y=0; //y轴显示位
unsigned char a;
unsigned char lcd_word[]="HelloWangJianBin!";
///////////////函数声名/////////////////////////////////
void lcd_busy(); //忙检测
void delay5ms(); //5MS延时
void delay400ms(); //400MS延时
void nop(); //空操作延时
void lcd_reset(); //LCD复位1
void lcd_display();//LCD显示,里面包LCD寻址数据
void lcd_data(); //LCD数据
void lcd_address(); //LCD寻址
void WaitForEnable();
////////////////////////////////////////////////
void main(){
lcd_reset();
while(1){
// lcd_reset();
delay400ms();
lcd_display();
delay400ms(); //主程序就是一个死循环
delay400ms();
}
}
/////////////////////////////////////////////////////
void lcd_reset(){ //复位
unsigned char n;
delay5ms();
delay5ms();
delay5ms();
for(n=3;n>0;n--){
a=0x38;
lcd_address();
delay5ms();
}
a=0x08;
lcd_busy();
lcd_address();
a=0x01;
lcd_busy();
lcd_address();
a=0x06;
lcd_busy();
lcd_address();
a=0x0c;
lcd_busy();
lcd_address();
}
void lcd_busy() {
DataPort = 0xff;
lcd_RS =0;
lcd_RW = 1;
nop();
lcd_E = 1;
nop();
nop();
while( DataPort & Busy );
lcd_E = 0;
}
void lcd_display(){ //显示
// y=0x47;
a=y|0x80;
if(y>=0x9){
a=0x80|(y+0x37);
}
if(y>=0xc7){y=0;};
y++;
P0=a;
lcd_address(); //地址
delay400ms();
if (x>=16){
x=0;}
a=lcd_word[x];
lcd_data(); //数据
x++;
delay400ms();
}
void lcd_data(){
lcd_busy();
lcd_RS=H;
lcd_RW=L;
nop();
DataPort=a;
nop();
lcd_E=H;
nop();
lcd_E=L;
}
void lcd_address(){
lcd_busy();
lcd_RS=L;
lcd_RW=L;
DataPort=a;
lcd_E=H;
nop();
lcd_E=L;
}
void delay5ms() {
unsigned int i = 5552;
while(i--);
}
void nop(){
unsigned char i=5;
while(i--);
}
void delay400ms(){
unsigned int i = 100;
int j;
while(i--);
{
j=7269;
while(j--);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -