#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就变为了1
SBUF = num;
while(!TI);
TI = 0;
}
}
我买的是清翔电子的开发板,这程序也是它原本配套的
现在的问题是:我输入了一个2,但亮的灯却是2,3,6,7,
还有就是我输入一个02,它返回一个13,但视屏教程上它返回的又是03,这是怎么回事啊
|