微機(jī)原理實(shí)驗(yàn)指導(dǎo)書_第1頁
微機(jī)原理實(shí)驗(yàn)指導(dǎo)書_第2頁
微機(jī)原理實(shí)驗(yàn)指導(dǎo)書_第3頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、四. 實(shí)驗(yàn)任務(wù)4.1實(shí)驗(yàn)一按鍵檢測和LED顯示1.實(shí)驗(yàn)?zāi)康模?1) 掌握 STM32的 I/O 模塊的使用;( 2) 理解獨(dú)立按鍵檢測和陣列按鍵檢測原理,編程并實(shí)現(xiàn)按鍵檢測功能;( 3) 理解八段數(shù)碼管顯示原理,編程并實(shí)現(xiàn)數(shù)碼管 的顯示;( 4) 熟悉 JTAG調(diào)試工具和調(diào)試技術(shù)。2.重點(diǎn)、難點(diǎn)重點(diǎn):按鍵檢測及數(shù)碼管顯示的實(shí)現(xiàn)。難點(diǎn):按鍵去抖技術(shù)、在線調(diào)試技術(shù)。3.作業(yè)及課外學(xué)習(xí)要求課前預(yù)習(xí),撰寫預(yù)習(xí)報(bào)告,課后書寫實(shí)驗(yàn)報(bào)告。4.實(shí)驗(yàn)原理單微處理器與外部芯片或設(shè)備最常見的交互,就是通過對(duì)I/O 口的操作實(shí)現(xiàn)的。 無論 MCU對(duì)外界進(jìn)行何種數(shù)字控制,或接受外部的何種數(shù)字控制,都可以通過I/O口進(jìn)行

2、。鍵盤、 LED、等外設(shè)都是通過I/O 口的輸入、 輸出來進(jìn)行讀取或控制的。LED顯示電路如下。1/15(1) 獨(dú)立按鍵檢測原理F8MCUSTM32F103ZCT6F9F10FC0圖 4.1 按鍵檢測基礎(chǔ)知識(shí)本實(shí)驗(yàn)箱用的按鍵為彈性按鍵,存在按下和彈起的抖動(dòng)問題,可通過延時(shí)去抖法實(shí)現(xiàn)按鍵檢測。如圖4.1 中的流程圖所示。實(shí)驗(yàn)例程參見“實(shí)驗(yàn)一_IAR_GPIO_ 獨(dú)立按鍵測試” 。本實(shí)驗(yàn)箱獨(dú)立按鍵和獨(dú)立LED 的硬件定義如下:#define LED0(x)GPIO_WriteBit(GPIOA, GPIO_Pin_8, x)#define LED1(x)GPIO_WriteBit(GPIOC, G

3、PIO_Pin_9, x)#define LED2(x)GPIO_WriteBit(GPIOC, GPIO_Pin_8, x)#define LED3(x)GPIO_WriteBit(GPIOC, GPIO_Pin_7, x)#define LED4(x)GPIO_WriteBit(GPIOC, GPIO_Pin_6, x)#define LED5(x)GPIO_WriteBit(GPIOG, GPIO_Pin_7, x)#define LED6(x)GPIO_WriteBit(GPIOG, GPIO_Pin_6, x)#define LED7(x)GPIO_WriteBit(GPIOB, G

4、PIO_Pin_0, x)#define KEY0GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_8)/ 讀取按鍵 0#define KEY1GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_9)/ 讀取按鍵 1#define KEY2GPIO_ReadInputDataBit(GPIOF,GPIO_Pin_10)/ 讀取按鍵 2#define KEY3GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_0)/讀取按鍵 3(2) 陣列按鍵檢測原理在 MCU 系統(tǒng)中鍵盤中按鈕數(shù)量較多時(shí),為了減少I/O口的占用,常常將按鈕排列

5、成矩陣形式,如下圖4.2 所示。圖 4.2 陣列按鍵 原理圖與實(shí)物圖對(duì)應(yīng)關(guān)系矩陣連接式鍵盤鍵按矩陣排列,各鍵處于矩陣行 / 列的結(jié)點(diǎn)處 ,CPU 通過對(duì)連在行 (列 )的I/O 線送已知電平的信號(hào) ,然后讀取列 (行 )線的狀態(tài)信息。逐線掃描 ,得出鍵碼。其特點(diǎn)是鍵多時(shí)占用 I/O 口線少 ,硬件資源利用合理, 但判斷按鍵速度慢。 多用于設(shè)置數(shù)字鍵, 適用于鍵數(shù)多的場合。按鍵識(shí)別方法: 先把某一行置為低電平,其余各行置為高電平, 檢查各列線電平的變化,如果某列線電平為低電平,則可確定此行此列交叉點(diǎn)處的按鍵被按下。實(shí)驗(yàn)例程參見“實(shí)驗(yàn)一_IAR_GPIO_ 陣列按鍵掃描_數(shù)碼管顯示” 。本實(shí)驗(yàn)箱陣

6、列按鍵硬件定義如下:static struct io_port key_output4 = /輸出行線GPIOF, GPIO_Pin_6,GPIOC, GPIO_Pin_10,GPIOF, GPIO_Pin_7,GPIOC, GPIO_Pin_13;static struct io_port key_input4 = /輸入列線GPIOC, GPIO_Pin_14,GPIOE, GPIO_Pin_5,GPIOC, GPIO_Pin_15,GPIOE, GPIO_Pin_6 ;本實(shí)驗(yàn)箱8 段數(shù)碼管硬件定義如下:SEG_led0 -PE2SEG led1 -PE3SEG led2 -PB1SEG

7、led3 -PB8SEG led4 -PG14SEG led5 -PG13SEG led6 -PD2SEG led_DP -PG11SEG led_s0 - PD7SEG led_s1 -PG9SEG led_s2 -PD6SEG led_s3 -PD3注意:本實(shí)驗(yàn)箱的8 段數(shù)碼管為4 位一體共陽數(shù)碼管。數(shù)碼管與STM32 直接相連,用戶可通過 STM32 直接輸出信號(hào)至數(shù)碼管。由于七段數(shù)碼管LED 公共端連接到VCC (共陽極),當(dāng) STM32 對(duì)應(yīng)的 I/O 引腳輸出低電平時(shí), 對(duì)應(yīng)的七段數(shù)碼管LED 中的 LED 點(diǎn)亮;當(dāng) STM32對(duì)應(yīng)的I/O 引腳輸出高電平時(shí),對(duì)應(yīng)的七段數(shù)碼管LED

8、 中的 LED 熄滅。通過控制led_s0-led_s3 4 個(gè)管腳,分時(shí)控制4 個(gè)數(shù)碼管的亮面,通過視覺暫留效應(yīng),達(dá)到4 個(gè)數(shù)碼管同時(shí)顯示的效果。5 實(shí)驗(yàn)任務(wù)實(shí)驗(yàn)任務(wù)1: 按鍵檢測和LED 顯示實(shí)驗(yàn)1.1實(shí)際運(yùn)行例程 1“實(shí)驗(yàn)一 _IAR_GPIO_ 獨(dú)立按鍵測試”1.1.1 學(xué)習(xí)、理解IO 口初始化,掌握 IO 口操作的相關(guān)操作方法1.1.2 說明程序用SW0 點(diǎn)亮 LED0 ,用 SW1 點(diǎn)亮 LED1 ,兩者的點(diǎn)亮方式有何不同。1.2編程,按下按鍵SW0 后, 8 個(gè) LED 燈從左向右依次發(fā)亮。實(shí)驗(yàn)任務(wù)2: 陣列按鍵掃描與數(shù)碼管顯示2.1運(yùn)行例程 2“實(shí)驗(yàn)一 _IAR_GPIO_ 陣

9、列按鍵掃描 _數(shù)碼管顯示”學(xué)習(xí),理解陣列按鍵掃描與數(shù)碼管顯示器的相關(guān)概念。掌握陣列按鍵與數(shù)碼管顯示器的編程方法。2.2編程,掃描鍵盤,若按下“ 1”,用 7 段 LED 顯示你的學(xué)號(hào)后4 位數(shù)。若按下“ 2”,用 7 段 LED 顯示你的學(xué)號(hào)前4 位數(shù)。6 實(shí)驗(yàn)報(bào)告要求實(shí)驗(yàn)報(bào)告必須有下列內(nèi)容:實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)原理簡要說明庫函數(shù)作用? GPIO_Init? GPIO_SetBits? GPIO_ResetBits? GPIO_WriteBit? GPIO_ReadInputDataBit實(shí)驗(yàn)任務(wù)1.2? 實(shí)驗(yàn)原理? 主要編程要點(diǎn)? 主要程序代碼實(shí)驗(yàn)任務(wù) 2.2? 實(shí)驗(yàn)原理? 主要編程要點(diǎn)? 主要程序

10、代碼4.2實(shí)驗(yàn)二IO 中斷和定時(shí)器中斷1.實(shí)驗(yàn)?zāi)康模?1) 理解 I/O 中斷的概念,掌握采用 I/O 中斷的按鍵識(shí)別技術(shù);( 2) 理解定時(shí)器的工作原理,掌握定時(shí)器中斷的工作方式;( 3) 掌握采用定時(shí)器的獨(dú)立按鍵掃描及陣列按鍵掃描功能。2.重點(diǎn)、難點(diǎn)重點(diǎn): I/O 中斷及定時(shí)器的使用,采用定時(shí)器的獨(dú)立按鍵掃描及陣列按鍵掃描功能。難點(diǎn):中斷的概念及編程實(shí)現(xiàn)技巧。3.作業(yè)及課外學(xué)習(xí)要求課前預(yù)習(xí),撰寫預(yù)習(xí)報(bào)告,課后書寫實(shí)驗(yàn)報(bào)告。4.實(shí)驗(yàn)原理一、 IO 中斷IO 中斷模式,可使得外部設(shè)備可以主動(dòng)請(qǐng)求MCU與其傳輸狀態(tài)或數(shù)據(jù),提高M(jìn)CU對(duì)事件的相應(yīng)速度。STM32的所有I/O端口可作為外部中斷輸入,

11、同時(shí)可有16 個(gè)中斷輸入源,其中PA0 可作為從待機(jī)模式喚醒的管腳,PC13可作為侵入檢測管腳。外部中斷的庫函數(shù)將表4.1 。I/0中斷的使用請(qǐng)參考“STM32中文參考手冊(cè).pdf”中“通用和復(fù)用功能I/O(GPIO和 AFIO) ”的描述,庫函數(shù)的詳細(xì)描述見“STM32F10xxx_庫函數(shù)_cn.pdf”相應(yīng)章節(jié)。表4.1 STM32外部中斷的庫函數(shù)STM32的中斷服務(wù)函數(shù),均在Library->src->stm32f10x_it.c中。本實(shí)驗(yàn)例程“實(shí)驗(yàn)二_IAR_IO中斷”采用SW3做為IO中斷,對(duì)應(yīng)的管腳為PC0,中斷線為 EXTI0_IRQChannel ,中斷服務(wù)函數(shù)為v

12、oidEXTI0_IRQHandler(void)。 STM32所有模塊在使用前,必須先利用“RCC_APB2PeriphClockCmd”或者“ RCC_APB1PeriphClockCmd”函數(shù)配置時(shí)鐘。在配置IO中斷前,必須配置系統(tǒng)時(shí)鐘及GPIOC 和AFIO的時(shí)鐘,見例程“實(shí)驗(yàn)二_IAR_IO中斷”的函數(shù)“NVIC_Configuration”中。例程“實(shí)驗(yàn)二_IAR_IO 中斷”效果:每按下SW3按鍵, LED1燈閃爍幾下。定時(shí)器void TIM2_IRQHandler(void)二、定時(shí)器定時(shí)器主要用于計(jì)時(shí)、定時(shí)或產(chǎn)生PWM 信號(hào),廣泛應(yīng)用于工業(yè)檢測、控制系統(tǒng)中。本實(shí)驗(yàn)例程 “實(shí)驗(yàn)

13、二 _IAR_ 定時(shí)器中斷” 使能 STM32 的定時(shí)器2(TIM2 )和 SysTick 兩個(gè)定時(shí)器,其TIM2中斷服務(wù)函數(shù)分別為Library->src->stm32f10x_it.c中的“ voidTIM2_IRQHandler(void)”,SysTick 用于延時(shí),工作于查詢模式。TIM2 為 10ms 中斷,主要用于按鍵掃描。采用延時(shí)函數(shù)去抖,占用了大量的CPU 資源( Delay 函數(shù)),而采用定時(shí)器實(shí)現(xiàn)按鍵掃描,可以大大提高CPU 效率。圖4.3 給出了采用定時(shí)器中斷實(shí)現(xiàn)掃描按鍵的流程圖。例程“實(shí)驗(yàn)二 _IAR_ 定時(shí)器中斷”利用定時(shí)器中斷,產(chǎn)生了一個(gè) 50Hz 的

14、方波, 通過 “ SPI 測試點(diǎn)” 區(qū)的 TP19 測試點(diǎn)輸出, 同時(shí)實(shí)現(xiàn)了 SW2 獨(dú)立按鍵的定時(shí)器掃描功能。例程“實(shí)驗(yàn)二_IAR_ 定時(shí)器中斷”效果:( 1)、利用示波器可在 TP19 測試點(diǎn)測試得到 50Hz 的方波;( 2)每按下SW2按鍵, LED2 燈的狀態(tài)就會(huì)翻轉(zhuǎn)一下。5.實(shí)驗(yàn)任務(wù)實(shí)驗(yàn)任務(wù)一:利用 IO 中斷和 SysTich 延時(shí)函數(shù) (在 IO 中斷中延時(shí)去抖),編寫程序, 實(shí)現(xiàn)每按下SW3按鍵, LED1狀態(tài)翻轉(zhuǎn)一次。實(shí)驗(yàn)任務(wù)二:利用 TIM2中斷掃描按鍵(不能有延時(shí)函數(shù))圖,實(shí)現(xiàn)按下4.3 定時(shí)器按鍵掃描流程圖SW0、SW1 時(shí),不同流水燈效果。按下SW0,按從左向右的順

15、序分別點(diǎn)亮LED0 LED7 ;即,亮 LED0 ,熄滅 LED0 ;亮 LED1 ,熄滅 LED1 ;亮 LED2 ,熄滅 LED2;LED0(ON);delay_ms(100);LED0(OFF);delay_ms(100);LED1(ON);delay_ms(100);LED1(OFF);delay_ms(100);LED2(ON);delay_ms(100);LED2(OFF);delay_ms(100);按下SW1,按從右向左的順序分別點(diǎn)亮LED0 LED7 。實(shí)驗(yàn)任務(wù)三:利用 TIM2 中斷編寫陣列按鍵掃描程序(不能有延時(shí)函數(shù)),要求實(shí)現(xiàn)2 位數(shù) *2 位數(shù)的計(jì)算器功能。利用 *作

16、為乘法, #號(hào)作為等于, C 清零。要求八段數(shù)碼管的顯示也在定時(shí)器中斷中完成(不能有延時(shí)函數(shù)) 。4.3RS232 串口通信1.基本要求( 1) 理解 RS232通信時(shí)序,掌握RS232模塊的使用;( 2) 理解 RS232外圍電平轉(zhuǎn)換芯片的功能,利用示波器測試RS232通信時(shí)序;( 3) 掌握串口調(diào)試技術(shù)。2.重點(diǎn)、難點(diǎn)重點(diǎn):掌握RS232模塊的使用。難點(diǎn):通信時(shí)序的概念。3.作業(yè)及課外學(xué)習(xí)要求課前預(yù)習(xí),撰寫預(yù)習(xí)報(bào)告,課后書寫實(shí)驗(yàn)報(bào)告。4 實(shí)驗(yàn)原理在微處理器眾多的片上外設(shè)中,UART模塊是最常用的模塊之一。UART通過 2 根線( RXD、TXD)或 4 根線( RXD、TXD、 RTS、

17、CTS),可將微處理器與專用模塊或者其他系統(tǒng)聯(lián)系起來,實(shí)現(xiàn)更復(fù)雜的功能或通信,大大擴(kuò)展了微處理器的應(yīng)用領(lǐng)域,比如可通過微處理器的UART控制 GPRS模塊,實(shí)現(xiàn)接打電話、收發(fā)短信和上網(wǎng)等等。UART(Universal Asynchronous Receiver/Transmitter)通用異步收發(fā)器,是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。UART首先將接收到的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)來傳輸。消息幀從一個(gè)低位起始位開始,后面是 78 個(gè)數(shù)據(jù)位,一個(gè)可用的奇偶位和一個(gè)或幾個(gè)高位停止位。接收器發(fā)現(xiàn)開始位時(shí)它就知道數(shù)據(jù)準(zhǔn)備發(fā)送,并嘗試與發(fā)送器時(shí)鐘頻率同步。如果

18、選擇了奇偶校驗(yàn),UART就在數(shù)據(jù)位后面加上奇偶位。奇偶位可用來幫助校驗(yàn)錯(cuò)誤。在接收過程中,UART從消息幀中去掉起始位和結(jié)束位,對(duì)進(jìn)來的字節(jié)進(jìn)行奇偶校驗(yàn),并將數(shù)據(jù)字節(jié)從串行轉(zhuǎn)換成并行。圖 4.4 串口通信時(shí)序8/15本實(shí)驗(yàn)例程“實(shí)驗(yàn)三 _IAR_ 串口通信”,利用串口 1 與計(jì)算機(jī)通信,利用PC端的串口調(diào)試助手, 實(shí)現(xiàn) PC 發(fā)送給 STM32 的數(shù)據(jù),STM32 回傳給 PC 的功能。UART1的接收中斷服務(wù)函數(shù)是Library->src->stm32f10x_it.c中的“voidUSART1_IRQHandler(void) ”。注意, UART1 的收發(fā)中斷的服務(wù)函數(shù)均為這

19、個(gè)函數(shù),當(dāng)前進(jìn)入中斷的具體中斷源,需要在此函數(shù)中通過if 語句查詢確認(rèn), 參見本例程。5.實(shí)驗(yàn)任務(wù)實(shí)驗(yàn)任務(wù)一:LED編寫一個(gè)流水燈程序,燈輪流閃爍效果不同,利用串口調(diào)試助手向 MCU 發(fā)送字符, 發(fā)送不同的字符時(shí), 8 個(gè)至少做出兩種及以上效果。 同時(shí)利用示波器觀察并畫出 PC 機(jī)向STM32 發(fā)送數(shù)據(jù)的波形( UART_TX 、UART_RX ,TX_+12 、RX_+12 ),解析波形對(duì)應(yīng)的字節(jié)。實(shí)驗(yàn)任務(wù)二:編寫程序,利用TIM2中斷掃描陣列鍵盤(不能有延時(shí)函數(shù)),并將掃描到的值通過串口打印到PC 端,同時(shí)在八段數(shù)碼管上顯示掃描到的鍵值(不能有延時(shí)函數(shù))。實(shí)驗(yàn)任務(wù)三:編寫程序,在PC 端利

20、用串口調(diào)試助手發(fā)送不同的字符串,在串口接收中斷中編寫字符串接收程序,識(shí)別字符串,并根據(jù)收到的不同字符串,點(diǎn)亮相應(yīng)的 LED 等。字符串為自己的學(xué)號(hào)和班級(jí)號(hào)兩種。4.4IIC 通信及 LCD 顯示1.基本要求( 1) 理解 IIC 通信時(shí)序,利用示波器測試IIC 通信時(shí)序;( 2) 掌握 I/O 口模擬 IIC 的編程以及 IIC 模塊的使用;( 3)掌握 IIC 接口的液晶顯示編程。2.重點(diǎn)、難點(diǎn)重點(diǎn):掌握IIC 模塊的使用以及LCD顯示編程。難點(diǎn):通信時(shí)序的概念。3.作業(yè)及課外學(xué)習(xí)要求課前預(yù)習(xí),撰寫預(yù)習(xí)報(bào)告,課后書寫實(shí)驗(yàn)報(bào)告。4 實(shí)驗(yàn)原理IIC 總線以其連線簡單( 2 線傳輸)、可掛接多達(dá)

21、128 個(gè)設(shè)備的特點(diǎn),在MCU 系統(tǒng)中,獲得了廣泛的應(yīng)用。電視機(jī)內(nèi)的MCU 通過 IIC 總線來控制 LED驅(qū)動(dòng)器從而控制LED 的輸出,服務(wù)器中的系統(tǒng)溫度傳感器和風(fēng)扇等器件都是連接在 IIC 總線上的。利用IIC 總線 MCU 可以與很多器件進(jìn)行通信,如E2PROM 、 LCD、RTC 日歷時(shí)鐘、系統(tǒng)外接DA 等。IIC 即集成電路總線( Inter-Integrated Circuit),這種總線類型是由飛利浦半導(dǎo)體公司在八十年代初設(shè)計(jì)出來的,主要是用來連接整體電路。IIC 是一種多向控制總線,也就是說多個(gè)芯片可以連接到同一總線結(jié)構(gòu)下,同時(shí)每個(gè)芯片都可以作為實(shí)時(shí)數(shù)據(jù)傳輸?shù)目刂圃矗@種方式簡

22、化了信號(hào)傳輸總線。圖 4.5 給出了 IIC 總線連接圖, IIC 總線特征如下:只要求兩條總線線路:一條串行數(shù)據(jù)線 SDA ,一條串行時(shí)鐘線 SCL。每個(gè)連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機(jī)/從機(jī)關(guān)系軟件設(shè)定地址,主機(jī)可以作為主機(jī)發(fā)送器或主機(jī)接收器。它是一個(gè)真正的多主機(jī)總線,如果兩個(gè)或更多主機(jī)同時(shí)初始化,數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞。串行的 8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,快速模式下可達(dá) 400kbit/s,高速模式下可達(dá)3.4Mbit/s 。10/15VCCDevice AMCU數(shù)據(jù)線( SDA )時(shí)鐘線( SCL)Devi

23、ce BDevice C圖 4.5 IIC 總線連接圖圖 4.6 IIC 總線時(shí)序圖圖 4.6 給出了 IIC 總線時(shí)序圖。在 SCL 線是高電平時(shí), SDA 線從高電平向低電平切換,這個(gè)情況表示起始條件;當(dāng)SCL 是高電平時(shí), SDA 線由低電平向高電平切換表示停止條件。 起始和停止條件一般由主機(jī)產(chǎn)生, 總線在起始條件后被認(rèn)為處于忙的狀態(tài)在停止條件的某段時(shí)間后,總線被認(rèn)為再次處于空閑狀態(tài)。發(fā)送到 SDA 線上的數(shù)據(jù)每個(gè)字節(jié)必須是8 位,每次可以傳輸?shù)淖止?jié)數(shù)目不受總線限制, 但是每發(fā)送完成一個(gè)字節(jié)必須有一個(gè)響應(yīng)位。如果從機(jī)要完成一些其他功能后才能接收或發(fā)送下一個(gè)完整的數(shù)據(jù)字節(jié),可以使時(shí)鐘線SC

24、L 保持低電平迫使主機(jī)進(jìn)入等待狀態(tài),當(dāng)從機(jī)準(zhǔn)備好接收下一個(gè)數(shù)據(jù)字節(jié)并釋放時(shí)鐘線 SCL 后數(shù)據(jù)傳輸繼續(xù)。 如果傳輸中有主機(jī)接收器, 它必須通過在從機(jī)不產(chǎn)生時(shí)鐘的最后一個(gè)字節(jié)不產(chǎn)生一個(gè)響應(yīng), 向從機(jī)發(fā)送器通知數(shù)據(jù)結(jié)束, 從機(jī)發(fā)送器必須釋放數(shù)據(jù)線,允許主機(jī)產(chǎn)生一個(gè)停止或重復(fù)起始條件。在起始條件 S 后,第一個(gè)發(fā)送的數(shù)據(jù)是一個(gè)從機(jī)地址,這個(gè)地址共有7 位( 7 位地址模式) ,緊隨著的第 8 位是數(shù)據(jù)標(biāo)志位 R/W ,0 表示發(fā)送寫, 1 表示發(fā)送讀。一般由主機(jī)發(fā)出停止位 P 后通信終止,但是如果主機(jī)仍然希望在總線上傳輸數(shù)據(jù),那么它可以發(fā)出重復(fù)起始條件 Sr 和尋址另一個(gè)從機(jī),而不是首先發(fā)出一個(gè)停止

25、條件,在這種數(shù)據(jù)傳輸中,可能會(huì)出現(xiàn)不同的讀寫格式的組合。實(shí)驗(yàn)例程“實(shí)驗(yàn)四 _IAR_ IIC_EEPROM ” 分別利用 STM32 的 IO 口模擬 IIC 控制器和 STM32 片內(nèi)硬件 IIC 控制器,對(duì) EEPROM 進(jìn)行讀寫,實(shí)現(xiàn)數(shù)據(jù)的掉電保存功能;實(shí)驗(yàn)例程“實(shí)驗(yàn)四 _IAR_IIC_LCD ”對(duì)液晶屏進(jìn)行操作,實(shí)現(xiàn)液晶屏幕內(nèi)部的字符串??筛鶕?jù)顯示的內(nèi)容,得到需要顯示的字符串的液晶屏內(nèi)部地址,實(shí)現(xiàn)字符串的顯示。5.實(shí)驗(yàn)任務(wù)實(shí)驗(yàn)任務(wù)一:編寫一個(gè)程序,通過串口調(diào)試助手,在到 EEPROM 中,按下復(fù)位按鍵,自動(dòng)讀取間,用示波器測試“I2C_LCD 測試點(diǎn)”區(qū)的的通信過程。PC 端發(fā)送過來

26、自己的學(xué)號(hào)后,將此學(xué)號(hào)送入EEPROM 內(nèi)的學(xué)號(hào),并通過串口顯示;在此期“ I2C1_SDA ”和“ I2C1_SCL ”信號(hào),理解I2C實(shí)驗(yàn)任務(wù)二:編寫一個(gè)程序,利用硬件IIC 方式,控制液晶屏,顯示自己的學(xué)號(hào)和班級(jí)。并用示波器測試“ I2C_LCD 測試點(diǎn)”區(qū)的 “ I2C1_SDA ”和“ I2C1_SCL ”信號(hào),理解 I2C 的通信過程。4.5AD 及并行總線1.基本要求( 1) 理解 AD工作原理;( 2) 掌握 AD模塊的使用,并利用 AD模塊實(shí)現(xiàn)直流電壓的采集和串口顯示;( 3) 理解并行總線 FSMC通信時(shí)序,利用示波器測試該通信時(shí)序;( 4) 掌握利用 FSMC接口實(shí)現(xiàn) S

27、RAM操作的編程;2.重點(diǎn)、難點(diǎn)重點(diǎn):掌握AD、 FSMC模塊的使用。難點(diǎn): AD模塊的使用、通信時(shí)序的理解。3.作業(yè)及課外學(xué)習(xí)要求課前預(yù)習(xí),撰寫預(yù)習(xí)報(bào)告,課后書寫實(shí)驗(yàn)報(bào)告。4. 實(shí)驗(yàn)原理在 MCU 應(yīng)用中,經(jīng)常需要測量溫度、濕度、壓力、電壓等模擬量,而MCU 是一個(gè)數(shù)字系統(tǒng),內(nèi)部用“ 0和”“ 1數(shù)”字量進(jìn)行運(yùn)算,因此必須把模擬量轉(zhuǎn)換為數(shù)字量 MCU 才能進(jìn)行識(shí)別。模擬量通過輸入接口,即模數(shù)轉(zhuǎn)換器( ADC )轉(zhuǎn)換成數(shù)字量傳送給 MCU 6 。ADC 主要性能指標(biāo):( 1)分辨率。 ADC 的分辨率是能夠分辨的最小量化信號(hào)的能力,即輸出的數(shù)字量變化 1 所需輸入模擬電壓的變化量,通常用位數(shù)來

28、表示。對(duì)于一個(gè)實(shí)現(xiàn) n 位轉(zhuǎn)換的 ADC 來說,它能分辨的最小量化信號(hào)的能力為 2n 位,即分辨率為 2n 位。例如,對(duì)一個(gè) 10 位的 ADC 分辨率為 210=1024 位。( 2)轉(zhuǎn)換精度。因?yàn)閿?shù)字量是離散值,模擬量是連續(xù)值,所以一般在某個(gè)范圍中的模擬量都對(duì)應(yīng)于同一個(gè)數(shù)字量。例如,有一個(gè)ADC ,理論上 5V 電壓對(duì)應(yīng)數(shù)字量 800H,但是實(shí)際上 4.997V, 4.998V,4.999V 也對(duì)應(yīng)數(shù)字量800H。這就意味著,在A/D 轉(zhuǎn)換時(shí)模擬量并不嚴(yán)格一一對(duì)應(yīng)數(shù)字量。這樣就有一個(gè)轉(zhuǎn)換精度的問題,轉(zhuǎn)換精度反映了 ADC 的實(shí)際輸出接近理想輸出的精確程度。 A/D 轉(zhuǎn)換的精度通常是用數(shù)字量

29、的最低有效應(yīng)( LSB )來表示的。設(shè)數(shù)字量的最低有效位對(duì)應(yīng)于模擬量 ,這時(shí)稱 為數(shù)字量的最低有效位當(dāng)量。轉(zhuǎn)換時(shí)間和轉(zhuǎn)換率。完成 1 次 A/D 轉(zhuǎn)換所需要的時(shí)間,稱為 ADC 的轉(zhuǎn)換時(shí)間。用 ADC 的轉(zhuǎn)換時(shí)間的倒數(shù)表示 ADC 的轉(zhuǎn)換速度,即轉(zhuǎn)換率,例如,一個(gè) 12 位逐次逼近式 ADC ,完成一次 A/D 轉(zhuǎn)換所需時(shí)間 20s,其轉(zhuǎn)換率為 50KHZ 。 ADC 的轉(zhuǎn)換時(shí)間約為幾個(gè) s至 200s。STM32F103ZCT6 內(nèi)嵌 3 個(gè) 12 位的模擬 /數(shù)字轉(zhuǎn)換器 (ADC) ,每個(gè) ADC共用多達(dá) 21 個(gè)外部通道,可以實(shí)現(xiàn)單次或掃描轉(zhuǎn)換。在掃描模式下,自動(dòng)進(jìn)行在選定的一組模擬輸入

30、上的轉(zhuǎn)換。實(shí)驗(yàn)板上, PC1 口連接了一個(gè)電位器, 通過旋轉(zhuǎn)電位器可以得到 01.7V 的模擬電壓(“電壓測試點(diǎn)” 區(qū)的 TP9 測試點(diǎn)),同時(shí)本實(shí)驗(yàn)板上的并行總線連接了一個(gè) 512KB 的 SRAM 和一個(gè) TFT 液晶顯示屏。通過對(duì) SRAM 或 TFT 的操作,可以理解 FSMC 總線的通信時(shí)序。實(shí)驗(yàn)例程 “實(shí)驗(yàn)例程五 _AD_FSMC ”提供了利用定時(shí)器 Timer2 驅(qū)動(dòng) AD 采樣,并將采樣得到的數(shù)據(jù)通過 FSMC 寫入到 SRAM 的功能。5. 實(shí)驗(yàn)任務(wù)實(shí)驗(yàn)任務(wù)一:編寫一個(gè)程序, 在實(shí)驗(yàn)例程 “ 實(shí)驗(yàn)例程五 _AD_FSMC ”基礎(chǔ)上, 對(duì)采樣得到的值,轉(zhuǎn)換為電壓值,并利用串口打印出電壓的字符串,例如: ”Voltage:1.7V ” 實(shí)驗(yàn)任務(wù)二:編寫一個(gè)程序, 以 1KHz 采樣率,采集頻率為100Hz ,峰峰值為3V 的正弦波, 共采集50 個(gè)點(diǎn),并在采集的同時(shí)將采集到的值寫入SRAM中。在采集完成后,讀取SRAM的內(nèi)容,并通過串口顯

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論