📄 serial.c
字号:
#include "SERIAL_H.H"
/*------------------------------------------------------------------
init serial
------------------------------------------------------------------*/
void serial_init(void)
{
EA=0;
AUXR |=0x00; //seial 12 time
SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x80; //SMOD=1; X2-->
TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz
// IE |= 0x90; //Enable Serial Interrupt
ES=1;
TR1=1; // timer 1 run
EA=1;
send_ok_flag=0;
receive_ok_flag=0;
}
/*------------------------------------------------------------------
transmit one char
------------------------------------------------------------------*/
void putchar(uchar t_c)
{
SBUF=t_c;
while(send_ok_flag==0);
send_ok_flag=0;
}
void putword(uint value)
{
putchar((uchar)(value>>8));
delay10ms(60);
putchar((uchar)value);
}
/*------------------------------------------------------------------
receive one char
------------------------------------------------------------------*/
uchar getchar(void)
{
while(receive_ok_flag==0);
receive_ok_flag=0;
return(r_c);
}
uint getword(void)
{
uint value1,value2;
value1=getchar();
// delay10ms(50);
value2=getchar();
// delay10ms(50);
value1=(value1<<8)|value2;
return(value1);
}
/*------------------------------------------------------------------
serial interrupt sub program
------------------------------------------------------------------*/
void serial_isr(void) interrupt 4
{ EA=0;
if(TI!=0)
{ TI=0;
send_ok_flag=1;
}
if(RI!=0)
{ RI=0;
r_c=SBUF;
receive_ok_flag=1;
}
EA=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -