📄 io.c
字号:
#include<io.h>
#include<reg52.h>
#include<stdio.h>
Interrupt(void uart(void),4)
{
if(RI==1)
{
rx_buffer_wr(SBUF);
RI=0;
}
}
/*char _getkey(void)
{
char c;
c=rx_buffer_rd();
return(c);
}
/*void rs232output(char tx_buffer_char[50])
{
uchar i;
for(i=0;i<50;i++)
{
SBUF=tx_buffer_char[i];
WAIT_EO_TX;
if(tx_buffer_char[i]=='\n')
break;
uart_tx(0x0d);
}
uart_tx(0x0d);
}*/
void uart_rx_enable(void)
{
rx_index_wr=rx_index_rd=nb_rx_data=0;
WAIT_EO_TX;
uart_tx(XON);
ES=1;
}
void uart_rx_disable(void)
{
ES=0;
TI=1;
}
void rx_buffer_wr(uchar rx_data)
{
nb_rx_data++;
rx_buffer[rx_index_wr]=rx_data;
rx_index_wr=(rx_index_wr+1)%RX_BUF_SIZE;
if((tx_off==FALSE)&&(nb_rx_data>XOFF_THRESH))
{
uart_tx(XOFF);
tx_off=TRUE;
}
}
uchar rx_buffer_rd(void)
{
uchar rx_data;
//EA=0;
nb_rx_data--;
//EA=1;
rx_data=rx_buffer[rx_index_rd];
rx_index_rd=(rx_index_rd+1)%RX_BUF_SIZE;
data_cnt++;
if(data_cnt==0) uart_tx('.');
//EA=0;
if((tx_off==TRUE)&&(nb_rx_data<XON_THRESH))
{
uart_tx(XON);
tx_off=FALSE;
}
//EA=1;
return(rx_data);
}
void uart_tx(uchar tx_data)
{
SBUF=tx_data;
WAIT_EO_TX;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -