⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lm016.c

📁 单片机与LCD1602
💻 C
字号:
 #include <reg51.h>
 #include <stdio.h>
 #include <math.h>
#define unchar unsigned char
#define Busy    0x80 //用于检测LCM状态字中的Busy标识 
sbit e=P2^0;     //LM0162的e引脚
sbit rw=P2^1;    //LM0162的rw引脚
sbit rs=P2^2;    //LM0162的rs引脚
void readstatus(void);
void delay(void)
{
 int i;
 for(i=0;i<1000;i++);
}
/*延时5ms*/
void delay5ms(void)    
{    
 unsigned int TempCyc = 5552;    
 while(TempCyc--);    
} 
/*向LM1602写命令字*/
void write_c(unchar command)
{
 readstatus();
 rs=0;
 rw=0;
 P1=command;
 e=0;
 e=0;
 e=0;
 e=1;
 delay();
}
/*向LM1602写数据*/
void write_d(unchar dat)
{
 readstatus();
 rs=1;
 rw=0;
 P1=dat;
 e=0;
 e=0;
 e=0;
 e=1;
 delay();
}
/**读状态**/     
void readstatus(void)    
{    
 P1 = 0xFF;     
 rs = 0;    
 rw = 1;    
 e  = 0;    
 e  = 0;    
 e  = 1;    
 while (P1 & Busy); //检测忙信号     
}    
main()
{
 write_c(0x38);//设置为8总线16*2 5*7点阵
 delay5ms();
 write_c(0x38);//设置为8总线16*2 5*7点阵
 delay5ms();
 write_c(0x38);//设置为8总线16*2 5*7点阵
 delay5ms();
 write_c(0x0c);//开显示,光标闪烁
 write_c(0x01);//清屏幕
 while(1)
 { 
 //write_c(0x01);//清屏幕
 write_c(0x80);	 
  write_d(0x35);//5
 write_d(0x37);//7
 write_d(0x30);//0
 write_d(0x31);//1
 write_d(0x20);//空格
 write_d(0x46);//f
 write_d(0x61);//a
 write_d(0x63);//c
 write_d(0x74);//t
 write_d(0x6F);//o
 write_d(0x72);//r
 write_d(0x79);//y
 write_d(0x20);//空格
 write_d(0x6f);//O
 write_d(0x66);//f
 write_c(0xc6);//从第二行第三列开始显示
 write_d(0x50);//P
 write_d(0x4c);//L
 write_d(0x41);//A
 write_d(0x2c);//,
 write_d(0x33);//3
 write_d(0x41);//A
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -