📄 tlc5510_c51.c
字号:
#include <SST89x5x4.H>
#include<intrins.h>
#define lcd_bus P1
#define uint unsigned int
#define uchar unsigned char
//sbit clk=P3^7;
sbit rs=P0^0;
sbit rw=P0^1;
sbit e =P0^2;
//sbit ee=P2^4;
uchar temp[16];
delay(uchar d)
{
while(--d);
}
/**********判断忙标志,返回的是一个位BF**********/
bit lcd_busy(void)
{
uchar bflag;
rs=0;
rw=1;
_nop_();
e=1;
_nop_();
lcd_bus=0xff;
bflag=lcd_bus;
e=0;
return(bit)(bflag&0x80); //BF=1 busy
}
/*********写命令,有两个参数,第一个是要写的命令控制字,
第二个是用来控制是否进行忙标志的判断。
busyflag=1:判断;为 0:不判断****************/
void lcd_wrcmd(uchar cmd)
{
while(lcd_busy());
lcd_bus=cmd;
rs=0;
rw=0;
_nop_();
e=1;
_nop_();
_nop_();
e=0;
}
/************向液晶片写数据***************/
void lcd_wrdata( uchar lcddata)
{
while(lcd_busy());
lcd_bus=lcddata;
rs=1;
rw=0;
_nop_();
e=1;
_nop_();
_nop_();
e=0;
}
void lcd_ini(void)
{
lcd_wrcmd(0x38);
delay(100);
lcd_wrcmd(0x0c);
delay(100);
lcd_wrcmd(0x06);
delay(100);
lcd_wrcmd(0x01);
delay(100);
}
void display(uchar cmd,uchar code *str)
{
uchar i=0;
lcd_wrcmd(cmd);
while(str[i]!='\0')
{
lcd_wrdata(str[i]);
i++;
}
}
serial() interrupt 4 using 2
{
uchar i;
ES=0;
for(i=0;i<16;i++)
{
while(RI==0);
RI=0;
temp[i]=SBUF;
}
ES=1;
}
main()
{
unsigned char k=0;
uchar i;
uchar code s[]="Just a Test!";
SCON=0x50;
TMOD=0X20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
ES=1;
EA=1;
lcd_ini();
display(0x84,s);
while(1)
{
lcd_wrcmd(0xc0);
for(i=0;i<16;i++)lcd_wrdata(temp[i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -