标题: 定时器控制蜂鸣器频率输出1,10,50,100,200,400,800,1000hz方波的代码 [打印本页]

作者: w322405    时间: 2017-8-27 23:55
标题: 定时器控制蜂鸣器频率输出1,10,50,100,200,400,800,1000hz方波的代码
请高手帮忙查错,为什么只能输出1到100的频率,后#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned code table[]={50000,50000,10000,2000,1000,500,250,125,100};
sbit beep=P2^3;
uchar a,i,j;
uchar j=0,i=0;
void main()

{beep=0;
TMOD=0X11;//初始化,方式1;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET1=1;
TR1=1;
TH0=(65536-table[j])/256;
TH0=(65536-table[j])%256;
ET0=1;
TR0=1;
while(1);
}
void time()interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
i++;
if(i==20)
{ i=0;
j++;
if(j==9)
j=0;

}
}

void time_t0() interrupt 1
{ TR0=0;
TH0=(65536-table[j])/256;
TH0=(65536-table[j])%256;
a++;
if(a==10)
{  a=0;
  beep=~beep;
}

TR0=1;
}面的输不了

作者: zl2168    时间: 2017-8-28 08:09
本帖最后由 zl2168 于 2017-8-28 08:10 编辑

实例69  输出周期脉冲方波(示波器显示)
实例69 输出周期脉冲方波.rar (34.2 KB, 下载次数: 12)

Proteus仿真一下,确认有效。
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版.。书中电路和程序设计有详细说明,程序语句条条有注解。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。



作者: HC6800-ES-V2.0    时间: 2017-8-28 09:39
初中物理书上是这样说的:人耳能听到的频率为20~20000Hz之间。你输出的1、10频率听不到哦!
作者: w322405    时间: 2017-8-28 12:10
HC6800-ES-V2.0 发表于 2017-8-28 09:39
初中物理书上是这样说的:人耳能听到的频率为20~20000Hz之间。你输出的1、10频率听不到哦!

1hz应该就是扬声器一秒响一下吧
作者: w322405    时间: 2017-8-29 23:12





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1