久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

嵌入式實(shí)驗(yàn)1 流水燈實(shí)驗(yàn)

時(shí)間:2019-05-12 06:35:36下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《嵌入式實(shí)驗(yàn)1 流水燈實(shí)驗(yàn)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《嵌入式實(shí)驗(yàn)1 流水燈實(shí)驗(yàn)》。

第一篇:嵌入式實(shí)驗(yàn)1 流水燈實(shí)驗(yàn)

河南機(jī)電高等專(zhuān)科學(xué)校

《嵌入式系統(tǒng)開(kāi)發(fā)》課程實(shí)驗(yàn)報(bào)告

系部: 電子通信工程系

班級(jí): 電信####

姓名: ######

學(xué)號(hào):

## 實(shí)驗(yàn)一搭建實(shí)驗(yàn)環(huán)境

一.實(shí)驗(yàn)簡(jiǎn)介

搭建嵌入式系統(tǒng)開(kāi)發(fā)環(huán)境,建立第一個(gè)工程,流水燈實(shí)驗(yàn)

二.實(shí)驗(yàn)?zāi)康?/p>

掌握STM32開(kāi)發(fā)環(huán)境,掌握從無(wú)到有的構(gòu)建工程。

三.實(shí)驗(yàn)內(nèi)容

熟悉MDK KEIL開(kāi)發(fā)環(huán)境,構(gòu)建基于固件庫(kù)的工程,編寫(xiě)代碼實(shí)現(xiàn)流水燈工程。通過(guò)ISP下載代碼到實(shí)驗(yàn)板,查看運(yùn)行結(jié)果。下載代碼到目標(biāo)板,查看運(yùn)行結(jié)果。

四.實(shí)驗(yàn)設(shè)備

硬件部分:PC計(jì)算機(jī)(宿主機(jī))、STM32實(shí)驗(yàn)板。

軟件部分:PC機(jī)WINDOWS系統(tǒng)、MDK KEIL軟件、ISP軟件。

五.實(shí)驗(yàn)步驟

1.熟悉MDK KEIL開(kāi)發(fā)環(huán)境 2.熟悉串口編程軟件ISP 3.查看固件庫(kù)結(jié)構(gòu)和文件

4.建立工程目錄,復(fù)制庫(kù)文件 5.建立和配置工程 6.編寫(xiě)代碼 7.編譯代碼

8.使用ISP下載到實(shí)驗(yàn)板 9.測(cè)試運(yùn)行結(jié)果

10.記錄實(shí)驗(yàn)過(guò)程,撰寫(xiě)實(shí)驗(yàn)報(bào)告

六.實(shí)驗(yàn)結(jié)果及測(cè)試

程序代碼主要有兩部分,第一部分是GPIO端口的配置,打開(kāi)端口時(shí)鐘,配置為推挽輸出模式,并使能端口。代碼如下:

void LED_GPIO_Config(void){

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;

GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

GPIO_Init(GPIOC, &GPIO_InitStructure);

GPIO_SetBits(GPIOB, GPIO_Pin_0);

GPIO_SetBits(GPIOC, GPIO_Pin_4|GPIO_Pin_3);

} 第二部分是主函數(shù),主要實(shí)現(xiàn)LED燈的亮滅的功能。要在主函數(shù)中調(diào)用GPIO端口的初始化

int main(void){

LED_GPIO_Config();

while(1){

LED1(ON);

Delay(0x0FFFFF);

LED1(OFF);

LED2(ON);

Delay(0x0FFFFF);

LED2(OFF);

LED3(ON);

Delay(0x0FFFFF);

LED3(OFF);

} } 七.實(shí)驗(yàn)總結(jié)

這次實(shí)驗(yàn)讓我們受益匪淺,學(xué)會(huì)了利用軟件編程,完成教學(xué)任務(wù),學(xué)得了知識(shí),而且提高了實(shí)踐能力,動(dòng)手能力。使我學(xué)到了不少實(shí)用的知識(shí),更重要的是,做實(shí)驗(yàn)的過(guò)程,思考問(wèn)題的方法,這與做其他的實(shí)驗(yàn)是通用的,真正使我們受益匪淺。

第二篇:嵌入式系統(tǒng) 流水燈、按鍵、定時(shí)器實(shí)驗(yàn)報(bào)告

嵌入式系統(tǒng)應(yīng)用

實(shí)驗(yàn)報(bào)告

名: 學(xué)

號(hào): 學(xué)

院: 專(zhuān)

業(yè): 班

級(jí): 指導(dǎo)教師:

實(shí)驗(yàn)

1、流水燈實(shí)驗(yàn)

1.1實(shí)驗(yàn)要求

編程控制實(shí)驗(yàn)板上LED燈輪流點(diǎn)亮、熄滅,中間間隔一定時(shí)間。

1.2原理分析

實(shí)驗(yàn)主要考察對(duì)STM32F10X系列單片機(jī)GPIO的輸出操作。

參閱數(shù)據(jù)手冊(cè)可知,通過(guò)軟件編程,GPIO可以配置成以下幾種模式: ◇輸入浮空 ◇輸入上拉 ◇輸入下拉 ◇模擬輸入 ◇開(kāi)漏輸出 ◇推挽式輸出

