📄 disp.c
字号:
//disp.c
//#include <reg52.h>
#include "common.h"
#include "disp.h"
sbit RS = P3^3;
sbit DISPE = P3^4;
void initcom()
{
TMOD = 0x20;
TH1 =0xfd;
TL1 = 0xfd;
TCON = 0x40;
SCON = 0x50;
PCON = 0;
TR1= 1;
// IE = 0x90;
loadmsg("ok!\r\b",5);
}
void loadmsg(uchar *msg,uchar len)
{
uchar i;
for(i = 0;i<len;i++)
{
if(*msg=='\0')
break;
SBUF = *msg;
while(TI==0);TI=0;
msg++;
}
}
/*输入并显示字符dispd*/
void writedispdata(uchar dispd)
{
RS = 1;
DISPE = 1;
LCDADD = dispd;
delay(1);
DISPE = 0;
delay(200);
}
//
/*输入初始化命令字dispc*/
void writedispcmd(uchar dispc)
{
RS = 0;
DISPE = 1;
LCDADD = dispc;
delay(1);
DISPE = 0;
delay(200);
}
//
/*初始化lcd*/
void initlcd(void)
{
writedispcmd(0x01);
writedispcmd(0x38);
writedispcmd(0x06);
writedispcmd(0x0e);
writedispcmd(0x01);
}
void dispinfo(uchar line,uchar * ch)
{
if(line == 1)
{
writedispcmd(0x80);
while(*ch != '\0')
{
writedispdata(*ch);
ch++;
}
}
else if(line == 2){
writedispcmd(0xc0);
while(*ch != '\0')
{
writedispdata(*ch);
ch++;
}
}
else{
while(*ch != '\0')
{
writedispdata(*ch);
ch++;
}
}
}
void disphex(uchar hex)
{
uchar i;
i = hex>>4;
i &= 0x0f;
if(i<10)
writedispdata(0x30|i);
else
writedispdata(0x37+i);
i = hex&0x0f;
if(i<10)
writedispdata(0x30|i);
else
writedispdata(0x37+i);
}
htoc(uchar h,uchar * chh,uchar *chl)
{
if((h>>4)<=0x09)
*chh = 0x30|(h>>4);
else
*chh = 0x37+(h>>4);
h &= 0x0f;
if(h<=0x09)
*chl= 0x30|h;
else
*chl = 0x37+h;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -