#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar num;
/*void delay(uint z)
{
uint x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
} */
void UART_init()
{
TMOD = 0x20; //T1工作模式2 8位自動重裝
TH1 = 0xfd;
TL1 = 0xfd; //比特率9600
TR1 = 1; //啟動T1定時器
SM0 = 0;
SM1 = 1; //串口工作方式1 10位異步
REN = 1; //串口允許接收
EA = 1; //開總中斷
ES = 1; //串口中斷打開
}
void main()
{
UART_init(); //串口初始化
while(1);
}
void UART() interrupt 4
{
if(RI) //檢測是否接收完成
{
num = SBUF; //num 取出接收緩存器的值
P1 = SBUF;
num++;
RI = 0;//因為接受了以后RI就變?yōu)榱?
SBUF = num;
while(!TI);
TI = 0;
}
}
我買的是清翔電子的開發(fā)板,這程序也是它原本配套的
現(xiàn)在的問題是:我輸入了一個2,但亮的燈卻是2,3,6,7,
還有就是我輸入一個02,它返回一個13,但視屏教程上它返回的又是03,這是怎么回事啊
|