#include <reg52.h>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位以上不行?
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>