◇推挽式復(fù)用功能 ◇開(kāi)漏式復(fù)用功能

根據(jù)實(shí)驗(yàn)要求,應(yīng)該首先將GPIO配置為推挽輸出模式。

由原理圖可知,單片機(jī)GPIO輸出信號(hào)經(jīng)過(guò)74HC244緩沖器,連接LED燈。由于74HC244的OE1和OE2都接地,為相同電平,故A端電平與Y端電平相同且LED燈共陽(yáng),所以,如果要點(diǎn)亮LED,GPIO應(yīng)輸出低電平。反之,LED燈熄滅。

1.3程序分析

軟件方面,在程序啟動(dòng)時(shí),調(diào)用SystemInit()函數(shù)(見(jiàn)附錄1),對(duì)系統(tǒng)時(shí)鐘等關(guān)鍵部分進(jìn)行初始化,然后再對(duì)GPIO進(jìn)行配置。

GPIO配置函數(shù)為SZ_STM32_LEDInit()(見(jiàn)附錄2),函數(shù)中首先使能GPIO時(shí)鐘:

RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE);然后配置GPIO輸入輸出模式:

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 再配置GPIO端口翻轉(zhuǎn)速度: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 最后將配置好的參數(shù)寫(xiě)入寄存器,初始化完成: GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure)。

初始化完成后,程序循環(huán)點(diǎn)亮一個(gè)LED并熄滅其他LED,中間通過(guò)Delay()函數(shù)進(jìn)行延時(shí),達(dá)到流水燈的效果(程序完整代碼見(jiàn)附錄3)。

實(shí)驗(yàn)程序流程圖如下:

硬件方面,根據(jù)實(shí)驗(yàn)指南,將實(shí)驗(yàn)板做如下連接:

1.3實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)

二、按鍵實(shí)驗(yàn)

2.1實(shí)驗(yàn)要求

利用STM32讀取外部按鍵狀態(tài),按鍵按下一次產(chǎn)生一次外部中斷在中斷處理函數(shù)中使按鍵所對(duì)應(yīng)的燈亮起。

2.2原理分析

實(shí)驗(yàn)主要考察對(duì)STM32F10X系列單片機(jī)GPIO外部中斷功能的使用。

STM32F107VCT一共有5組GPIO,分別是PA[15:0]、PB[15:0]、PC[15:0]、PD[15:0]、PE[15:0]。STM32的所有GPIO都可以作為中斷輸入源,單片機(jī)通過(guò)復(fù)用的方式使其對(duì)處理器來(lái)說(shuō)來(lái)自 GPIO 的一共有 16 個(gè)中斷Px[15:0]。具體實(shí)現(xiàn)是PA[0]、PB[0]、PC[0]、PD[0]和PE[0]共享一個(gè)GPIO中斷;PA[1]、PB[1]、PC[1]、PD[1]和PE[1]共享一個(gè)GPIO中斷;……PA[15]、PB[15]、PC[15]、PD[15]和PE[15]共享一個(gè)GPIO中斷。以下圖片為以EXTI0為例的外部中斷/事件線路映像:

要產(chǎn)生中斷,必須先配置好并使能中斷線。根據(jù)需要的邊沿檢測(cè)設(shè)置2個(gè)觸發(fā)寄存器,同時(shí)在中斷屏蔽寄存器的相應(yīng)位寫(xiě)‘1’允許中斷請(qǐng)求。當(dāng)外部中斷線上發(fā)生了期待的邊沿時(shí),將產(chǎn)生一個(gè)中斷請(qǐng)求,對(duì)應(yīng)的掛起位也隨之被置‘1’。在掛起寄存器的對(duì)應(yīng)位寫(xiě)’1’,將清除該中斷請(qǐng)求。

要把IO口作為外部中斷輸入,有以下幾個(gè)步驟:

(1)初始化 IO 口為輸入。這一步設(shè)置要作為外部中斷輸入的IO口的狀態(tài),可以設(shè)置為上拉/下拉輸入,也可以設(shè)置為浮空輸入,但浮空的時(shí)候外部一定要帶上拉,或者下拉電阻。否則可能導(dǎo)致中斷不停的觸發(fā)。在干擾較大的地方,就算使用了上拉/下拉,也建議使用外部上拉/下拉電阻,這樣可以一定程度防止外部干擾帶來(lái)的影響。

(2)開(kāi)啟IO口復(fù)用時(shí)鐘,設(shè)置IO口與中斷線的映射關(guān)系。STM32的IO口與中斷線的對(duì)應(yīng)關(guān)系需要配置外部中斷配置寄存器EXTICR,這樣我們要先開(kāi)啟復(fù)用時(shí)鐘,然后配置IO口與中斷線的對(duì)應(yīng)關(guān)系。才能把外部中斷與中斷線連接起來(lái)。

(3)開(kāi)啟與該IO口相對(duì)的線上中斷/事件,設(shè)置觸發(fā)條件。這一步,我們要配置中斷產(chǎn)生的條件,STM32可以配置成上升沿觸發(fā),下降沿觸發(fā),或者任意電平變化觸發(fā),但是不能配置成高電平觸發(fā)和低電平觸發(fā)。這里根據(jù)自己的實(shí)際情況來(lái)配置。同時(shí)要開(kāi)啟中斷線上的中斷,這里需要注意的是:如果使用外部中斷,并設(shè)置該中斷的EMR位的話,會(huì)引起軟件仿真不能跳到中斷,而硬件上是可以的。而不設(shè)置EMR,軟件仿真就可以進(jìn)入中斷服務(wù)函數(shù),并且硬件上也是可以的。建議不要配置EMR位。

(4)配置中斷分組(NVIC),并使能中斷。這一步,我們就是配置中斷的分組以及使能,對(duì)STM32的中斷來(lái)說(shuō),只有配置了 NVIC 的設(shè)置,并開(kāi)啟才能被執(zhí)行,否則是不會(huì)執(zhí)行到中斷服務(wù)函數(shù)里面去的。

(5)編寫(xiě)中斷服務(wù)函數(shù)。這是中斷設(shè)置的最后一步,中斷服務(wù)函數(shù),是必不可少的,如果在代碼里面開(kāi)啟了中斷,但是沒(méi)編寫(xiě)中斷服務(wù)函數(shù),就可能引起硬件錯(cuò)誤,從而導(dǎo)致程序崩潰。所以在開(kāi)啟了某個(gè)中斷后,應(yīng)為該中斷編寫(xiě)服務(wù)函數(shù)。在中斷服務(wù)函數(shù)里面編寫(xiě)要執(zhí)行的中斷后的操作,并很據(jù)情況判斷是否要對(duì)中斷產(chǎn)生的標(biāo)志位進(jìn)行清零。

由原理圖可知,按鍵未按下時(shí),GPIO讀到的為高電平,按鍵按下后,IO口接地,產(chǎn)生一個(gè)電平跳變,所以外部中斷觸發(fā)方式應(yīng)該設(shè)置為下降沿觸發(fā)。

2.3程序分析

LED燈的點(diǎn)亮與實(shí)驗(yàn)一中相同,不過(guò)多贅述。程序首先對(duì)按鍵進(jìn)行初始化,初始化函數(shù)為GPIO_KEY_Config()(見(jiàn)附錄4),配置過(guò)程與實(shí)驗(yàn)一中GPIO配置基本一致。由于此處GPIO需要采集外界按鍵信號(hào),故GPIO模式應(yīng)該為調(diào)整為內(nèi)部上拉電阻輸入

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU。

然后執(zhí)行GPIO中斷初始化函數(shù)KEY_EXIT_Init()(見(jiàn)附錄5),首先將連接按鍵的IO口與EXTI線鏈接到一起:

GPIO_EXTILineConfig(GPIO_KEY1_EXTI_PORT_SOURCE,GPIO_KEY1_EXTI_PIN_SOURCE);

然后將觸發(fā)方式設(shè)置為下降沿觸發(fā)并寫(xiě)入中斷配置寄存器,并使能中斷: EXTI_InitStructure.EXTI_Line = GPIO_KEY1_EXTI_LINE;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure)。

之后進(jìn)行中斷分組配置及中斷優(yōu)先級(jí)配置,函數(shù)為InterruptConfig()(見(jiàn)附錄6)。配置過(guò)程較為復(fù)雜,涉及到搶占優(yōu)先級(jí)和響應(yīng)優(yōu)先級(jí)的概念。程序首先將所有外部中斷歸為NVIC_PriorityGroup_2,即2位搶占優(yōu)先級(jí)和2位響應(yīng)優(yōu)先級(jí):

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

然后將所有外部中斷信號(hào)的搶占優(yōu)先級(jí)規(guī)定為0、1、2,使其可以相互區(qū)別,并將配置好的參數(shù)寫(xiě)入對(duì)應(yīng)寄存器中,完成配置:

NVIC_InitStructure.NVIC_IRQChannel = GPIO_KEY1_EXTI_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);NVIC_InitStructure.NVIC_IRQChannel = GPIO_KEY2_EXTI_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_Init(&NVIC_InitStructure);NVIC_InitStructure.NVIC_IRQChannel = GPIO_KEY3_EXTI_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;NVIC_Init(&NVIC_InitStructure)。

初始化完成后,程序進(jìn)入等待按鍵中斷觸發(fā)狀態(tài),一旦按鍵按下,則進(jìn)入中斷服務(wù)函數(shù)EXTI9_5_IRQHandler()(見(jiàn)附錄7)中。在函數(shù)中對(duì)LED燈進(jìn)行點(diǎn)亮、熄滅操作,并重置中斷產(chǎn)生標(biāo)志位。

實(shí)驗(yàn)流程圖如下(主函數(shù)代碼見(jiàn)附錄8):

硬件連接方式如下圖所示:

2.3實(shí)驗(yàn)結(jié)果

實(shí)驗(yàn)

三、定時(shí)器實(shí)驗(yàn)

3.1實(shí)驗(yàn)要求

利用STM32的通用定時(shí)器 TIM5 產(chǎn)生一個(gè)1S的中斷,在中斷函數(shù)中實(shí)現(xiàn) LED1、LED2、LED3、LED4同時(shí)翻轉(zhuǎn)的效果。

