#include <STC12C5A60S2.H>
#define uchar unsigned char
#define uint unsigned int
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_EN=P4^5;
sbit Busy=P0^7;
void delay_ms(uint x)
{
int i,j;
for(j = 0; j < x; j++)
{
for(i = 0; i < 110; i++)
{
}
}
}
void mang(void)
{
while(1)
{LCD_RS=0;
LCD_RW=1;
LCD_EN=0;
P0=0xFF;
LCD_EN=1;
if((P0&Busy)==0)
break;
}
}
void write_dat(uchar dat)
{
mang();
LCD_RS=1;
LCD_RW=0;
LCD_EN=1;
delay_ms(5);
P0=dat;
delay_ms(5);
LCD_EN=0;
}
void write_cmd(uchar cmd)
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=1;
delay_ms(5);
P0=cmd;
delay_ms(5);
LCD_EN=0;
}
void lcd_init()
{
write_cmd(0x30);//基本操作指令
delay_ms(5);
write_cmd(0x0c);//打开显示,光标关闭
delay_ms(5);
write_cmd(0x01);//清除LCD显示类容
delay_ms(5);
}
void display(uchar x,uchar y,uchar *seg)
{
uchar i;
uint t=0;
switch(x)
{
case 1: i=0x80; break; //第一行
case 2: i=0x90; break; //第二行
case 3: i=0x88; break; //第三行
case 4: i=0x98; break; //第四行
default : break;
}
i=i+y-1; //确定列号
write_cmd(i);
while(seg[t]!=' ')
{
write_dat(seg[t]); //写入需要显示字符的显示码
t++;
}
}
uchar code string_1[]="hi";
main()
{
lcd_init();
display(1,2,string_1);
while(1);
}
-
-
SCH-2_3.pdf
下载积分: 积分 -1 分
138.77 KB, 下载次数: 4, 下载积分: 积分 -1 分
一周热门 更多>