24小时热门版块排行榜    

查看: 693  |  回复: 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

铁杆木虫 (著名写手)

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 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料化工调剂 +13 今夏不夏 2026-03-01 16/800 2026-03-02 22:11 by sunny81
[考研] 290分材料工程085601求调剂 数二英一 +8 llx0610 2026-03-02 9/450 2026-03-02 22:09 by 无际的草原
[考研] 求调剂 +3 Guo_yuxuan 2026-03-02 4/200 2026-03-02 21:18 by 无际的草原
[考研] 化工335求调剂 +3 摸摸猫猫头 2026-03-02 3/150 2026-03-02 20:55 by 平凡的七月
[考研] 理学,工学,农学调剂,少走弯路,这里欢迎您! +5 likeihood 2026-03-02 8/400 2026-03-02 20:39 by ji493940045
[考研] 276求调剂 +5 路lyh123 2026-02-28 6/300 2026-03-02 20:35 by hypershenger
[考研] 085600求调剂 +4 LRZZZZZZ 2026-03-02 5/250 2026-03-02 20:33 by 云旗yunqi
[考研] 302材料工程求调剂 +5 Doleres 2026-03-01 6/300 2026-03-02 19:53 by 张晓芳0105
[考研] 261求调剂 +3 陆lh 2026-03-01 3/150 2026-03-02 19:32 by zhukairuo
[考博] 博士自荐 +4 kkluvs 2026-02-28 5/250 2026-03-02 19:19 by 轻松不少随
[考研] 一志愿中石油(华东)本科齐鲁工业大学 +3 石能伟 2026-03-02 3/150 2026-03-02 18:54 by caszguilin
[考研] 303求调剂 +5 今夏不夏 2026-03-01 5/250 2026-03-02 15:01 by 向上的胖东
[考研] 化工专硕348,一志愿985求调剂 +6 弗格个 2026-02-28 9/450 2026-03-02 14:09 by liyongv
[考研] 292求调剂 +7 yhk_819 2026-02-28 7/350 2026-03-02 12:43 by 无际的草原
[考研] 284求调剂 +10 天下熯 2026-02-28 11/550 2026-03-02 11:03 by 无际的草原
[考研] 275求调剂 +3 L-xin? 2026-03-01 6/300 2026-03-02 10:22 by 热情沙漠
[考研] 材料工程269求调剂 +3 白刺玫 2026-03-02 3/150 2026-03-02 09:25 by 一休哥FU
[考研] 材料类求调剂 +11 wana_kiko 2026-02-28 14/700 2026-03-02 08:46 by 聪明的大松鼠
[考研] 328求调剂 +3 aaadim 2026-03-01 5/250 2026-03-01 17:29 by njzyff
[考研] 295复试调剂 +3 简木ChuFront 2026-03-01 3/150 2026-03-01 14:27 by zzxw520th
信息提示
请填处理意见