#include typedef unsigned char uint32; typedef unsigned int uint16; uint32 num = 0; void UART_init(void) /** UART初始化函数, 波特率:9600*/ { SCON = 0x50;//同例1 TMOD = 0x20; TH1 = 0xFD; TL1 = 0xFD; TR1 = 1; ES = 1; //中断使能打开 EA = 1; } main() { UART_init();//调用特殊功能寄存器初始化函数 while(1);}//等待, void interrupt_uart() interrupt 4 { if(TI)// 发送中断标志TI,发送完,该位由硬件置1。 { TI = 0;//发清零 REN = 1;}//发送完允许接受, if(RI)//接受进中断,该位由硬件置1。执行本if内 { RI = 0;//清零 num = SBUF;//把数据取出来 num++; SBUF = num; //数据发送出去 REN = 0; } }//发送的时候禁止接受 用串口助手:输入两位加1显示,但是输入1位或2位以上不行?
|