3.2原理分析

實(shí)驗(yàn)主要考察對(duì)STM32F10X系列單片機(jī)定時(shí)器的使用。

實(shí)驗(yàn)中使用的STM32F107單片機(jī)有多達(dá)10個(gè)定時(shí)器,包括:

◇多達(dá)4個(gè)16位定時(shí)器,每個(gè)定時(shí)器有多達(dá)4個(gè)用于輸入捕獲/輸出比較/PWM 或脈沖計(jì)數(shù)的通道和增量編碼器輸入

◇1個(gè)16位帶死區(qū)控制和緊急剎車(chē),用于電機(jī)控制的 PWM 高級(jí)控制定時(shí)器

◇2個(gè)獨(dú)立的看門(mén)狗定時(shí)器(獨(dú)立的和窗口型的)

◇系統(tǒng)時(shí)間定時(shí)器:24 位自減型計(jì)數(shù)器

◇2個(gè) 16 位基本定時(shí)器用于驅(qū)動(dòng)DAC

根據(jù)時(shí)鐘樹(shù)可知,系統(tǒng)時(shí)鐘經(jīng)過(guò)分頻之后,進(jìn)入TIM5的時(shí)鐘模塊入口,在經(jīng)過(guò)預(yù)分頻處理,才供給TIM5作時(shí)鐘使用。預(yù)分頻器的系數(shù)為:TIMx_PSC,當(dāng)TIMx_PSC = 0時(shí)表示不分頻,則TIM5定時(shí)器的時(shí)鐘

用CK_CNT =模塊入口時(shí)鐘72MHz;當(dāng)TIMx_PSC = 1時(shí)表示不分頻,則TIM5定時(shí)器的時(shí)鐘用CK_CNT=模塊入口時(shí)鐘36MHz;以此類(lèi)推。公式為:CK_CNT =fCK_PSC/(PSC[15:0]+1),其中PSC最大為65535。

其次是TIM5計(jì)數(shù)器計(jì)數(shù)值的設(shè)置,TIM5計(jì)數(shù)器以CK_CNT為時(shí)鐘計(jì)數(shù),向下計(jì)數(shù)到0或向上計(jì)數(shù)到設(shè)定值(TIMx_ARR)則產(chǎn)生中斷。以向上計(jì)數(shù)為例,從 0 開(kāi)始計(jì)數(shù)到設(shè)定值TIMx_ARR 時(shí)產(chǎn)生中斷。要產(chǎn)生一秒一次中斷則要使計(jì)數(shù)器的值乘以預(yù)分頻的值=系統(tǒng)時(shí)鐘72MHz,其中計(jì)數(shù)器的值和預(yù)分頻值都必須小于65535。我們使預(yù)分頻值為7200,計(jì)數(shù)器值為10000,則7200 * 10000 = 72,000,000即72M。其中拆分方法很多35000*2000 = 72,000,000,只要注意計(jì)數(shù)器的值和預(yù)分頻值都必須小于65535即可。當(dāng)計(jì)數(shù)值溢出后,會(huì)改變計(jì)數(shù)溢出標(biāo)志位,并產(chǎn)生定時(shí)器中斷,實(shí)驗(yàn)中使用其產(chǎn)生中斷來(lái)進(jìn)行LED燈翻轉(zhuǎn)。

3.3程序分析

LED初始化部分與實(shí)驗(yàn)一相同,完成初始化后,點(diǎn)亮所有LED燈。定時(shí)器配置函數(shù)為T(mén)IM5_Init()(見(jiàn)附錄6)。配置函數(shù)首先使能計(jì)數(shù)器時(shí)鐘:

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE); 然后自動(dòng)裝載計(jì)數(shù)值,計(jì)數(shù)從0開(kāi)始:

TIM_TimeBaseStructure.TIM_Period =(1001); 并將計(jì)數(shù)器設(shè)置為向上計(jì)數(shù):

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 最后寫(xiě)入計(jì)時(shí)器配置寄存器,完成配置:

TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure)。

配置完成后,還要對(duì)計(jì)數(shù)器溢出標(biāo)志位進(jìn)行清零,并打開(kāi)溢出中斷,使能計(jì)數(shù)器以開(kāi)始計(jì)數(shù)。

TIM_ClearITPendingBit(TIM5, TIM_IT_Update);TIM_ITConfig(TIM5, TIM_IT_Update, ENABLE);TIM_Cmd(TIM5, ENABLE)。

定時(shí)器配置完成并使能后,計(jì)數(shù)器開(kāi)始工作,當(dāng)?shù)竭_(dá)預(yù)設(shè)的計(jì)數(shù)值之后,產(chǎn)生中斷信號(hào)。系統(tǒng)在進(jìn)行相關(guān)配置后可以響應(yīng)定時(shí)器產(chǎn)生的中斷,中斷配置函數(shù)為NVIC_Configuration()(見(jiàn)附錄7)。函數(shù)首先將中斷向量表首地址置于0x08000000:

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0000); 然后使能TIM5中斷:

NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;最后將配置參數(shù)寫(xiě)入中斷控制寄存器,完成配置: NVIC_Init(&NVIC_InitStructure)。

