




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5.1LCD1602顯示器的使用能力目標(biāo):
掌握LCD1602顯示器的驅(qū)動(dòng)方法,能編寫簡(jiǎn)單的LCD1602驅(qū)動(dòng)程序。任務(wù)要求:仿真電路如圖所示,要求在屏幕第一行顯示“Helloworld!”。5.1.1液晶顯示屏與LCD1602為了能夠顯示更加豐富的信息,單片機(jī)電路設(shè)計(jì)中往往會(huì)使用到液晶顯示屏。這里我們?yōu)榇蠹医榻B一種極具性價(jià)比的單色液晶顯示屏——LCD1602,如圖所示。這種液晶顯示屏能夠顯示2行、16字符/行,共計(jì)32個(gè)5×7或者5×11的點(diǎn)陣字符,目前市面上大多數(shù)LCD1602顯示屏都是采用了HD44780液晶顯示芯片,當(dāng)然無論采用了哪種液晶顯示芯片,操作方式大同小異。(1)LCD1602的引腳定義LCD1602采用標(biāo)準(zhǔn)的16腳接口,詳見表。引腳編號(hào)功能說明1VSS接電源負(fù)極2VDD電源正極(+5V/+3.3V)3VEE液晶顯示器對(duì)比度調(diào)節(jié)引腳,電壓越接近于VDD則對(duì)比度越低,相反電壓越接近于VSS(0)則對(duì)比度越高。4RS(RegisterSelect)寄存器選擇引腳,高電平時(shí)選擇數(shù)據(jù)寄存器,低電平時(shí)選擇指令寄存器。5RW(Read/Write)讀/寫信號(hào)引腳,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。6E(Enable)使能引腳,高電平時(shí)讀取信息,下降沿時(shí)執(zhí)行指令。7~14D0~D78位數(shù)據(jù)總線,D0為最低位,D7為最高位。15ALCD背光源正極16KLCD背光源負(fù)極(2)LCD1602的存儲(chǔ)器LCD1602內(nèi)置DDRAM(DisplayDataRAM,顯示數(shù)據(jù)隨機(jī)存儲(chǔ)器)、CGRAM(CharacterGeneratorRAM,字符發(fā)生隨機(jī)存儲(chǔ)器)和CGROM(CharacterGeneratorROM,字符發(fā)生只讀存儲(chǔ)器)。其中DDRAM用于指定顯示字符的位置,只需將需要顯示的字符送至相應(yīng)的DDRAM地址即可在屏幕上顯示,詳見下表。顯示位置123456…1516DDRAM地址第一行80H81H82H83H84H85H…8EH8FH第二行C0HC1HC2HC3HC4HC5H…CEHCFHCGRAM用于由用戶自定義字模,而CGROM則已經(jīng)內(nèi)置了160個(gè)常用字模,包括ASCII碼、日文假名和希臘字母。由于本書只涉及到ASCII碼的顯示,具體編寫程序的時(shí)候無須了解CGRAM和CGROM的知識(shí),因此本節(jié)不作過多的介紹。(3)LCD1602的控制指令LCD1602共有11條控制指令,如表所示。序號(hào)指令RSRWD7D6D5D4D3D2D1D01復(fù)位00000000012光標(biāo)歸位000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)/字符移位000001S/CR/L**6置功能00001DLNF**7置CGRAM地址0001CGRAM地址8置DDRAM地址001DDRAM地址9忙標(biāo)志/地址計(jì)數(shù)器01BF由最后寫入的DDRAM或CGRAM設(shè)置指令設(shè)置的DDRAM/CGRAM地址10CGRAM/DDRAM寫數(shù)據(jù)10寫入1個(gè)字節(jié)的數(shù)據(jù)11CGRAM/DDRAM讀數(shù)據(jù)11讀取1個(gè)字節(jié)的數(shù)據(jù)●指令1:顯示屏復(fù)位指令,清除顯示屏所有顯示字符,并且光標(biāo)回到第一行第一個(gè)字符位置;●指令2:光標(biāo)歸位指令,光標(biāo)回到第一行第一個(gè)字符位置;●指令3:置輸入模式指令,其中I/D位為光標(biāo)移動(dòng)方向,0表示左移,1表示右移,S位為所有字符是否左移或者右移,0表示否,1表示是;●指令4:顯示開/管控制指令,其中D位控制所有字符是否顯示,0表示關(guān)顯示,1表示開顯示,C位控制光標(biāo)是否顯示,0表示關(guān)顯示,1表示開顯示,B位控制光標(biāo)是否閃爍,0表示不閃爍,1表示閃爍;●指令5:光標(biāo)和字符移位指令,位S/C為光標(biāo)和字符移位控制位,0表示僅光標(biāo)移動(dòng),1表示光標(biāo)和字符都移動(dòng),位R/L為移動(dòng)方向控制位,0表示左移,1表示右移;●指令6:功能設(shè)置指令,位DL為總線模式控制位,0表示8位總線模式,1表示4位總線模式,N為顯示行數(shù)控制位,0表示單行顯示,1表示雙行顯示,F(xiàn)為字符點(diǎn)陣模式控制位,0表示5×7點(diǎn)陣字符,1表示5×11點(diǎn)陣字符;●指令7:CGRAM地址設(shè)置指令,設(shè)置6位的CGRAM地址以讀寫數(shù)據(jù);●指令8:DDRAM地址設(shè)置指令,設(shè)置7位的DDRAM地址以讀寫數(shù)據(jù);●指令9:讀忙信號(hào)與地址計(jì)數(shù)器返回值指令,BF返回液晶屏當(dāng)前狀態(tài),返回0時(shí)表示液晶屏正忙,返回1時(shí)表示液晶屏就緒可以進(jìn)一步操作,D6~D0共計(jì)7位為讀取的地址計(jì)數(shù)器的內(nèi)容;●指令10:CGRAM/DDRAM寫數(shù)據(jù)指令,用于向CGRAM寫入用戶自定義字模,或者用于向指定DDRAM地址寫入顯示字符從而在液晶屏相應(yīng)位置進(jìn)行顯示;●指令11:CGRAM/DDRAM讀數(shù)據(jù)指令,讀取CGRAM或者DDRAM中的數(shù)據(jù)。5.1.2任務(wù)程序的編寫本次任務(wù)用到的GPIO引腳比較多,為避免混淆不妨給每個(gè)GPIO引腳添加用戶標(biāo)簽(UserLabel)。考慮到代碼的可移植性,這里將LCD1602相關(guān)的功能代碼全部封裝成函數(shù)并歸入頭文件“LCD1602.h”,然后在主文件“main.c”中進(jìn)行調(diào)用。(現(xiàn)場(chǎng)操作演示…)技能訓(xùn)練:
修改程序,在液晶屏第二行以0.5秒周期循環(huán)遞增顯示0~99。Tobecontinued...5.2串行E2PROMAT24C02的使用能力目標(biāo):
在了解I2C總線通信規(guī)則的基礎(chǔ)上,掌握讀寫E2PROM芯片AT24C02一個(gè)字節(jié)的使用方法,并能編寫相應(yīng)的STM32程序。任務(wù)要求:仿真電路如圖所示,STM32單片機(jī)能將由串口收到的1個(gè)字節(jié)數(shù)據(jù)存入到AT24C02的首地址;按下按鈕BTN1,單片機(jī)將存儲(chǔ)在AT24C02首地址的1個(gè)字節(jié)數(shù)據(jù)通過串口發(fā)送。串口通信參數(shù)是波特率19200bps、無校驗(yàn)。5.3.1I2C總線簡(jiǎn)介(1)概述I2C(Inter-IntegratedCircuit)總線是目前主流的芯片間總線接口技術(shù)之一。I2C總線屬于多主總線,每一個(gè)節(jié)點(diǎn)都可以設(shè)定唯一的地址,I2C總線連接示意圖如圖所示。向總線發(fā)送數(shù)據(jù)的設(shè)備作為發(fā)送器,而從總線接收數(shù)據(jù)的設(shè)備則作為接收器,通過沖突檢測(cè)和仲裁可以防止總線上數(shù)據(jù)傳輸發(fā)生錯(cuò)誤。目前I2C總線具有三種傳輸速率,①標(biāo)準(zhǔn)模式(1980年提出)為100kbps、②快速模式(1992年提出)為400kbps、③高速模式(1998年提出,并與2001年修訂)可達(dá)3.4Mbps。I2C總線只有①時(shí)鐘信號(hào)線SCL與②雙向數(shù)據(jù)線SDA兩根,如上圖所示,SCL與SDA被上拉至電源VCC,也就是說I2C總線處于“空閑”狀態(tài)時(shí)SCL、SDA均為高電平。(2)通信時(shí)序I2C通信時(shí)序分為發(fā)送器啟動(dòng)/停止通信、數(shù)據(jù)位傳送、接收器返回響應(yīng)信號(hào)三種。①發(fā)送器啟動(dòng)/停止通信(a)啟動(dòng)通信(b)停止通信②數(shù)據(jù)位傳送在SCL處于高電平期間,SDA必須保持穩(wěn)定,SDA低電平表示數(shù)據(jù)0、高電平表示數(shù)據(jù)1,只有在SCL處于低電平期間,SDA才能改變電平狀態(tài)。③接收器返回響應(yīng)信號(hào)數(shù)據(jù)發(fā)送器可以連續(xù)發(fā)送多個(gè)字節(jié)數(shù)據(jù),但是每發(fā)送一個(gè)字節(jié)(8個(gè)位)數(shù)據(jù),數(shù)據(jù)接收器必須返回一位響應(yīng)信號(hào)。響應(yīng)信號(hào)位若為低電平則規(guī)定為應(yīng)答響應(yīng)位(簡(jiǎn)稱ACK),表示數(shù)據(jù)接收器接收該字節(jié)數(shù)據(jù)成功;響應(yīng)信號(hào)位若為高電平則規(guī)定為非應(yīng)答響應(yīng)位(簡(jiǎn)稱NACK),表示數(shù)據(jù)接收器接收該字節(jié)數(shù)據(jù)失敗。如果數(shù)據(jù)接收器是主機(jī),則在它收到最后一個(gè)字節(jié)數(shù)據(jù)后,返回一個(gè)非應(yīng)答位,通知數(shù)據(jù)發(fā)送器結(jié)束數(shù)據(jù)發(fā)送,接著主機(jī)向總線發(fā)送一個(gè)停止通信信號(hào)結(jié)束通信過程。5.3.2AT24C02簡(jiǎn)介(1)芯片概述AT24Cxx是美國(guó)Atmel公司出品的串行E2PROM系列芯片,xx表示不同的容量。比如本次任務(wù)用到的AT24C02,表示其總?cè)萘繛?KBits(256Bytes)。AT24C02的工作電壓范圍為1.8V~6.0V,能適應(yīng)目前市面上主流的3.3V和5.0V工作電壓的單片機(jī)。值得注意的是,工作電壓越高,相應(yīng)的工作頻率也越高,典型工作電壓3.3V和5.0V對(duì)應(yīng)的工作頻率分別是標(biāo)準(zhǔn)模式100kHz和快速模式400kHz。8個(gè)引腳的功能如下表。其中,引腳1~3參與構(gòu)成AT24C02在I2C總線上的地址。地址高四位固定1010B,低四位最低位在總線“寫”命令中固定為0,在總線“讀”命令中固定位1,余下三位就由引腳1~3的電平?jīng)Q定。換言之,同一條I2C總線上,最多只能掛載8個(gè)AT24C02。引腳序號(hào)名稱功能引腳序號(hào)名稱功能8VCC電源正極5SDA雙向數(shù)據(jù)線4GND電源負(fù)極1A0地址線(低位)7WP空引腳2A1地址線(中間位)6SCL時(shí)鐘輸入線3A2地址線(高位)(2)芯片的讀寫時(shí)序AT24C02的讀寫方式有:①寫入字節(jié)(ByteWrite)、②寫入頁(PageWrite)、③讀當(dāng)前地址(CurrentAddressRead)、④隨機(jī)讀取(RandomRead)和⑤連續(xù)讀?。⊿equentialRead)五種方式。這里僅介紹寫入字節(jié)和隨機(jī)讀取兩種。①寫入字節(jié)時(shí)序?qū)懭胱止?jié)即向AT24C02寫入一個(gè)字節(jié)。②隨機(jī)讀取時(shí)序5.3.3任務(wù)程序的編寫STM32F103R6本身自帶一個(gè)I2C通信模塊,但是在實(shí)際應(yīng)用中也有一部分工程師會(huì)選擇使用GPIO引腳模擬I2C的時(shí)序,這樣做的好處是程序代碼便于在不同的處理器上進(jìn)行移植。工程圖形化配置中,GPIO引腳的分配如圖5-12所示,用PB6、PB7分別模擬I2C總線的時(shí)鐘線SCL、數(shù)據(jù)線SDA。程序采用典型的模塊化設(shè)計(jì)方式,將I2C總線時(shí)序模擬和AT24C02操作代碼分別寫在“vI2C.h”、“AT24C02.h”兩個(gè)頭文件中。
(現(xiàn)場(chǎng)操作演示…)技能訓(xùn)練(選做):
將原圖中AT24C02的地址線A0、A1、A2分別接到高電平,重新完成本次任務(wù)。Tobecontinued...5.3串行OLED顯示器的使用能力目標(biāo):
在了解I2C總線通信規(guī)則的基礎(chǔ)上,掌握使用OLED顯示器顯示常用字符的方法,并能編寫相應(yīng)的STM32程序。任務(wù)要求:仿真電路如圖所示,要求在屏幕第一行顯示“Helloworld!”,在屏幕第二行顯示一個(gè)動(dòng)態(tài)循環(huán)遞增的二位十進(jìn)制數(shù)字0~99,數(shù)字變化的時(shí)間間隔為0.5秒。5.3.1OLED顯示器簡(jiǎn)介(1)OLED技術(shù)概述OLED(OrganicLight-EmittingDiode,有機(jī)發(fā)光二極管),顧名思義,其本質(zhì)上是一種特殊的發(fā)光二極管,是一種利用多層有機(jī)薄膜結(jié)構(gòu)產(chǎn)生電致發(fā)光的器件。與LCD顯示器相比,OLED顯示器技術(shù)更加新穎,具備外形輕薄、亮度高、功耗低、響應(yīng)快、清晰度高、柔性好、發(fā)光效率高等優(yōu)點(diǎn),目前在手機(jī)屏幕、計(jì)算機(jī)顯示器、游戲掌機(jī)屏幕等領(lǐng)域均有廣泛應(yīng)用。(2)OLED12864顯示器OLED12864是一種單色顯示的小尺寸顯示器,屏幕尺寸僅0.96吋,具有128×64的分辨率,其正面(左)與反面(右)的照片分別如下圖所示。OLED12864采用3.3~5V寬電壓供電,適用于包括MCS-51、STM32在內(nèi)的各種主流單片機(jī)。OLED12864可視角度能達(dá)到160°,因?yàn)镺LED12864從本質(zhì)上來說是一種高密度發(fā)光二極管點(diǎn)陣顯示器,所以不需要背光設(shè)計(jì),僅靠點(diǎn)陣自身發(fā)光即可滿足顯示需求。(3)顯示驅(qū)動(dòng)方式
OLED12864采用SSD1306進(jìn)行驅(qū)動(dòng),支持8位6800/8080串并聯(lián)接口、I2C與SPI串行接口,本教材僅介紹其中的I2C通信方式。顯示器在出廠的時(shí)候僅預(yù)留了I2C通信接口的4個(gè)引腳——電源正極VCC、電源負(fù)極GND、時(shí)鐘引腳SCL、數(shù)據(jù)引腳SDA。
SSD1306內(nèi)置GDDRAM(GraphicDisplayDataRAM,圖形顯示數(shù)據(jù)RAM),其結(jié)構(gòu)如下圖所示,分為8個(gè)頁(PAGE0~PAGE7),每頁128個(gè)字節(jié)(SEG0~SEG127),共計(jì)128*64bits,每個(gè)bit與OLED屏的像素一一對(duì)應(yīng),需要OLED屏哪個(gè)像素點(diǎn)發(fā)光,則向?qū)?yīng)的GDDRAM位中寫入1即可,反之寫入0。
在I2C通信模式下,由單片機(jī)作為通信主機(jī)與作為從機(jī)的SSD1306通信數(shù)據(jù)包結(jié)構(gòu)如下圖所示。
主機(jī)單向發(fā)送數(shù)據(jù)包給從機(jī)即可實(shí)現(xiàn)單片機(jī)對(duì)OLED顯示器的控制,該過程無需從機(jī)響應(yīng)。表格1:SSD1306命令字節(jié)——基本命令(D/C#=0,R/W#(WR#)=0,E(RD#=1)除非有特殊說明,所有命令表均適用)序號(hào)HEX命令描述181HA[5:0]設(shè)置對(duì)比度雙字節(jié)命令,第一個(gè)字節(jié)為命令,第二個(gè)字節(jié)為參數(shù),通過低六位設(shè)定,缺省值7FH。(后面還有若干雙字節(jié)命令,不再贅述。)2A6H/A7H設(shè)置正常/逆顯示A6H:正常顯示(缺?。?;A7H:逆顯示。3AEH/AFH設(shè)置顯示關(guān)/開AEH:關(guān)顯示(缺?。?;AFH:正常顯示。表格2:SSD1306命令字節(jié)——尋址設(shè)置命令序號(hào)HEX命令描述100H~0FH設(shè)置頁面尋址方式的列起始地址(低四位)設(shè)置列起始地址的低四位,使用低四位進(jìn)行設(shè)定,復(fù)位值0000B。210H~1FH設(shè)置頁面尋址方式的列起始地址(高四位)設(shè)置列起始地址的高四位,使用低四位進(jìn)行設(shè)定,復(fù)位值0000B。3B0H~B7H設(shè)置頁面尋址方式的起始頁地址使用低三位設(shè)置GDDRAM頁面的起始地址(PAGE0~PAGE7)。表格3:SSD1306命令字節(jié)——硬件配置命令序號(hào)HEX命令描述140H~7FH設(shè)置顯示起始行設(shè)置顯示起始行0~63,D6位固定為1,通過低六位設(shè)定[5:0],復(fù)位值000000B。2A0H/A1H設(shè)置段重映射A0H:列地址0映射到SEG0(缺?。籄1H:列地址127映射到SEG0。3A8HA[5:0]設(shè)置復(fù)用率第二個(gè)字節(jié)為參數(shù),若參數(shù)取值N,則比例為N+1(比如,參數(shù)設(shè)定63D,比例即為64D),比例范圍16~64,即參數(shù)取值0FH~3FH(復(fù)位值)。此命令用于將默認(rèn)的64復(fù)用率更改至任何范圍為16~64的值,COM0~COM63輸出將切換到設(shè)定的輸出信號(hào)。4C0H/C8H設(shè)置COM輸出掃描方向C0H:正向掃描,從COM0向COM[N-1]掃描(缺省);C8H:反向掃描,從COM[N-1]向COM0掃描。N即為上一條指令中的復(fù)用率。此指令一旦執(zhí)行,屏幕將會(huì)立刻垂直翻轉(zhuǎn)。5D3HA[5:0]設(shè)置顯示偏移第二個(gè)字節(jié)用于設(shè)置屏幕起始行,通常設(shè)置為00H,即無偏移。此指令用于設(shè)置列信號(hào)引腳配置來適應(yīng)OLED面板的硬件布局。6DAHA[5:4]設(shè)置COM引腳硬件配置A[4]=0,順序COM腳配置;A[4]=1,可變COM腳配置(缺?。?;A[5]=0,禁用COM左右重映射(缺?。?;A[5]=1,啟用COM左右重映射。表格4:SSD1306命令字節(jié)——時(shí)間和驅(qū)動(dòng)方案設(shè)置命令序號(hào)HEX命令描述1D5HA[7:0]設(shè)置顯示時(shí)鐘分頻系數(shù)與振蕩頻率A[3:0],分頻系數(shù)=A[3:0]+1,復(fù)位值0000B,分頻系數(shù)即為1;A[7:4],振蕩頻率為0000B~1111B,缺省值1000B(即8MHz)。2D9HA[7:0]預(yù)充電周期(包括放電周期)[3:0],放電周期,取值0001B~1111B,缺省2H;[7:4],預(yù)充電周期,取值0001B~1111B,缺省2H3DBHA[6:4]設(shè)置VCOMH取消選定電平A[6:4]HEX數(shù)值VCOMH取消選定電平000B00H~0.65×VCC010B20H~0.77×VCC(缺?。?11B30H~0.83×VCC表格5:SSD1306命令字節(jié)——電荷泵命令序號(hào)HEX命令描述18DHA[7:0]電荷泵設(shè)置8DH:電荷泵設(shè)置14H:使能電荷泵AFH:開顯示(4)顯示字符的設(shè)計(jì)
OLED12864是一種高密度發(fā)光二極管點(diǎn)陣顯示器,理論上可以顯示任何字符與圖案,可以手動(dòng)編輯顯示數(shù)據(jù)用于記錄顯示器各個(gè)坐標(biāo)點(diǎn)的亮滅狀態(tài),但實(shí)際上人們常常會(huì)借助于專門的取字模軟件來建立顯示數(shù)組,比如PCtoLCD2002。
打開PCtoLCD2002并新建一個(gè)8×16的圖案,如右圖所示。
不妨以上述“P”字點(diǎn)陣數(shù)據(jù)為例,我們不妨采用畫格子的方式來還原這組數(shù)據(jù)代表的含義,“1”用黑色填充表示,“0”則用空白表示,如下圖所示,左圖是原始數(shù)據(jù)點(diǎn)陣圖,右圖是分割、拼接、旋轉(zhuǎn)之后的點(diǎn)陣圖。5.3.2任務(wù)程序的編寫
(現(xiàn)場(chǎng)操作演示…)技能訓(xùn)練(選做):
修改任務(wù)“4.9RTC的時(shí)鐘設(shè)計(jì)”,將時(shí)間顯示由串口輸出改為OLED顯示。Tobecontinued...5.4串行溫度傳感器TC72的使用江蘇信息職業(yè)技術(shù)學(xué)院智能工程學(xué)院能力目標(biāo):
在了解SPI總線通信規(guī)則的基礎(chǔ)上,掌握讀寫溫度傳感器芯片TC72讀寫數(shù)據(jù)的方法,并能編寫相應(yīng)的STM32程序。任務(wù)要求:仿真電路如圖所示,單片機(jī)每隔1秒鐘讀取一次溫度傳感器TC72的溫度值,并通過串口將讀取的溫度值發(fā)送出去。串口通信參數(shù):19200-N-1。5.4.1SPI總線簡(jiǎn)介(1)SPI總線概述
SPI(SerialPeripheralInterface,串行外設(shè)接口)是美國(guó)Motorola公司推出的一種同步串行通信接口,用于微處理器與外圍芯片之間的串行連接。SPI目前已成為一種工業(yè)標(biāo)準(zhǔn),世界各大半導(dǎo)體公司均推出帶有SPI接口的微處理器與外圍器件。SPI采用主從式通信模式,通常為一主多從結(jié)構(gòu),通信時(shí)鐘由主機(jī)控制,在時(shí)鐘信號(hào)的作用下,數(shù)據(jù)先傳送高位,再傳送低位。Motorola公司沒有規(guī)定SPI協(xié)議的通信速度,因此通信速度應(yīng)根據(jù)實(shí)際項(xiàng)目中主機(jī)和從機(jī)的通信能力而定。(2)接口定義SPI通信至少需要4根線:●SCLK,時(shí)鐘線,用于提供通信所需的時(shí)鐘基準(zhǔn)信號(hào);●MOSI,主出從入數(shù)據(jù)線,對(duì)于主機(jī)而言作為數(shù)據(jù)輸出總線,對(duì)于從機(jī)而言作為數(shù)據(jù)輸入總線;●MISO,主入從出數(shù)據(jù)線,對(duì)于主機(jī)而言作為數(shù)據(jù)輸入總線,對(duì)于從機(jī)而言作為數(shù)據(jù)輸出總線;●,片選信號(hào),低電平有效。但本次任務(wù)涉及的TC72例外,有效電平為高電平。如圖所示為一主多從SPI總線硬件連接示意圖。(3)通信時(shí)序SPI通信的工作時(shí)序有四種,如所示,具體由CPHA(ClockPhase,時(shí)鐘相位)和CPOL(ClockPolarity,時(shí)鐘極性)決定。CPHA=0時(shí)的SPI工作時(shí)序CPHA=1時(shí)的SPI工作時(shí)序CPHA和CPOL的作用為:●CPHA,CPHA=0時(shí),信號(hào)采樣時(shí)刻為兩個(gè)空閑狀態(tài)之間的第一個(gè)邊沿;CPHA=1時(shí),信號(hào)采樣時(shí)刻為兩個(gè)空閑狀態(tài)之間的第二個(gè)邊沿?!馛POL,CPOL=0時(shí),時(shí)鐘信號(hào)SCK空閑為低電平;CPOL=1時(shí),時(shí)鐘信號(hào)SCK空閑為高電平。因此,SPI的四種通信模式總結(jié)如下表所示。通信模式CPHACPOL說明MODE000SCK空閑為低電平,上升沿時(shí)刻采樣MODE110SCK空閑為低電平,下降沿時(shí)刻采樣MODE201SCK空閑為高電平,下降沿時(shí)刻采樣MODE311SCK空閑為高電平,上升沿時(shí)刻采樣5.4.2TC72簡(jiǎn)介TC72是美國(guó)MicroChip公司出品的串行溫度傳感芯片,兼容SPI接口,溫度測(cè)量范圍為-55~+125℃,分辨率為10位(0.25℃/Bit)。TC72的工作電壓為2.65~5.5V,能適應(yīng)目前市面上主流的3.3V和5.0V工作電壓的單片機(jī)。TC72芯片引腳排序及實(shí)物如下圖所示。8個(gè)引腳的功能分別如下表所示。引腳序號(hào)名稱功能引腳序號(hào)名稱功能8VDD電源正極6SDI數(shù)據(jù)輸入線4GND電源負(fù)極5SDO數(shù)據(jù)輸出線2CE片選線(高電平有效)1NC空引腳3SCK時(shí)鐘輸入線7NC空引腳TC72的工作模式有:●連續(xù)轉(zhuǎn)換模式(ContinuousConversionMode),每隔約150毫秒進(jìn)行一次溫度轉(zhuǎn)換;●單次轉(zhuǎn)換模式(One-ShotMode),轉(zhuǎn)換一次后就進(jìn)入省電模式。TC72的寄存器格式如下表所示。TC72的溫度值轉(zhuǎn)換結(jié)果采用左對(duì)齊數(shù)據(jù)存儲(chǔ)格式,高字節(jié)存放溫度值的整數(shù)部分,最高位T9為符號(hào)位,低字節(jié)高兩位存放溫度值的小數(shù)部分,數(shù)據(jù)以補(bǔ)碼形式存放。寄存器讀地址寫地址B7B6B5B4B3B2B1B0控制0x000x80000單次010關(guān)斷溫度LSB0x01N/AT1T0000000溫度MSB0x02N/AT9T8T7T6T5T4T3T2制造商ID0x03N/A010101005.4.3任務(wù)程序的編寫STM32F103R6本身自帶一個(gè)SPI通信模塊,但是在實(shí)際應(yīng)用中也有一部分工程師會(huì)選擇使用GPIO引腳模擬SPI的時(shí)序,這樣做的好處是程序代碼便于在不同的處理器上進(jìn)行移植,這一點(diǎn)與上一個(gè)任務(wù)中學(xué)習(xí)的I2C類似。首先是工程的圖形化配置,如右圖所示。然后設(shè)定串口USART1,一鍵生成初始化代碼后進(jìn)入編程界面接著完成代碼的編寫。(現(xiàn)場(chǎng)操作演示…)技能訓(xùn)練(選做):
將TC72單次轉(zhuǎn)換修改為連續(xù)轉(zhuǎn)換,比較其轉(zhuǎn)換效果有何不同。Tobecontinued...5.5串行DACMCP4921的使用能力目標(biāo):
掌握控制DAC芯片MCP4921輸出電壓的方法,并能編寫相應(yīng)的STM32程序。任務(wù)要求:仿真電路如下圖所示,單片機(jī)控制MCP4921以1秒周期輸出正弦波,正弦波波動(dòng)范圍0~3.3V。5.5.1MCP4921簡(jiǎn)介單片機(jī)控制系統(tǒng)中,有時(shí)會(huì)涉及到一些需要通過模擬量信號(hào)控制的執(zhí)行器(比如變頻器、電動(dòng)閥門等),這就需要用到數(shù)模轉(zhuǎn)換器(DigitaltoAnalogConverter,簡(jiǎn)稱DAC),單片機(jī)將計(jì)算得到的數(shù)字量控制信號(hào)通過DAC轉(zhuǎn)換成模擬量信號(hào)后控制執(zhí)行器做出相應(yīng)的動(dòng)作。本次任務(wù)選擇了獨(dú)立的DAC芯片,其型號(hào)是MCP4921,如下圖所示。MCP4921是美國(guó)MicroChip公司出品的串行12位DAC芯片,兼容SPI接口,最大通信頻率20MHz,一次轉(zhuǎn)換時(shí)間4.5μs,工作電壓2.7~5.5V,能適應(yīng)目前市面上主流的3.3V和5.0V工作電壓的單片機(jī)。8個(gè)引腳的功能分別如下表所示。MCP4921只有數(shù)據(jù)輸入,沒有數(shù)據(jù)輸出,單片機(jī)僅需將12位數(shù)字量連同4位配置信息一共16位數(shù)據(jù)一起打包發(fā)送給DAC,DAC隨即開始數(shù)模轉(zhuǎn)換過程,通信數(shù)據(jù)格式如表所示。
(表格往后翻頁→)引腳序號(hào)名稱功能引腳序號(hào)名稱功能1VDD電源正極2片選線(低電平有效)7VSS電源負(fù)極3SCK時(shí)鐘輸入線6VREF參考電壓4SDI數(shù)據(jù)輸入線5同步輸入控制8VOUT模擬量電壓輸出正極每一個(gè)配置位的含義如下:●,該位只能選0,因?yàn)镸CP49xx系列DAC中有些型號(hào)具有兩個(gè)DAC通道,通過0或1選擇通道A或B,但MCP4921僅有A通道;●BUF,VREF輸入緩沖器控制位,設(shè)1時(shí)緩沖,設(shè)0時(shí)未緩沖;●,輸出增益選擇位,設(shè)1時(shí)無增益,設(shè)0時(shí)兩倍增益;●,待機(jī)模式設(shè)置位,設(shè)1時(shí)不進(jìn)入待機(jī)模式,設(shè)0時(shí)進(jìn)入待機(jī)模式。高字節(jié)MSB低字節(jié)LSB配置位數(shù)據(jù)位BUFB11B10B9B8B7B6B5B4B3B2B1B05.5.2任務(wù)程序的編制MCP4921是一個(gè)12位DAC,因此輸入數(shù)字量的范圍是0x000~0x3FF,輸出模擬量電壓范圍從0~VREF,即無法輸出負(fù)電壓。為了輸出完整的正弦曲線,不妨將正弦波曲線沿縱軸(電壓/數(shù)字量)正向移動(dòng),確保波谷也位于橫軸(時(shí)間)上方。
正弦波計(jì)算公式:
為了提高單片機(jī)CPU的執(zhí)行效率,此處使用查表法,在1秒內(nèi),每隔0.02秒計(jì)算一次采樣值,可以利用excel進(jìn)行計(jì)算,如圖。
計(jì)算結(jié)果如圖。與任務(wù)5.4相同,分別將單片機(jī)的PA4、PA5、PA7設(shè)為片選線、時(shí)鐘線、MOSI線,引腳設(shè)定參數(shù)可參照任務(wù)5.4,由于MCP4921沒有SDO引腳,因此不需要使用單片機(jī)的PA6引腳。(現(xiàn)場(chǎng)操作演示…)技能訓(xùn)練:
嘗試輸出不同的曲線,比如鋸齒波、三角波等。Tobecontinued...5.6直流電動(dòng)機(jī)的控制能力目標(biāo):
理解H橋電路的工作原理,掌握H橋芯片L298的使用方法,并能編寫基于L298的直流電動(dòng)機(jī)的STM32驅(qū)動(dòng)程序。任務(wù)要求:仿真電路如圖所示,要求通過五只按鈕控制直流電動(dòng)機(jī)的運(yùn)行狀態(tài),五只按鈕的作用分別是:電動(dòng)機(jī)正轉(zhuǎn)、電動(dòng)機(jī)反轉(zhuǎn)、電動(dòng)機(jī)停止、電動(dòng)機(jī)加速和電動(dòng)機(jī)減速,其中電動(dòng)機(jī)加速/減速實(shí)則以10%的PWM占空比為遞增/遞減量。5.6.1直流電動(dòng)機(jī)與H橋電路直流電動(dòng)機(jī)是一種常見的動(dòng)力源,在很多情況下需要用到直流電動(dòng)機(jī)帶動(dòng)執(zhí)行機(jī)構(gòu)做各種復(fù)雜動(dòng)作,常需要直流電機(jī)能夠做正反轉(zhuǎn)運(yùn)動(dòng)。如圖所示的H橋是一種常見的直流電動(dòng)機(jī)正反轉(zhuǎn)控制電路。正轉(zhuǎn)
反轉(zhuǎn)
制動(dòng)5.6.2雙H橋芯片L298市面上有許多種H橋芯片,這里介紹其中一種——L298。L298是ST公司(意法半導(dǎo)體公司)出品的一種雙H橋芯片,即片內(nèi)集成兩個(gè)獨(dú)立的H橋,可同時(shí)驅(qū)動(dòng)兩只最高電壓46V、最大電流2A直流電動(dòng)機(jī)。如左下圖所示為L(zhǎng)298的兩種封裝形式。如右圖所示電路是L298的一種典型應(yīng)用電路,控制信號(hào)為5VTTL電平,驅(qū)動(dòng)電壓為5V~46V,控制電路由Vss供電,驅(qū)動(dòng)電路由Vs供電。L298各引腳功能:●ENA引腳為H橋A的使能引腳,當(dāng)ENA接高電平時(shí),使能H橋A,而當(dāng)ENA接低電平時(shí),禁止H橋A。實(shí)際使用中,往往將該引腳連接PWM信號(hào)用于調(diào)節(jié)H橋A控制的直流電動(dòng)機(jī)的轉(zhuǎn)速?!馝NB引腳為H橋B的使能引腳,功能與ENA類似,不再贅述。●ISENA引腳為H橋A的驅(qū)動(dòng)檢測(cè)引腳,用來做過流檢測(cè)反饋給控制器形成閉環(huán)以穩(wěn)定電機(jī)轉(zhuǎn)速,具體應(yīng)用可參考相關(guān)技術(shù)文檔。一般不用可直接接地?!馡SENB引腳為H橋B的驅(qū)動(dòng)檢測(cè)引腳,功能與ISENA類似,不再贅述?!馡N1~I(xiàn)N4為兩個(gè)H橋的方向控制信號(hào)輸入端,其中IN1、IN2控制H橋A,IN3、IN4控制H橋B,具體如下表所示。(
H表示高電平,L表示低電平;Motor1表示H橋A控制的直流電動(dòng)機(jī),Motor2表示H橋B控制的直流電動(dòng)機(jī)。)IN1IN2Motor1狀態(tài)IN3IN4Motor2狀態(tài)LL停止LL停止LH正轉(zhuǎn)LH正轉(zhuǎn)HL反轉(zhuǎn)HL反轉(zhuǎn)HH停止HH停止●OUT1~OUT4為兩個(gè)H橋的輸出端,用來連接兩只直流電動(dòng)機(jī)。其中OUT1、OUT2用來連接Motor1,OUT3、OUT4用來連接Motor2。
電路中的8只整流二極管作用是防止電動(dòng)機(jī)轉(zhuǎn)向改變時(shí)產(chǎn)生的沖擊電流打壞L298芯片,仿真無需考慮這個(gè)問題。
值得注意的是,L298的控制電路的工作電壓是5V,而STM32的工作電壓只有3.3V,為了讓L298能正確識(shí)別STM32發(fā)出的控制信號(hào),采用實(shí)物驗(yàn)證時(shí),務(wù)必①選擇具備“FT”特性的GPIO引腳,并②將引腳設(shè)為開漏模式并外接上拉電阻到5V電源正極。5.6.3任務(wù)程序的編寫首先是工程的圖形化配置,包括串口的設(shè)置、外部中斷的設(shè)置、PWM輸出的設(shè)置及GPIO的設(shè)置,其中GPIO選擇具備“FT”特性的PC8、PC9,均設(shè)為開漏模式,如下圖所示。
PWM輸出的設(shè)置請(qǐng)參考任務(wù)4.5,但需要進(jìn)一步修改PWM輸出引腳PC7為開漏模式,如所示。圖形化配置完成后,一鍵生成初始化代碼后進(jìn)入編程界面接著完成代碼的編寫。(現(xiàn)場(chǎng)操作演示…)技能訓(xùn)練(選做):
嘗試以L298的通道2驅(qū)動(dòng)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 定考神針七下數(shù)學(xué)試卷
- 豐城九中小升初數(shù)學(xué)試卷
- 高考刷題數(shù)學(xué)試卷
- 豐臺(tái)區(qū)三模數(shù)學(xué)試卷
- 肛瘺護(hù)理常規(guī)課件
- 豐臺(tái)三上人教數(shù)學(xué)試卷
- 東華考試數(shù)學(xué)試卷
- T43648-2024主要樹種立木生物量模型與碳計(jì)量參數(shù)
- 肝功能不全的病因鑒別與處理
- 2025年貴州鐘山區(qū)婦幼保健院招聘編外專業(yè)技術(shù)人員(6人)筆試歷年專業(yè)考點(diǎn)(難、易錯(cuò)點(diǎn))附帶答案詳解
- 2025至2030中國(guó)電容耦合隔離器行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 【高考模擬】山東省春季高考研究聯(lián)合體2024-2025學(xué)年高三上學(xué)期第一次聯(lián)合考試數(shù)學(xué)試題(含解析)
- 體育社會(huì)學(xué)(高教版)第十章《社會(huì)體育的社會(huì)學(xué)分析》
- 2024年河北唐山國(guó)控港口管理有限公司招聘筆試真題
- 2025新七年級(jí)語文下冊(cè)期末字音字形專題復(fù)習(xí)課件
- 妊娠合并貧血護(hù)理課件
- 左美馬嗪行業(yè)深度研究分析報(bào)告(2024-2030版)
- 旅游景區(qū)船舶管理制度
- 腦機(jī)接口硬件優(yōu)化-洞察及研究
- 2025至2030年中國(guó)有源相控陣?yán)走_(dá)行業(yè)市場(chǎng)發(fā)展態(tài)勢(shì)及前景戰(zhàn)略研判報(bào)告
評(píng)論
0/150
提交評(píng)論