




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
LED燈控制設計與實現(xiàn)數(shù)碼管數(shù)字鐘的設計與實現(xiàn)串行通信的設計與實現(xiàn)數(shù)字電壓表的設計與實現(xiàn)勤思考勤動手勤總結(jié)LED燈控制設計與實現(xiàn)數(shù)碼管數(shù)字鐘的設計與實現(xiàn)串行通信的設計與實現(xiàn)數(shù)字電壓表的設計與實現(xiàn)軟硬結(jié)合理實結(jié)合虛實結(jié)合線上下結(jié)合學做結(jié)合LED燈控制設計與實現(xiàn)項目一任務一嵌入式STM32認知1.1.1嵌入式系統(tǒng)概述目錄嵌入式系統(tǒng)的定義嵌入式系統(tǒng)的特點嵌入式系統(tǒng)的發(fā)展嵌入式系統(tǒng)的應用一、嵌入式系統(tǒng)的定義定義一嵌入式系統(tǒng)是“控制、監(jiān)視或輔助設備、機器或用于工廠運作的設備”。定義二嵌入式系統(tǒng)是以應用為中心,以現(xiàn)代計算機技術為基礎,能夠根據(jù)用戶需求(功能、可靠性、成本、體積、功耗、環(huán)境等)靈活裁剪軟硬件模塊的專用計算機系統(tǒng)。一、嵌入式系統(tǒng)的定義以應用為中心
強調(diào)了嵌入式系統(tǒng)的目標,即滿足用戶的特定需求。就絕大多數(shù)完整的嵌入式系統(tǒng)而言,用戶打開電源即可直接享用其功能,無需二次開發(fā)或僅需少量配置操作。一、嵌入式系統(tǒng)的定義以現(xiàn)代計算機技術為核心
說明了嵌入式系統(tǒng)相關技術,比如集成電路設計技術、系統(tǒng)結(jié)構(gòu)技術、傳感器與檢測技術、嵌入式操作系統(tǒng)和實時操作系統(tǒng)技術、通信技術和信號處理等技術均圍繞著計算機基本原理,與計算機技術密不可分。一、嵌入式系統(tǒng)的定義軟硬件可裁剪
嵌入式系統(tǒng)針對的應用場景非常多,這會導致在系統(tǒng)設計時會有差異性極大的設計指標要求,以至于現(xiàn)實上很難有一套方案滿足所有的系統(tǒng)要求,所以根據(jù)需求的不同,靈活裁剪軟硬件、組建符合要求的最終系統(tǒng)是嵌入式技術發(fā)展的必然技術路線。一、嵌入式系統(tǒng)的定義專用計算機系統(tǒng)
專用計算機是區(qū)別與通用計算機的,因為嵌入式系統(tǒng)的應用場合大多對可靠性、實時性有較高要求,這就決定了服務于特定應用的專用系統(tǒng)是嵌入式系統(tǒng)的主流模式,它并不強調(diào)系統(tǒng)的通用性和可擴展性。一、嵌入式系統(tǒng)的定義嵌入式系統(tǒng)與通用計算機的區(qū)別嵌入式系統(tǒng)通用計算機形式與類型按應用進行分類大、中、小型機、微機組成軟硬件緊密結(jié)合軟硬件相對獨立系統(tǒng)資源系統(tǒng)資源緊缺系統(tǒng)資源充足開發(fā)方式開發(fā)平臺一般是通用計算機運行平臺是嵌入式系統(tǒng)開發(fā)平臺和運行平臺都是通用計算機一、嵌入式系統(tǒng)的定義嵌入式系統(tǒng)由硬件和軟件組成軟件輸出輸入處理器存儲器一、嵌入式系統(tǒng)的定義“兩嵌入、一專用”兩嵌入:硬件嵌入芯片、軟件嵌入硬件,軟硬件是緊密聯(lián)系在一起的。一專用:嵌入式系統(tǒng)具有特定的應用場景,其功能是固定的。一、嵌入式系統(tǒng)的定義硬件+軟件(CPU+存儲器+I/O+中斷(定時器、外部請求、通信)等集于一塊芯片)人體+思想(大腦+大腦皮層+四肢(I/O)+器官(如生物鐘(中斷定時)、耳嘴(串行通信))等二、嵌入式系統(tǒng)的特點1.專用性強2.體積小型化3.實時性好4.可裁剪性好5.可靠性高6.功耗低7.不具備自身開發(fā)能力8.“軟硬件協(xié)同設計”三、嵌入式系統(tǒng)的發(fā)展微型計算機時代系統(tǒng)結(jié)構(gòu)單一,處理效率低存儲容量十分有限,幾乎無用戶接口。20世紀70年代微控制器階段硬件使用嵌入式微處理器通用性弱,系統(tǒng)開銷小,效率較高。20世紀80年代片上系統(tǒng)兼容性好,操作系統(tǒng)的內(nèi)核小。20世紀90年代21世紀Internet為標志的嵌入式系統(tǒng)嵌入式處理器集成了網(wǎng)絡接口,嵌入式設備應用于網(wǎng)絡環(huán)境。四、嵌入式系統(tǒng)的應用四、嵌入式系統(tǒng)的應用工業(yè)控制領域中四、嵌入式系統(tǒng)的應用交通管理領域中四、嵌入式系統(tǒng)的應用智能家居中的應用四、嵌入式系統(tǒng)的應用環(huán)境工程與自然中的應用總結(jié)嵌入式系統(tǒng)的定義嵌入式系統(tǒng)的組成嵌入式系統(tǒng)的特點嵌入式系統(tǒng)的發(fā)展LED燈控制設計與實現(xiàn)項目一任務一嵌入式STM32認知1.1.2STM32嵌入式概述目錄ARMCortex系列STM32F103微控制器概述STM32與51單片機的區(qū)別一、ARMCortex系列ARM是公司的名字是一種處理器體積小低功耗低成本高性能一、ARMCortex系列ARM內(nèi)核一、ARMCortex系列ARM內(nèi)核適用于高性能設備一、ARMCortex系列ARM內(nèi)核能效最高、成本最低一、ARMCortex系列ARM內(nèi)核實時處理器一、ARMCortex系列ARM內(nèi)核低功耗嵌入式系統(tǒng)二、STM32微控制器概述ARM公司Cortex-M系列意法半導體獲得Cortex-M系列內(nèi)核授權推出32位STM32微控制器代表的是這個單片機是32位的微控制器二、STM32微控制器概述ARM公司Cortex-M系列意法半導體獲得Cortex-M系列內(nèi)核授權推出32位STM32微控制器一、ARMCortex系列STM32微控制器的分類二、STM32微控制器概述哪些微控制器屬于高性能MCU哪些屬于無線系列哪些屬于低功耗系列二、STM32微控制器概述二、STM32微控制器概述二、STM32微控制器概述命名規(guī)則示例:產(chǎn)品系列STM32=基于ARM?的32位微控制器產(chǎn)品類型F=通用類型產(chǎn)品子系列引腳數(shù)目閃存存儲器容量封裝溫度范圍內(nèi)部代碼A或者空(詳見產(chǎn)品數(shù)據(jù)手冊)選項B=128KB的閃存存儲器C=256KB的閃存存儲器D=384KB的閃存存儲器E=512KB的閃存存儲器H=BGAT=LQFPU=VFQFPNY=WLCSP64xxx=已編程的器件代號(3個數(shù)字)TR=卷帶式包裝
101=基本型102=USB基本型USB2.0全速設備103=增強型105或107=互聯(lián)型T=36腳C=48腳R=64腳V=100腳
Z=144腳4=16KB的閃存6=32KB的閃存8=64KB的閃存存儲器6AxxxSTM32F103ZET6=工業(yè)級溫度范圍,-40℃~85℃7=工業(yè)級溫度范圍,-40℃~105℃二、STM32微控制器概述,二、STM32微控制器概述命名規(guī)則示例:產(chǎn)品系列STM32=基于ARM?的32位微控制器產(chǎn)品類型F=通用類型產(chǎn)品子系列引腳數(shù)目閃存存儲器容量封裝溫度范圍內(nèi)部代碼A或者空(詳見產(chǎn)品數(shù)據(jù)手冊)選項B=128KB的閃存存儲器C=256KB的閃存存儲器D=384KB的閃存存儲器E=512KB的閃存存儲器H=BGAT=LQFPU=VFQFPNY=WLCSP64xxx=已編程的器件代號(3個數(shù)字)TR=卷帶式包裝
101=基本型102=USB基本型,USB2.0全速設備103=增強型105或107=互聯(lián)型T=36腳C=48腳R=64腳V=100腳
Z=144腳4=16KB的閃存6=32KB的閃存8=64KB的閃存存儲器6AxxxSTM32F103ZET6=工業(yè)級溫度范圍,-40℃~85℃7=工業(yè)級溫度范圍,-40℃~105℃二、STM32微控制器概述命名規(guī)則STM32F103R6按照命名規(guī)則分析該芯片為具有64個引腳、32KB的閃存存儲器的通用增強型STM32芯片。二、STM32微控制器概述
STM32F103主要特性
STM32F103家族中不同型號芯片內(nèi)核相同工作頻率相同但片內(nèi)FLASH存儲器和SRAM存儲器的容量以及片內(nèi)外設數(shù)量有所不同,對外部的通信接口數(shù)量和芯片封裝也各不相同,因此性價比也各不相同。三、STM32與51單片機的區(qū)別序號STM32F103AT89C511集成了32位的ARMCortex-M3內(nèi)核,最高工作頻率可達72MHz8位的CPU,工作頻率12MHz2具有512kB片內(nèi)FLASH存儲器和64kB片內(nèi)SRAM存儲器4kBROM和128字節(jié)RAM3內(nèi)部集成了8MHz晶體振蕩器,可外接4~16MHz時鐘源外接6~24MHz4具有睡眠、停機、待機等三種低功耗工作模式無5集成了11個定時器:4個16位的通用定時器,2個16內(nèi)部集位的可產(chǎn)生PWM波控制電機的定時器,2個16位的可驅(qū)動DAC的定時器,2個加窗的看門狗定時器和1個24位的系統(tǒng)節(jié)拍定時器(24位減計數(shù))2個定時/計數(shù)器三、STM32與51單片機的區(qū)別序號STM32F103AT89C516集成了內(nèi)部溫度傳感器和實時時鐘RTC無7具有112根高速通用輸入輸出口(GPIO),可從其中任選16根作為外部中斷輸入口,幾乎全部GPIO可承受5V輸入(PA0~PA7、PB0~PB1\PC0~PC5、PC13~PC15和PF6~PF10除外)32根IO口線,4個端口P0~P38集成了13個外部通信接口:2個I2C、3個SPI(18Mbps,其中復用2個I2S)、1個CAN(2.0B)、5個UART、1個USB2.0設備和1個并行SDIO1個UART9具有12通道的DMA控制器,支持定時器、ADC、DAC、SDIO、I2S、SPI、I2C和UART外設無總結(jié)與作業(yè)學習ARMCortex系列內(nèi)核STM32F103微控制器定義、特點、命名規(guī)則STM32與51單片機的區(qū)別預習下節(jié)課內(nèi)容LED燈控制設計與實現(xiàn)項目一任務一嵌入式STM32認知1.1.3嵌入式STM32F10X固件庫重構(gòu)目錄固件庫的認識與重構(gòu)自建庫整合Keil5工程模板創(chuàng)建一、固件庫的認識與重構(gòu)
庫函數(shù)類型程序是意法半導體公司針對STM32F10x微控制器的全部外設提供的可以抽象訪問的一種函數(shù),所謂的“抽象訪問”是指當訪問片內(nèi)外設時,不需要關心片內(nèi)外設寄存器的地址和各位的含義,而是通過庫函數(shù)定義的常量和函數(shù)調(diào)用直接訪問。一、固件庫的認識與重構(gòu)固件庫那么什么是固件庫呢?一、固件庫的認識與重構(gòu)
STM32固件庫根據(jù)CMSIS標準(即ARMCortex微控制器軟件接口標準)而設計的。
CMSIS標準由ARM和芯片生產(chǎn)商共同提出,讓不同的芯片公司生產(chǎn)的CortexM3微控制器能在軟件上基本兼容。一、固件庫的認識與重構(gòu)
STM32F10x標準外設庫ST公司是基于STM32F1系列微控制器的固件庫進行STM32F103開發(fā)的一把利器。可以像在標準C語言編程中調(diào)用printf()一樣,在STM32F10x的開發(fā)中可調(diào)用標準外設庫的庫函數(shù),進行應用開發(fā)。一、固件庫的認識與重構(gòu)固件庫的下載從ST官方網(wǎng)站中下載1資源中直接下載2一、固件庫的認識與重構(gòu)固件庫的認識一、固件庫的認識與重構(gòu)這些庫函數(shù)是我們開發(fā)程序所必須的嗎?顯然不是一、固件庫的認識與重構(gòu)固件庫的重構(gòu)內(nèi)核STM32F10X固件庫用戶對象二、自建庫整合STM32F10X_ALIB二、自建庫整合STM32F10X_ALIBcl是互聯(lián)型產(chǎn)品vl是超值型產(chǎn)品xl是超高密度產(chǎn)品ld是低密度產(chǎn)品md是中等密度產(chǎn)品hd是高密度產(chǎn)品二、自建庫整合STM32F10X_ALIB
1內(nèi)核、2設備、23外圍、2用戶、3系統(tǒng)。二、自建庫整合STM32F10X_ALIB
1內(nèi)核、1設備、23外圍、1用戶、3系統(tǒng)。三、Keil5工程模板創(chuàng)建1.工程搭建與函數(shù)庫添加——建工程加芯片三、Keil5工程模板創(chuàng)建1.工程搭建與函數(shù)庫添加——建分組加文件(.C和.S)三、Keil5工程模板創(chuàng)建1.工程搭建與函數(shù)庫添加——加.h路徑到編譯三、Keil5工程模板創(chuàng)建2.keil5開發(fā)編譯環(huán)境設置——選擇編譯器三、Keil5工程模板創(chuàng)建2.keil5開發(fā)編譯環(huán)境設置——鏈接文件三、Keil5工程模板創(chuàng)建2.keil5開發(fā)編譯環(huán)境設置——目標文件總結(jié)與作業(yè)固件庫的認識與重構(gòu)自建庫整合Keil5工程模板創(chuàng)建總結(jié)作業(yè)下載固件庫重構(gòu)固件庫整合固件庫LED燈控制設計與實現(xiàn)項目一LED燈軟件程序設計步驟1、程序設計軟件:KeiluVision52、新建工程并保存LED燈軟件程序設計步驟3、添加芯片到工程LED燈軟件程序設計步驟4、修改添加文件夾LED燈軟件程序設計步驟5、添加C文件到工程LED燈軟件程序設計步驟6、添加S文件到工程LED燈軟件程序設計步驟7、設置H文件到路徑LED燈軟件程序設計步驟8、全局變量宏定義方法1:LED燈軟件程序設計步驟8、全局變量宏定義方法2:LED燈軟件程序設計步驟9、新建添加.c文件到USER文件夾LED燈軟件程序設計步驟PB0引腳輸出控制led燈的亮滅和閃爍;對應電路LED亮時PB0輸出低電平;
LED滅時PB0輸出高電平;亮滅閃爍需要在亮滅后加一定的延時程序;不停循環(huán)就實現(xiàn)上述功能。10、ledflash.c文件編寫思路及流程根據(jù)功能需求分析、軟硬結(jié)合、書寫細化流程步驟:LED燈軟件程序設計步驟1、預處理包含頭文件2、端口初始化3、LED閃爍思路:
無限循環(huán){PB_PIN_0設置高電平延時1秒P0_PIN_0設置低電平延時1秒}
11、ledflash.c文件包括語句LED燈軟件程序設計步驟//1、預處理包含頭文件#include<stm32f10x.h>//包含stm32f10系列#include<delay.h>//包含延時函數(shù)//2、intmain(void)//主函數(shù){//端口初始化://端口定義結(jié)構(gòu)體、時鐘配置并使能,成員賦值初始化 GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,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); 12、ledflash.c代碼編寫LED燈軟件程序設計步驟
//無限循環(huán)閃爍點亮while(1) {GPIO_WriteBit(GPIOB,GPIO_Pin_0,Bit_RESET); Delay(1000);GPIO_WriteBit(GPIOB,GPIO_Pin_0,Bit_SET); Delay(1000); }
} 12、ledflash.c代碼重點關注刷紅的字符。 LED燈軟件程序設計步驟13、編譯鏈接生成.HEX文件重新構(gòu)建按鈕加載程序代碼(HEX文件)到芯片嵌入式軟件設計歸納總結(jié)新建工程選芯片加載標庫到工程配置參數(shù)到環(huán)境新建文件存點C加載點C到工程編寫代碼生點H加載點H到芯片簡潔:建工程加標庫、編代碼驗效果四顆LED流水燈設計與制作四、輸出函數(shù)整理(一)#include<stm32f10x.h>//包含如下端口寫函數(shù)1.整個端口_寫字函數(shù)GPIO_Write(GPIOX,temp)2.端口位_寫位函數(shù)GPIO_WriteBit(GPIOX,GPIO_Pin_Y,Z)3.端口位_置位/復位函數(shù)GPIO_SetBits(GPIOX,GPIO_Pin_Y)GPIO_ResetBits(GPIOX,GPIO_Pin_Y)(二)#include<sys.h>//包含端口位寫函數(shù)
PXout(Y)=Z
注:X端口(A--G),Y端口引腳號(0--15),Z端口引腳電平0或1,temp表示臨時字變量0X0000-0XFFFF;LED燈控制設計與實現(xiàn)項目一四顆LED流水燈效果圖修改后的文件夾及文件名四顆LED流水燈設計與制作四顆LED流水燈設計與制作硬件設計四顆LED流水燈設計與制作1、軟件工程名修改、C文件添加四顆LED流水燈設計與制作2、軟件編寫思路及流程根據(jù)功能分析、軟硬結(jié)合、細化流程:PB0--PB3引腳輸出控制4顆led燈的亮滅和閃爍;對應電路LED亮時對應引腳輸出低電平;
LED滅時對應引腳輸出高電平;亮滅閃爍需要在當前狀態(tài)加一定的延時程序;按照流水燈的順序依次全部點亮后全滅;不停循環(huán)就實現(xiàn)上述功能。四顆LED流水燈設計與制作3、軟件代碼結(jié)構(gòu)(1)預處理包含頭文件(2)端口及引腳初始化(3)引腳輸出流水閃爍當前顯示狀態(tài)下,各對應引腳輸出高電平
或低電平延時1秒下一顯示狀態(tài)下,各對應引腳輸出高電平或低電平延時1秒無限循環(huán)while(1)四顆LED流水燈設計與制作4、軟件代碼編寫(1)預處理包含頭文件#include<stm32f10x.h>//包含stm32f10系列#include<delay.h>//包含延時函數(shù)(2)intmain(void)//主函數(shù){//端口初始化:端口定義結(jié)構(gòu)體、時鐘配置并使能,成員賦值初始化 GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitStructure.GPIO_Pin=
GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; //GPIO_InitStructure.GPIO_Pin=0X000F; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure); 引腳或|運算賦值端口整體賦值1有效0無效四顆LED流水燈設計與制作4、軟件代碼編寫//流水燈循環(huán)閃爍while(1) {GPIO_Write(GPIOB,0X000F);Delay(1000); GPIO_Write(GPIOB,0X0007);Delay(1000); GPIO_Write(GPIOB,0X0003);Delay(1000); GPIO_Write(GPIOB,0X0001);Delay(1000); GPIO_Write(GPIOB,0X0000);Delay(1000); }GPIO_Write(GPIO_temp)X端口(A--G)temp表示臨時字變量0X0000—0XFFFF}//重點關注刷紅的字符變化,0X表示16進制數(shù)。 四顆LED流水燈設計與制作一、頭文件申明#include<*.h>二、端口初始化結(jié)構(gòu)體類型變量定義、使能成員賦值、結(jié)構(gòu)初始化三、流水燈控制端口送數(shù)延時等待依次循環(huán)四顆LED流水燈設計與制作四、輸出函數(shù)整理(一)#include<stm32f10x.h>//包含如下端口寫函數(shù)1.整個端口_寫字函數(shù)GPIO_Write(GPIOX,temp)2.端口位_寫位函數(shù)GPIO_WriteBit(GPIOX,GPIO_Pin_Y,Z)3.端口位_置位/復位函數(shù)GPIO_SetBits(GPIOX,GPIO_Pin_Y)GPIO_ResetBits(GPIOX,GPIO_Pin_Y)(二)#include<sys.h>//包含端口位寫函數(shù)
PXout(Y)=Z
注:X端口(A--G),Y端口引腳號(0--15),Z端口引腳電平0或1,temp表示臨時字變量0X0000-0XFFFF;LED燈控制設計與實現(xiàn)項目一任務三8LED流水燈、跑馬燈流水燈特點跑馬燈特點一、LED8流水燈、跑馬燈設計與仿真LED流水燈、跑馬燈效果圖修改后的文件夾及文件名硬件設計軟件設計故障排除二、LED8流水燈設計與制作LED8流水燈設計與制作硬件設計LED8流水燈設計與制作軟件設計1.軟件工程名修改、C文件添加LED8流水燈設計與制作軟件設計2.軟件編寫思路及流程功能分析、軟硬結(jié)合、細化流程根據(jù)PB0--PB7引腳輸出控制8顆led燈的亮滅和閃爍;對應電路LED亮時對應引腳輸出低電平;對應電路LED滅時對應引腳輸出高電平;亮滅閃爍需要在當前狀態(tài)加一定的延時程序;按照流水燈的順序依次全部點亮后全滅不停循環(huán)
就實現(xiàn)上述功能。LED8流水燈設計與制作軟件設計3.軟件代碼結(jié)構(gòu)(1)預處理包含頭文件(2)端口及引腳初始化(3)引腳輸出流水閃爍無限循環(huán)while(1){當前顯示狀態(tài)下,各對應引腳輸出高電平或低電平
延時1秒
下一顯示狀態(tài)下,各對應引腳輸出高電平或低電平
延時1秒
共9次送數(shù)延時;}軟件設計4.軟件代碼編寫(1)預處理包含頭文件
#include<stm32f10x.h>#include<delay.h>(2)intmain(void)
{//端口初始化:結(jié)構(gòu)定義、時鐘使能,成員賦值 GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitStructure.GPIO_Pin=
GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3| GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
//GPIO_InitStructure.GPIO_Pin=0X00FF; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
引腳或|運算賦值端口整體賦值1有效0無效二、LED8流水燈設計與制作LED8流水燈設計與制作軟件設計4.軟件代碼編寫while(1){GPIO_Write(GPIOB,0X00FF);Delay(1000);
GPIO_Write(GPIOB,0X007F);Delay(1000);
GPIO_Write(GPIOB,0X003F);Delay(1000);
GPIO_Write(GPIOB,0X001F);Delay(1000); GPIO_Write(GPIOB,0X000F);Delay(1000);
GPIO_Write(GPIOB,0X0007);Delay(1000);
GPIO_Write(GPIOB,0X0003);Delay(1000);
GPIO_Write(GPIOB,0X0001);Delay(1000);
GPIO_Write(GPIOB,0X0000);Delay(1000); }}
粘貼修改標紅的十六進制復制這四行語句LED8流水燈設計與制作故障排除軟件代碼優(yōu)化1:移位循環(huán)法inti,temp;//定義整形循環(huán)變量i和臨時變量temp
while(1)
{for(i=0;i<9;i++)//流水燈{temp=0x00ff>>i;//0x00ff右移i位賦值tempGPIO_Write(GPIOB,temp);Delay(500);}for(i=0;i<9;i++)//跑馬燈{temp=~(0x0080>>i);//0x0080右移i位后取反賦值tempGPIO_Write(GPIOB,temp);Delay(500); }}//~按位取反,!位取反,!=邏輯判斷不等于。
LED8流水燈設計與制作故障排除軟件代碼優(yōu)化2:數(shù)組循環(huán)法inti;
intlsd[9]={0XFF,0X7F,0X3F,0X1F,0X0F,0X07,0X03,0X010,X00};
intpmd[9]={0X7F,0XBF,0XDF,0XEF,0XF7,0XFB,0XFD,0XFE,0X00};
while(1)
{for(i=0;i<9;i++)//流水燈 {GPIO_Write(GPIOB,lsd[i]);Delay(500); } for(i=0;i<9;i++)//跑馬燈 {GPIO_Write(GPIOB,pmd[i]);Delay(500);
}
}
總結(jié)多l(xiāng)ed燈亮滅控制方法
順序語句法方法1端口送數(shù)
GPIO_Write()延時等待Delay()依次循環(huán)while(1)
移位循環(huán)法方法2右移邏輯運算符>>依次移位循環(huán)送數(shù)、延時等待
for(初值、條件、增量)
數(shù)組循環(huán)法方法3依定義數(shù)組、循環(huán)送數(shù)、延時等待lsd[],首數(shù)組元數(shù)為lsd[0]總結(jié)知識點~、!、!=邏輯運算符區(qū)分1>>右移邏輯表達式2for()與while()循環(huán)區(qū)別
3數(shù)組[]定義使用4LED燈控制設計與實現(xiàn)項目一任務三一鍵多能(流水、跑馬、爆閃)文件復制修改一、一鍵多能LED控制設計與仿真硬件設計二、一鍵多能LED控制硬件設計硬件設計1.輸入按鍵信號的檢測2.消除抖動的措施一次有效按鍵檢測由按鍵按下(低電平)和按鍵彈起(高電平)兩個過程組成。消除按鍵由高電平變?yōu)榈碗娖揭约坝傻碗娖阶優(yōu)楦唠娖剿a(chǎn)生的抖動尖峰脈沖。(1)硬件去抖,在按鍵上并聯(lián)一只0.1-1uF的電容;(2)軟件去抖,需要在按下和彈起各增加5-10ms的延時;二、一鍵多能LED控制硬件設計按鍵抖動及軟件去抖流程如下圖:一鍵多能LED控制硬件設計按鍵觸點機械抖動檢測按鍵釋放按鍵二、一鍵多能LED控制硬件設計1.軟件工程名修改、C文件添加三、一鍵多能LED控制軟件設計2.軟件編寫思路及流程一鍵多能LED控制軟件設計根據(jù)功能分析、軟硬結(jié)合、細化流程:KEY_LED按鍵識別次數(shù)決定顯示的功能
初始狀態(tài)
==0led全滅
==1
流水燈閃爍
==2跑馬燈閃爍
==3爆閃燈閃爍
==4流、跑、爆輪流閃爍
==5三、一鍵多能LED控制軟件設計3.軟件代碼結(jié)構(gòu)一鍵多能LED控制軟件設計(1)預處理包含頭文件(2)端口及引腳初始化(3)輸入按鍵次數(shù)控制輸出引腳led閃爍無限循環(huán)while(1)
{if(key_num==0)初始狀態(tài)全滅
==1
流水燈閃爍
==2跑馬燈閃爍
==3爆閃燈閃爍
==4流、跑、爆輪流閃爍
==5key_num=0返回到起始滅燈
}
三、一鍵多能LED控制軟件設計4.軟件新增修改函數(shù)構(gòu)建一鍵多能LED控制軟件設計(1)/*端口初始化函數(shù)*/(2)/*按鍵識別與鍵值返回*/(3)/*輸出閃爍燈功能函數(shù)*/voidGpio_Init();對輸入輸出端口引腳初始化定義。u8Key_Scan(void);識別按鍵是否為一次有效按鍵,將識別鍵位次數(shù)返回。voidLsd_Led8();流水燈數(shù)組法。voidPmd_Led8();跑馬燈數(shù)組法。voidBsd_Led8();爆閃燈數(shù)組法。(4)函數(shù)調(diào)用根據(jù)Key_Scan(void)返回值,決定調(diào)用哪一閃爍函數(shù)或幾種的組合函數(shù)。三、一鍵多能LED控制軟件設計總結(jié)按鍵消抖方法:硬件法和軟件六步法1一鍵多能法:識別有效鍵值次數(shù)、輪流循環(huán)2函數(shù)調(diào)用:根據(jù)鍵值數(shù)調(diào)用功能函數(shù)3LED燈控制設計與實現(xiàn)項目一任務三一鍵多能代碼解讀軟件代碼組成:子函數(shù)編寫與函數(shù)調(diào)用一鍵多能代碼解讀1.預處理包含頭文件2.變量、數(shù)組定義3.輸入輸出端口引腳初始化子函數(shù)4.按鍵識別與鍵值返回子函數(shù)5.輸出閃爍燈功能子函數(shù)(流水、跑馬、爆閃)6.主函數(shù){調(diào)用輸入輸出端口引腳初始化子函數(shù)while(1) {根據(jù)按鍵的鍵值返回值調(diào)用不同的閃爍燈子函數(shù) }}一鍵多能代碼解讀1.預處理包含頭文件#預處理
include包含define宏定義.h頭文件<>申明系統(tǒng)頭文件KEY_LED替代讀取PB15引腳狀態(tài)值函數(shù)值(0或1)
GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_15)
一鍵多能代碼解讀2.變量、數(shù)組定義
u8等效于C51語言unsignedchar無符號8位字符
數(shù)據(jù)類型,相當于一個字節(jié)8位二進制數(shù)。
u16等效于C51語言unsignedint無符號16位整形
數(shù)據(jù)類型,相當于二個字節(jié)16位二進制數(shù)。
數(shù)組[],首元數(shù)重0開始,如:lsd[0]的值為0XFF;
0X表示16進制數(shù)。
一鍵多能代碼解讀3.輸入輸出端口引腳初始化子函數(shù)一鍵多能代碼解讀4.按鍵識別與鍵值返回子函數(shù)一鍵多能代碼解讀5.輸出閃爍燈功能子函數(shù)(流水、跑馬、爆閃)一鍵多能代碼解讀6.主函數(shù)一鍵多能代碼解讀6.主函數(shù)一鍵多能代碼解讀6.主函數(shù)一鍵多能代碼解讀6.主函數(shù)總結(jié)
讀功能第一步注程序整體實現(xiàn)的功能,重點注寫與硬件接口相對應功能。
讀流程第二步注程序函數(shù)實現(xiàn)的功能,重點注寫主函數(shù)調(diào)用子函數(shù)的流程及功能。
讀語句第三步注程序語句實現(xiàn)在函數(shù)中的功能,重點注寫該語句在函數(shù)的作用。
讀寫思改調(diào)拓LED燈控制設計與實現(xiàn)項目一任務三一鍵多能中斷按鍵識別一鍵多能中斷按鍵識別一鍵多能中斷按鍵識別軟件代碼組成:子函數(shù)編寫與函數(shù)調(diào)用一鍵多能中斷按鍵識別1.預處理包含頭文件2.變量、數(shù)組定義3.輸入輸出端口引腳初始化子函數(shù)4.外部中斷配置子函數(shù)5.輸出閃爍燈功能子函數(shù)(流水、跑馬、爆閃)6.主函數(shù)初始化端口子函數(shù)和外中斷子函數(shù)while(1){根據(jù)按鍵的鍵值返回值調(diào)用不同的閃爍燈
子函數(shù)}}
7.外中斷服務函數(shù)(鍵位識別)一鍵多能中斷按鍵識別1.外部中斷配置子函數(shù)一鍵多能代碼解讀2.主函數(shù)修改*60行增加外中斷輸入配置函數(shù),配置PB15引腳為外中斷。
一鍵多能中斷按鍵識別3.中斷服務函數(shù)一鍵多能中斷按鍵識別3.中斷服務函數(shù)一鍵多能中斷按鍵識別3.中斷服務函數(shù)一鍵多能外部中斷函數(shù)總結(jié)外部中斷初始化子函數(shù)1.端口引腳配置數(shù)字量輸入方式2.端口引腳配置對應中斷線3.中斷線參數(shù)配置4.中斷優(yōu)先級分組設置5.中斷向量初始化外部中斷服務函數(shù)1.中斷通道號函數(shù)2.處理中斷事件3.清除中斷標志位
寫功能第一步注寫程序整體實現(xiàn)的功能,重點注寫與硬件接口相對應功能。
寫流程第二步注程序函數(shù)實現(xiàn)的功能流程,重點注寫主函數(shù)調(diào)用子函數(shù)的流程及功能。
寫語句第三步寫程序語句代碼,與注釋混合書寫,中英混合書寫。
讀寫思改調(diào)拓優(yōu)代碼一鍵多能代碼編寫總結(jié)LED燈控制設計與實現(xiàn)項目一任務四汽車轉(zhuǎn)向燈汽車轉(zhuǎn)向燈文件復制修改硬件設計--汽車轉(zhuǎn)向燈開關選擇一、汽車轉(zhuǎn)向燈硬件設計仿真單刀三擲開關硬件設計--左轉(zhuǎn)、右轉(zhuǎn)文字添加
汽車轉(zhuǎn)向燈硬件設計一、汽車轉(zhuǎn)向燈硬件設計硬件設計1.單刀三擲開關2.消除抖動的措施模擬控制汽車轉(zhuǎn)向燈的左轉(zhuǎn)、停止、右轉(zhuǎn)三個輸入開關量,控制VD1、VD2兩只發(fā)光二極管的閃爍。按照一鍵多能任務點動按鈕的消抖方法:(1)硬件去抖,在按鍵上并聯(lián)一只0.1-1uF的電容;(2)軟件去抖,需要在檢測按鍵按下時增加10ms-20ms的延時。一、汽車轉(zhuǎn)向燈硬件設計1.軟件工程名修改、C文件添加
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025公司及項目部安全培訓考試試題附完整答案(奪冠)
- 2025年公司員工安全培訓考試試題含完整答案(易錯題)
- 膠片拷貝機企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 系列攪拌機企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 雙向控制機械鏟企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 輕量化零部件企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 皮革穿孔機企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 膠粘劑納米材料企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 耐水彈性泡沫石棉企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 電美容儀企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 流行病學 第十三章傷害流行病學
- 管理核心五任務原版
- GB/T 30727-2014固體生物質(zhì)燃料發(fā)熱量測定方法
- GB/T 28731-2012固體生物質(zhì)燃料工業(yè)分析方法
- 年度店長銷售工作總結(jié)5篇
- 中小學生學習心理問題與疏導課件
- 自然地理學-第五章-地貌精課件
- 《骨折概論》課件
- 暨南大學-蕭惠琳-畢業(yè)論文答辯PPT模板
- 工程竣工結(jié)算審計申請書
- CNC作業(yè)指導書及操作規(guī)范
評論
0/150
提交評論