一旦中斷產(chǎn)生,系統(tǒng)會(huì)對(duì)中斷產(chǎn)生響應(yīng),暫停所有正在執(zhí)行的低優(yōu)先級(jí)任務(wù)且將任務(wù)信息和數(shù)據(jù)壓入對(duì)應(yīng)對(duì)戰(zhàn)區(qū),并進(jìn)入中斷服務(wù)函數(shù)TIM5_IRQHandler()(見(jiàn)附錄8)中進(jìn)行處理。

在中斷服務(wù)函數(shù)中判斷并清除了中斷標(biāo)志位,以便定時(shí)器下一次計(jì)數(shù)中斷產(chǎn)生。函數(shù)中調(diào)用了LED_Spark()函數(shù)(見(jiàn)附錄9),實(shí)現(xiàn)了LED的閃爍。

程序流程圖如下:

硬件連接方式如下圖所示:

實(shí)驗(yàn)

四、按鍵中斷控制LED燈定時(shí)閃爍

4.1實(shí)驗(yàn)要求

綜合實(shí)驗(yàn)一、二、三,利用STM32讀取外部按鍵狀態(tài),按鍵按下一次產(chǎn)生一次外部中斷在中斷處理函數(shù)中使按鍵所對(duì)應(yīng)的燈閃爍,閃爍間隔通過(guò)定時(shí)器定時(shí)控制。其中,SKEY1控制LED1以1S為間隔,閃爍3次,SKEY2控制LED2以2S為間隔閃爍3次,SKEY3控制LED3以3S為間隔,閃爍3次。

4.2原理分析

實(shí)驗(yàn)需要用到STM32的GPIO輸入輸出操作,GPIO外部中斷和內(nèi)部定時(shí)器中斷。在以上三個(gè)實(shí)驗(yàn)中,對(duì)各個(gè)部分都已經(jīng)進(jìn)行過(guò)詳盡的解釋?zhuān)@里不再贅述。此實(shí)驗(yàn)需要將以上實(shí)驗(yàn)做綜合,并對(duì)時(shí)序進(jìn)行調(diào)整。難點(diǎn)為,對(duì)GPIO外部中斷和定時(shí)器內(nèi)部中斷的處理,即如何確定兩種不同中斷的優(yōu)先級(jí)。

這里的使用的方法是,將所有按鍵外部中斷置于中斷分組2,即NVIC_PriorityGroup_2中。將所有按鍵中斷搶占優(yōu)先級(jí)置為0,即最高級(jí)別中斷,響應(yīng)優(yōu)先級(jí)置分別置為1、2、3,相互區(qū)別。將定時(shí)器中斷搶占優(yōu)先級(jí)置為1,相應(yīng)優(yōu)先級(jí)社會(huì)中低于按鍵中斷,使其可以被按鍵信號(hào)中斷計(jì)時(shí),并刷新LED閃爍狀態(tài)。

4.3程序分析

這在程序初始化階段,分別對(duì)LED、按鍵外部中斷和定時(shí)器中斷進(jìn)行初始化。主函數(shù)如下:

int main(void){ /* LED初始化 */ LED_config();/* LED閃爍? */ Led_Turn_on_all();Delay(3000000);Led_Turn_off_all();Delay(3000000);Led_Turn_on_all();Delay(3000000);Led_Turn_off_all();Delay(3000000);Led_Turn_on_all();Delay(3000000);Led_Turn_off_all();/* 按鍵初始化 */ GPIO_KEY_Config();/* 按鍵外部中斷初始化 */ KEY_EXIT_Init();/* 外部中斷向量初始化 */ InterruptConfig();/* 定時(shí)器5初始化 */ TIM5_Init();/* 定時(shí)器中斷初始化 */ NVIC_Configuration();/* 等待中斷觸發(fā) */ while(1){ } } 初始化完成后,等待中斷觸發(fā)。一旦按鍵按下,觸發(fā)外部中斷,則進(jìn)入外部中斷服務(wù)函數(shù),函數(shù)中將判斷哪一個(gè)按鍵被按下,記錄按下的按鍵,然后給定時(shí)器清零并開(kāi)始計(jì)數(shù),且清零外部中斷標(biāo)志位。

第三篇:流水燈實(shí)驗(yàn)報(bào)告

單片機(jī)流水燈實(shí)驗(yàn)

一、任務(wù)

讓8個(gè)LED燈輪流亮起來(lái),實(shí)現(xiàn)流水燈的功能。

二、思路

讓接在P0.0口的LED燈亮起來(lái),那么只要把P0.0口的電平變?yōu)榈碗娖骄涂梢粤耍幌喾矗绻釉赑0.0口的LED燈熄滅,就要把P0.0口的電平變?yōu)楦唠娖骄涂梢粤恕R獙?shí)現(xiàn)流水燈功能,只要將8個(gè)LED燈依次點(diǎn)亮、熄滅,8只LED燈便會(huì)一亮一暗的做流水燈了。

我們應(yīng)該注意一點(diǎn),由于單片機(jī)執(zhí)行每條指令的時(shí)間很短,我們?cè)诳刂贫O管亮滅的時(shí)候應(yīng)該延時(shí)一段時(shí)間,否則我們就看不到“流水”效果了。

三、步驟

1、用proteus畫(huà)電路圖。如下圖:

2、用keil建工程。

1)運(yùn)行keil C51軟件,點(diǎn)擊Project菜單新建項(xiàng)目,選擇為AT89C52的單片機(jī)型號(hào)。然后單擊File選擇New新建程序文件,保存成.c 文件,右擊Source Group1添加入程序文件。2)用C語(yǔ)言編寫(xiě)程序代碼如下:

#include void delay(unsigned char tmp);code unsigned char tmpled[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void main(void){ unsigned char i;while(1){ for(i=0;i<8;i++){

P0=tmpled[i];

delay(50);} } }

void delay(unsigned char tmp){ unsigned char i,j;i=tmp;while(i){ i--;j=255;{

j--;} } } 3)右擊Target 1打開(kāi)設(shè)置,Output菜單下勾選上create hex file。

4)調(diào)試運(yùn)行程序后,在proteus中雙擊單片機(jī),添加hex文件,運(yùn)行看到流水的的效果。

四、實(shí)驗(yàn)中遇到的問(wèn)題。

1、用proteus仿真時(shí)候,發(fā)現(xiàn)錯(cuò)誤:

error variable not found parsing property resistance of RN1-Rnvalue expected for RN1-R(n=1~8)而且led燈亮度十分微弱。可能是接入的電阻太大了。

檢查電路圖發(fā)現(xiàn)排阻的值為RX8,修改為220(自己選擇)后。錯(cuò)誤便沒(méi)有了,同時(shí),led燈的亮度也增強(qiáng)了。

2、關(guān)于延時(shí)函數(shù)。

延時(shí)的時(shí)間計(jì)算不太明白。

3、P0=0xfe;是對(duì)單片機(jī)P0口的8個(gè)I/O口同時(shí)進(jìn)行操作,0x后的數(shù)使用十六進(jìn)制表示,fe轉(zhuǎn)換為二進(jìn)制是1111 1110,則P0.0為低電平,對(duì)應(yīng)的led燈亮,其他7個(gè)led燈滅。

第四篇:流水燈實(shí)驗(yàn)報(bào)告(范文)

單片機(jī)流水燈試驗(yàn)

一、實(shí)驗(yàn)?zāi)康模?/p>

1、進(jìn)一步熟悉Keil C51集成開(kāi)發(fā)環(huán)境調(diào)試功能的使用

2、學(xué)會(huì)自己編寫(xiě)程序,進(jìn)行編譯、仿真調(diào)試

3、學(xué)會(huì)使用單片機(jī)的P0口作為I/O口去控制外圍電路,實(shí)現(xiàn)LED燈以固定的頻率進(jìn)行閃爍。

二、實(shí)驗(yàn)設(shè)備:

1、PC機(jī)

2、SW-51PROC單片機(jī)綜合實(shí)驗(yàn)平臺(tái)

三、實(shí)驗(yàn)內(nèi)容:

1、編寫(xiě)一段程序,用單片機(jī)P0口的8個(gè)輸出去控制8個(gè)LED燈,實(shí)現(xiàn)如下功能:

先使8個(gè)LED燈輪流點(diǎn)亮,從左向右移動(dòng),時(shí)間間隔0.5s。以上過(guò)程循環(huán)實(shí)現(xiàn)。

四、實(shí)驗(yàn)步驟:

1、實(shí)驗(yàn)原理:

單片機(jī)流水的實(shí)質(zhì)是單片機(jī)各引腳在規(guī)定的時(shí)間逐個(gè)上電,使LED燈能逐個(gè)亮起來(lái)但過(guò)了該引腳通電的時(shí)間后便滅燈的過(guò)程,實(shí)驗(yàn)中使用了單片機(jī)的P2端口,對(duì)8個(gè)LED燈進(jìn)行控制,要實(shí)現(xiàn)逐個(gè)亮燈即將P2的各端口逐一置零,中間使用時(shí)間間隔隔開(kāi)各燈的亮滅。使用rl或rr a實(shí)現(xiàn)位的轉(zhuǎn)換。A寄存器的位經(jīng)過(guò)rr a之后轉(zhuǎn)換如下所示:

A0A1A2A3A4A5A6A7 然后將A寄存器轉(zhuǎn)換一次便送給P2即MOV P2,A便將轉(zhuǎn)換后的數(shù)送到了P2口,不斷循環(huán)下去,便實(shí)現(xiàn)了逐位置一操作。

2、實(shí)驗(yàn)電路圖 +5v1234123412340a1a2a3a4a1a2a3a4a1a2a3a4GND0Vcc1P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7b1b2b3b***C51

3通過(guò)仿真實(shí)驗(yàn)正確性

代碼如下:ORG 0 MOV A,#00000001B LOOP:MOV P2,A RL A ACALL DELAY SJMP LOOP

DELAY:MOV R1,#255 DEL2:MOV R2,#250 DEL1:DJNZ R2,DEL1

DJNZ R1,DEL2 RET End ORG 0000H LJMP MAIN

4、實(shí)驗(yàn)程序 :

ORG 0050H MAIN:MOV R0,#14

MOV DPTR,#TABLE L0:

