51单片机定时器问题,题目如图所示,蜂鸣器的位置在P3^6 51单片机的蜂鸣器问题

51\u5355\u7247\u673a\uff0c\u5b9a\u65f6\u5668\u63a7\u5236\u8702\u9e23\u5668 TH TL \u97f3\u8c31

\u8702\u9e23\u5668\u53d1\u58f0\u539f\u7406\u662f\u7535\u6d41\u901a\u8fc7\u7535\u78c1\u7ebf\u5708\uff0c\u4f7f\u7535\u78c1\u7ebf\u5708\u4ea7\u751f\u78c1\u573a\u6765\u9a71\u52a8\u632f\u52a8\u819c\u53d1\u58f0\u7684\uff0c\u56e0\u6b64\u9700\u8981\u4e00\u5b9a\u7684\u7535\u6d41\u624d\u80fd\u9a71\u52a8\u5b83\uff0c\u5355\u7247\u673aIO\u5f15\u811a\u8f93\u51fa\u7684\u7535\u6d41\u8f83\u5c0f\uff0c\u5355\u7247\u673a\u8f93\u51fa\u7684TTL\u7535\u5e73\u57fa\u672c\u4e0a\u9a71\u52a8\u4e0d\u4e86\u8702\u9e23\u5668\uff0c\u56e0\u6b64\u9700\u8981\u589e\u52a0\u4e00\u4e2a\u7535\u6d41\u653e\u5927\u7684\u7535\u8def\u3002\u4e09\u6781\u7ba1\u7684\u4f5c\u7528\u4e3a\u9a71\u52a8\uff0c\u901a\u8fc7\u4e09\u6781\u7ba1\u653e\u5927\u9a71\u52a8\u7535\u6d41\uff0c\u4ece\u800c\u53ef\u4ee5\u8ba9\u8702\u9e23\u5668\u53d1\u51fa\u58f0\u97f3\u3002
\u6709\u6e90\u8702\u9e23\u5668\u548c\u65e0\u6e90\u8702\u9e23\u5668\u7684\u533a\u522b\uff1a
\u8fd9\u91cc\u7684\u201c\u6e90\u201d\u4e0d\u662f\u6307\u7535\u6e90\u3002\u800c\u662f\u6307\u9707\u8361\u6e90\u3002 \u4e5f\u5c31\u662f\u8bf4\uff0c\u6709\u6e90\u8702\u9e23\u5668\u5185\u90e8\u5e26\u9707\u8361\u6e90\uff0c\u6240\u4ee5\u53ea\u8981\u4e00\u901a\u7535\u5c31\u4f1a\u53eb\u3002 \u800c\u65e0\u6e90\u5185\u90e8\u4e0d\u5e26\u9707\u8361\u6e90\uff0c\u6240\u4ee5\u5982\u679c\u7528\u76f4\u6d41\u4fe1\u53f7\u65e0\u6cd5\u4ee4\u5176\u9e23\u53eb\u3002\u5fc5\u987b\u75282K~5K\u7684\u65b9\u6ce2\u53bb\u9a71\u52a8\u5b83\u3002 \u6709\u6e90\u8702\u9e23\u5668\u5f80\u5f80\u6bd4\u65e0\u6e90\u7684\u8d35\uff0c\u5c31\u662f\u56e0\u4e3a\u91cc\u9762\u591a\u4e2a\u9707\u8361\u7535\u8def\u3002 \u65e0\u6e90\u8702\u9e23\u5668\u7684\u4f18\u70b9\u662f\uff1a1\u3002\u4fbf\u5b9c\uff0c2\u3002\u58f0\u97f3\u9891\u7387\u53ef\u63a7\uff0c\u53ef\u4ee5\u505a\u51fa\u201c\u591a\u6765\u7c73\u53d1\u7d22\u62c9\u897f\u201d\u7684\u6548\u679c\u30023\u3002\u5728\u4e00\u4e9b\u7279\u4f8b\u4e2d\uff0c\u53ef\u4ee5\u548cLED\u590d\u7528\u4e00\u4e2a\u63a7\u5236\u53e3 \u6709\u6e90\u8702\u9e23\u5668\u7684\u4f18\u70b9\u662f\uff1a\u7a0b\u5e8f\u63a7\u5236\u65b9\u4fbf \u3002

\u4f8b\u7a0b\uff0c\u53c2\u8003\u81ea\u7f51\u7edc\u3002
1 /************************************************************************
2 [\u6587\u4ef6\u540d] C51\u97f3\u4e50\u7a0b\u5e8f(\u516b\u6708\u6842\u82b1)
3 [\u529f\u80fd] \u901a\u8fc7\u5355\u7247\u673a\u6f14\u594f\u97f3\u4e50
4
5 /**********************************************************************/
6 #include
7 #include
8 //\u672c\u4f8b\u91c7\u752889C52, \u6676\u632f\u4e3a11.0592MHZ
9 //\u5173\u4e8e\u5982\u4f55\u7f16\u5236\u97f3\u4e50\u4ee3\u7801, \u5176\u5b9e\u5341\u5206\u7b80\u5355,\u5404\u4f4d\u53ef\u4ee5\u770b\u4ee5\u4e0b\u4ee3\u7801.
10 //\u9891\u7387\u5e38\u6570\u5373\u97f3\u4e50\u672f\u8bed\u4e2d\u7684\u97f3\u8c03,\u800c\u8282\u62cd\u5e38\u6570\u5373\u97f3\u4e50\u672f\u8bed\u4e2d\u7684\u591a\u5c11\u62cd;
11 //\u6240\u4ee5\u62ff\u51fa\u8c31\u5b50, \u8bd5\u63a2\u7f16\u5427!
12
13 sbit Beep = P1^5 ;
14
15 unsigned char n=0; //n\u4e3a\u8282\u62cd\u5e38\u6570\u53d8\u91cf
16 unsigned char code music_tab[] ={
17 0x18, 0x30, 0x1C , 0x10, //\u683c\u5f0f\u4e3a: \u9891\u7387\u5e38\u6570, \u8282\u62cd\u5e38\u6570, \u9891\u7387\u5e38\u6570, \u8282\u62cd\u5e38\u6570,
18 0x20, 0x40, 0x1C , 0x10,
19 0x18, 0x10, 0x20 , 0x10,
20 0x1C, 0x10, 0x18 , 0x40,
21 0x1C, 0x20, 0x20 , 0x20,
22 0x1C, 0x20, 0x18 , 0x20,
23 0x20, 0x80, 0xFF , 0x20,
24 0x30, 0x1C, 0x10 , 0x18,
25 0x20, 0x15, 0x20 , 0x1C,
26 0x20, 0x20, 0x20 , 0x26,
27 0x40, 0x20, 0x20 , 0x2B,
28 0x20, 0x26, 0x20 , 0x20,
29 0x20, 0x30, 0x80 , 0xFF,
30 0x20, 0x20, 0x1C , 0x10,
31 0x18, 0x10, 0x20 , 0x20,
32 0x26, 0x20, 0x2B , 0x20,
33 0x30, 0x20, 0x2B , 0x40,
34 0x20, 0x20, 0x1C , 0x10,
35 0x18, 0x10, 0x20 , 0x20,
36 0x26, 0x20, 0x2B , 0x20,
37 0x30, 0x20, 0x2B , 0x40,
38 0x20, 0x30, 0x1C , 0x10,
39 0x18, 0x20, 0x15 , 0x20,
40 0x1C, 0x20, 0x20 , 0x20,
41 0x26, 0x40, 0x20 , 0x20,
42 0x2B, 0x20, 0x26 , 0x20,
43 0x20, 0x20, 0x30 , 0x80,
44 0x20, 0x30, 0x1C , 0x10,
45 0x20, 0x10, 0x1C , 0x10,
46 0x20, 0x20, 0x26 , 0x20,
47 0x2B, 0x20, 0x30 , 0x20,
48 0x2B, 0x40, 0x20 , 0x15,
49 0x1F, 0x05, 0x20 , 0x10,
50 0x1C, 0x10, 0x20 , 0x20,
51 0x26, 0x20, 0x2B , 0x20,
52 0x30, 0x20, 0x2B , 0x40,
53 0x20, 0x30, 0x1C , 0x10,
54 0x18, 0x20, 0x15 , 0x20,
55 0x1C, 0x20, 0x20 , 0x20,
56 0x26, 0x40, 0x20 , 0x20,
57 0x2B, 0x20, 0x26 , 0x20,
58 0x20, 0x20, 0x30 , 0x30,
59 0x20, 0x30, 0x1C , 0x10,
60 0x18, 0x40, 0x1C , 0x20,
61 0x20, 0x20, 0x26 , 0x40,
62 0x13, 0x60, 0x18 , 0x20,
63 0x15, 0x40, 0x13 , 0x40,
64 0x18, 0x80, 0x00
65 };
66
67 void int0() interrupt 1 //\u91c7\u7528\u4e2d\u65ad0 \u63a7\u5236\u8282\u62cd
68 { TH0=0xd8;
69 TL0=0xef;
70 n--;
71 }
72
73 void delay (unsigned char m) //\u63a7\u5236\u9891\u7387\u5ef6\u65f6
74 {
75 unsigned i=3*m;
76 while(--i);
77 }
78
79 void delayms(unsigned char a) //\u8c6a\u79d2\u5ef6\u65f6\u5b50\u7a0b\u5e8f
80 {
81 while(--a); //\u91c7\u7528while(--a) \u4e0d\u8981\u91c7\u7528while(a--); \u5404\u4f4d\u53ef\u7f16\u8bd1\u4e00\u4e0b\u770b\u770b\u6c47\u7f16\u7ed3\u679c\u5c31\u77e5\u9053\u4e86!
82 }
83
84 void main()
85 { unsigned char p,m; //m\u4e3a\u9891\u7387\u5e38\u6570\u53d8\u91cf
86 unsigned char i=0;
87 TMOD&=0x0f;
88 TMOD"=0x01;
89 TH0=0xd8;TL0=0xef;
90 IE=0x82;
91 play:
92 while(1)
93 {
94 a: p=music_tab[i];
95 if(p==0x00) { i=0, delayms(1000); goto play;} //\u5982\u679c\u78b0\u5230\u7ed3\u675f\u7b26,\u5ef6\u65f61\u79d2,\u56de\u5230\u5f00\u59cb\u518d\u6765\u4e00\u904d
96 else if(p==0xff) { i=i+1;delayms(100),TR0=0; goto a;} //\u82e5\u78b0\u5230\u4f11\u6b62\u7b26,\u5ef6\u65f6100ms,\u7ee7\u7eed\u53d6\u4e0b\u4e00\u97f3\u7b26
97 else {m=music_tab[i++], n=music_tab[i++];} //\u53d6\u9891\u7387\u5e38\u6570 \u548c \u8282\u62cd\u5e38\u6570
98 TR0=1; //\u5f00\u5b9a\u65f6\u56681
99 while(n!=0) Beep=~Beep,delay(m); //\u7b49\u5f85\u8282\u62cd\u5b8c\u6210, \u901a\u8fc7P1\u53e3\u8f93\u51fa\u97f3\u9891(\u53ef\u591a\u58f0\u9053\u54e6!)
100 TR0=0; //\u5173\u5b9a\u65f6\u56681
101 }
102 }

#include

sbit beep = P1^7;
char sss;
bit bbb;

//*****************************
void sleep(int ms) //\u5ef6\u65f6
{
int i;
for(;ms > 0; ms--) for(i = 0; i < 124; i++);
}
//******************************
void init() //\u521d\u59cb\u5316\u5b9a\u65f6\u56680
{
TMOD = 0x01;
TH0 = (65535 - 50000) / 256;
TL0 = (65535 - 50000) % 256;
TR0 = 1;
ET0 = 1;
EA = 1;
}
//*******************************
void main()
{
char i;
init(); // \u4e2d\u65ad
while(1) {
if (bbb) { //\u8702\u9e23\u5668\u53d1\u51fa\u591a.
bbb = 0;
for (i = 0; i < 124; i++) {
beep = ~beep;
sleep(1);
}
}
}
}
//********************************
void TIMER0() interrupt 1
{
TH0 = (65535 - 50000) / 256;
TL0 = (65535 - 50000) % 256;
sss++;
if (sss == 20) {
sss = 0;
bbb = 1;
}
}
//********************************

#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit beep=P2^3;
uchar tt;
uint fre,flag;

void main()
{
fre=50000;
beep=0;
TMOD=0x11;//设置定时器0,定时器1为工作方式1
TH0=(65536-fre)/256;
TL0=(65536-fre)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
ET1=1;
TR1=1;
TR0=1;//启动定时器0
while(1);//等待中断产生

}

void timer0() interrupt 1 //定时器0中断
{
TR0=0; //进中断后先把定时器0中断关闭,防止内部程序过多而造成中断丢失
TH0=(65536-fre)/256;
TL0=(65536-fre)%256;
tt++;
if(flag<40) //以下几个if分别用来选取不同的频率
if(tt==10)
{
tt=0;
fre=50000;
beep=~beep;
}
if(flag>=40&&flag<80)
{
tt=0;
fre=50000;
beep=~beep;
}
if(flag>=80&&flag<120)
{
tt=0;
fre=10000;
beep=~beep;
}
if(flag>=120&&flag<160)
{
tt=0;
fre=5000;
beep=~beep;
}
if(flag>=160&&flag<200)
{
tt=0;
fre=2500;
beep=~beep;
}
if(flag>=200&&flag<240)
{
tt=0;
fre=1250;
beep=~beep;
}
if(flag>=240&&flag<280)
{
tt=0;
fre=625;
beep=~beep;
}
if(flag>=280&&flag<320)
{
tt=0;
fre=312;
beep=~beep;
}
if(flag>=320&&flag<360)
{
tt=0;
fre=156;
beep=~beep;
}
TR0=1;
}
void timer1() interrupt 3 //定时器1中断用来产生2秒时间定时
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
flag++;
if(flag==360)
{
flag=0;
fre=50000;
}
}

一、间隔300ms,那同一个频率 的时间呢?如500Hz 的时间长度。
还是说,每个频率时间长度都是300ms,中间没有间隔。如果真是这样,1Hz 的周期为1s,半周都500ms了,300ms不够用。所以300ms只是两个频率之间过渡的空白吧。
二、蜂鸣器 是高电平 驱动 还是 低电平 驱动?频率过渡之间的空白是停止蜂鸣器,还是不管?
三、最后 1KHz的频率结束后,该如何?是停止 还是 循环?
四、系统 晶振是多大的呢?

控制蜂鸣器发声,声音,这个词,不是随便用的。

声音的频率范围是:20Hz ~20kHz。

题目中的 1Hz、10Hz,都不是声音。

此题无解。

关闭了吧。

1个足够

  • 51鍗曠墖鏈哄畾鏃跺櫒闂,棰樼洰濡傚浘鎵绀,铚傞福鍣ㄧ殑浣嶇疆鍦≒3^6
    绛旓細EA=1;//寮鎬讳腑鏂 ET0=1;//寮瀹氭椂鍣0涓柇 ET1=1;TR1=1;TR0=1;//鍚姩瀹氭椂鍣0 while(1);//绛夊緟涓柇浜х敓 } void timer0() interrupt 1 //瀹氭椂鍣0涓柇 { TR0=0; //杩涗腑鏂悗鍏堟妸瀹氭椂鍣0涓柇鍏抽棴锛岄槻姝㈠唴閮ㄧ▼搴忚繃澶氳岄犳垚涓柇涓㈠け TH0=(65536-fre)/256;TL0=(65536-fre)%256;...
  • 鑻51鍗曠墖鏈鐨勬櫠鎸鐜囦负12MHz,瑕佷娇瀹氭椂鍣TO浠ユ柟寮0宸ヤ綔鐨勫畾鏃舵椂闂翠负1m...
    绛旓細濡傚浘鎵绀猴紝TH0=0xD1锛孴L0=0x20銆傛湜閲囩撼銆傘傘
  • 鏌51鍗曠墖鏈绯荤粺鏃堕挓棰戠巼涓12MHZ,浣跨敤瀹氭椂鍣0瀹氭椂10ms鏂瑰紡,瀹炵幇浠嶱1.1杈...
    绛旓細51鍗曠墖鏈鐨瀹氭椂鍣T0瑕佸伐浣滃湪鏂瑰紡1锛屾墠鑳藉畾鏃10ms銆傝孴MOD=0x02锛屾槸鏂瑰紡2锛屽畾鏃舵渶闀垮彧鏈256us锛屾槸涓嶈鐨勶紝搴旇鏄疶MOD=0x01锛屾墠瀵广傞噰鐢ㄤ腑鏂柟寮忥紝瀵10ms瀹氭椂涓柇璁℃暟50娆′负500ms锛屼氦鏇夸粠P1.1杈撳嚭楂樼數骞冲拰浣庣數骞筹紝鍗宠緭鍑哄懆鏈 涓1S鐨勬柟娉俊鍙蜂簡銆傚涓嬬殑浠跨湡鍥撅紝绀烘尝鍣ㄦ祴璇曚负1S鐨勬柟娉曚俊鍙枫
  • 51鍗曠墖鏈 瀹氭椂鍣ㄩ棶棰!
    绛旓細鐪嬫垜涓涓緥瀛://瀹氭椂鍣1涓柇鍏ュ彛 TMOD= 0x11 void timer1() interrupt 3 //using 2 { TR1 = 0; //鍏堝仠璁℃椂 TH1 = 0xF5; // 32M HZ 8052 TL1 = 0xA2; // 1姣/娆 閲嶆柊璁℃暟 浠庝腑鏂鐞嗗埌鍐嶆寮濮嬭鏃剁害鍗犵敤13涓寚浠ゅ懆鏈 TR1 = 1;//鍐嶆寮濮嬭鏃 鏈鍚庤繕鏄湁鍗冨垎涔嬪嚑鐨勮宸 鍙兘...
  • 51鍗曠墖鏈鐨勮鏃鍣ㄩ棶棰
    绛旓細0x鏄16杩涘埗鏁扮殑鍓嶇紑銆0x01鐨勬剰鎬濇槸鍚庨潰鐨01鏄竴涓16杩涘埗鏁板瓧锛屾崲绠楁垚浜岃繘鍒跺氨鏄00000001銆傛剰鎬濆氨瀵筎MOD瀵勫瓨鍣ㄤ緷娆¤祴鍊间负00000001銆傚洜涓篢MOD鐨勬瘡涓浣嶉兘鏄拡瀵逛簬瀹氭椂鍣鐨勮缃紝鎵浠ヨ繖鍙ヨ瘽鐨勬剰鎬濆氨鏄缃畾鏃跺櫒1宸ヤ綔鍦ㄦ柟寮0锛岃屽畾鏃跺櫒0宸ヤ綔鍦ㄦ柟寮1銆
  • 51鍗曠墖鏈 瀹氭椂闂
    绛旓細1銆佸TH0銆乀L0璧嬪硷紝涓斿惎鍔ㄥ畾鏃跺櫒锛圱R0=1锛夊悗锛屽畾鏃跺櫒寮濮嬪伐浣溿傜▼搴忕户缁悜涓嬫墽琛岋紝涓嶄細鍋滄锛堥櫎闈炴湁璇彞瑕佹眰鍏跺仠姝級锛岀洿鍒板畾鏃跺櫒瀵勫瓨鍣ㄦ孩鍑猴紝TF0=1銆2銆佸惎鍔ㄥ畬瀹氭椂鍣ㄥ悗锛屾櫠鎸懆鏈熼氳繃12鍒嗛锛屽緱鍒版満鍣ㄥ懆鏈燂紝姣忎竴涓満鍣ㄥ懆鏈燂紝TL0鍔1锛孴L0婧㈠嚭鍚庯紝TH0鍔1銆傜洿鑷砊H0婧㈠嚭銆傛暣涓繃绋嬬敱纭欢瀹屾垚锛岃蒋浠跺彧...
  • 51鍗曠墖鏈,瀹氭椂鍣鐨闂,鍦ㄨ繖涓▼搴忎腑,TH0,TL0鏄庝箞寰幆鐨,
    绛旓細sbit ADDR2 = P1^2;sbit ADDR3 = P1^3;sbit ENLED = P1^4;void main(){ unsigned int cnt = 0;ADDR0 = 0;ADDR1 = 1;ADDR2 = 1;ADDR3 = 1;ENLED = 0;TMOD = 0x01;TH0 = 0xB8; //鍦ㄨ繖閲岃缃簡鍒濆 TL0 = 0x00;TR0 = 1; //鍚姩T0 while(1) //涓鐩村惊鐜 ...
  • 鍏充簬51鍗曠墖鏈哄畾鏃跺櫒鐨勪竴涓闂
    绛旓細1銆佷竴寮濮嬪垵濮嬪寲鐨勬椂鍊橳R0=1;涓嶅簲璇ョ疆1鍚э紝姝e浣犳墍璇寸殑锛岄珮鐢靛钩鏉ョ殑鏃跺欒嚜鍔ㄥ氨灏員R0缃1寮濮嬭鏃讹紝鎵浠ヤ竴寮濮嬪簲璇ユ槸TR0=0;2銆佽嚦浜庝綘璇寸殑鏃犳硶娓呴浂鐨闂锛涓嶇煡閬撲綘鏄庝箞鐭ラ亾鏃犳硶娓呴浂鐨勫憿锛3銆佽繕鏈夋垜瀵逛綘鐨勭▼搴忓緢璐硅В锛岃鏄寜浣犵殑鍐欐硶锛屼竴涓婃潵瀹氭椂鍣灏辨槸鍚姩鐨勶紝while(echo==1);杩欏彞璇濇槸绛夊緟...
  • 鍏充簬51鍗曠墖鏈哄畾鏃跺櫒鐨闂銆
    绛旓細1.鍏充簬瀹氭椂鍣鏈闀跨殑瀹氭椂鏃堕棿锛屽亣濡傛櫠鎸鐜囨槸12MHz锛屾満鍣ㄥ懆鏈熸槸1us锛屾渶闀垮畾鏃剁殑鏃堕棿鏄65.536ms銆傛墍浠ワ紝浣犳兂瀹氭椂1绉掓槸涓嶅彲鑳界殑銆傞氬父鏄畾鏃50ms锛屼互涓柇鏂瑰紡锛岃繖鏍凤紝姣忎腑鏂竴娆50ms锛屽垯涓柇20娆″氨鏄1绉掋2.浣犺繖涓▼搴忓氨鏄畾鏃50ms鐨勶紝鍙樻垚50000us銆傛櫠鎸鐜囨槸12M锛屽垵濮嬪艰绠楋紝X=65535-50000=15536=...
  • 51鍗曠墖鏈鐨瀹氭椂鍣ㄩ棶棰
    绛旓細鍋囪瑕佹眰50ms涓柇锛屾眰瀹氭椂鍣鍒濆笺傛櫠鎸11.0592M锛屾瘡涓満鍣ㄥ懆鏈熸椂闂翠负锛歵=12脳锛1/11.0592M锛 鍗曚綅锛歶s 50ms鎵闇鏈哄櫒鍛ㄦ湡涓猴細50脳1000梅t锛46080 閭d箞闇瑕佸垵鍊间负:0xFFFF-46080=65535-46080=19456=0x4C00 鍥犳锛岀疆鍒濆间负TH=0x4c,TL=0x00,缁忚繃46080涓寚浠ゅ懆鏈燂紝璁℃暟鍣ㄥ皢浜х敓50ms瀹氭椂涓柇銆傚鏋...
  • 扩展阅读:答题神器一扫就出答案 ... 51单片机毕业作品题目 ... 单片机c51毕业设计题目 ... 基于51单片机设计题目 ... 扫一扫题目出答案 ... 免费作业拍照出答案 ... 12mhz晶振的机器周期 ... 单片机设计作品题目 ... 免费扫一扫找答案 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网