📄 main_trans.c
字号:
#include<REG51.H>
typedef unsigned char uchar;
sbit RW = P1^0;
sbit CS0 = P1^1;
sbit RS = P1^2;
sbit FI2 = P1^3;
sbit D0 = P1^4;
sbit D1 = P1^5;
sbit D2 = P1^6;
sbit D3 = P1^7;
sbit TEST = P3^7;
uchar st , buff;
char Read_Status();
char Read_Data();
void Write_Control(uchar);
void Write_Data(uchar);
void delay();
void Ins_delay();
void Serial_Init();
void extern0_ISR() interrupt 0{} /* not used */
void timer0_ISR () interrupt 1{} /* not used */
void extern1_ISR() interrupt 2
{
Read_Status();
st = 0;
}
void timer1_ISR () interrupt 3{} /* not used */
void serial_ISR () interrupt 4
{
if(RI)
{
RI = 0;
buff = SBUF;
}
else
TI = 0;
}
main()
{
buff = 0xFF;
st = 1;
delay();
Serial_Init();
IT1 = 1;
EX1 = 1;
TI = 1;
Read_Status();
Write_Control(0x00);
Write_Control(0xD0);
Write_Control(0x00);
Read_Status();
while(1)
{
if(buff != 0xFF)
{
buff *= 16;
Write_Data(buff);
buff = 0xFF;
/*delay();
TEST = 1;
st = Read_Status();
while(!(st & 0x20))
{
delay();
st = Read_Status();
}
TEST = 0;
*/
}
delay();
}
}
char Read_Status()
{
char ReSt;
P1 = 0xF5;
FI2 = 1;
Ins_delay();
ReSt = P1;
FI2 = 0;
CS0 = 1;
ReSt &= 0xF0;
return ReSt;
}
char Read_Data()
{
char ReSt;
P1 = 0xF1;
FI2 = 1;
Ins_delay();
ReSt = P1;
FI2 = 0;
CS0 = 1;
ReSt &= 0xF0;
return ReSt;
}
void Write_Control(uchar WC)
{
WC &= 0xF0;
WC |= 0x04;
P1 = WC;
Ins_delay();
FI2 = 1;
Ins_delay();
FI2 = 0;
Ins_delay();
P1 = 0xF7;
}
void Write_Data(uchar WC)
{
WC &= 0xF0;
WC |= 0x00;
P1 = WC;
Ins_delay();
FI2 = 1;
Ins_delay();
FI2 = 0;
Ins_delay();
P1 = 0xF7;
}
void delay()
{
int i = 0;
for(i = 0; i < 100;)
i++;
for(i = 0; i < 100;)
i++;
}
void Ins_delay()
{
uchar i;
i = 0;
for(; i < 10; i++)
;
}
void Serial_Init()
{
PCON = 0;
SCON = 0xD0;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
EA = 1;
ES = 1;
TR1 = 1; //T1 Running flag
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -