以下介紹幾種在S3F9454/9444下驅動蜂鳴器的編程示例,供參考
A.第一種,普通IO高低電平驅動法
;運行環境:S3F9454,Fosc=3.2MHz無分頻
;P2.0為蜂鳴輸出端口
;本例輸出頻率為4KHZ,即每250US一個周期,高低電平時間分別為125US
BEEP:
LDBTCON,#10100011B;看門狗禁用
DI
PUSHR5
PUSHR6
;首先配置P2.0為普通推挽輸出端口
ANDP2CONL,#0FEH
ORP2CONL,#02H
LDR6,#0FAH;R6設置輸出方波個數,本例為250個(計時62.5MS)
ONE_BEEP:
LDR5,#27H;R5為頻率發生計時器,本例為近似125US(4KHZ)
XORP2,#01H
_LOOP:
DECR5
JRNZ,_LOOP
DECR6
JRNZ,ONE_BEEP
LDBTCON,#02H;恢復看門狗運行
EI
POPR6
POPR5
RET
;-----------------------------------------------------------
B.利用P2.0配置為T0定時器匹配輸出方式產生
;注:該方式可用于帶多位數碼顯示掃描的軟件中,可有效避免因蜂鳴器
;輸出而造成的數碼顯示抖動閃爍
;因定時器T0被分配作為T0匹配輸出定時器,所以本例中利用看門狗定時器
;的實時計時器BTCNT作為數碼顯示實時掃描計時器
;R0為蜂鳴時間長短計時器,由主調用程序進行予設置
;運行環境:S3F9454,Fosc=3.2MHZ無分頻
;P2.0為蜂鳴輸出端口
;本例輸出頻率為4KHZ,即每250US一個周期,高低電平時間分別為125US
;-----------------------
BEEP:
DI
PUSHR1
PUSHT0CON
PUSHT0DATA
;在蜂鳴輸出前首先掃描一次數碼顯示
CALLLED_SCAN
ORP2CONL,#03H;setP2.0asT0matchoutput/every125us
LDT0CON,#10001000B;setT0inputcLOCk=Fosc/8
LDT0DATA,#32H
LDBTCON,#10100011B;DISAbleWatch-dogrun,
;butbtcntclkinputfxx/4096=1.280ms
NEXT_BEEP:
LDR1,#0AH
WAIT_CNT:
ORBTCON,#02H
_WAIT_CNT:
CPBTCNT,#02H
JRULT,_WAIT_CNT
ORBTCON,#02H;清看門狗定時器
CALLLED_SCAN;每計時2.56MS,則轉去實時掃描一次數碼顯示
DECR1
JRNZ,WAIT_CNT
DECR0
JRNZ,NEXT_BEEP
LDBTCON,#02H
ANDP2CONL,#0FEH;setT0aspush-pulloutput
ANDP2,#0FEH
POPT0DATA
POPT0CON
POPR1
EI
RET
-
蜂鳴器
+關注
關注
12文章
893瀏覽量
46115
發布評論請先 登錄
相關推薦
有效編程單片機有源蜂鳴器驅動的方法
蜂鳴器按照驅動方式可分為哪幾種
單片機驅動蜂鳴器原理與編程
![單片機<b class='flag-5'>驅動</b><b class='flag-5'>蜂鳴器</b>原理與<b class='flag-5'>編程</b>](https://file.elecfans.com/web2/M00/49/3B/pYYBAGKhtECAesEsAAATb1vMvbc766.jpg)
單片機驅動蜂鳴器原理與程序設計
無源蜂鳴器常規驅動電路設計
![無源<b class='flag-5'>蜂鳴器</b>常規<b class='flag-5'>驅動</b>電路設計](https://file.elecfans.com/web2/M00/4A/1A/pYYBAGKhvJiABT_OAAA8DYZmmyI197.png)
如何有效編程單片機有源蜂鳴器驅動資料下載
![如何有效<b class='flag-5'>編程</b>單片機有源<b class='flag-5'>蜂鳴器</b><b class='flag-5'>驅動</b>資料下載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
單片機如何關掉蜂鳴器_如何有效編程單片機有源蜂鳴器驅動
![單片機如何關掉<b class='flag-5'>蜂鳴器</b>_如何有效<b class='flag-5'>編程</b>單片機有源<b class='flag-5'>蜂鳴器</b><b class='flag-5'>驅動</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何有效編程單片機有源蜂鳴器驅動?
![如何有效<b class='flag-5'>編程</b>單片機有源<b class='flag-5'>蜂鳴器</b><b class='flag-5'>驅動</b>?](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論