MOV A,#0 L1:

MOVC A,@DPTR+A

MOV P0,A

ACALL DELAY1

INC A41 DJNZ R0,L1 SJMP L0 DELAY1:

MOV R1,#250 LOOP1:

MOV R2,#250 LOOP2:

NOP

NOP

NOP

NOP

NOP

DJNZ R0,LOOP2

DJNZ R1,LOOP1

RET TABLE: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH END

5、實(shí)驗(yàn)結(jié)果:

五、實(shí)驗(yàn)總結(jié)

這次試驗(yàn)我通過(guò)Proteus仿真實(shí)現(xiàn)對(duì)流水燈功能的實(shí)現(xiàn)。受益匪淺,對(duì)80c51的功能和結(jié)構(gòu)有了深層次的了解,我深刻的明白,要想完全了解c51還有一定距離,但我會(huì)一如既往的同困難作斗爭(zhēng)。在實(shí)驗(yàn)中,我遇到了不少困難,比如不知道怎么將程序?qū)戇M(jìn)單片機(jī)中,寫(xiě)好程序的卻總出錯(cuò),不知道什么原因,原來(lái)沒(méi)有生成hex文件。這些錯(cuò)誤令我明白以后在試驗(yàn)中要步步細(xì)心,避免出錯(cuò)。

第五篇:嵌入式實(shí)驗(yàn)總結(jié)

如今,嵌入式系統(tǒng)已經(jīng)在眾多電氣電子產(chǎn)品上應(yīng)用,有人預(yù)測(cè)今后5年發(fā)展形勢(shì)看好。嵌入式是典型的交叉學(xué)科,電信、電子、電氣、計(jì)算機(jī)、通信等等都有涉及。

嵌入式理論、實(shí)踐要求多、門(mén)檻高,只有理論、實(shí)踐同步才能在積累中更好的漸次掌握,這學(xué)期我們針對(duì)嵌入式入門(mén)做了一些實(shí)驗(yàn),通過(guò)自己動(dòng)手和實(shí)驗(yàn)箱、實(shí)驗(yàn)軟件打交道,對(duì)嵌入式編程形成初步了解,為今后進(jìn)一步發(fā)展打基礎(chǔ)。

實(shí)驗(yàn)環(huán)境:

武漢創(chuàng)維特公司JXARM9-2410開(kāi)發(fā)板、PC;

Linux、windows操作平臺(tái);

DNW、VMwareWorkstation應(yīng)用軟件;

《ARM9嵌入式技術(shù)及Linux高級(jí)實(shí)踐教程》、實(shí)驗(yàn)參考資料等;

實(shí)驗(yàn)內(nèi)容及目標(biāo):

閱讀樣例程序,進(jìn)行:

1.熟悉JXARM9-2410開(kāi)發(fā)板、相關(guān)應(yīng)用軟件的使用,能成功運(yùn)行示例實(shí)驗(yàn)程序(demo-led);

2.使用VMware,修改demo-led源程序,使開(kāi)發(fā)板上數(shù)碼管按照demo-led顯示方式顯示;

3.使用VMware、DNW,修改相關(guān)源程序,實(shí)現(xiàn)開(kāi)發(fā)板鍵盤(pán)輸入的字符在DNW中顯示;

4.使用VMware、DNW,修改相關(guān)源程序,實(shí)現(xiàn)對(duì)直流電機(jī)轉(zhuǎn)動(dòng)狀態(tài)的控制;

觀看教學(xué)視頻,進(jìn)行交叉編譯:

1.加載linux內(nèi)核;

2.配置、編譯linux內(nèi)核;

3.Windows、linux跨平臺(tái)文件共享;

4.編譯、運(yùn)行l(wèi)inux程序(helloworld)

5.Linux下編譯數(shù)碼管顯示驅(qū)動(dòng)程序;

6.Linux下編譯攝像頭、GPRS驅(qū)動(dòng)程序;

學(xué)習(xí)嵌入式是一個(gè)漫長(zhǎng)的過(guò)程,學(xué)好它還是需要一番的功夫。通過(guò)嵌入式實(shí)驗(yàn)由淺入深的動(dòng)手實(shí)踐,我漸漸對(duì)嵌入式有了具體概念,也逐漸對(duì)其產(chǎn)生了興致和好奇心。

對(duì)于初學(xué)者,還有一點(diǎn)小建議,不要好高騖遠(yuǎn),要腳踏實(shí)地.

