纠结一下午,有关定时器。

2019-07-16 04:43发布

程序是要求 用定时器实现 每秒led闪一下,每10秒蜂鸣器响一下。

那我是这样搞得:

uint i;
uchar num;
void main()
{
  for(i=0;i<20;i++)
{
  TMOD=0X01;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  TR0=1;
  while(TF0==0);
  TF0=0;
}

50毫秒,for循环20次,得1s。
然后
led=~led;

num++;
if(num==10)
{
speaker=1;
speaker=0;
num=0;
}
}
结果是等可以正常亮,蜂鸣器不响啊!一直不响!T_T(设备正常)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
651927693
1楼-- · 2019-07-16 06:42
你的灯可以正常亮是因为第一秒亮,第二秒灭。。。。所以你可以看出来灯在闪。
至于你的蜂鸣器,刚接通,你就给关了(speaker=1;speaker=0;)所以你没有听到声音
lstcspring
2楼-- · 2019-07-16 07:41
还有,你的程序没有主循环
tcxz111
3楼-- · 2019-07-16 10:53
 精彩回答 2  元偷偷看……
tcxz111
4楼-- · 2019-07-16 16:30
lstcspring 发表于 2012-9-6 21:02
还有,你的程序没有主循环

不知道主循環該怎么写——
j249081716
5楼-- · 2019-07-16 20:54
mian()
{
   while(){把你mian里面的内容全装进去}
}
tcxz111
6楼-- · 2019-07-17 00:15
j249081716 发表于 2012-9-7 01:47
mian()
{
   while(){把你mian里面的内容全装进去}

謝謝,成功了

一周热门 更多>