📄 shuangji2.c
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define date P1
sbit rw = P2^1;
sbit rs= P2^0;
sbit e = P2^2 ;
uchar tab[16]={"789/456*123-C0=+"};
void delay(uint i);
uint duz(void);
void chushihua(void);
void xiem(uint pp0,uint busy)reentrant;
void xies(uint pp0);
void xiechar(uint x,uint y,uchar zifu);
void xiestring(uint x,uint y,uchar *string);
main()
{uchar i;
delay(50);chushihua();
SCON=0x90;PCON=0X00;RI=0;
for(i=1;i<32;i++){while(RI==0);RI=0;xiechar(i,0,tab[SBUF]);}
}
void delay(uint i)
{uint j;
for(;i>0;i--)
for(j=300;j>0;j--);}
uint duz(void)
{uint st;
date=0;rs=0;rw=1;e=0;delay(20);e=1;
st=((date)&(0x80));while (st);return date;}
void xiem(uint pp0,uint busy)reentrant
{
if(busy) duz();date=pp0;
rs=0;rw=0;
e=0;e=0;e=1;}
void xies(uint pp0)
{duz();rs=1;rw=0;date=pp0;e=0;e=0;e=1;}
void xiechar(uint x,uint y,uchar zifu)
{y&=0x01;x&=0x0f;
if (x==0xF) x=0x00;
if (y) x |= 0x40;
x |= 0x80;
xiem(x,0);xies(zifu) ;}
void xiestring(uint x,uint y,uchar *string)
{ unsigned char len;
len = 0;
y &= 0x1;
x &= 0xF;
while (string[len]!='\0')
{
if (x <0xF)
{
xiechar(x, y, string[len]);
len++;
x++;
}
else {y=1;x=0;}
}
}
void chushihua(void)
{ date = 0;
xiem(0x38,0);
delay(20);
xiem(0x38,0);
delay(20);
xiem(0x38,0);
delay(20) ;
xiem(0x38,1);
xiem(0x08,1);
xiem(0x01,1);
xiem(0x06,1);
xiem(0x0C,1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -