📄 uartmaster.c
字号:
#include <c8051f040.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sfr16 RCAP2=0XCA;
sfr16 TMR2=0XCC;
xdata uchar aa[6]={0xCC,0xCC,0xCC,0xCC,0xCC,0xCC};
xdata uchar res[6];
xdata uchar k;
xdata uchar t;
enum {aalen=6};
void uart0_ini();
void t1_ini();
void t1_baud(uchar t1h);
void t2_ini();
void t2_baud(uint t2reload);
void config(void);
void uart0_ini(){
SFRPAGE=0X00;
SADEN0=0X00;
SADDR0=0X00;
SSTA0=0X01;
SCON0=0X50;
SCON0&=0XFC;
IE|=0X10;
t1_ini();
t2_ini();
}
void t1_ini(){
SFRPAGE=0x00;
CKCON=0x10;
TMOD=0x20;
TCON=0x40;
}
void t1_baud(uchar val){
SFRPAGE=0x00;
TH1=~val+1;
TL1=TH1;
}
void t2_ini(){
SFRPAGE=0X00;
TMR2CF=0X08;
TMR2CN=0X04;
}
void t2_baud(uint t2reload){
SFRPAGE=0X00;
RCAP2=~t2reload+1;
TMR2=RCAP2;
}
void config(void){
WDTCN=0X07;
WDTCN=0XDE;
WDTCN=0XAD;
SFRPAGE=0X0F;
XBR0=0X04;
XBR1=0X00;
XBR2=0X40;
XBR3=0X00;
SFRPAGE=0X0F;
P0MDOUT=0X00;
P1MDIN=0XFF;
SFRPAGE=0X0F;
CLKSEL=0X00;
OSCXCN=0X00;
OSCICN=0X84;
}
void main(){
config();
uart0_ini();
t1_baud(10);
t2_baud(10);
EA=1;
k=0;
t=0;
SFRPAGE=0X00;
SBUF0=aa[k];
while(1){
if(k>=aalen){
SFRPAGE=0X00;
TR2=0;
}
if(t>=aalen){
SFRPAGE=0X00;
TR1=0;
}
}
}
void uart0_ISR() interrupt 4{
SFRPAGE=0X00;
if(SCON0&0X01){
res[t]=SBUF0;
t++;
SCON0&=0XFE;
}
if(SCON0&0X02){
k++;
SBUF0=aa[k];
SCON0&=0XFD;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -