24小时热门版块排行榜    

Znn3bq.jpeg
查看: 700  |  回复: 2

a6726188

新虫 (初入文坛)

[求助] 求解答初学C51单片机的一个小程序

问题:
同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,
1k(hz)的方波。

#include<reg52.h>
sbit beep=P2^3;                        // 定义蜂鸣器
long int code table[]=                    // 定义发出不同频率的各个时间长度table表,因为定义晶振为12MHZ,所以一个周期也正好为1US。
{
1000000,100000,20000,10000,5000,2500,1250
};
long int num1,num2;
char num;
void main()
{                                                           
     TMOD=0x11;                                         //定义定时器0,1工作方式1
     EA=1;ET0=1;ET1=1;                    
         TH0=(65535-50000)/256;                 //装载定时器0初值,50ms为一次中断
     TL0=(65535-50000)%256;
         TH1=(65535-1)/256;                     //装载定时器1初值,1us为一次中断
     TL1=(65535-1)%256;
         TR0=1;                                                 //打开定时器0
         while(1)
         {
         if(num1==6)                                  //判断定时器0中断了6次,也就是300ms
         {
           TR0=0;                                          //关闭定时器0
           TR1=1;                                          //打开定时器1
           beep=0;                                          //蜂鸣器报警
           num1=0;                                              //让num1清零,以备再次计数
         }  
           if(num2==table[num])                  //判断当时间达到第num个秒数
           {
           TR1=0;                                      //关闭定时器1
           TR0=1;                                          //打开定时器0
           num2=0;                                          //让num2清零,以备再次计数
           beep=1;                                          //关闭蜂鸣器
           num++;                                          //让num循环计数
           }
          if(num==6)
          {
          num=0;
          }
          
         }                
}

void T0_time()interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num1++;
}
void T1_time()interrupt 3
{
TH1=(65535-1)/256;
TL1=(65535-1)%256;
num2++;
}
}
                运行后蜂鸣器一直在响,不间断,求解答指导
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

15212223817

铁杆木虫 (著名写手)

t1的中断可能是一直没进。

发自小木虫Android客户端
2楼2018-01-15 14:13:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

15212223817

铁杆木虫 (著名写手)

别学51了,学学TI的DSP或者飞思卡尔的吧

发自小木虫Android客户端
3楼2018-01-15 14:27:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 a6726188 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 0856专硕求调剂 希望是a区院校 +22 好好休息好不好 2026-04-09 25/1250 2026-04-12 17:09 by ajpv风雷
[考研] 313求调剂 +5 余摆摆是大哥 2026-04-11 5/250 2026-04-12 10:34 by 猪会飞
[考研] 286求调剂 +26 Faune 2026-04-06 26/1300 2026-04-12 10:24 by lhj2009
[考研] 297求调剂 +17 ORCHID1 2026-04-10 18/900 2026-04-12 09:59 by zhouwenxian
[考研] 调剂 +10 只叙离别辞 2026-04-09 12/600 2026-04-11 20:57 by 逆水乘风
[考研] 调剂 +5 文道星台 2026-04-11 5/250 2026-04-11 15:01 by 凯凯要变帅
[考研] 求调剂 +6 archer.. 2026-04-09 8/400 2026-04-11 10:55 by zhq0425
[考研] 085404 293求调剂 +9 勇远库爱314 2026-04-06 10/500 2026-04-11 10:36 by 紫曦紫棋
[考研] 283求调剂,工科! +12 苏打水7777 2026-04-08 12/600 2026-04-11 10:28 by 逆水乘风
[考研] 0854调剂 +8 950824he@ 2026-04-09 8/400 2026-04-11 10:11 by zhq0425
[考研] 085506-求调剂-285分 +3 雷欧飞踢 2026-04-08 3/150 2026-04-11 08:37 by zhq0425
[考研] 调剂 +12 卷卷卷心菜_ 2026-04-09 13/650 2026-04-10 22:36 by Ftglcn90
[考研] 一志愿矿大,材料工程专硕314分,0856可调都可以 +15 无懈可击的巨人 2026-04-09 15/750 2026-04-10 18:10 by hmn_wj
[考研] 296求调剂 +6 汪!?! 2026-04-08 6/300 2026-04-10 11:02 by mattzhming
[考研] 本科西工大 0856 324求调剂 +10 wysyjs25 2026-04-09 11/550 2026-04-10 08:37 by 5268321
[考研] 材料调剂 +14 一样YWY 2026-04-06 14/700 2026-04-08 23:00 by 猪会飞
[考研] 材料工程专业日语生求调剂 +9 111623 2026-04-07 9/450 2026-04-07 23:31 by 一只好果子?
[考研] 344求调剂 +11 魏子per 2026-04-07 11/550 2026-04-07 23:01 by JourneyLucky
[考研] 333求调剂 +6 合乘杨习夕 2026-04-06 6/300 2026-04-07 09:44 by 猪会飞
[考研] 22408 331分求调剂 +4 y__1 2026-04-06 4/200 2026-04-06 17:26 by 土木硕士招生
信息提示
请填处理意见