本文只針對(duì)于初學(xué)者,高手請(qǐng)繞過!
1、實(shí)驗(yàn)?zāi)康?p> 利用單片機(jī)的IO口,控制蜂鳴器,學(xué)會(huì)蜂鳴器的控制方法。
2、實(shí)驗(yàn)內(nèi)容
編寫一段程序,使蜂鳴器以1秒為間隔鳴叫。
3、硬件原理
蜂鳴器硬件原理圖如下圖所示,使用排線與端子P1相連,則單片機(jī)相應(yīng)端口的第4引腳即與端子P1的BEEP引腳相連接(例如,使用排線將P10端子與P1端子相連接,則PD4引腳則連接到了BEEP引腳上,在這里需要注意的是,端口從0起排,而端子從1起排,不要混淆)。BEEP通過基級(jí)電阻R11控制三級(jí)管Q1的通斷,由于Q1(8550)為PNP三極管,則BEEP給低電平的時(shí)候,Q1導(dǎo)通,給蜂鳴器供電,蜂鳴器鳴叫;BEEP給高電平的時(shí)候,Q1截止,蜂鳴器停止鳴叫。
4、實(shí)驗(yàn)參考程序及注解
更改映射層1_AbstractionLayer_HAL.h文件
//PortD
#define IO_PD_DIR 0b00010000 //此處指明第4引腳為輸出
//該處為二進(jìn)制表示方式,最低位為0
#define IO_PD_OUT 0b00010000 //此處指明第4引腳默認(rèn)初始狀態(tài)為高電平,也就是說在上電時(shí),
//BEEP引腳給高電平,三極管不導(dǎo)通,蜂鳴器不鳴叫
//該處為二進(jìn)制表示方式,最低位為0
////////////////////////////////////////////////////////////////////////////////////
#define BEEP BIT4 //BEEP與端口的第4引腳相連接
//功能宏定義
#define BEEP_OPEN CLRBIT(PORTD,BEEP) //蜂鳴器打開,將端口D的第4引腳(PD4)置低電平
#define BEEP_SHUT SETBIT(PORTD,BEEP) //蜂鳴器關(guān)閉,將端口D的第4引腳(PD4)置高電平
更改邏輯層0_logiclayer_main.c文件
//主程序
int main(void)
{
//目標(biāo)板初始化,該函數(shù)會(huì)自動(dòng)初始化相應(yīng)的外設(shè)文件
TARGET_Init();
//后臺(tái)主循環(huán)
while(1)
{
//在這里完成自己的項(xiàng)目邏輯
BEEP_OPEN;
TARGET_Delayms(1000,1);
BEEP_SHUT;
TARGET_Delayms(1000,1);
//喂狗語句,大部分的工程項(xiàng)目都不應(yīng)該去除
#if WDT_MODE!=0
TARGET_WatchDogReset();
#endif
}
return 0; //永不執(zhí)行
}
5、注解
a、IO_PD_DIR
IO_PD_DIR是系統(tǒng)預(yù)定義好的功能宏,表示端口引腳的方向,可以用一個(gè)8位的二進(jìn)制來表示,0表示輸入,1表示輸出,本例把IO_PD_DIR定義為0b00010000表示,PD4引腳為輸出,其余引腳為輸入。
b、IO_PD_OUT
IO_PD_OUT 是系統(tǒng)預(yù)定義好的功能宏,表示端口引腳默認(rèn)的初始狀態(tài)的方向,可以用一個(gè)8位的二進(jìn)制來表示,0表示低電平,1表示高電平,本例把 IO_PD_OUT 定義為0b00010000表示,PD4引腳上電時(shí)默認(rèn)的初始狀態(tài)為高電平,即三極管不導(dǎo)通,蜂鳴器不鳴叫。
c、 CLRBIT
CLRBIT是系統(tǒng)預(yù)定義好的功能宏,可以將1個(gè)字節(jié)(8位)的某1位置0,例如CLRBIT(PORTD,BIT4)表示的意思是將PORTD寄存器的第4位置成0。
d 、 SETBIT
SETBIT是系統(tǒng)預(yù)定義好的功能宏,可以將1個(gè)字節(jié)(8位)的某1位置0,例如SETBIT(PORTD,BIT4)表示的意思是將PORTD寄存器的第4位置成1。
e、 TARGET_Delayms
TARGET_Delayms位ms延時(shí)函數(shù),帶有2個(gè)參數(shù),第1個(gè)參數(shù)是延時(shí)的ms數(shù),例如1000指1000ms,即1秒;第2個(gè)參數(shù)是指在延時(shí)的時(shí)候是否執(zhí)行喂狗操作,1是執(zhí)行喂狗操作,0是不執(zhí)行喂狗操作。
上一篇:AVRWARE++開發(fā)筆記6:8路直接I/O口控制LED燈實(shí)驗(yàn)
下一篇:AVRWARE++開發(fā)筆記4:調(diào)試III型測(cè)試板
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 智能護(hù)眼臺(tái)燈設(shè)計(jì)
- 蓄電池高能脈沖充電系統(tǒng)設(shè)計(jì)
- 基于51單片機(jī)定時(shí)器的電子時(shí)鐘設(shè)計(jì)方案
- 瑞薩電子推出面向單電機(jī)應(yīng)用優(yōu)化的卓越MCU, 涵蓋電動(dòng)工具、家用電器等廣泛應(yīng)用場(chǎng)景
- 動(dòng)力電池“三國殺”:中企提前鎖定勝局,日韓廠商集體失守
- 研究人員開發(fā)出人工智能雷達(dá)技術(shù) 可用于高分辨率3D城市制圖
- 上半年動(dòng)力電池TOP15:寧德時(shí)代和比亞迪裝車近200GWh 兩家公司新上榜
- 半年砸下數(shù)千億元!“并購”浪潮下,汽車芯片大戰(zhàn)再起風(fēng)云
- 奇瑞人形機(jī)器人9月開售并將面向個(gè)人用戶,機(jī)器人時(shí)代該來了嗎?
- 華為李文廣:華為智能駕駛規(guī)劃曝光,加速追趕特斯拉
- 功能迭代和功能安全的矛盾及車端應(yīng)用層-下
- 功能迭代和功能安全的矛盾及車端應(yīng)用層-中
- 功能迭代和功能安全的矛盾及車端應(yīng)用層-上
- 車云一體其他層面的架構(gòu)設(shè)計(jì)借鑒-下
- 恩智浦無線MCU應(yīng)用征集+100套開發(fā)套件申請(qǐng)
- 免費(fèi)申請(qǐng)測(cè)評(píng):超小型 Linux 開發(fā)套件:Quantum Tiny Linux(帶 SoM 和擴(kuò)展板)
- 下載安森美半導(dǎo)體工業(yè)物聯(lián)網(wǎng)工業(yè)解決方案,百份好禮送!
- 安全的革新,全新的驗(yàn)證方式 下載富士通 《頻譜驗(yàn)證解決方案 》白皮書 好禮送!
- 看是德科技X8711A 物聯(lián)網(wǎng)設(shè)備功能測(cè)試解決方案,答題贏好禮
- 搶先體驗(yàn)!世界首款LoRa Soc單片機(jī)STM32WL
- DIY 個(gè)浪漫光影棒,報(bào)名請(qǐng)跟帖!
- 申請(qǐng)ufun學(xué)習(xí)板,入門&深度學(xué)習(xí)模擬,工程技能
- 英飛凌BMS解決方案,為電動(dòng)汽車和儲(chǔ)能系統(tǒng)保駕護(hù)航!
- 預(yù)約有禮:2020年最新KEE課程
- 中穎電子:鋰電池管理芯片已經(jīng)從后裝市場(chǎng)進(jìn)入前裝市場(chǎng)
- 彭博社:英政府無為,致420億美元半導(dǎo)體公司出售海外
- 遠(yuǎn)峰科技終止科創(chuàng)板IPO,智能網(wǎng)聯(lián)座艙系統(tǒng)研發(fā)項(xiàng)目擱淺?
- 國民技術(shù)向董事長孫迎彤發(fā)行股票,或終結(jié)“無主”時(shí)代
- 拓荊科技科創(chuàng)板IPO獲受理,募10億元加碼高端半導(dǎo)體設(shè)備
- 蘋果推無線充電和AR 助普及運(yùn)算一臂之力
- iPhone降速究竟跟電池老化有什么關(guān)系
- 蘋果今年需要思考的事 精簡iPhone產(chǎn)品陣容入列
- 消協(xié)回應(yīng)蘋果“降速門”事件:有違誠信原則
- 蘋果更換電池政策導(dǎo)致庫存短缺:換電池要等幾個(gè)星期
- 有人用過ST72344H4或者資源和它差不多的ST芯片嗎?
- LED的應(yīng)用篇
- 了解是德科技校準(zhǔn)服務(wù)及5G 精彩專題,下載技術(shù)文章送好禮!活動(dòng)開始啦!
- 用狀態(tài)機(jī)進(jìn)行軟件設(shè)計(jì)
- 弄了2天,陀螺儀新例程分享。記得下載STM32F紅龍429mpu6050
- 【一個(gè)模擬電路憋倒眾多英雄漢,期待高手】請(qǐng)教一個(gè)本網(wǎng)站上的帶阻濾波器?
- 誰做過Kickstarter眾籌 求指點(diǎn)
- ADS1248恒流源沒有輸出,原來是這個(gè)原因
- AD采樣觸發(fā)方式設(shè)置的問題
- 關(guān)于BT835視頻解碼芯片與FPGA接口的問題