21 LCD1602
?
/* Main.c file generated by New Project wizard
?*
?* Created: ? 周日 4月 23 2023
?* Processor: AT89C51
?* Compiler: ?Keil for 8051
?*/
#include<reg51.h>
#define uchar ?unsigned char
#define uint ?unsigned int
?? ?
#define LCD_DB P0 // - - P0 = DB0~DB7
sbit LCD_RS=P2^0;?? ??? ?
sbit LCD_RW=P2^1;
sbit LCD_E=P2^2;
uchar code dis1[] = {" ?Jia shuheng ? "};
uchar code dis2[] = {" ?159xxxx5255 ? "};
void LCDWriteC(uchar cmd);
void LCDwritedat(uchar dat);
void LCD_delayms(uchar ms);
void LCDInit(void)
{ ?
?LCDWriteC(0x38); //com6 ?data_bus=8 display 2 lines
?LCD_delayms(2);
?LCDWriteC(0x08); //com4?
?LCD_delayms(2);?? ?
?LCDWriteC(0x01); //com1 clear display
?LCD_delayms(2);
?LCDWriteC(0x06); //com3 ?right shift
?LCD_delayms(2);
?LCDWriteC(0x0c); ?//com4 ?display function?
}
//DELAY FUNCTION
void LCD_delayms(uchar ms)
{
?uchar ?i,j;
?for(i=0;i<ms;i++)
?for(j=0;j<57;j++)
?;
}
void LCDWriteC(uchar cmd)
{
LCD_E=0;?
LCD_RS=0; // - - 指令
LCD_RW=0; // - - 寫入
?? ?
LCD_DB=cmd;
LCD_delayms(2);
LCD_E=1; // - - 允許
LCD_delayms(5);
LCD_E=0;
}
void LCDwritedat(uchar dat)
{
LCD_delayms(5);
LCD_RS=1;// - - 數據
LCD_RW=0;// - - 寫入
?? ?
?? ?LCD_DB=dat;
?? ?LCD_delayms(5);
?? ?
?? ?LCD_E=1; ?// - - 允許
?? ?LCD_delayms(5);
?? ?LCD_E=0;
?? ?}
void main(void)
{
uchar i;
LCDInit();
while(1)
?? ?{
?? ?LCDWriteC(0x80);// 發送命令,規定顯示的位置。
?? ?for(i=0;i<16;i++)
?? ?LCDwritedat(dis1[i]) ;// 發送顯示的數據。
?? ??? ?
?? ?LCDWriteC(0x80+0x40);// 發送命令,規定顯示的位置。
?? ?for(i=0;i<16;i++)
?? ?LCDwritedat(dis2[i]) ;// 發送顯示的數據。
?? ?}
}
?
總結
以上是生活随笔為你收集整理的21 LCD1602的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [独有源码]java-jsp刀具管理系统
- 下一篇: 广电炮轰宽带市场垄断幕后