我是靠谱客的博主 多情小刺猬,最近开发中收集的这篇文章主要介绍同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述



请问一下各位老铁,同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,我编写了一部分程序,但是不知道怎么在主程序里去实现功能。请各位老铁们帮帮忙看看,该怎么操作。

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar num,sum,bee;
//uint flag;
int count;
sbit FM = P2^3;
void main()
{
 TMOD = 0x11;//ÉèÖö¨Ê±Æ÷1ºÍ0Ϊ¹¤×÷·½Ê½1
 TH0 = (65536-count)/256;
 TL0 = (65536-count)%256;
 TH1 = (65536-50000)/256;
 TL1 = (65536-50000)%256;
 EA = 1;//¿ª×ÜÖжÏ
 ET0 = 1;//¿ª¶¨Ê±Æ÷0ÖжÏ
 TR0 = 1;//Æô¶¯¶¨Ê±Æ÷0
 TF0 = 0;
 ET1 = 1;//¿ª¶¨Ê±Æ÷1ÖжÏ
 TR1 = 1;//Æô¶¯¶¨Ê±Æ÷1
 TF1 = 0;
 FM = bee;
 while(1)
 {   
  if(sum == 20)
  {
   sum = 0;
   if(count/10000 == 0)
   {
     count = 0; 
    bee = ~bee;
   }
  }
  TR0 = 1;
 }
}

void exter1() interrupt 3
{
 ET1 = 0; 
 TH1 = (65536-50000)/256;
 TL1 = (65536-50000)%256;
 TF1 = 0;
 sum++;
/* if(sum == 20)
 {
  sum = 0;
  if(count/10000 == 0)
  {
   count = 0;
   bee = 1;
  }
 }*/
 ET1 = 1;
}
void exter0() interrupt 1
{
 ET0 = 0;
 TH0 = (65536-count)/256;
 TL0 = (65536-count)%256;
 TF0 = 0;
 count++;
/* if(count/10000 == 0)
 {
  count = 0;
  bee = 1;
 }*/
 //if()
 ET0 = 1;
}

最后

以上就是多情小刺猬为你收集整理的同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,的全部内容,希望文章能够帮你解决同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800,所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部