24小时热门版块排行榜     石溪大学接受考研调剂申请>

【调剂】北京石油化工学院2024年16个专业接受调剂
查看: 483  |  回复: 2
【悬赏金币】回答本帖问题,作者a6726188将赠送您 5 个金币

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 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 聊天 +12 暮色恋伊人 2024-04-22 13/650 2024-04-27 08:40 by WASM
[博后之家] 南京大学-广州大学联合招聘博士后 欢迎广大优秀人才!!! +4 黑魔变身啾 2024-04-20 13/650 2024-04-27 08:37 by snxvt
[教师之家] 大学直属学院卸任的副院长退休后还享受副处级的养老待遇吗? +3 苏东坡二世 2024-04-27 3/150 2024-04-27 08:03 by jurkat.1640
[有机交流] 如何分离原料与产品 5+4 qwerasdf587 2024-04-24 13/650 2024-04-26 23:18 by 119966984
[考博] 真的好想读博! +15 wangzhe_bs 2024-04-22 22/1100 2024-04-26 22:11 by 小木雄子
[考研] 没学上 +6 季向阳 2024-04-26 12/600 2024-04-26 21:06 by 季向阳
[考研] 0854-0855调剂 +8 shangannum1 2024-04-21 12/600 2024-04-26 16:42 by yz仔
[基金申请] 两类问题算是白选了~ +7 jurkat.1640 2024-04-23 12/600 2024-04-26 14:39 by lucky_my2010
[教师之家] 博士论文被抄袭 +25 和尚敲小木鱼 2024-04-22 42/2100 2024-04-26 13:55 by ZHONGWU_U
[硕博家园] 考研,求职还是考编? +15 xizj 2024-04-21 24/1200 2024-04-26 11:49 by Kan客
[考研] 381求调剂 +4 小刺猬987654321 2024-04-25 6/300 2024-04-26 10:57 by czl12138
[考博] 取博导收留 5+4 zzb777888 2024-04-20 10/500 2024-04-26 08:52 by polymerfriend
[考博] 求博导 +6 好okjh 2024-04-21 10/500 2024-04-25 14:04 by 好okjh
[论文投稿] 一直找不到审稿人 +5 lizhengke06 2024-04-21 6/300 2024-04-25 14:01 by chongdong
[考博] 24年 申博 化学/材料 一作6篇sci +9 wangyp123 2024-04-23 11/550 2024-04-24 19:01 by bangbangbiu
[教师之家] 大家访学都是怎么找的啊? +3 luokereng 2024-04-22 3/150 2024-04-24 11:40 by xuechenli
[论文投稿] 期刊推荐 20+4 木颜尘ip 2024-04-22 7/350 2024-04-24 10:06 by bobvan
[考博] 研二光催化6月底4篇2区 +7 wjtab 2024-04-22 11/550 2024-04-23 06:59 by byron2012
[论文投稿] 研究光催化的,好中的三四区 20+3 sl.0117 2024-04-20 3/150 2024-04-22 09:53 by bobvan
[论文投稿] 编辑是选国外的好还是国内的好。 +8 lizhengke06 2024-04-20 8/400 2024-04-22 08:58 by cuiyunjian
信息提示
请填处理意见