STM32單片機仿真開發(fā)實例 課件 第5篇 拓展篇_第1頁
STM32單片機仿真開發(fā)實例 課件 第5篇 拓展篇_第2頁
STM32單片機仿真開發(fā)實例 課件 第5篇 拓展篇_第3頁
STM32單片機仿真開發(fā)實例 課件 第5篇 拓展篇_第4頁
STM32單片機仿真開發(fā)實例 課件 第5篇 拓展篇_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

5.1LCD1602顯示器的使用能力目標:

掌握LCD1602顯示器的驅動方法,能編寫簡單的LCD1602驅動程序。任務要求:仿真電路如圖所示,要求在屏幕第一行顯示“Helloworld!”。5.1.1液晶顯示屏與LCD1602為了能夠顯示更加豐富的信息,單片機電路設計中往往會使用到液晶顯示屏。這里我們?yōu)榇蠹医榻B一種極具性價比的單色液晶顯示屏——LCD1602,如圖所示。這種液晶顯示屏能夠顯示2行、16字符/行,共計32個5×7或者5×11的點陣字符,目前市面上大多數LCD1602顯示屏都是采用了HD44780液晶顯示芯片,當然無論采用了哪種液晶顯示芯片,操作方式大同小異。(1)LCD1602的引腳定義LCD1602采用標準的16腳接口,詳見表。引腳編號功能說明1VSS接電源負極2VDD電源正極(+5V/+3.3V)3VEE液晶顯示器對比度調節(jié)引腳,電壓越接近于VDD則對比度越低,相反電壓越接近于VSS(0)則對比度越高。4RS(RegisterSelect)寄存器選擇引腳,高電平時選擇數據寄存器,低電平時選擇指令寄存器。5RW(Read/Write)讀/寫信號引腳,高電平時進行讀操作,低電平時進行寫操作。6E(Enable)使能引腳,高電平時讀取信息,下降沿時執(zhí)行指令。7~14D0~D78位數據總線,D0為最低位,D7為最高位。15ALCD背光源正極16KLCD背光源負極(2)LCD1602的存儲器LCD1602內置DDRAM(DisplayDataRAM,顯示數據隨機存儲器)、CGRAM(CharacterGeneratorRAM,字符發(fā)生隨機存儲器)和CGROM(CharacterGeneratorROM,字符發(fā)生只讀存儲器)。其中DDRAM用于指定顯示字符的位置,只需將需要顯示的字符送至相應的DDRAM地址即可在屏幕上顯示,詳見下表。顯示位置123456…1516DDRAM地址第一行80H81H82H83H84H85H…8EH8FH第二行C0HC1HC2HC3HC4HC5H…CEHCFHCGRAM用于由用戶自定義字模,而CGROM則已經內置了160個常用字模,包括ASCII碼、日文假名和希臘字母。由于本書只涉及到ASCII碼的顯示,具體編寫程序的時候無須了解CGRAM和CGROM的知識,因此本節(jié)不作過多的介紹。(3)LCD1602的控制指令LCD1602共有11條控制指令,如表所示。序號指令RSRWD7D6D5D4D3D2D1D01復位00000000012光標歸位000000001*3置輸入模式00000001I/DS4顯示開/關控制0000001DCB5光標/字符移位000001S/CR/L**6置功能00001DLNF**7置CGRAM地址0001CGRAM地址8置DDRAM地址001DDRAM地址9忙標志/地址計數器01BF由最后寫入的DDRAM或CGRAM設置指令設置的DDRAM/CGRAM地址10CGRAM/DDRAM寫數據10寫入1個字節(jié)的數據11CGRAM/DDRAM讀數據11讀取1個字節(jié)的數據●指令1:顯示屏復位指令,清除顯示屏所有顯示字符,并且光標回到第一行第一個字符位置;●指令2:光標歸位指令,光標回到第一行第一個字符位置;●指令3:置輸入模式指令,其中I/D位為光標移動方向,0表示左移,1表示右移,S位為所有字符是否左移或者右移,0表示否,1表示是;●指令4:顯示開/管控制指令,其中D位控制所有字符是否顯示,0表示關顯示,1表示開顯示,C位控制光標是否顯示,0表示關顯示,1表示開顯示,B位控制光標是否閃爍,0表示不閃爍,1表示閃爍;●指令5:光標和字符移位指令,位S/C為光標和字符移位控制位,0表示僅光標移動,1表示光標和字符都移動,位R/L為移動方向控制位,0表示左移,1表示右移;●指令6:功能設置指令,位DL為總線模式控制位,0表示8位總線模式,1表示4位總線模式,N為顯示行數控制位,0表示單行顯示,1表示雙行顯示,F為字符點陣模式控制位,0表示5×7點陣字符,1表示5×11點陣字符;●指令7:CGRAM地址設置指令,設置6位的CGRAM地址以讀寫數據;●指令8:DDRAM地址設置指令,設置7位的DDRAM地址以讀寫數據;●指令9:讀忙信號與地址計數器返回值指令,BF返回液晶屏當前狀態(tài),返回0時表示液晶屏正忙,返回1時表示液晶屏就緒可以進一步操作,D6~D0共計7位為讀取的地址計數器的內容;●指令10:CGRAM/DDRAM寫數據指令,用于向CGRAM寫入用戶自定義字模,或者用于向指定DDRAM地址寫入顯示字符從而在液晶屏相應位置進行顯示;●指令11:CGRAM/DDRAM讀數據指令,讀取CGRAM或者DDRAM中的數據。5.1.2任務程序的編寫本次任務用到的GPIO引腳比較多,為避免混淆不妨給每個GPIO引腳添加用戶標簽(UserLabel)??紤]到代碼的可移植性,這里將LCD1602相關的功能代碼全部封裝成函數并歸入頭文件“LCD1602.h”,然后在主文件“main.c”中進行調用。(現場操作演示…)技能訓練:

修改程序,在液晶屏第二行以0.5秒周期循環(huán)遞增顯示0~99。Tobecontinued...5.2串行E2PROMAT24C02的使用能力目標:

在了解I2C總線通信規(guī)則的基礎上,掌握讀寫E2PROM芯片AT24C02一個字節(jié)的使用方法,并能編寫相應的STM32程序。任務要求:仿真電路如圖所示,STM32單片機能將由串口收到的1個字節(jié)數據存入到AT24C02的首地址;按下按鈕BTN1,單片機將存儲在AT24C02首地址的1個字節(jié)數據通過串口發(fā)送。串口通信參數是波特率19200bps、無校驗。5.3.1I2C總線簡介(1)概述I2C(Inter-IntegratedCircuit)總線是目前主流的芯片間總線接口技術之一。I2C總線屬于多主總線,每一個節(jié)點都可以設定唯一的地址,I2C總線連接示意圖如圖所示。向總線發(fā)送數據的設備作為發(fā)送器,而從總線接收數據的設備則作為接收器,通過沖突檢測和仲裁可以防止總線上數據傳輸發(fā)生錯誤。目前I2C總線具有三種傳輸速率,①標準模式(1980年提出)為100kbps、②快速模式(1992年提出)為400kbps、③高速模式(1998年提出,并與2001年修訂)可達3.4Mbps。I2C總線只有①時鐘信號線SCL與②雙向數據線SDA兩根,如上圖所示,SCL與SDA被上拉至電源VCC,也就是說I2C總線處于“空閑”狀態(tài)時SCL、SDA均為高電平。(2)通信時序I2C通信時序分為發(fā)送器啟動/停止通信、數據位傳送、接收器返回響應信號三種。①發(fā)送器啟動/停止通信(a)啟動通信(b)停止通信②數據位傳送在SCL處于高電平期間,SDA必須保持穩(wěn)定,SDA低電平表示數據0、高電平表示數據1,只有在SCL處于低電平期間,SDA才能改變電平狀態(tài)。③接收器返回響應信號數據發(fā)送器可以連續(xù)發(fā)送多個字節(jié)數據,但是每發(fā)送一個字節(jié)(8個位)數據,數據接收器必須返回一位響應信號。響應信號位若為低電平則規(guī)定為應答響應位(簡稱ACK),表示數據接收器接收該字節(jié)數據成功;響應信號位若為高電平則規(guī)定為非應答響應位(簡稱NACK),表示數據接收器接收該字節(jié)數據失敗。如果數據接收器是主機,則在它收到最后一個字節(jié)數據后,返回一個非應答位,通知數據發(fā)送器結束數據發(fā)送,接著主機向總線發(fā)送一個停止通信信號結束通信過程。5.3.2AT24C02簡介(1)芯片概述AT24Cxx是美國Atmel公司出品的串行E2PROM系列芯片,xx表示不同的容量。比如本次任務用到的AT24C02,表示其總容量為2KBits(256Bytes)。AT24C02的工作電壓范圍為1.8V~6.0V,能適應目前市面上主流的3.3V和5.0V工作電壓的單片機。值得注意的是,工作電壓越高,相應的工作頻率也越高,典型工作電壓3.3V和5.0V對應的工作頻率分別是標準模式100kHz和快速模式400kHz。8個引腳的功能如下表。其中,引腳1~3參與構成AT24C02在I2C總線上的地址。地址高四位固定1010B,低四位最低位在總線“寫”命令中固定為0,在總線“讀”命令中固定位1,余下三位就由引腳1~3的電平決定。換言之,同一條I2C總線上,最多只能掛載8個AT24C02。引腳序號名稱功能引腳序號名稱功能8VCC電源正極5SDA雙向數據線4GND電源負極1A0地址線(低位)7WP空引腳2A1地址線(中間位)6SCL時鐘輸入線3A2地址線(高位)(2)芯片的讀寫時序AT24C02的讀寫方式有:①寫入字節(jié)(ByteWrite)、②寫入頁(PageWrite)、③讀當前地址(CurrentAddressRead)、④隨機讀取(RandomRead)和⑤連續(xù)讀?。⊿equentialRead)五種方式。這里僅介紹寫入字節(jié)和隨機讀取兩種。①寫入字節(jié)時序寫入字節(jié)即向AT24C02寫入一個字節(jié)。②隨機讀取時序5.3.3任務程序的編寫STM32F103R6本身自帶一個I2C通信模塊,但是在實際應用中也有一部分工程師會選擇使用GPIO引腳模擬I2C的時序,這樣做的好處是程序代碼便于在不同的處理器上進行移植。工程圖形化配置中,GPIO引腳的分配如圖5-12所示,用PB6、PB7分別模擬I2C總線的時鐘線SCL、數據線SDA。程序采用典型的模塊化設計方式,將I2C總線時序模擬和AT24C02操作代碼分別寫在“vI2C.h”、“AT24C02.h”兩個頭文件中。

(現場操作演示…)技能訓練(選做):

將原圖中AT24C02的地址線A0、A1、A2分別接到高電平,重新完成本次任務。Tobecontinued...5.3串行OLED顯示器的使用能力目標:

在了解I2C總線通信規(guī)則的基礎上,掌握使用OLED顯示器顯示常用字符的方法,并能編寫相應的STM32程序。任務要求:仿真電路如圖所示,要求在屏幕第一行顯示“Helloworld!”,在屏幕第二行顯示一個動態(tài)循環(huán)遞增的二位十進制數字0~99,數字變化的時間間隔為0.5秒。5.3.1OLED顯示器簡介(1)OLED技術概述OLED(OrganicLight-EmittingDiode,有機發(fā)光二極管),顧名思義,其本質上是一種特殊的發(fā)光二極管,是一種利用多層有機薄膜結構產生電致發(fā)光的器件。與LCD顯示器相比,OLED顯示器技術更加新穎,具備外形輕薄、亮度高、功耗低、響應快、清晰度高、柔性好、發(fā)光效率高等優(yōu)點,目前在手機屏幕、計算機顯示器、游戲掌機屏幕等領域均有廣泛應用。(2)OLED12864顯示器OLED12864是一種單色顯示的小尺寸顯示器,屏幕尺寸僅0.96吋,具有128×64的分辨率,其正面(左)與反面(右)的照片分別如下圖所示。OLED12864采用3.3~5V寬電壓供電,適用于包括MCS-51、STM32在內的各種主流單片機。OLED12864可視角度能達到160°,因為OLED12864從本質上來說是一種高密度發(fā)光二極管點陣顯示器,所以不需要背光設計,僅靠點陣自身發(fā)光即可滿足顯示需求。(3)顯示驅動方式

OLED12864采用SSD1306進行驅動,支持8位6800/8080串并聯接口、I2C與SPI串行接口,本教材僅介紹其中的I2C通信方式。顯示器在出廠的時候僅預留了I2C通信接口的4個引腳——電源正極VCC、電源負極GND、時鐘引腳SCL、數據引腳SDA。

SSD1306內置GDDRAM(GraphicDisplayDataRAM,圖形顯示數據RAM),其結構如下圖所示,分為8個頁(PAGE0~PAGE7),每頁128個字節(jié)(SEG0~SEG127),共計128*64bits,每個bit與OLED屏的像素一一對應,需要OLED屏哪個像素點發(fā)光,則向對應的GDDRAM位中寫入1即可,反之寫入0。

在I2C通信模式下,由單片機作為通信主機與作為從機的SSD1306通信數據包結構如下圖所示。

主機單向發(fā)送數據包給從機即可實現單片機對OLED顯示器的控制,該過程無需從機響應。表格1:SSD1306命令字節(jié)——基本命令(D/C#=0,R/W#(WR#)=0,E(RD#=1)除非有特殊說明,所有命令表均適用)序號HEX命令描述181HA[5:0]設置對比度雙字節(jié)命令,第一個字節(jié)為命令,第二個字節(jié)為參數,通過低六位設定,缺省值7FH。(后面還有若干雙字節(jié)命令,不再贅述。)2A6H/A7H設置正常/逆顯示A6H:正常顯示(缺省);A7H:逆顯示。3AEH/AFH設置顯示關/開AEH:關顯示(缺?。?;AFH:正常顯示。表格2:SSD1306命令字節(jié)——尋址設置命令序號HEX命令描述100H~0FH設置頁面尋址方式的列起始地址(低四位)設置列起始地址的低四位,使用低四位進行設定,復位值0000B。210H~1FH設置頁面尋址方式的列起始地址(高四位)設置列起始地址的高四位,使用低四位進行設定,復位值0000B。3B0H~B7H設置頁面尋址方式的起始頁地址使用低三位設置GDDRAM頁面的起始地址(PAGE0~PAGE7)。表格3:SSD1306命令字節(jié)——硬件配置命令序號HEX命令描述140H~7FH設置顯示起始行設置顯示起始行0~63,D6位固定為1,通過低六位設定[5:0],復位值000000B。2A0H/A1H設置段重映射A0H:列地址0映射到SEG0(缺?。籄1H:列地址127映射到SEG0。3A8HA[5:0]設置復用率第二個字節(jié)為參數,若參數取值N,則比例為N+1(比如,參數設定63D,比例即為64D),比例范圍16~64,即參數取值0FH~3FH(復位值)。此命令用于將默認的64復用率更改至任何范圍為16~64的值,COM0~COM63輸出將切換到設定的輸出信號。4C0H/C8H設置COM輸出掃描方向C0H:正向掃描,從COM0向COM[N-1]掃描(缺?。?;C8H:反向掃描,從COM[N-1]向COM0掃描。N即為上一條指令中的復用率。此指令一旦執(zhí)行,屏幕將會立刻垂直翻轉。5D3HA[5:0]設置顯示偏移第二個字節(jié)用于設置屏幕起始行,通常設置為00H,即無偏移。此指令用于設置列信號引腳配置來適應OLED面板的硬件布局。6DAHA[5:4]設置COM引腳硬件配置A[4]=0,順序COM腳配置;A[4]=1,可變COM腳配置(缺?。籄[5]=0,禁用COM左右重映射(缺省);A[5]=1,啟用COM左右重映射。表格4:SSD1306命令字節(jié)——時間和驅動方案設置命令序號HEX命令描述1D5HA[7:0]設置顯示時鐘分頻系數與振蕩頻率A[3:0],分頻系數=A[3:0]+1,復位值0000B,分頻系數即為1;A[7:4],振蕩頻率為0000B~1111B,缺省值1000B(即8MHz)。2D9HA[7:0]預充電周期(包括放電周期)[3:0],放電周期,取值0001B~1111B,缺省2H;[7:4],預充電周期,取值0001B~1111B,缺省2H3DBHA[6:4]設置VCOMH取消選定電平A[6:4]HEX數值VCOMH取消選定電平000B00H~0.65×VCC010B20H~0.77×VCC(缺省)011B30H~0.83×VCC表格5:SSD1306命令字節(jié)——電荷泵命令序號HEX命令描述18DHA[7:0]電荷泵設置8DH:電荷泵設置14H:使能電荷泵AFH:開顯示(4)顯示字符的設計

OLED12864是一種高密度發(fā)光二極管點陣顯示器,理論上可以顯示任何字符與圖案,可以手動編輯顯示數據用于記錄顯示器各個坐標點的亮滅狀態(tài),但實際上人們常常會借助于專門的取字模軟件來建立顯示數組,比如PCtoLCD2002。

打開PCtoLCD2002并新建一個8×16的圖案,如右圖所示。

不妨以上述“P”字點陣數據為例,我們不妨采用畫格子的方式來還原這組數據代表的含義,“1”用黑色填充表示,“0”則用空白表示,如下圖所示,左圖是原始數據點陣圖,右圖是分割、拼接、旋轉之后的點陣圖。5.3.2任務程序的編寫

(現場操作演示…)技能訓練(選做):

修改任務“4.9RTC的時鐘設計”,將時間顯示由串口輸出改為OLED顯示。Tobecontinued...5.4串行溫度傳感器TC72的使用江蘇信息職業(yè)技術學院智能工程學院能力目標:

在了解SPI總線通信規(guī)則的基礎上,掌握讀寫溫度傳感器芯片TC72讀寫數據的方法,并能編寫相應的STM32程序。任務要求:仿真電路如圖所示,單片機每隔1秒鐘讀取一次溫度傳感器TC72的溫度值,并通過串口將讀取的溫度值發(fā)送出去。串口通信參數:19200-N-1。5.4.1SPI總線簡介(1)SPI總線概述

SPI(SerialPeripheralInterface,串行外設接口)是美國Motorola公司推出的一種同步串行通信接口,用于微處理器與外圍芯片之間的串行連接。SPI目前已成為一種工業(yè)標準,世界各大半導體公司均推出帶有SPI接口的微處理器與外圍器件。SPI采用主從式通信模式,通常為一主多從結構,通信時鐘由主機控制,在時鐘信號的作用下,數據先傳送高位,再傳送低位。Motorola公司沒有規(guī)定SPI協(xié)議的通信速度,因此通信速度應根據實際項目中主機和從機的通信能力而定。(2)接口定義SPI通信至少需要4根線:●SCLK,時鐘線,用于提供通信所需的時鐘基準信號;●MOSI,主出從入數據線,對于主機而言作為數據輸出總線,對于從機而言作為數據輸入總線;●MISO,主入從出數據線,對于主機而言作為數據輸入總線,對于從機而言作為數據輸出總線;●,片選信號,低電平有效。但本次任務涉及的TC72例外,有效電平為高電平。如圖所示為一主多從SPI總線硬件連接示意圖。(3)通信時序SPI通信的工作時序有四種,如所示,具體由CPHA(ClockPhase,時鐘相位)和CPOL(ClockPolarity,時鐘極性)決定。CPHA=0時的SPI工作時序CPHA=1時的SPI工作時序CPHA和CPOL的作用為:●CPHA,CPHA=0時,信號采樣時刻為兩個空閑狀態(tài)之間的第一個邊沿;CPHA=1時,信號采樣時刻為兩個空閑狀態(tài)之間的第二個邊沿?!馛POL,CPOL=0時,時鐘信號SCK空閑為低電平;CPOL=1時,時鐘信號SCK空閑為高電平。因此,SPI的四種通信模式總結如下表所示。通信模式CPHACPOL說明MODE000SCK空閑為低電平,上升沿時刻采樣MODE110SCK空閑為低電平,下降沿時刻采樣MODE201SCK空閑為高電平,下降沿時刻采樣MODE311SCK空閑為高電平,上升沿時刻采樣5.4.2TC72簡介TC72是美國MicroChip公司出品的串行溫度傳感芯片,兼容SPI接口,溫度測量范圍為-55~+125℃,分辨率為10位(0.25℃/Bit)。TC72的工作電壓為2.65~5.5V,能適應目前市面上主流的3.3V和5.0V工作電壓的單片機。TC72芯片引腳排序及實物如下圖所示。8個引腳的功能分別如下表所示。引腳序號名稱功能引腳序號名稱功能8VDD電源正極6SDI數據輸入線4GND電源負極5SDO數據輸出線2CE片選線(高電平有效)1NC空引腳3SCK時鐘輸入線7NC空引腳TC72的工作模式有:●連續(xù)轉換模式(ContinuousConversionMode),每隔約150毫秒進行一次溫度轉換;●單次轉換模式(One-ShotMode),轉換一次后就進入省電模式。TC72的寄存器格式如下表所示。TC72的溫度值轉換結果采用左對齊數據存儲格式,高字節(jié)存放溫度值的整數部分,最高位T9為符號位,低字節(jié)高兩位存放溫度值的小數部分,數據以補碼形式存放。寄存器讀地址寫地址B7B6B5B4B3B2B1B0控制0x000x80000單次010關斷溫度LSB0x01N/AT1T0000000溫度MSB0x02N/AT9T8T7T6T5T4T3T2制造商ID0x03N/A010101005.4.3任務程序的編寫STM32F103R6本身自帶一個SPI通信模塊,但是在實際應用中也有一部分工程師會選擇使用GPIO引腳模擬SPI的時序,這樣做的好處是程序代碼便于在不同的處理器上進行移植,這一點與上一個任務中學習的I2C類似。首先是工程的圖形化配置,如右圖所示。然后設定串口USART1,一鍵生成初始化代碼后進入編程界面接著完成代碼的編寫。(現場操作演示…)技能訓練(選做):

將TC72單次轉換修改為連續(xù)轉換,比較其轉換效果有何不同。Tobecontinued...5.5串行DACMCP4921的使用能力目標:

掌握控制DAC芯片MCP4921輸出電壓的方法,并能編寫相應的STM32程序。任務要求:仿真電路如下圖所示,單片機控制MCP4921以1秒周期輸出正弦波,正弦波波動范圍0~3.3V。5.5.1MCP4921簡介單片機控制系統(tǒng)中,有時會涉及到一些需要通過模擬量信號控制的執(zhí)行器(比如變頻器、電動閥門等),這就需要用到數模轉換器(DigitaltoAnalogConverter,簡稱DAC),單片機將計算得到的數字量控制信號通過DAC轉換成模擬量信號后控制執(zhí)行器做出相應的動作。本次任務選擇了獨立的DAC芯片,其型號是MCP4921,如下圖所示。MCP4921是美國MicroChip公司出品的串行12位DAC芯片,兼容SPI接口,最大通信頻率20MHz,一次轉換時間4.5μs,工作電壓2.7~5.5V,能適應目前市面上主流的3.3V和5.0V工作電壓的單片機。8個引腳的功能分別如下表所示。MCP4921只有數據輸入,沒有數據輸出,單片機僅需將12位數字量連同4位配置信息一共16位數據一起打包發(fā)送給DAC,DAC隨即開始數模轉換過程,通信數據格式如表所示。

(表格往后翻頁→)引腳序號名稱功能引腳序號名稱功能1VDD電源正極2片選線(低電平有效)7VSS電源負極3SCK時鐘輸入線6VREF參考電壓4SDI數據輸入線5同步輸入控制8VOUT模擬量電壓輸出正極每一個配置位的含義如下:●,該位只能選0,因為MCP49xx系列DAC中有些型號具有兩個DAC通道,通過0或1選擇通道A或B,但MCP4921僅有A通道;●BUF,VREF輸入緩沖器控制位,設1時緩沖,設0時未緩沖;●,輸出增益選擇位,設1時無增益,設0時兩倍增益;●,待機模式設置位,設1時不進入待機模式,設0時進入待機模式。高字節(jié)MSB低字節(jié)LSB配置位數據位BUFB11B10B9B8B7B6B5B4B3B2B1B05.5.2任務程序的編制MCP4921是一個12位DAC,因此輸入數字量的范圍是0x000~0x3FF,輸出模擬量電壓范圍從0~VREF,即無法輸出負電壓。為了輸出完整的正弦曲線,不妨將正弦波曲線沿縱軸(電壓/數字量)正向移動,確保波谷也位于橫軸(時間)上方。

正弦波計算公式:

為了提高單片機CPU的執(zhí)行效率,此處使用查表法,在1秒內,每隔0.02秒計算一次采樣值,可以利用excel進行計算,如圖。

計算結果如圖。與任務5.4相同,分別將單片機的PA4、PA5、PA7設為片選線、時鐘線、MOSI線,引腳設定參數可參照任務5.4,由于MCP4921沒有SDO引腳,因此不需要使用單片機的PA6引腳。(現場操作演示…)技能訓練:

嘗試輸出不同的曲線,比如鋸齒波、三角波等。Tobecontinued...5.6直流電動機的控制能力目標:

理解H橋電路的工作原理,掌握H橋芯片L298的使用方法,并能編寫基于L298的直流電動機的STM32驅動程序。任務要求:仿真電路如圖所示,要求通過五只按鈕控制直流電動機的運行狀態(tài),五只按鈕的作用分別是:電動機正轉、電動機反轉、電動機停止、電動機加速和電動機減速,其中電動機加速/減速實則以10%的PWM占空比為遞增/遞減量。5.6.1直流電動機與H橋電路直流電動機是一種常見的動力源,在很多情況下需要用到直流電動機帶動執(zhí)行機構做各種復雜動作,常需要直流電機能夠做正反轉運動。如圖所示的H橋是一種常見的直流電動機正反轉控制電路。正轉

反轉

制動5.6.2雙H橋芯片L298市面上有許多種H橋芯片,這里介紹其中一種——L298。L298是ST公司(意法半導體公司)出品的一種雙H橋芯片,即片內集成兩個獨立的H橋,可同時驅動兩只最高電壓46V、最大電流2A直流電動機。如左下圖所示為L298的兩種封裝形式。如右圖所示電路是L298的一種典型應用電路,控制信號為5VTTL電平,驅動電壓為5V~46V,控制電路由Vss供電,驅動電路由Vs供電。L298各引腳功能:●ENA引腳為H橋A的使能引腳,當ENA接高電平時,使能H橋A,而當ENA接低電平時,禁止H橋A。實際使用中,往往將該引腳連接PWM信號用于調節(jié)H橋A控制的直流電動機的轉速。●ENB引腳為H橋B的使能引腳,功能與ENA類似,不再贅述?!馡SENA引腳為H橋A的驅動檢測引腳,用來做過流檢測反饋給控制器形成閉環(huán)以穩(wěn)定電機轉速,具體應用可參考相關技術文檔。一般不用可直接接地?!馡SENB引腳為H橋B的驅動檢測引腳,功能與ISENA類似,不再贅述?!馡N1~IN4為兩個H橋的方向控制信號輸入端,其中IN1、IN2控制H橋A,IN3、IN4控制H橋B,具體如下表所示。(

H表示高電平,L表示低電平;Motor1表示H橋A控制的直流電動機,Motor2表示H橋B控制的直流電動機。)IN1IN2Motor1狀態(tài)IN3IN4Motor2狀態(tài)LL停止LL停止LH正轉LH正轉HL反轉HL反轉HH停止HH停止●OUT1~OUT4為兩個H橋的輸出端,用來連接兩只直流電動機。其中OUT1、OUT2用來連接Motor1,OUT3、OUT4用來連接Motor2。

電路中的8只整流二極管作用是防止電動機轉向改變時產生的沖擊電流打壞L298芯片,仿真無需考慮這個問題。

值得注意的是,L298的控制電路的工作電壓是5V,而STM32的工作電壓只有3.3V,為了讓L298能正確識別STM32發(fā)出的控制信號,采用實物驗證時,務必①選擇具備“FT”特性的GPIO引腳,并②將引腳設為開漏模式并外接上拉電阻到5V電源正極。5.6.3任務程序的編寫首先是工程的圖形化配置,包括串口的設置、外部中斷的設置、PWM輸出的設置及GPIO的設置,其中GPIO選擇具備“FT”特性的PC8、PC9,均設為開漏模式,如下圖所示。

PWM輸出的設置請參考任務4.5,但需要進一步修改PWM輸出引腳PC7為開漏模式,如所示。圖形化配置完成后,一鍵生成初始化代碼后進入編程界面接著完成代碼的編寫。(現場操作演示…)技能訓練(選做):

嘗試以L298的通道2驅動

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論