打印

51串口中断求思路

[复制链接]
1193|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DT天若有情|  楼主 | 2017-7-6 20:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//这是自己写的串口中断。计算机发一个数十六进制00给单片机,单片机蜂鸣器可以响,同时计算机可以显示I GET ....
现在我有这样一个想法,计算机输入1,蜂鸣器每隔0.5s叫一次,计算机输入2,蜂鸣器1s叫一次,计算机输入3,蜂鸣器停止叫;
我觉得实现这个用串口依次排查会不会好点,中断也可以实现吗?
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D1=P2^3;
uchar code table[]="I GET ";
uchar flag,A,i;
void init();
void main()
{
init();
while(1)
{
  if(flag==1)
  {
   ES=0;
   flag=0;
   for(i=0;i<6;i++)
   {
    SBUF=table[i];
    while(!RI);
    RI=0;
   }
   SBUF=D1;
   while(!RI)
   RI=0;
   ES=1;
  }
}
}
void init()
{
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
EA=1;
ES=1;
TR1=1;
SM0=0;
SM1=1;
REN=1;
}
void zhongduan() interrupt 4
{
RI=0;
D1=SBUF;
flag=1;
}

相关帖子

沙发
whirt_noob| | 2017-7-7 07:58 | 只看该作者
`在侃单片机论坛上有个帖子有,搜一下叫吴坚宏的

使用特权

评论回复
板凳
mcu5i51| | 2017-7-7 09:04 | 只看该作者
D1是个位变量,好像有些问题

使用特权

评论回复
地板
ningling_21| | 2017-7-7 09:14 | 只看该作者
不行,位变量有问题

使用特权

评论回复
5
fengfeng的恒| | 2017-7-7 09:19 | 只看该作者
DI是bit变量,有问题;你的蜂鸣器部分呢?

使用特权

评论回复
6
hanlie2345678| | 2017-7-7 15:21 | 只看该作者
这样写是不行啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

23

帖子

0

粉丝