




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章單片機(jī)常用外部資源的
C語(yǔ)言程序設(shè)計(jì)7.1LED數(shù)碼管的動(dòng)態(tài)顯示7.24×4矩陣鍵盤的檢測(cè)7.3高精度RTC器件DS1302的程序設(shè)計(jì)7.4I2C串行總線接口器件AT24C04的驅(qū)動(dòng)程序設(shè)計(jì)7.5字符型LCD1602的驅(qū)動(dòng)程序設(shè)計(jì)第7章單片機(jī)常用外部資源的
C語(yǔ)言程序設(shè)計(jì)7.6A/D轉(zhuǎn)換器TLC549的驅(qū)動(dòng)程序設(shè)計(jì)7.7D/A轉(zhuǎn)換器DAC0832的驅(qū)動(dòng)程序設(shè)計(jì)7.8單線溫度傳感器DS18B20的程序設(shè)計(jì)7.9看門狗監(jiān)控芯片X25045的程序設(shè)計(jì)7.10步進(jìn)電機(jī)的原理與應(yīng)用本章小結(jié)
7.1LED數(shù)碼管的動(dòng)態(tài)顯示
單片機(jī)系統(tǒng)中常用的顯示器有發(fā)光二極管顯示器(LightEmittingDiode,LED)、液晶顯示器(LiquidCrystalDisplay,LCD)、CRT顯示器等。LED和LCD顯示器有兩種顯示結(jié)構(gòu):段顯示(7段、米字型等)和點(diǎn)陣顯示,如圖7-1所示。圖7-1LED和LCD顯示器的顯示結(jié)構(gòu)
7.1.1LED數(shù)碼管的結(jié)構(gòu)與原理
1.LED結(jié)構(gòu)種類
(1)?LED發(fā)光器件有兩類:數(shù)碼管和點(diǎn)陣。其中七段LED數(shù)碼管是最常用的一種。
(2)七段數(shù)碼管內(nèi)部由七個(gè)條形發(fā)光二極管和一個(gè)小圓點(diǎn)發(fā)光二極管組成,根據(jù)各管的亮、暗組合成字符。常見(jiàn)數(shù)碼管有10根管腳,管腳排列如圖7-2所示,其中COM為公共端,根據(jù)內(nèi)部發(fā)光二極管的接線形式可分為共陰極和共陽(yáng)極兩種。
(3)使用時(shí),共陰極數(shù)碼管公共端接地,共陽(yáng)極數(shù)碼管公共端接電源。每段發(fā)光二極管需5~10mA的驅(qū)動(dòng)電流才能正常發(fā)光,一般需加限流電阻來(lái)控制電流的大小。
圖7-2LED結(jié)構(gòu)及管腳排列
2.顯示原理
(1)LED數(shù)碼管中的a~g七個(gè)發(fā)光二極管,加正電壓的發(fā)光,加零電壓的不能發(fā)光,不同亮暗的組合就能形成不同的字型,這種組合稱為字型碼。共陽(yáng)極和共陰極的字型碼是不同的,如表7-1所示。
(2)采用硬件譯碼輸出的字型碼也可控制顯示內(nèi)容,如采用74LS48、CD4511(共陰極)或74LS46(74LS47)、CD4513(共陽(yáng)極),也可用單片機(jī)I/O口直接輸出字型碼來(lái)控制數(shù)碼管的顯示內(nèi)容。
(3)用單片機(jī)驅(qū)動(dòng)LED數(shù)碼管顯示有很多方法,按顯示方式可分為靜態(tài)顯示和動(dòng)態(tài)
顯示。
3.動(dòng)態(tài)顯示的特點(diǎn)
(1)動(dòng)態(tài)掃描方法是用其接口電路將所有數(shù)碼管的8個(gè)筆劃段a~g和dp同名端連在一起,而每一個(gè)數(shù)碼管的公共端各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時(shí),所有數(shù)碼管接收到相同的字形碼,但究竟是哪個(gè)數(shù)碼管亮,則取決于COM端。COM端與單片機(jī)的I/O口相連接,由單片機(jī)輸出位碼到I/O口來(lái)決定哪一位數(shù)碼管何時(shí)亮。
(2)用分時(shí)的方法動(dòng)態(tài)掃描輪流控制各個(gè)數(shù)碼管的COM端,使各個(gè)數(shù)碼管輪流點(diǎn)亮。在輪流點(diǎn)亮數(shù)碼管的掃描過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間極為短暫,但由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝,只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。
(3)當(dāng)顯示位數(shù)較多時(shí),采用動(dòng)態(tài)掃描顯示方式比較節(jié)省I/O口,硬件電路也比靜態(tài)電路顯示簡(jiǎn)單,但是動(dòng)態(tài)掃描方式顯示的穩(wěn)定度不如靜態(tài)的顯示方式,而且在顯示位數(shù)較多時(shí)會(huì)占用CPU較多的時(shí)間。
7.1.2硬件原理圖
如圖7-3所示,每個(gè)共陽(yáng)極數(shù)碼管的公共端分別由P2.0~P2.5通過(guò)一個(gè)非門控制,因?yàn)閱纹瑱C(jī)的管腳在復(fù)位后是高電平,所以如果不加非門的話,就會(huì)出現(xiàn)電路復(fù)位后數(shù)碼管閃爍一次的現(xiàn)象。圖7-36個(gè)數(shù)碼管的連接圖
7.1.3程序設(shè)計(jì)
該程序讓數(shù)碼管顯示0、1、2、3、4、5的過(guò)程如下:
(1)第1位上顯示0。
(2)延遲一段時(shí)間。
(3)第2位上顯示1。
(4)延遲一段時(shí)間。
(5)第3位上顯示2。
(6)延遲一段時(shí)間。
(7)第4位上顯示3。
(8)延遲一段時(shí)間。
(9)第5位上顯示4。
(10)延遲一段時(shí)間。
(11)第6位上顯示5。
(12)延遲一段時(shí)間。
7.24×4矩陣鍵盤的檢測(cè)
7.2.1矩陣鍵盤簡(jiǎn)介及其工作原理最常見(jiàn)的鍵盤布局一般由16個(gè)按鍵組成,如圖7-4所示。在單片機(jī)中正好可以用一個(gè)P1口實(shí)現(xiàn)16個(gè)按鍵功能,這是在單片機(jī)系統(tǒng)中最常用的形式。4×4矩陣鍵盤的內(nèi)部電路如圖7-5所示。圖7-4矩陣鍵盤布局圖圖7-5矩陣鍵盤的內(nèi)部電路圖
7.2.2矩陣鍵盤的硬件原理圖
圖7-6中P1口連接到4×4小鍵盤,以便讓用戶輸入數(shù)據(jù),該鍵盤使用行掃描的方法檢測(cè)按鍵是否被按下,以及被按下的是哪一個(gè)按鍵。P1口的低四位接鍵盤列信號(hào),高四位接行信號(hào);將行信號(hào)作為輸出,列信號(hào)作為輸入。在行信號(hào)線上依次設(shè)為0,即首先使第一行為0,然后檢測(cè)該行上的列信號(hào)是否為0,其中C1~C4表示第1行到第4行,R1~R4表示第1列到第4列。圖7-6矩陣鍵盤硬件原理圖
矩陣鍵盤程序流程圖如圖7-7所示。圖7-7矩陣鍵盤程序流程圖
7.2.34?×?4鍵盤程序設(shè)計(jì)代碼
7.3高精度RTC器件DS1302的程序設(shè)計(jì)
7.3.1DS1302簡(jiǎn)介DS1302是由美國(guó)DALLAS公司推出的一種高性能、低功耗、帶有RAM的實(shí)時(shí)時(shí)鐘電路,可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),并具有閏年補(bǔ)償功能。
1.引腳功能及結(jié)構(gòu)
DS1302的引腳排列中VCC1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。
圖7-8為DS1302的引腳功能圖。圖7-8DS1302的引腳功能圖
DS1302的內(nèi)部結(jié)構(gòu)如圖7-9所示。圖7-9DS1302的內(nèi)部結(jié)構(gòu)圖
2.數(shù)據(jù)輸入/輸出(I/O)
在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘上升沿,輸入數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入時(shí)從低位即第0位開(kāi)始;同樣,在緊跟8位控制指令字的下一個(gè)SCLK脈沖下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從第0位到第7位。
3.DS1302的寄存器
DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見(jiàn)表7-2。
DS1302內(nèi)部主要寄存器功能如表7-3所示。
4.DS1302的讀寫時(shí)序
要想與DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如圖7-10??刂谱值淖罡哂行?位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。有效位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1(A4~A0)表示操作單元的地址;位0(最低有效位)如果為0,表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作。控制字總是從最低位開(kāi)始輸出。
在控制字指令輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開(kāi)始。同樣,在緊跟8位的控制字指令后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù)。讀出的數(shù)據(jù)也是從最低位到最高位。DS1302單字節(jié)數(shù)據(jù)讀/寫時(shí)序圖如圖7-11、圖7-12所示,具體操作見(jiàn)驅(qū)動(dòng)程序。
圖7-10DS1302的控制字圖7-11DS1302單字節(jié)數(shù)據(jù)讀時(shí)序圖圖7-12DS1302單字節(jié)數(shù)據(jù)寫時(shí)序圖
7.3.2DS1302的硬件原理圖
DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、
(5)。圖7-13標(biāo)示出DS1302與MCS-51的連接線路,其中時(shí)鐘用6個(gè)共陽(yáng)極數(shù)碼管顯示。圖7-13DS1302硬件連接示意圖
7.3.3程序設(shè)計(jì)
程序功能如下:
按下S1,進(jìn)入設(shè)置狀態(tài),可以選擇設(shè)置小時(shí)、分鐘和秒,選擇的位置處閃爍顯示,全部選擇一遍后,恢復(fù)正常顯示狀態(tài)。如果選擇了一個(gè)要設(shè)置的時(shí)間位置后,沒(méi)有任何其他設(shè)置動(dòng)作,則該位置的數(shù)碼管閃爍12s后自動(dòng)恢復(fù)到正常的顯示狀態(tài)。
按下S2,則增加選中位置處的數(shù)值。
按下S3,則減小選中位置處的數(shù)值。
7.4I2C串行總線接口器件AT24C04的驅(qū)動(dòng)程序設(shè)計(jì)
7.4.1I2C總線的結(jié)構(gòu)與信號(hào)類型1.?I2C總線的構(gòu)成I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。最高傳送速率100kb/s,采用7位尋址,使用時(shí),各種被控制電路均并聯(lián)在I2C總線上,每個(gè)電路和模塊都有唯一的地址確定。
2.?I2C總線的信號(hào)類型
I2C總線在工作過(guò)程中有3種類型信號(hào),分別是:起始信號(hào)、終止信號(hào)和應(yīng)答信號(hào)。
起始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。
終止信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。如圖7-14所示。圖7-14I2C總線的開(kāi)始和結(jié)束信號(hào)定義
應(yīng)答信號(hào):接收數(shù)據(jù)的I2C在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的I2C發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU在接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),則判斷受控單元出現(xiàn)故障。應(yīng)答信號(hào)定義如圖7-15所示。圖7-15I2C總線應(yīng)答信號(hào)定義
3.數(shù)據(jù)位的有效性規(guī)定
I2C總線進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號(hào)為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)須保持穩(wěn)定,在時(shí)鐘線上的信號(hào)為低電平期間,數(shù)據(jù)線上的高低電平狀態(tài)才允許變化,如圖7-16所示。圖7-16數(shù)據(jù)的傳送過(guò)程
4.?I2C總線上一次典型的工作流程
(1)開(kāi)始:發(fā)送開(kāi)始信號(hào),表明傳輸開(kāi)始。
(2)發(fā)送地址:主設(shè)備發(fā)送地址信息,包含7位的從設(shè)備地址和1位的指示位(表明讀或者寫,即數(shù)據(jù)流的方向)。
(3)發(fā)送數(shù)據(jù):根據(jù)指示位,數(shù)據(jù)在主設(shè)備和從設(shè)備之間傳輸。數(shù)據(jù)一般以8位傳輸,最重要的位放在前面,具體能傳輸多少數(shù)據(jù)并沒(méi)有限制。接收器上用一位的ACK(應(yīng)答信號(hào))表明每一個(gè)字節(jié)都收到了,傳輸可以被終止和重新開(kāi)始。
(4)停止:發(fā)送停止信號(hào),結(jié)束傳輸。
7.4.2I2C總線接口電路
I2C總線通過(guò)上拉電阻接正電源。當(dāng)總線空閑時(shí),兩根線均為高電平。連到總線上的任一器件輸出的低電平都將使總線的信號(hào)變低,即各器件的SDA及SCL都是線“與”關(guān)系,如圖7-17所示。圖7-17I2C總線接口電路
通過(guò)線“與”,I2C總線的外圍擴(kuò)展示意圖如圖7-18所示,其中給出了單片機(jī)應(yīng)用系統(tǒng)中最常使用的I2C總線外圍通用器件。圖7-18I2C總線接口
7.4.3I2C總線的傳輸協(xié)議與數(shù)據(jù)傳送
I2C規(guī)程運(yùn)用主/從雙向通信。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)??偩€必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來(lái)表示起始和停止條件,如圖7-19所示。圖7-19串行總線上的數(shù)據(jù)傳送順序
1.控制字節(jié)
在起始條件之后,必須是從器件的控制字節(jié),其中高四位為器件類型識(shí)別符(不同的芯片類型有不同的定義,E2PROM一般應(yīng)為1010),接著三位為片選,最后一位為讀/寫位,當(dāng)為1時(shí)為讀操作,為0時(shí)為寫操作。從器件的控制字節(jié)如圖7-20所示。圖7-20從器件的控制字節(jié)
2.寫操作
寫操作分為字節(jié)寫和頁(yè)面寫兩種。在頁(yè)面寫方式下要根據(jù)芯片的一次裝載字節(jié)的不同而有所不同。關(guān)于頁(yè)面寫的地址、應(yīng)答和數(shù)據(jù)傳送的時(shí)序如圖7-21所示。圖7-21頁(yè)面寫地址、應(yīng)答和數(shù)據(jù)傳送圖
說(shuō)明:(1)S表示開(kāi)始信號(hào),A是應(yīng)答信號(hào),P是停止信號(hào)。
(2)SLAw是從器件的控制地址(最后一位為0,表示寫操作)。
(3)SADR是要寫入頁(yè)面的首地址。
3.讀操作
讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。圖7-22給出的是順序讀的時(shí)序圖。應(yīng)當(dāng)注意的是:最后一個(gè)讀操作的第9個(gè)時(shí)鐘周期不是“不關(guān)心”。為了結(jié)束讀操作,主機(jī)必須在第9個(gè)時(shí)鐘周期內(nèi)發(fā)出停止條件或者在第9個(gè)時(shí)鐘周期內(nèi)保持SDA為高電平,然后發(fā)出停止條件。圖7-22順序讀時(shí)序圖
說(shuō)明:
(1)?S表示開(kāi)始信號(hào),A是應(yīng)答信號(hào),P是停止信號(hào)。
(2)?SLAw是從器件的控制地址(最后一位為0,表示寫操作)。
(3)?SLAR是從器件的控制地址(最后一位為1,表示讀操作)。
(4)?SADR是讀出單元的首地址。
7.4.4I2C總線接口器件AT24C04的應(yīng)用實(shí)例
1.典型信號(hào)模擬時(shí)序圖
為了保證數(shù)據(jù)傳送的可靠性,標(biāo)準(zhǔn)I2C總線的數(shù)據(jù)傳送有嚴(yán)格的時(shí)序要求。I2C總線的起始信號(hào)、終止信號(hào)、發(fā)送0及發(fā)送1的模擬時(shí)序如圖7-23所示。圖7-23典型信號(hào)模擬時(shí)序圖
7.4.5AT24C04的硬件原理圖
本案例實(shí)現(xiàn)MCS-51對(duì)AT24C04進(jìn)行單字節(jié)的讀寫操作。AT24C04是ATMEL公司的CMOS結(jié)構(gòu)4096位(512?B×8位)串行E2PROM,16字節(jié)頁(yè)面寫。與MCS-51單片機(jī)的接口如圖7-24所示。圖7-24AT24C04和MCS-51單片機(jī)接口示意圖
7.4.6AT24C04的程序設(shè)計(jì)
以下為C語(yǔ)言編寫的模擬I2C總線數(shù)據(jù)傳送的讀/寫程序,I2C芯片為AT24C04,單片機(jī)對(duì)AT24C04進(jìn)行單字節(jié)的讀寫操作。
程序分析:
(1)voidwrite_add(ucharaddress,uchardate)和ucharread_add(ucharaddress)兩個(gè)函數(shù)分別實(shí)現(xiàn)向AT24C04的任一地址寫一個(gè)字節(jié)和從AT24C04中任一地址讀取一個(gè)字節(jié)數(shù)據(jù)的功能,函數(shù)操作步驟完全遵循前面介紹的操作原理,請(qǐng)大家參考對(duì)照。
(2)P0=read_add(8);讀出保存的數(shù)據(jù)0xF0(11110000)給P0口,驅(qū)動(dòng)低四位發(fā)光二極管。
7.5LCD1602的驅(qū)動(dòng)程序設(shè)計(jì)
液晶顯示模塊是一種將液晶顯示器件、連接件、集成電路、PCB線路板、背光源和結(jié)構(gòu)件裝配在一起的組件,英文名稱叫LCDModule,簡(jiǎn)稱LCM,其在便攜式儀表中有著廣泛的應(yīng)用,如萬(wàn)用表、轉(zhuǎn)速表等。
根據(jù)顯示方式和內(nèi)容的不同,液晶模塊可以分為數(shù)顯液晶模塊、液晶點(diǎn)陣字符模塊和點(diǎn)陣圖形液晶模塊三種。
(1)數(shù)顯液晶模塊是一種由段型液晶顯示器件與專用的集成電路組裝成一體的功能部件,只能顯示數(shù)字和一些標(biāo)識(shí)符號(hào)。
(2)液晶點(diǎn)陣字符模塊是由點(diǎn)陣字符液晶顯示器件和專用的行、列驅(qū)動(dòng)器、控制器以及必要的連接件、結(jié)構(gòu)件裝配而成的,可以顯示數(shù)字和西文字符,但不能顯示圖形。
(3)點(diǎn)陣圖形液晶模塊的點(diǎn)陣像素連續(xù)排列,行和列在排布中均沒(méi)有空隔,因此不僅可以顯示字符,而且可以顯示連續(xù)、完整的圖形。
7.5.1LCD1602簡(jiǎn)介
字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣式LCD,目前常用的有16×1、16×2、20×2和40×2等模塊。LCD1602是一種16×2字符型液晶顯示器,實(shí)物如圖7-25所示。圖7-25LCD1602字符型液晶顯示器實(shí)物圖
該顯示器件采用電路模塊封裝,控制器大部分為HD44780,帶有標(biāo)準(zhǔn)的SIP14引腳(無(wú)背光)或SIP16引腳(帶背光),芯片和背光電路工作電壓與單片機(jī)兼容,引腳分電源、通信數(shù)據(jù)和控制三部分,可以很方便地與單片機(jī)進(jìn)行連接。各引腳接口說(shuō)明如表7-4所示。
7.5.2LCD1602的指令
1.基本操作
LCD1602是單片機(jī)外部器件,基本操作以單片機(jī)為主器件進(jìn)行,這些操作包括讀狀態(tài)、寫指令、讀數(shù)據(jù)、寫數(shù)據(jù)等。數(shù)據(jù)的傳輸通過(guò)LCD1602的數(shù)據(jù)端口D0~D7,操作類型由三個(gè)控制端電平組合控制,如表7-5所示。在數(shù)據(jù)或指令的讀/寫過(guò)程中,控制端外加電平有一定的時(shí)序要求,圖7-26和圖7-27分別為該器件的讀、寫操作時(shí)序圖,時(shí)序圖說(shuō)明了三個(gè)控制端口與數(shù)據(jù)之間的時(shí)間對(duì)應(yīng)關(guān)系,這是基本操作的程序設(shè)計(jì)的基礎(chǔ)。圖7-26讀操作時(shí)序圖7-27寫操作時(shí)序
2.LCD1602指令
LCD1602液晶模塊內(nèi)部的控制器共有11條控制指令和操作,各指令利用兩位16進(jìn)制代碼表示,其功能和指令碼下面一一介紹。
(1)清屏指令。
該指令代碼為0x01。單片機(jī)向LCD1602的數(shù)據(jù)端口寫入0x01后,LCD1602自動(dòng)將本身DDRAM的內(nèi)容全部填入“空白”的ASCII20H,并將地址計(jì)數(shù)器AC的值設(shè)為0,同時(shí)光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方,此時(shí)顯示器無(wú)顯示。清屏指令格式見(jiàn)表7-6所示。
(2)光標(biāo)歸位指令。
光標(biāo)歸位指令代碼0x02或0x03(x表示0或1)的格式見(jiàn)表7-7,其主要功能是把地址計(jì)數(shù)器(AC)的值設(shè)置為0,保持DDRAM的內(nèi)容不變,同時(shí)把光標(biāo)撤回到顯示器的左上方。
(3)模式設(shè)置指令。
模式設(shè)置指令碼格式見(jiàn)表7-8,其中,當(dāng)I/D為0時(shí),寫入新數(shù)據(jù)后光標(biāo)右移,當(dāng)I/D為1時(shí)寫入新數(shù)據(jù)后光標(biāo)左移,顯示不移動(dòng);S?=?0時(shí),寫入新數(shù)據(jù)后顯示屏幕不移動(dòng),S?=?1時(shí)寫入新數(shù)據(jù)后顯示屏幕整體右移1個(gè)字符。如指令代碼為0x06時(shí),光標(biāo)隨寫入數(shù)據(jù)自動(dòng)左移。
(4)顯示開(kāi)關(guān)控制指令。
表7-9為顯示開(kāi)關(guān)控制指令格式。其中,D為0時(shí)關(guān)顯示功能,D為1時(shí)開(kāi)顯示功能;C為0時(shí)無(wú)光標(biāo),C為1時(shí)有光標(biāo);B為0時(shí)光標(biāo)閃爍,B為1時(shí)光標(biāo)不閃爍。如指令碼0x0C,設(shè)置為顯示功能開(kāi),無(wú)光標(biāo),光標(biāo)不閃爍。
(5)屏幕光標(biāo)指令。
屏幕光標(biāo)指令格式見(jiàn)表7-10。
(6)功能設(shè)定指令。
功能設(shè)定指令主要是設(shè)置LCD1602的初始工作狀態(tài),具體指令格式見(jiàn)表7-11。
(7)設(shè)定CGRAM/DDRAM指令。
設(shè)定CGRAM/DDRAM的指令有0x40?+?地址、0x80?+?地址兩種。0x40是設(shè)定CGRAM的地址命令,地址是指要設(shè)置的CGRAM地址;0x80是設(shè)定DDRAM的地址命令,地址是指要寫入的DDRAM地址。指令格式見(jiàn)表7-12。
(8)讀取忙信號(hào)或AC地址指令。
當(dāng)RS=0、R/W=1時(shí),單片機(jī)讀取忙碌信號(hào)BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時(shí)無(wú)法接收單片機(jī)送來(lái)的數(shù)據(jù)或指令;當(dāng)BF=0時(shí),液晶顯示器可以接收單片機(jī)送來(lái)的數(shù)據(jù)或指令,同時(shí)單片機(jī)讀取地址計(jì)數(shù)器(AC)的內(nèi)容。指令格式見(jiàn)表7-13。
(9)寫入CGRAM/DDRAM數(shù)據(jù)操作。
當(dāng)RS=1、R/W=0時(shí),單片機(jī)可以將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對(duì)應(yīng)的字符,也可以將用戶自己設(shè)計(jì)的圖形存入CGRAM,操作格式見(jiàn)表7-14。
(10)從CGRAM/DDRAM讀數(shù)據(jù)指令。
當(dāng)RS=1、R/W=1時(shí),單片機(jī)讀取DDRAM或CGRAM中的內(nèi)容,操作格式見(jiàn)表7-15。
3.LCD1602的RAM地址映射及標(biāo)準(zhǔn)字庫(kù)表
液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。圖7-28是LCD1602的內(nèi)部顯示地址。圖7-28LCD1602的內(nèi)部RAM地址映射圖
LCD1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形。CGROM和CGRAM中字符代碼與字符圖形的對(duì)應(yīng)關(guān)系如表7-16所示,這些字符有阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”。
7.5.3LCD1602的電路原理圖
單片機(jī)和LCD1602的連接電路如圖7-29所示圖7-29單片機(jī)和LCD1602的連接電路
7.5.4程序設(shè)計(jì)
程序分析:
(1)寫命令操作和寫數(shù)據(jù)操作分別用兩個(gè)獨(dú)立的函數(shù)w_command(uchar)、w_data(uchar)來(lái)完成,函數(shù)內(nèi)唯一的區(qū)別就是液晶數(shù)據(jù)命令選擇端的電平,寫數(shù)據(jù)函數(shù)解釋如下:
(2)初始化函數(shù)中幾個(gè)命令的解釋請(qǐng)對(duì)照前面的指令碼及功能說(shuō)明。
(3)函數(shù)gotoxy(ucharx,uchary)中表示跳到x行y列,x取1、2兩個(gè)值表示第1行和第2行,y取0~15表示字符在某一行中的位置。
7.6A/D轉(zhuǎn)換器TLC549的驅(qū)動(dòng)程序設(shè)計(jì)
7.6.1A/D轉(zhuǎn)換的基礎(chǔ)知識(shí)A/D(模/數(shù))轉(zhuǎn)換基本上是一個(gè)比例上的問(wèn)題,由模/數(shù)轉(zhuǎn)換器產(chǎn)生的數(shù)字值是和輸入電壓與轉(zhuǎn)換器量程的比值相關(guān)的。
7.6.2A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)
(1)轉(zhuǎn)換時(shí)間和轉(zhuǎn)換速率。轉(zhuǎn)換時(shí)間是A/D完成一次轉(zhuǎn)換所需要的時(shí)間。
(2)分辨率。分辨率習(xí)慣上用輸出二進(jìn)制位數(shù)或BCD碼位數(shù)表示。
(3)轉(zhuǎn)換精度。轉(zhuǎn)換精度定義為一個(gè)實(shí)際A/D轉(zhuǎn)換器與一個(gè)理想A/D轉(zhuǎn)換器在量化值上的差值,可用絕對(duì)誤差或相對(duì)誤差表示。
數(shù)據(jù)采集系統(tǒng)就是將模擬輸入信號(hào)經(jīng)A/D轉(zhuǎn)換后進(jìn)行信號(hào)處理,最后經(jīng)D/A轉(zhuǎn)換器將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),該系統(tǒng)的簡(jiǎn)單框圖如圖7-30所示。圖7-30數(shù)據(jù)采集系統(tǒng)簡(jiǎn)單框圖
7.6.3TLC549的結(jié)構(gòu)及工作原理
1.TLC549芯片概述
TLC549是美國(guó)TI公司生產(chǎn)的串行A/D轉(zhuǎn)換器,它是8位的,可通過(guò)I/OCLOCK、、DOUT三條接口線與通用微處理器進(jìn)行串行連接。片內(nèi)系統(tǒng)時(shí)鐘為4MHz,最長(zhǎng)17μs的轉(zhuǎn)換時(shí)間,最高轉(zhuǎn)換速率為40000次/s,功耗值為6mW,采用差分參考電壓高阻輸入,可按比例量程校準(zhǔn)轉(zhuǎn)換范圍,REF-接地,(REF+)-(REF-)≥1V,可用于較小信號(hào)的采樣,其引腳圖如圖7-31所示。圖7-31TLC549引腳圖
2.TLC549的工作原理
TLC549有4MHz的片內(nèi)系統(tǒng)時(shí)鐘,該時(shí)鐘與IOCLOCK是獨(dú)立工作的,不需要特殊的速度或相位匹配,其工作時(shí)序如圖7-32所示。圖7-32TLC549工作時(shí)序圖
7.6.4TLC549的硬件原理圖
TLC549可方便地與具有串行外設(shè)接口(SPI電路)的單片機(jī)或微處理器配合使用,也可與MCS-51系列通用單片機(jī)連接使用。與MCS-51系列單片機(jī)的接口如圖7-33所示,其采樣程序框圖如圖7-34所示。圖7-33TLC549與MCS-51單片機(jī)的接口示意圖圖7-34TLC549程序流程圖
7.6.5程序設(shè)計(jì)
頭文件TLC549_ADC.H的程序代碼如下:
//函數(shù)說(shuō)明
使用串行ADC的好處:
(1)減少連線數(shù)(SPI口比并行口占用的I/O口要少得多,連線十分方便)。
(2)時(shí)序簡(jiǎn)單,雖然串行的時(shí)序本身要比并行的時(shí)序復(fù)雜,但對(duì)集成了SPI控制器的單片機(jī)來(lái)說(shuō),這些工作完全由單片機(jī)自動(dòng)完成,用戶無(wú)需干預(yù),因此十分簡(jiǎn)單。
(3)控制靈活,有些SPI接口的ADC既可以輸出轉(zhuǎn)換后的數(shù)據(jù)量,又可以讀入用戶設(shè)置的“命令字”,我們可以通過(guò)“輸入命令字”將其配置成單極性或雙極性的ADC而無(wú)需改動(dòng)電路,控制十分靈活。
7.7D/A轉(zhuǎn)換器DAC0832的驅(qū)動(dòng)程序設(shè)計(jì)
7.7.1D/A轉(zhuǎn)換器的分類采用電流開(kāi)關(guān)型電路,電路如果直接輸出生成電流,則為電流輸出型D/A轉(zhuǎn)換器,相應(yīng)的,電壓開(kāi)關(guān)型電路為直接輸出電壓型D/A轉(zhuǎn)換器。D/A轉(zhuǎn)換器的類型如下:(1)電壓輸出型(如TLC5620)。(2)電流輸出型(如AD9708)。(3)乘算型(如AD7520)。
7.7.2D/A轉(zhuǎn)換器的主要技術(shù)指標(biāo)
(1)分辨率(Resolution),指最小模擬輸出量(對(duì)應(yīng)數(shù)字量?jī)H最低位為“1”)與最大量(對(duì)應(yīng)數(shù)字量所有有效位為“1”)之比。常用輸入二進(jìn)制數(shù)的有效位數(shù)表示。
(2)建立時(shí)間(SettingTime),是將一個(gè)數(shù)字量轉(zhuǎn)換為穩(wěn)定模擬信號(hào)所需的時(shí)間,也可以認(rèn)為是轉(zhuǎn)換時(shí)間。
其他指標(biāo)還有線性度(Linearity)、轉(zhuǎn)換精度、溫度系數(shù)/漂移等。
7.7.3D/A轉(zhuǎn)換器的典型應(yīng)用
(1)波形發(fā)生器。
(2)數(shù)控穩(wěn)壓電源。
(3)數(shù)字式可編程增益衰減器。
(4)數(shù)字式可編程增益放大器。
7.7.4DAC0832的結(jié)構(gòu)及工作原理
1.?DAC0832芯片概述
DAC0832是采用CMOS工藝制成的單片直流輸出型8位數(shù)/模轉(zhuǎn)換器,是使用非常普遍的8位分辨率的D/A轉(zhuǎn)換集成芯片,它由倒T型R-2R電阻網(wǎng)絡(luò)、模擬開(kāi)關(guān)、運(yùn)算放大器和參考電壓VREF四大部分組成,如圖7-35所示。圖7-35DAC0832組成圖
2.DAC0832的主要特性參數(shù)
(1)?8位分辨率。
(2)電流穩(wěn)定時(shí)間1μs。
(3)可單緩沖、雙緩沖或直接數(shù)字輸入。
(4)只需在滿量程下調(diào)整其線性度。
(5)單一電源供電(+5V~+15V)。
(6)低功耗:20mW。
3.?DAC0832的結(jié)構(gòu)和引腳
DAC0832轉(zhuǎn)換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉(zhuǎn)換器及轉(zhuǎn)換控制電路構(gòu)成,如圖7-36所示。圖7-36DAC0832的結(jié)構(gòu)和引腳
7.7.5DAC0832直通方式應(yīng)用接口及其程序設(shè)計(jì)
在圖7-37中,DAC0832采用直通的工作方式,將
和管腳全部接地,管腳8接參考電壓,在此參考電壓是+5V??刂芇0口輸出數(shù)據(jù)有規(guī)律地變化,將可以產(chǎn)生三角波、鋸齒波、梯型波等波形。圖7-37直通方式下單片機(jī)和DAC0832的連接示意圖
7.8單線溫度傳感器DS18B20的程序設(shè)計(jì)
7.8.1DS18B20的工作原理DS18B20是美國(guó)DALLAS公司生產(chǎn)的第一片支持“單總線”接口的溫度傳感器,其具有微型化、低功耗、高性能、抗干擾能力強(qiáng)等特點(diǎn),能直接將溫度轉(zhuǎn)化成數(shù)字信號(hào),其各項(xiàng)特性指標(biāo)見(jiàn)表7-17。
1.封裝及功能
根據(jù)應(yīng)用領(lǐng)域不同,DS18B20有TO-92、SOP8等封裝形式,如圖7-38所示。TO-92封裝的引腳功能如表7-18所示。圖7-38DS18B20的外形及引腳排列
2.工作原理
DS18B20的內(nèi)部框圖如圖7-39所示,包括溫度傳感器、64位ROM和單線接口、存放中間數(shù)據(jù)的高速緩存器、用于存儲(chǔ)用戶設(shè)定的溫度上/下限值的觸發(fā)器、存儲(chǔ)和控制邏輯、8位循環(huán)冗余校驗(yàn)碼發(fā)生器等7部分。圖7-39DS18B20內(nèi)部框圖
高速緩存器RAM由9個(gè)字節(jié)的存儲(chǔ)器組成,如表7-19所示。
DS18B20中的溫度傳感器完成對(duì)溫度的測(cè)量,通過(guò)16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),如表7-20所示。
3.硬件連接
圖7-40的接法是單片機(jī)與一個(gè)DS18B20通信,只需一個(gè)I/O口就能控制DS18B20。為了增加單片機(jī)I/O口驅(qū)動(dòng)的可靠性,總線上接有上拉電阻。如果要控制多個(gè)DS18B20進(jìn)行溫度采集,只要將所有DS18B20的DQ端全部連接到總線上就可以了,在操作時(shí),通過(guò)讀取每個(gè)DS18B20內(nèi)部芯片的序列號(hào)來(lái)識(shí)別。圖7-40單片機(jī)與一個(gè)DS18B20通信
7.8.2DS18B20的工作時(shí)序
讀寫DS18B20對(duì)單總線有嚴(yán)格的時(shí)序要求,在編程對(duì)其的溫度進(jìn)行讀寫時(shí),需經(jīng)過(guò)初始化、讀數(shù)據(jù)、寫數(shù)據(jù)等過(guò)程,時(shí)序如圖7-41所示。圖7-41DS18B20的初始化時(shí)序
1.初始化
初始化時(shí)序見(jiàn)圖7-41,是單片機(jī)檢測(cè)DS18B20的存在并為下一步讀寫數(shù)據(jù)作準(zhǔn)備,DS18B20的初始化操作步驟如下:
(1)數(shù)據(jù)線置1。
(2)數(shù)據(jù)線置0,再延時(shí)750μs(時(shí)間范圍可以為480~960μs)。
(3)數(shù)據(jù)線置1。如果單片機(jī)P2.0接DS18B20的數(shù)據(jù)口,則P2.0此時(shí)置為高,釋放單片機(jī)對(duì)總線的管理權(quán),此時(shí),P2.0的電平狀態(tài)由DS18B20的數(shù)據(jù)輸出決定。
(4)延時(shí)等待。如果初始化成功,則在15~60μs總線上產(chǎn)生一個(gè)由DQ端返回的低電平,根據(jù)該狀態(tài)可以確定它的存在,但不能無(wú)限地等待,否則會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)判斷。
(5)若單片機(jī)讀到數(shù)據(jù)線上的高電平后,說(shuō)明DS18B20存在并響應(yīng)了,再進(jìn)行一次延時(shí),從(第(5)步的時(shí)間算起)最少要480μs。
(6)將數(shù)據(jù)線再次拉到高,結(jié)束初始化步驟。
2.對(duì)DS18B20寫數(shù)據(jù)
(1)數(shù)據(jù)線先置低,數(shù)據(jù)發(fā)送的起始信號(hào),其時(shí)序如圖7-42所示。
(2)延時(shí)15μs。
(3)按低位到高位順序發(fā)送數(shù)據(jù)。
(4)延時(shí)時(shí)間為45μs,等待DS18B20接收。
(5)數(shù)據(jù)線拉高,單片機(jī)釋放總線。
(6)重復(fù)(1)~(5)步驟,直至發(fā)完整個(gè)字節(jié)。
(7)最后拉高數(shù)據(jù)線,釋放總線。
圖7-42DS18B20寫時(shí)序
3.DS18B20讀數(shù)據(jù)
(1)將數(shù)據(jù)線拉高,時(shí)序如圖7-43所示。
(2)延時(shí)2μs。
(3)將數(shù)據(jù)線拉低。
(4)延時(shí)6μs,該時(shí)間比寫數(shù)據(jù)時(shí)間要短。
(5)將數(shù)據(jù)線拉高,釋放總線。
(6)延時(shí)4μs。
(7)讀數(shù)據(jù)線的狀態(tài)進(jìn)行數(shù)據(jù)處理。
(8)延時(shí)30μs。
(9)重復(fù)(1)~(8)步驟,直到讀取完一個(gè)字節(jié)。圖7-43DS18B20的讀時(shí)序
7.8.3DS18B20指令
1.ROM操作指令
該操作指令主要針對(duì)DS18B20的內(nèi)部ROM。每一個(gè)DS18B20都有自己獨(dú)立的編號(hào),放在DS18B20內(nèi)部64位ROM中,ROM的內(nèi)容如表7-21所示。序列號(hào)在出廠前已經(jīng)固化好,是DS18B20的地址序列碼,開(kāi)始8位為產(chǎn)品類型標(biāo)號(hào),接下來(lái)48位是該DS18B20自身的序列號(hào),最后8位是前面56位的CRC循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1),作用是使每一個(gè)DS18B20都各不相同,能實(shí)現(xiàn)一條總線上掛接多個(gè)DS18B20的目的。ROM操作指令如表7-22所示。
2.溫度操作指令
該操作指令如表7-23所示。
7.8.4電路原理圖
MCS-51單片機(jī)和DS18B20的硬件連接圖如圖7-44所示,單片機(jī)的P1.0和DS18B20的數(shù)據(jù)口相連接。并通過(guò)P1.0口對(duì)DS18B20進(jìn)行初始化,轉(zhuǎn)換后的數(shù)字溫度值通過(guò)P1.0口傳給單片機(jī)。圖7-44DS18B20硬件連接圖
7.8.5程序設(shè)計(jì)
編程思路:首先單片機(jī)通過(guò)I/O口調(diào)用初始化函數(shù)init_ds18b20(void)對(duì)DS18B20按照初始化時(shí)序進(jìn)行初始化,啟動(dòng)溫度的轉(zhuǎn)換,再將轉(zhuǎn)換后的數(shù)字傳給單片機(jī)。單片機(jī)通過(guò)計(jì)算將數(shù)字溫度轉(zhuǎn)換成實(shí)際的溫度值,通過(guò)數(shù)碼管顯示出來(lái)。數(shù)碼管顯示采取在定時(shí)器0中動(dòng)態(tài)顯示,P0端驅(qū)動(dòng)共陽(yáng)極七段數(shù)碼管,P2.0~P2.5端通過(guò)非門接共陽(yáng)極數(shù)碼管的公共端。應(yīng)用程序如下:
程序分析:
該程序能顯示精確到小數(shù)點(diǎn)后一位的溫度值,如果溫度小于100攝氏度時(shí),其百分位自動(dòng)不顯示。
7.9看門狗監(jiān)控芯片X25045的程序設(shè)計(jì)
7.9.1看門狗監(jiān)控概述由單片機(jī)組成的系統(tǒng)在工作中會(huì)受到環(huán)境電磁場(chǎng)的干擾,使系統(tǒng)不能正常的工作,容易發(fā)生不可預(yù)料的后果,因此需要對(duì)單片機(jī)的運(yùn)行情況進(jìn)行監(jiān)控,執(zhí)行此功能的芯片稱為看門狗監(jiān)控芯片。俗稱看門狗。
7.9.2X25045的外形及引腳說(shuō)明
X25045的外形如圖7-45所示。圖7-45X25045的外形圖
其各個(gè)引腳功能描述如表7-24所示。
7.9.3X25045的工作原理及結(jié)構(gòu)
看門狗定時(shí)器的預(yù)置時(shí)間通過(guò)X25045的狀態(tài)寄存器來(lái)設(shè)定。如表7-25所示,X25045狀態(tài)寄存器共有6位有含義,其中WD1、WD0與看門狗電路有關(guān),其余
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 俱樂(lè)部轉(zhuǎn)讓合同范本
- 回收醋酸銷售合同范本
- 廠里店鋪轉(zhuǎn)讓合同范本
- 廠戶鑒定合同范本
- 中標(biāo)分包合同范本
- 上海轉(zhuǎn)租合租合同范本
- 傳承端午文化智慧
- 商鋪無(wú)償租房合同范本
- 廠房項(xiàng)目定制合同范本
- 印刷書(shū)合同范例
- 《元德秀字紫芝》2019年山東濰坊中考文言文閱讀真題(含答案與翻譯)
- 建設(shè)“三型三化551”財(cái)務(wù)體系加快財(cái)務(wù)轉(zhuǎn)型創(chuàng)建一流財(cái)務(wù)指導(dǎo)意見(jiàn)
- 語(yǔ)言領(lǐng)域核心經(jīng)驗(yàn)《學(xué)前兒童語(yǔ)言學(xué)習(xí)與發(fā)展核心經(jīng)驗(yàn)》
- 湖北省華中師大一附中2020-2021高一物理期中檢測(cè)試卷【含答案】
- 2021年合肥職業(yè)技術(shù)學(xué)院職業(yè)適應(yīng)性測(cè)試試題及答案解析
- 2022年三年級(jí)美術(shù)下冊(cè)教案課題美化教室一角
- 初中物理公式MicrosoftWord文檔
- 詐騙案件授課PPT課件
- 弗洛姆異化理論
- 碳納米管_ppt課件
- 【課件】第2課如何鑒賞美術(shù)作品課件-高中美術(shù)人教版(2019)美術(shù)鑒賞
評(píng)論
0/150
提交評(píng)論