找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 738|回复: 2
打印 上一主题 下一主题
收起左侧

单片机外部中断1串口输出,和定时器t0采样冲突怎么解决啊

[复制链接]
跳转到指定楼层
楼主
ID:1070814 发表于 2023-4-10 23:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一开串口中断,就没有采样数据了

单片机源程序如下:
void main()
        {
   config();//chuankou chushihua
   EX1=1;//zhongduan chushihua
   IT1=1;
   EA=1;
                ADC=0;
          timer0init();
                while(1)
                {
                        send_byte(ADC_cvt);
                        seg_display(ADC_cvt);//shumaguan xianshi
            ADC=0;
                }        
}
void timer0init()
        {
  TMOD |= 0x01;
        TH0 = (65536-45872)/256;
        TL0 =(65536-45872)%256;
  EA = 1;
        ET0 = 1;
        TR0 = 1;        
}
        
void Timer0() interrupt 1 using 1
        {        
        TH0 = (65536-45872)/256;
        TL0 =(65536-45872)%256;
  ADC_flag++;
        if(ADC_flag>=20)
                        {
                        ADC_flag=0;
                        D1=~D1;
      ADC_cvt=ADC;               
                  }
        }

void config()//chuankou chushihua
{
        SCON=0X50;
        TMOD&=0X0f;
        TMOD|=0X20;
        TH1=256-(11059200/12/32)/9600;
        TL1=TH1;
        ET1=0;
        ES=1;
        TR1=1;
}

void send_byte(unsigned char xbyte)
{
        unsigned char i=0;
        SBUF=xbyte;
        while(~TI);
        TI=0;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2023-4-11 06:37 | 只看该作者
如果串口只发不收,就不必开串口中断。采样结束置一个标志,主函数中查询这个标志再发串口数据。其实根本原因是程序构架不合理所致。
回复

使用道具 举报

板凳
ID:161164 发表于 2023-4-11 10:09 | 只看该作者
你开了串口中断
但代码里没有中断函数
于是跑飞了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表