打印

一个c51中断问题

[复制链接]
1136|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
快乐小糊涂|  楼主 | 2011-12-19 21:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要求:通过串口不同的频率驱动蜂鸣器发声。
现象:不同的频率之间切换时有时蜂鸣器先停止发声,过段时间才会以新的频率发声。
中断程序如下:
void T0_TIME() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num++;
if(num==temp)              //改变temp的值改变驱动频率
   {
    num =0;
    spk=~spk;
    P0= Led7_lab[temp];   //数码管测试时,频率改变后蜂鸣器停止发声的时候
                                       数码管值未改变,蜂鸣器发声后才会改变
   }
   //P0= Led7_lab[temp]; //数码管测试时,频率改变后数码管值立即改变
}

为什么进入中断后if{}有时不能立即执行?

相关帖子

沙发
ayb_ice| | 2011-12-20 07:58 | 只看该作者
没有看到什么串口中断

使用特权

评论回复
板凳
liang7143| | 2011-12-20 08:51 | 只看该作者
估计LZ 是想通过串口 发送temp的值

使用特权

评论回复
地板
killvx| | 2011-12-20 08:54 | 只看该作者
代码不全啊
if进入不是有条件么 num==temp

使用特权

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

本版积分规则

0

主题

29

帖子

1

粉丝