下載嵌入式實(shí)驗(yàn)1 流水燈實(shí)驗(yàn)word格式文檔
下載嵌入式實(shí)驗(yàn)1 流水燈實(shí)驗(yàn).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    嵌入式實(shí)驗(yàn)二

    1. 實(shí)驗(yàn)二:利用中斷實(shí)現(xiàn) OLED 動(dòng)態(tài)顯示實(shí)驗(yàn) 1.1 實(shí)驗(yàn)名稱(chēng) 1.2 實(shí)驗(yàn)?zāi)康?(1)深入學(xué)習(xí)、理解、掌握 OLED 字符顯示方法 (2)深入學(xué)習(xí)、理解、掌握 OLED 圖形顯示方法 (3)學(xué)習(xí)、理解、......

    嵌入式系統(tǒng)實(shí)驗(yàn)

    南京信息工程大學(xué) 實(shí)驗(yàn)(實(shí)習(xí))報(bào)告 實(shí)驗(yàn)(實(shí)習(xí))名稱(chēng)電機(jī)轉(zhuǎn)動(dòng)控制及中斷實(shí)驗(yàn) 實(shí)驗(yàn)(實(shí)習(xí))日期2016.5 得分 指導(dǎo)教師 謝勝東學(xué)院 計(jì)算機(jī)與軟件 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 年級(jí)2013......

    嵌入式實(shí)驗(yàn)2

    南昌航空大學(xué)實(shí)驗(yàn)報(bào)告 二0一一 年 10月 16日 課程名稱(chēng): 嵌入式系統(tǒng) 實(shí)驗(yàn)名稱(chēng): 串行端口程序設(shè)計(jì) 班 級(jí): 080611 學(xué)生姓名: 曹啟斌 學(xué)號(hào): 08061107 指導(dǎo)教師評(píng)定: 簽名: 一、實(shí)驗(yàn)?zāi)?.....

    2016嵌入式實(shí)驗(yàn)心得體會(huì)(合集)

    2016嵌入式實(shí)驗(yàn)心得體會(huì) 嵌入式實(shí)驗(yàn)心得體會(huì)是計(jì)算機(jī)專(zhuān)業(yè)應(yīng)該具備的常用知識(shí),以下這篇范文整理個(gè)人對(duì)嵌入式系統(tǒng)的認(rèn)識(shí),和進(jìn)行操作之后的個(gè)人體會(huì),對(duì)操作的疑難的反思。下面是......

    多功能流水燈實(shí)驗(yàn)報(bào)告

    課程設(shè)計(jì)報(bào)告設(shè)計(jì)課題:多功能流水燈專(zhuān)業(yè)班級(jí):學(xué)生姓名:指導(dǎo)教師:設(shè)計(jì)時(shí)間:題目 多功能流水燈 一、課程設(shè)計(jì)目的 1、掌握數(shù)字系統(tǒng)的設(shè)計(jì)方法和測(cè)試方法。 二、課程設(shè)計(jì)題目(問(wèn)題)描......

    單片機(jī)流水燈課程設(shè)計(jì)

    單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告 基于AT89C51單片機(jī)的流水燈 1 引言 1.1 課題簡(jiǎn)介 單片機(jī)全稱(chēng)叫單片微型計(jì)算機(jī)(Single Chip Microcomputer),是一種集成在電路芯片,是采用超大......

    流水燈實(shí)訓(xùn)總結(jié)

    流水燈實(shí)訓(xùn)總結(jié) 1. 實(shí)訓(xùn)目的: I. II. III. 掌握單片機(jī)的硬件結(jié)構(gòu); 理解一個(gè)完整的單片機(jī)系統(tǒng)是由硬件和軟件組成的。 學(xué)習(xí)流水燈的基本原理。 2. 實(shí)訓(xùn)內(nèi)容: I. II. III. IV. 在......

    EDA課程設(shè)計(jì)流水燈設(shè)計(jì)

    EDA課程實(shí)踐報(bào)告 基于verilog的流水燈設(shè)計(jì) 學(xué)院:物理與電氣工程學(xué)院 專(zhuān)業(yè):11級(jí)電子信息工程 姓名:蔣美菊 學(xué)號(hào):111102088 基于verilog的流水燈設(shè)計(jì) 一、摘要 隨著EDA技術(shù)發(fā)展......

主站蜘蛛池模板: 国产成人av一区二区三区在线观看| 色老板精品视频在线观看| 国产午夜精品理论片久久影院| 夜夜揉揉日日人人青青| 国产成人无码av在线播放dvd| 99国产欧美另娄久久久精品| 成+人+网+站+免费观看| 欲色欲色天天天www| 无码av天堂一区二区三区| 丝瓜视频在线观看免费| 久热在线播放中文字幕| 亚洲精品无播放器在线播放| 四虎国产精亚洲一区久久特色| 亚洲爆乳成av人在线视菜奈实| 公和我做好爽添厨房| 中文午夜乱理片无码| 亚洲欧美精品aaaaaa片| 久久精品国产亚洲无删除| 国产精品福利一区二区| 亚洲国产精品久久久久久久| 四虎永久在线精品视频免费观看| 人人揉揉揉香蕉大免费| 无码中文资源在线播放| 人妻巨大乳hd免费看| 亚洲人成色77777在线观看大战p| 久久婷婷香蕉热狠狠综合| 全部孕妇毛片丰满孕妇孕交| 成人欧美一区二区三区| 国产精品国产三级国产专i| 娇妻玩4p被三个男人伺候电影| 亚洲国产a∨无码中文777| 欧美精品中文字幕在线视| 特级欧美插插插插插bbbbb| 黑人大战欲求不满人妻| 国产精品午夜无码av体验区| 国产av无码专区亚洲aⅴ| 国产无遮挡又爽又黄的视频| 欧美金妇欧美乱妇xxxx| 久久精品国产久精国产果冻传媒| 人妻系列无码专区久久五月天| 久久久久国产精品无码免费看|