登录|立即注册|使用QQ帐号登录
论坛 > 51单片机
发帖|
看2759|回2|收藏
楼主 ID:407591 只看他
2018-10-10 16:45
/*
串口收发程序,把发送的数据接收后用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;
}
}


沙发 ID:284952 只看他
2018-10-11 23:16
有用
板凳 ID:384562 只看他
2019-8-28 13:09
可以啊

51黑电子论坛

Powered by Discuz! X3.1

首页|标准版|触屏版|电脑版