/*
,把發送的數據接收后用P1口的LED燈以二進制的形式顯示
并且蜂鳴器發出提示音,再把接收的數據加1并發出。
使用STC ISP軟件界面上的串口助手,選擇對應的串口號,
設置波特率為9600,選擇HEX模式發送和接收
*/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit beep = P2^3;//蜂鳴器接口
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;
beep = 0;
delay(100);
beep = 1;//蜂鳴器發出滴提示音
num++;//把接收的數據加1并發送
RI = 0;
SBUF = num;
while(!TI);
TI = 0;
}
}
|