版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第七章 STM8S207 GPIO模塊及其應(yīng)用本章終于開(kāi)始 STM8S207 的例程編寫(xiě)了,通過(guò)前面章節(jié)的學(xué)習(xí),相信對(duì)STM8S207 已經(jīng)有了一定的認(rèn)識(shí)。本章從 STM8S207 最簡(jiǎn)單的 IO 口模塊開(kāi)始STM8S207 的編程。 7.1 GPIO 簡(jiǎn)介 STM8S207 內(nèi)部有非常豐富的輸入、輸出端口資源,同時(shí)也集成了多種功能模塊,其輸入、輸出引腳大多為復(fù)用引腳。STM8S207 單片機(jī)的 IO 口包括 PA、PB、PC、PD、PE、PF、PG、PI 等 52 個(gè) IO 口 通用輸入/輸出口用于芯片和外部進(jìn)行數(shù)據(jù)傳輸。一個(gè) IO 端口可以包括多達(dá)8 個(gè)引腳,每個(gè)引腳可以被獨(dú)立編程作為數(shù)字
2、輸入或者數(shù)字輸出口。另外部分口還可能會(huì)有如模擬輸入,外部中斷,片上外設(shè)的輸入/輸出等復(fù)用功能。但是在同一時(shí)刻僅有一個(gè)復(fù)用功能可以映射到引腳上。復(fù)用功能的映射是通過(guò)選項(xiàng)字節(jié)控制的。請(qǐng)參考數(shù)據(jù)手冊(cè)關(guān)于選項(xiàng)字節(jié)的描述。 每個(gè) IO 口都有 5 個(gè)對(duì)應(yīng)的寄存器,IO 的工作方式也由這 5 個(gè)寄存器控制,它們分別為: 1、數(shù)據(jù)方向寄存器 2、配置寄存器 1 3、配置寄存器 2 4、輸出數(shù)據(jù)寄存器 5、輸入數(shù)據(jù)寄存器 一個(gè) I/O 口工作在輸入還是輸出是取決于該口的數(shù)據(jù)方向寄存器的狀態(tài)。 7.1.1 GPIO 主要功能 1、端口的各個(gè)位可以被單獨(dú)配置 2、可選擇的輸入模式:浮動(dòng)輸入和帶上拉輸入 3、可選擇
3、的輸出模式:推挽式輸出和開(kāi)漏輸出 4、數(shù)據(jù)輸入和輸出采用獨(dú)立的寄存器 5、外部中斷可以單獨(dú)使能和關(guān)閉 6、輸出擺率控制用以減少 EMC 噪聲 7、片上外設(shè)的 I/O 功能復(fù)用 8、當(dāng)作為模擬輸入時(shí)可以關(guān)閉輸入施密特觸發(fā)器來(lái)降低功耗 9、在數(shù)據(jù)輸出鎖存時(shí)支持讀-修改-寫(xiě) 10、輸入兼容 5V 電壓 11、I/O 口工作電壓范圍為 1.6 V 到 VDDIOmaxGPIO 模塊框圖7.2 IO 口的配置和使用 每一個(gè)端口都有一個(gè)輸出數(shù)據(jù)寄存器 (ODR),一個(gè)引腳輸入寄存器 (IDR)和一個(gè)數(shù)據(jù)方向寄存器 (DDR)。 控制寄存器 1(CR1)和控制寄存器 2(CR2)用于對(duì)輸入/輸出進(jìn)行配置。任
4、何一個(gè) I/O 引腳可以通過(guò)對(duì) DDR、CR1 和 CR2 寄存器的相應(yīng)位進(jìn)行編程來(lái)配置。寄存器中的位 n 對(duì)應(yīng)于口的引腳 n 。STM8S 的每個(gè) IO 端口都有 5 個(gè)寄存器來(lái)控制,CR1 和 CR2 一起配置模式,DDR方向控制,ODR 輸出數(shù)據(jù)寄存器,IDR 輸入數(shù)據(jù)寄存器。 7.2.1 IO 口端口寄存器設(shè)置 除了 IO 口默認(rèn)功能外,要使用 IO 口操作時(shí),必須先設(shè)置 IO 口寄存器,讓對(duì)應(yīng) IO 口工作于實(shí)際所需的功能。這里分別講解 DDR 方向寄存器,CR1 和 CR2配置寄存器,輸出時(shí)的 ODR 輸出數(shù)據(jù)寄存器以及 IDR 輸入數(shù)據(jù)寄存器。 1、方向寄存器 DDR如果對(duì)應(yīng)位數(shù)
5、據(jù)方向寄存器 DDRx x 取值(0-7)的數(shù)值為ÿ0,即將對(duì)應(yīng)引腳定義為輸入;如果對(duì)應(yīng)數(shù)據(jù)方向寄存器 DDRx 的數(shù)值為ÿ1,即將對(duì)應(yīng)引腳定義為輸出。 這里注意的地方是在 IAR 環(huán)境中,例如 PA 口定義為輸出時(shí),可以定義為PA_DDR = 0xFF,其它端口也一致。還有就是單獨(dú)操作一個(gè)引腳時(shí),可以這樣定義 PA_DDR_DDR0 就是 PA 的第一個(gè)引腳,其他引腳也類似。2、配置寄存器 CR1、CR2CR1 和 CR2 是一起使用的,具體的功能是實(shí)現(xiàn)配置為上拉,懸浮,中斷以及高速 IO 口等等功能。上圖已經(jīng)詳細(xì)說(shuō)明了 CR1,CR2 的功能使用方法。例如當(dāng)配置為輸出時(shí)
6、,推挽模式,也是 PA 口,可以定義為 PA_CR1 = 0xFF; PA_CR2 = 0x00; 當(dāng)然,當(dāng)定義單獨(dú)一個(gè)引腳時(shí),分別定義為 PA_CR1_C10 = 1; /PA0 PA_CR2_C20 = 0; 3、輸出數(shù)據(jù)寄存器 ODR當(dāng)對(duì)應(yīng) IO 口定義為輸出時(shí),如何輸出一個(gè)讓程序控制的數(shù)值呢?這就要用到輸出數(shù)據(jù)寄存器。具體實(shí)現(xiàn)的是當(dāng)向?qū)?yīng)的輸出數(shù)據(jù)寄存器寫(xiě)入數(shù)據(jù)時(shí),這個(gè)數(shù)值就會(huì)在對(duì)應(yīng)的引腳中產(chǎn)生相應(yīng)的高低電平,具體實(shí)現(xiàn)辦法是,例如 PA0 輸出高電平可以定義為 PA_ODR |= 1; /其它寄存器已經(jīng)配置好當(dāng)然也可以單獨(dú)一個(gè)位操作 PA_ODR_ODR0 = 1; /效率比上面的更高
7、 4、輸入數(shù)據(jù)寄存器 IDRIDR 實(shí)現(xiàn)的功能是:當(dāng) IO 口定義為輸入時(shí),通過(guò)讀取 IDR 寄存器可以知道對(duì)應(yīng) IO 口的電平。這里簡(jiǎn)單說(shuō)明當(dāng) PA0 定義為輸入時(shí),可以直接讀取 PA0_IDR 寄存器來(lái)判斷 PA0 電平的情況 if(PA_IDR & 0x01 = 1) /判斷 PA0 口的狀態(tài) 也可以單獨(dú)讀取一個(gè) IO 口,例如 if(PA_IDR_IDR0 = 1) /效率比上面的更好 7.3 IO 口基礎(chǔ)應(yīng)用實(shí)例 本節(jié)以通用 IO 口簡(jiǎn)單應(yīng)用的角度講解如何控制 LED 燈和按鍵開(kāi)關(guān)信號(hào),通過(guò)幾個(gè)實(shí)例的介紹,讓讀者掌握 IO 口的使用和編程方法。 7.3.1 輸出設(shè)備 LED
8、控制實(shí)例 典型 LED 有陽(yáng)極和陰極兩個(gè)引腳,LED 在正向偏置的狀態(tài)下能夠發(fā)光,通過(guò)通用 IO 口連接到 LED 的一個(gè)引腳,LED 另一個(gè)引腳接固定電平,即可點(diǎn)亮 LED。 本實(shí)例硬件連接如下圖所示,PD03 端口連接 4 個(gè) LED,編程實(shí)現(xiàn)明燈流水等操作。由電路圖可知,使用 STM8S207 的 PD0PD3 端口控制 4 個(gè) LED,PD0PD3 端口輸出低電平點(diǎn)亮對(duì)應(yīng)的 LED。本例中流水燈的流動(dòng)速度沒(méi)有實(shí)現(xiàn)精確控制,即延時(shí)時(shí)間沒(méi)有精確計(jì)算,本書(shū)后面章節(jié)會(huì)討論如何實(shí)現(xiàn)精確定時(shí)。 為了熟練使用 IAR,這里詳細(xì)介紹這個(gè)實(shí)例的整個(gè)開(kāi)發(fā)過(guò)程 1、 打開(kāi) IAR 軟件,出現(xiàn)如下圖所示:2、
9、選擇菜單 File>New>Workspace,新建一個(gè) Workspace 3、選擇 Project>Create New Project,新建一個(gè)工程,并學(xué)著 C 按 OK,選擇保存路徑保存。 4、選擇 File>Save>Workspace,保存 Workspace,出現(xiàn)下圖所示5、編寫(xiě)程序代碼就可以了,在 main 文件中添加如下代碼,實(shí)現(xiàn)流水燈#include "iostm8s207rb.h" void delay_ms(int value); int main( void ) unsigned char i=0; /配置PD0PD3
10、為輸出模式 PD_DDR |= 0x0F; /0000 1111, 1為輸出 PD_CR1 |= 0x0F; /推挽輸出 PD_CR2 = 0x00; while(1) /累加燈效果 PD_ODR = i & 0x0f; /先把i反轉(zhuǎn),再取低4位控制4個(gè)LED delay_ms(100); +i; /* * 簡(jiǎn)單延時(shí)程序 * */ void delay_ms(int value) int i,j; if(value < 1) value = 1; for(i=0;i!=value;+i) for(j=0;j!=5000;+j); 6、工程選項(xiàng)配置 要下載的文件是 hex,默認(rèn)生成
11、時(shí) o 文件,所在要修改工程配置,具體如下:選擇 Project>Options,或者在 Workspace 窗口,選中 project 名字,右擊選擇選擇ÿOptions 設(shè)置如下圖所示:7、編譯下載 按編譯后,就會(huì)生成 hex 文件,在工程目錄的 Debug>Exe 下面 8、下載,這里不詳細(xì)說(shuō)了,在第二章節(jié)中已經(jīng)詳細(xì)說(shuō)明如下用串口下載程序。7.3.2 輸入設(shè)備按鍵開(kāi)關(guān)讀取實(shí)例 用戶通過(guò)按鍵開(kāi)關(guān)可以實(shí)現(xiàn)簡(jiǎn)單的輸入控制。本實(shí)例按鍵開(kāi)關(guān)的硬件連接如下圖所示:由電路圖可知,使用 STM8S207 的 PD5PD7 端口讀取 3 個(gè)按鍵的狀態(tài)。本例依然使用上面所使用的 LED
12、 燈控制電路,使用 STM8S207 的 PD5PD7 端口控制LED1LED3 三個(gè) LED 燈,考慮通過(guò) 3 個(gè) LED 燈的亮滅反應(yīng) 3 個(gè)按鍵的狀態(tài)情況。 實(shí)例程序如下所示。 #include "iostm8s207rb.h" typedef unsigned char uchar; void delay_ms(int value); int main( void ) /PD0-PD2輸出LED PD5-PD7按鍵輸入 PD_DDR = 0x07; /低三位輸出 PD_CR1 = 0xFF; PD_CR2 = 0x00; /輸出選擇推挽,輸入選擇上拉 while(1) PD_ODR = (PD_IDR & 0xE0)>>5; delay_ms(10); /* * 簡(jiǎn)單延時(shí)程序 * */ void delay_ms(int v
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版新能源充電樁投資加盟合作協(xié)議范本3篇
- 2025年度住宅小區(qū)景觀窗簾藝術(shù)化設(shè)計(jì)與安裝合同范本4篇
- 基坑坍塌事故案例分析
- 二零二五年度車(chē)輛檢測(cè)報(bào)告服務(wù)合同2篇
- 二零二五年度情侶心靈契合不分手情感咨詢合同2篇
- 二零二五版綠色生態(tài)農(nóng)業(yè)種植項(xiàng)目合作協(xié)議4篇
- 新課標(biāo)下的實(shí)驗(yàn)教學(xué)新趨勢(shì)-以小學(xué)科學(xué)為例
- 學(xué)生工業(yè)實(shí)習(xí)中的實(shí)踐能力鍛煉
- 2025年度房屋裝修工程驗(yàn)收與保修個(gè)人房屋裝修合同模板
- 白山2025年吉林白山市縣事業(yè)單位招聘應(yīng)征入伍高校畢業(yè)生14人筆試歷年參考題庫(kù)附帶答案詳解
- 中國(guó)2型糖尿病運(yùn)動(dòng)治療指南 (2024版)
- 貨物運(yùn)輸安全培訓(xùn)課件
- 統(tǒng)編版高中政治選擇性必修2《法律與生活》知識(shí)點(diǎn)復(fù)習(xí)提綱詳細(xì)版
- 前端年終述職報(bào)告
- 2024小說(shuō)推文行業(yè)白皮書(shū)
- 特殊感染手術(shù)管理考試試題及答案
- 旅館治安管理制度及突發(fā)事件應(yīng)急方案三篇
- 市人民醫(yī)院關(guān)于開(kāi)展“改善就醫(yī)感受提升患者體驗(yàn)主題活動(dòng)”2023-2025年實(shí)施方案及資料匯編
- 政績(jī)觀存在的問(wèn)題及整改措施范文(7篇)
- GB 1886.232-2016食品安全國(guó)家標(biāo)準(zhǔn)食品添加劑羧甲基纖維素鈉
- 《港口管理》課件綜述
評(píng)論
0/150
提交評(píng)論