




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第七章 STM8S207 GPIO模塊及其應(yīng)用本章終于開始 STM8S207 的例程編寫了,通過前面章節(jié)的學(xué)習(xí),相信對(duì)STM8S207 已經(jīng)有了一定的認(rèn)識(shí)。本章從 STM8S207 最簡單的 IO 口模塊開始STM8S207 的編程。 7.1 GPIO 簡介 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ù)用功能的映射是通過選項(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、的輸出模式:推挽式輸出和開漏輸出 4、數(shù)據(jù)輸入和輸出采用獨(dú)立的寄存器 5、外部中斷可以單獨(dú)使能和關(guān)閉 6、輸出擺率控制用以減少 EMC 噪聲 7、片上外設(shè)的 I/O 功能復(fù)用 8、當(dāng)作為模擬輸入時(shí)可以關(guān)閉輸入施密特觸發(fā)器來降低功耗 9、在數(shù)據(jù)輸出鎖存時(shí)支持讀-修改-寫 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 引腳可以通過對(duì) DDR、CR1 和 CR2 寄存器的相應(yīng)位進(jìn)行編程來配置。寄存器中的位 n 對(duì)應(yīng)于口的引腳 n 。STM8S 的每個(gè) IO 端口都有 5 個(gè)寄存器來控制,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ì)說明了 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ù)寄存器寫入數(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í),通過讀取 IDR 寄存器可以知道對(duì)應(yīng) IO 口的電平。這里簡單說明當(dāng) PA0 定義為輸入時(shí),可以直接讀取 PA0_IDR 寄存器來判斷 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 口簡單應(yīng)用的角度講解如何控制 LED 燈和按鍵開關(guān)信號(hào),通過幾個(gè)實(shí)例的介紹,讓讀者掌握 IO 口的使用和編程方法。 7.3.1 輸出設(shè)備 LED
8、控制實(shí)例 典型 LED 有陽極和陰極兩個(gè)引腳,LED 在正向偏置的狀態(tài)下能夠發(fā)光,通過通用 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)速度沒有實(shí)現(xiàn)精確控制,即延時(shí)時(shí)間沒有精確計(jì)算,本書后面章節(jié)會(huì)討論如何實(shí)現(xiàn)精確定時(shí)。 為了熟練使用 IAR,這里詳細(xì)介紹這個(gè)實(shí)例的整個(gè)開發(fā)過程 1、 打開 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、編寫程序代碼就可以了,在 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; /* * 簡單延時(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ì)說了,在第二章節(jié)中已經(jīng)詳細(xì)說明如下用串口下載程序。7.3.2 輸入設(shè)備按鍵開關(guān)讀取實(shí)例 用戶通過按鍵開關(guān)可以實(shí)現(xiàn)簡單的輸入控制。本實(shí)例按鍵開關(guān)的硬件連接如下圖所示:由電路圖可知,使用 STM8S207 的 PD5PD7 端口讀取 3 個(gè)按鍵的狀態(tài)。本例依然使用上面所使用的 LED
12、 燈控制電路,使用 STM8S207 的 PD5PD7 端口控制LED1LED3 三個(gè) LED 燈,考慮通過 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); /* * 簡單延時(shí)程序 * */ void delay_ms(int v
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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-2030男士服裝企業(yè)創(chuàng)業(yè)板IPO上市工作咨詢指導(dǎo)報(bào)告
- 2025-2030電腦工作站行業(yè)市場現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030電動(dòng)牙刷行業(yè)競爭格局分析及投資前景與戰(zhàn)略規(guī)劃研究報(bào)告
- 2025-2030電力環(huán)保產(chǎn)業(yè)政府戰(zhàn)略管理與區(qū)域發(fā)展戰(zhàn)略研究咨詢報(bào)告
- 2025-2030特種車市場市場現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030物業(yè)管理行業(yè)市場發(fā)展分析及發(fā)展趨勢(shì)前景研究報(bào)告
- 2025-2030煮蛋器市場發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測研究報(bào)告
- 2025-2030滑動(dòng)備用輪聯(lián)軸器行業(yè)市場現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030淡水養(yǎng)殖蝦行業(yè)市場發(fā)展分析及發(fā)展前景與投資機(jī)會(huì)研究報(bào)告
- 2025-2030流量儀表行業(yè)競爭格局及“十四五”企業(yè)投資戰(zhàn)略研究報(bào)告
- 院前急救及院內(nèi)急救
- 風(fēng)力發(fā)電工程達(dá)標(biāo)投產(chǎn)風(fēng)電機(jī)組工程質(zhì)量檢查驗(yàn)收表
- 牛排培訓(xùn)課件
- 計(jì)算機(jī)桌面運(yùn)維技術(shù)服務(wù)方案
- 2024科研思路與方法理論知識(shí)考核試題
- 用戶體驗(yàn)測試方法與工具的選擇
- 中建鋼-混凝土組合簡支梁施工方案
- 2023年保育師三級(jí)理論考試備考題庫大全-下(多選、判斷題部分)
- 元末明初浙東文人群研究
- 節(jié)氣習(xí)俗在幼兒園食育活動(dòng)中的實(shí)踐研究 論文
- 中藥飲片處方調(diào)劑制度和操作規(guī)范
評(píng)論
0/150
提交評(píng)論