TLC549的AD轉(zhuǎn)換分析_第1頁
TLC549的AD轉(zhuǎn)換分析_第2頁
TLC549的AD轉(zhuǎn)換分析_第3頁
TLC549的AD轉(zhuǎn)換分析_第4頁
TLC549的AD轉(zhuǎn)換分析_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、哈爾濱理工大學榮成學院單片機課程設計題目:基于 TLC549的A/D轉(zhuǎn)換班級: 電信121姓名:1 .簡介32 .實現(xiàn)方案32.1 主控模塊設計 32.2 LCD顯示模塊設計 42.3 A/D轉(zhuǎn)換模塊設計 42.4 TLC549 介紹42.4.1 TLC549 工作原理42.4.2 TLC549 特點42.5 AT89C52工作原理 52.6 1602液晶顯示屏工作原理 63 .系統(tǒng)軟件設計 63.1 算法設計73.3 程序設計7(2)定時器T0中斷服務函數(shù)設計 9(5) LCD顯示函數(shù)設計 104 .源程序代碼104.1 Main 函數(shù)模塊 104.1.1 定時器T0初始化函數(shù)模塊 114.

2、1.2 定時器工作模塊 124.1.3 TLC549 讀取模塊124.1.4 延時模塊134.2 LCD1602 函數(shù)模塊 134.2.1 延時模塊134.2.2 LCD1602 命令模塊144.2.3 數(shù)據(jù)寫入模塊144.2.4 清屏指令144.2.5 初始化164.3 LCD1602端口和命令定義模塊 165 .實驗總結(jié)176 .參考文獻181 .簡介電壓表作為電子應用領(lǐng)域必不可少的工具,其性能越來越受到人們的廣泛關(guān)注。傳統(tǒng)的模擬電壓表由于設計較復雜,精度較低,不適合一般應用。數(shù)字電壓表是諸多數(shù)字化儀表的核心 與基礎,電壓表的數(shù)字化是將連續(xù)的模擬量如直流電壓轉(zhuǎn)換成不連續(xù)的離散的數(shù)字形式并加

3、 以顯示,這有別于傳統(tǒng)的以指針加刻度盤進行讀數(shù)的方法,避免了讀數(shù)的視差和視覺疲勞。采用單片機設計的數(shù)字電壓表 ,以其精度高、抗干擾能力強、可擴展性強、集成方便、價格 低廉等優(yōu)點得到了普遍應用。其內(nèi)部核心部件是A/D轉(zhuǎn)換器,轉(zhuǎn)換器的精度很大程度上影響著數(shù)字萬用表的準確度。本課程設計采用 A/D轉(zhuǎn)換器TLC549對電壓測量電路測出的輸入模擬信號電壓值進行轉(zhuǎn)換,控制核心AT89C52RC1對轉(zhuǎn)換的結(jié)果進行運算和處理,最后驅(qū)動輸出顯示裝置 LCD1602顯示 數(shù)字電壓信號。2 .實現(xiàn)方案系統(tǒng)的硬件采用模塊化設計 ,以單片機主控器為核心,與LCD顯示電路、A/D轉(zhuǎn)換電路等組 成數(shù)字電壓表控制系統(tǒng)。主要包

4、括單片機主控模塊、LCD顯示模塊、A/D模塊等。其中單片機主控模塊主要完成外圍硬件的控制以及運算功能;LCD顯示模塊完成字符、數(shù)字的顯示功能;A/D模塊由A/D芯片實現(xiàn)A/D轉(zhuǎn)換,輸出電壓的數(shù)字量通過液晶LCD顯示。系統(tǒng)硬件組成方框圖如圖1所示。圖1系統(tǒng)硬件組成方框圖2.1 主控模塊設計在大部分的工控或測控設備中 ,8位的MCS-51系列單片機能夠滿足大部分的控制要求 ,加 之MCS-51系列單片機的價格優(yōu)勢,使MCS-51系列單片機成為單片機應用主流。 AT89C52是 目前應用比較廣泛的 MCS-51系列兼容單片機中的代表產(chǎn)品。鑒于此 ,本系統(tǒng)選用AT89C52 單片機作為主控制器。2.2

5、 LCD顯示模塊設計字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用的有16X1、16X2、20X2和40X2行等模塊。本系統(tǒng)選用 1602字符型LCD模塊,其控制器為日 立公司生產(chǎn)的HD44780,可以用來顯示數(shù)字、字符等。2.3 A/D轉(zhuǎn)換模塊設計A/D模塊由A/D芯片和電壓測量電路組成,通過電壓測量電路測得輸入電壓 ,并轉(zhuǎn)換為0 5V的標準信號。本系統(tǒng)選用TI公司生產(chǎn)的一種低價位、高性能的 8位A/D芯片TLC549。2.4 TLC549 介紹2.4.1 TLC549工作原理當/CS變?yōu)榈碗娖胶?,TLC549芯片被選中,同時前次轉(zhuǎn)換結(jié)果的最高有效位MSB (A

6、7)自DATA OUT 端輸出,接著要求自I/O CLOCK端輸入8個外部時鐘信號,前 7個I/O CLOCK信號的作用,是配合TLC549輸出前次轉(zhuǎn)換結(jié)果的 A6-A0位,并為本次轉(zhuǎn)換做準 備:在第4個I/O CLOCK 信號由高至低的跳變之后,片內(nèi)采樣/保持電路對輸入模擬量采樣開始,第8個I/O CLOCK信號的下降沿使片內(nèi)采樣 /保持電路進入保持狀態(tài)并啟動A/D開始轉(zhuǎn)換。轉(zhuǎn)換時間為36個系統(tǒng)時鐘周期,最大為 17us。直到A/D轉(zhuǎn)換完成前的這段時間內(nèi),TLC549的控制邏輯要求:或者/CS保持高電平,或者 I/O CLOCK 時鐘端保持 36個系統(tǒng)時鐘周期的低電平。由此可見,在自 TLC

7、549的I/O CLOCK 端輸入8個外部時 鐘信號期間需要完成以下工作:讀入前次A/D轉(zhuǎn)換結(jié)果;對本次轉(zhuǎn)換的輸入模擬信號采樣并保持;啟動本次 A/D轉(zhuǎn)換開始。2.4.2 TLC549 特點TLC549是采用IinCMOSTM 技術(shù)并以開關(guān)電容逐次逼近原理工作的8位串行A/D7芯片,可與通用微處理器、控制器通過I/O CLOCK、CS、DATA OUT三條口線進行串行接口。TLC549具有4MHz的片內(nèi)系統(tǒng)時鐘和軟、硬件控制電路,轉(zhuǎn)換時間最長為17 s,允許的最高轉(zhuǎn)換速率為 40000次/s??偸д{(diào)誤差最大為土 0. 5LSB,典型功耗值為6 mWoTLC549 采用差分參考電壓高阻輸入,抗干

8、擾,可按比例量程校準轉(zhuǎn)換范圍,由于其VREF-接地時,(VREF+)-(VREF-) >1 V,故可用于較小信號的采樣,此外,該芯片還單電源36V的供電范圍。總之,TLC549具有控制口線少,時序簡單,轉(zhuǎn)換速度快,功耗低,價格便宜等特TLC549 的極限參數(shù)如下:電源電壓:6. 5 V: 輸入電壓范圍:0.3VVCC: +0.3V :輸出電壓范圍:0.3VVCC: +0. 3 V; 峰值輸入電流(任一輸人端):土 10 mA; 峰值輸人電流(所有輸入端):± 30mA工作溫度:TLC549C : 0 c 70C TLC549I : -40 C 85 c QTLC549M. -5

9、5"C 125 c 其芯片及原理圖如圖所示2.5AT89C52 工作原理AT89C52為8位通用微處理器,采用工業(yè)標準的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板 CPU通信等。主要管腳有: XTAL1 (19腳)和XTAL2 (18腳)為振蕩器輸入輸出端口,外接12MHz晶振。RST/Vpd (9腳)為復位輸入端口,外接電阻電容組成的復位電路。 VCC (40腳)和VSS (20腳)為供電端口,分別接

10、 +5V 電源的正負端。P0P3為可編程通用I/O腳,其功能用途由軟件定義, 在本設方t中,P0端 口(3239腳)被定義為N1功能控制端口,分別與 N1的相應功能管腳相連接,13腳定 義為IR輸入端,10腳和11腳定義為I2C總線控制端口,分別連接 N1的SDAS (18腳) 和SCLS (19腳)端口,12腳、27腳及28腳定義為握手信號功能端口, 連接主板CPU的相應功能端,用于當前制式的檢測及會聚調(diào)整狀態(tài)進入的控制功能。2:D2IL 逅P3T聞Pl.7P3.6,FIBps.atiF1I.5P1L4P3.1'INT1P1I.3PS.IMTOP1I.2P.I-'TXDP1.

11、1T2EX戶3.DRKDFI.a'TZR.77A15P2.&'A14P2 a*A13EAP2 4!A12ALEP2.3.,AU1FSENP2 加Ml 口FZ1IASP2£L'AaPOTADFR5TFQ.&'AMP0&AD5FCJJ.'AMPO.S'ADaX7IAL2P0.2'AD2PO.IADiiPQ.ADQX7IAL1H3 q怕ATBQC5232 至 J+25 至 J7 至 3s.F.- t- 4 .U.- - - 1系統(tǒng)硬件電路原理圖如圖 3所示。._£-:Ft.2.6 1602液晶顯示屏工

12、作原理1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了 160個不同的點陣字符圖形,這些字符有:阿拉伯數(shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A勺代碼是01000001B (41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母"A'因為1602識別的是ASCII碼,試驗可以用 ASCII碼直接賦值,在單片機編程中還可以 用字符型常量或變量賦值,如'A'。讀的時候,先讀上面那列,再讀左邊那行,如:感嘆號!的ASCII為0x21 ,字母B的ASCII為0x42 (前面加0

13、x表示十六進制)。以下是 1602的 16進制ASCII碼表:3.系統(tǒng)軟件設計系統(tǒng)的軟件設計使用 C51編程,采用模塊化設計方法,主要由主函數(shù)、定時器 T0中斷服務函 數(shù)、A/D轉(zhuǎn)換函數(shù)、計算 A/D轉(zhuǎn)換值函數(shù)、LCD顯示函數(shù)、LCD顯示A/D轉(zhuǎn)換值函數(shù)等模塊 組成,系統(tǒng)軟件結(jié)構(gòu)框圖如圖 4所示。圖4 系統(tǒng)軟件結(jié)構(gòu)框圖3.1算法設計根據(jù)A/D轉(zhuǎn)換芯片TLC549的工作時序,200ms進行一次A/D采樣轉(zhuǎn)換,可以利用定時器 T0定 時,基本定時時間為50ms,控制軟計數(shù)器的累計次數(shù)為 4次,200ms(4 x 5ms)定時到時,產(chǎn)生定時器T0中斷,在定日寸器T0中斷服務函數(shù)中調(diào)用 算A/D轉(zhuǎn)換值

14、函數(shù)把 A/D轉(zhuǎn)換值轉(zhuǎn)換為相應的 把輸出電壓(05V)的轉(zhuǎn)換數(shù)字量顯示在液晶3.2數(shù)據(jù)結(jié)構(gòu)設計A/D轉(zhuǎn)換函數(shù)進行 A/D采樣轉(zhuǎn)換,然后調(diào)用計ASCII碼,最后通過LCD顯示A/D轉(zhuǎn)換值函數(shù)LCD1602上,數(shù)字量顯示值范圍為 04.98v。數(shù)據(jù)結(jié)構(gòu)設計如表1所示。表1數(shù)字電壓表控制系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設計符號存儲單元含義缶拄P0POLCD16Q2 頗據(jù)賜 DB7 -DBORSP2- 0LCD1602版據(jù)/命令選擇信號當P2. o=a為命令信號 當P2. 0=1,為城聚信號RWP2. 1LCD1602庭寫選抻信號當P2. 1=01內(nèi)與就據(jù)信號當P2. 1 = 1,為該制菇信號P2. 2LCD16C2便能

15、信號AD_CKP3. 5A/D芯片1LC540時粗信弓AD_OJTPS. 6A/D芯片TLCS49制培檢出信號AD_CSP3- 7A/D芯片TLC549片選信號ohchLCD 160寫命今人口奉酒或LCD 1 t02寫雅話入口薄效ad blELdbl當前邙1 AD變量1 edtaa.1led Lcs.1效宇量埼出質(zhì)百性顯示值1edshiledsshi順宇量府出情十性顯示值11 edE*效宇量檢出值十位顯示值ke yt i mekeyt i me-定時軟計效?5i1口/口乘梯轉(zhuǎn)操位跋3.3程序設計(1)主函數(shù)設計主函數(shù)主要完成硬件初始化、數(shù)據(jù)初始化、函數(shù)調(diào)用等功能。初始化。首先初始化定時軟計數(shù)器

16、值為0.00。調(diào)用LCD初始化函數(shù),調(diào)用寫入顯示數(shù)據(jù)到LCD16020數(shù)設置LCD勺DDRA岫址為00H,調(diào)用延時函數(shù),調(diào)用寫入顯示數(shù)據(jù)到 LCD1602 函數(shù)在LCD上顯示字符數(shù)據(jù)第一行為“ volt ”,第二行為“ V”(電壓單位)。定時初值計算。定時器 T0的定時時間為50ms,系統(tǒng)所用的石英晶體振蕩頻率為11.0592 MHz,因此,1個機器周期=1/石英頻率X 12,即為12/11.059 2 ms,定時器的工作方式設置為方式1。 定時器設置。設定定時器T0工作方式:定時器、方式1,即TMOD01H。啟動定時器T0, 即TRO= 1。開放定時器 T0中斷以及總中斷,即設定IE = 0

17、x82H。等待中斷。定時器T0啟動計時后,CPU等待定時中斷的到來。當定時器 T0定時50ms后,進入定時器T0中斷服務函數(shù)。主函數(shù)設計流程圖如圖所示。(2)定時器T0中斷服務函數(shù)設計當定時器T0定時50ms后,進入定時器T0中斷服務函數(shù)。首先重裝定時器 T0初值,即THO= 0xee,TL0 = 0x00。每定時5ms一次,軟計數(shù)器值減1。然后 判斷軟計數(shù)器值是否為 0:若值不為0,表明20ms(20ms采樣一次)計時未到,這日T0中斷函 數(shù)返回主函數(shù),繼續(xù)計時。若值為0,表明20ms(20ms采樣一次)計時已到,重置軟計數(shù)器初 值為4,為下次定時做準備,接著調(diào)用A/D轉(zhuǎn)換函數(shù)進行 A/D采

18、樣車t換,得到A/D采樣轉(zhuǎn)換值 adbl,然后調(diào)用計算A/D轉(zhuǎn)換值ASCII碼函數(shù)計算A/D采樣轉(zhuǎn)換值adbl相應的ASCII碼, 再調(diào)用LCD顯示A/D轉(zhuǎn)換值函數(shù)把模擬量輸入電壓(05 V)的轉(zhuǎn)換數(shù)字量顯示在液晶LCD1602上,數(shù)字量顯示彳1范圍為 04.5v。最后T0中斷函數(shù)返回主函數(shù)進行下一次A/D采樣轉(zhuǎn)換。A/D采樣轉(zhuǎn)換函數(shù)設計根據(jù)A/D轉(zhuǎn)換芯片TLC549的工作時序,當片選信號CS為高電平時,數(shù)據(jù)出DATA OU嘲 處于高阻狀態(tài),此時時鐘信號I/O CLOCK不起彳用,不能進行A/D轉(zhuǎn)換。將片選信號 CS置低 電平,內(nèi)部電路在測得 CS下降沿后,再等待兩個內(nèi)部時鐘上升沿和一個下降沿

19、后,然后確認這一變化。首先定義變量i(表示A/D采樣轉(zhuǎn)換位數(shù)),并將芯片TLC549片選信號AD_CSK低電平,選 中該芯片。初始化 A/D采樣轉(zhuǎn)換值adbl為0,初始化變量i(A/D采樣轉(zhuǎn)換位數(shù))為0。 判斷A/D轉(zhuǎn)換位數(shù)i是否小于8。如果i小于8,則將芯片TLC549時鐘信號AD_CKt高電平,并把A/D采樣轉(zhuǎn)換值adbl 左移一位。然后判斷 A/D采樣轉(zhuǎn)換串行數(shù)據(jù)輸出信號 AD_OU促否為1:若AD_OU偽1,則將 A/D采樣轉(zhuǎn)換值adbladbl自加1。若AD_OU偽0,則A/D采樣轉(zhuǎn)換值adbladbl不變。再將芯片TLC549時鐘信號AD_CKt低電平。最后將A/D轉(zhuǎn)換位數(shù)i自加1

20、,并再次轉(zhuǎn)向上面 的判斷A/D轉(zhuǎn)換位數(shù)i是否小于8。如果i不小于8,則把芯片TLC549片選信號AD_CSW高電平,結(jié)束A/D采樣轉(zhuǎn)換,并退 出A/D采樣轉(zhuǎn)換函數(shù)。(4)計算A/D轉(zhuǎn)換值ASCII碼函數(shù)模塊設計要把AD轉(zhuǎn)換值adbl顯示在LCD上,需要把它轉(zhuǎn)換為相應的 ASCII碼。首先計算A/D轉(zhuǎn)換值百位數(shù) ASCII碼:將A/D轉(zhuǎn)換值adbl除以100得到的商與0x30(因為字 符數(shù)字09與其相應的ASCII碼相差30H)相與。然后計算 A/D轉(zhuǎn)換值十位數(shù) ASCII碼:將 A/D轉(zhuǎn)換值adbl除以100得到的余數(shù)再除以10,得到的商與0x30(因為字符數(shù)字09與其 相應的ASCII碼相差

21、30H)相與。再計算 A/D轉(zhuǎn)換值個位數(shù) ASCII碼:將A/D轉(zhuǎn)換值adbl除 以10得到的余數(shù)與0x30(因為字符數(shù)字09與其相應的ASCII碼相差30H)相與。最后函 數(shù)返回。(5) LCD顯示函數(shù)設計LCDLCD顯示函數(shù)模塊包括 LCD初始化函數(shù)、寫入指令數(shù)據(jù)到 LCD函數(shù)、寫入顯示數(shù)據(jù)到 函數(shù)、LCD顯示A/D轉(zhuǎn)換值函數(shù)、延時函數(shù)等模塊。4.源程序代碼4.1 Main函數(shù)模塊#include <reg52.h>#include <intrins.h>#include <stdio.h>#include ”1602.h”/包含頭文件sbit TLC5

22、49_CS = P1A0;sbit TLC549_DO = Pil;sbit TLC549_CLK = Pi2;/TLC549片選,低電平有效/TLC549數(shù)字量輸出/TLC549片外獨立時鐘sbit led = P0A7;/工作狀態(tài)燈,閃爍為正常/空操作函數(shù)_nop_()必須的頭文件unsigned char DO, num; float DO_F, volt,hh;/讀土壤濕度返回值、定時器計數(shù)變量/ /讀取返回值的20次累加值、最終轉(zhuǎn)換系數(shù)bit flag = 1;/工作標志位unsigned char str1 = "Volt:"unsigned char str2

23、 = "0 V"unsigned char temp3;void InitTimer0();/聲明定時器T0初始化函數(shù)void delayus(unsigned int t);/ 聲明 延日i t 個機器 周期unsigned char TLC549_read();/ 聲明 TLC549 讀數(shù)字量 函數(shù)void main() (unsigned char i;/for 循環(huán)變量InitTimer0(); /初始化定時器T010LCD_init();delayus(1000);LCD_clear();LCD_write_string(1, 1, strl);LCD_write

24、_string(2, 1, str2);while(1)if(flag)/標志位清零flag = 0;for( i = 0 ; i < 20 ; i+ )/累加/累加彳1除20求平均DO = TLC549_read(); / 讀 DO_F = DO_F + DO;DO_F = DO_F / 20.00;volt = (float)( DO_F * 5 ) / 256.00);/ TLC549 是8位A/D芯片/ 2 的8次方是256/即轉(zhuǎn)換所得數(shù)值為 0-255 /所以乘以基準電壓再除以精度sprintf(temp, "%4.2f", volt);LCD_write_

25、string(2, 7, temp);if(volt>4.5|volt<0.5)led=1;if(volt>0.5&&volt<4.5) led=0;4.1.1 定時器T0初始化函數(shù)模塊void InitTimer0() 11TMOD = 0x01;/選擇定時器 T0TH0 = 0x4C;/ 定時 50 毫秒TL0 = 0x00;EA = 1;/開總中斷ET0 = 1;/開定時器T0中斷TR0 = 1;/使能定時器T0)4.1.2定時器工作模塊void Timer0Interrupt() interrupt 1(TH0 = 0x4C;/重裝初值TL0 =

26、 0x00;num+;if(num=10) (num = 0;flag = 1;) )4.1.3 TLC549讀取模塊unsigned char TLC549_read()(unsigned char i , temp;TLC549_CS = 1;/ 關(guān)閉片選TLC549_CLK = 0;TLC549_CS = 0;_nop_();_nop_();for( i = 0; i < 8; i+ )(temp <<= 1;/計數(shù)變量增加1/每500毫秒讀一次數(shù)字量/定時50毫秒,即每50毫秒進1次中斷,num加1/進10次中斷后num為10,即過了 500毫秒/num清零,標志位置

27、 1/時鐘線拉低打開片選/空操作等待兩個機器周期待總線穩(wěn)定/循環(huán)8次讀出8位轉(zhuǎn)換結(jié)果temp |= TLC549_DO;TLC549_CLK = 1;12_nop_();TLC549_CLK = 0;TLC549_CS = 1;delayus(14);return temp;/TLC549轉(zhuǎn)換速度小于14微秒,/返回轉(zhuǎn)換值大致延時14微秒等待轉(zhuǎn)換結(jié)束4.1.3延時模塊void delayus(unsigned int t)/延時函數(shù),延時t個機器周期while(-t);4.2 LCD1602 函數(shù)模塊#include ”1602.h”4.2.1 延時模塊void delayus1602(uns

28、igned char t)while(-t);void delayms1602(unsigned char t)/大致延時t毫秒while(t-)delayus1602(245);delayus1602(245);void LCD_check_busy()/判盲RS = 0;13RW = 1;EN = 1;while(P0 & 0x80)=0x80);delayus1602(2);EN = 0;4.2.2 LCD1602命令模塊void LCD_write_com(unsigned char com)LCD_check_busy();RS = 0;RW = 0;EN = 1;P0 =

29、com;delayus1602(2);EN = 0;4.2.3 數(shù)據(jù)寫入模塊void LCD_write_Data(unsigned char Data)LCD_check_busy();RS = 1;RW = 0;EN = 1;P0 = Data;delayus1602(2);EN = 0;4.2.4清屏指令void LCD_clear()LCD_write_com(0x01);delayms1602(5);14/void LCD_write_char(unsigned char x , unsigned char y , unsigned char c)/在第x行第y位寫字符/ LCD_c

30、heck_busy();/ if( x = 1 )/ LCD_write_com(0x80 + y - 1);/)/ if( x = 2 )/ LCD_write_com(0xc0 + y - 1);/)/ LCD_write_Data(c);/)void LCD_write_string(unsigned char x , unsigned char y , unsigned char *s)/在第x行第y位寫字符串LCD_check_busy();if( x = 1 )LCD_write_com(0x80 + y - 1);)else if( x = 2 )LCD_write_com(0x

31、c0 + y - 1);)while(*s)LCD_write_Data(*s);s+;)154.2.4 初始化void LCD_init()(delayms1602(15);LCD_write_com(0x38);delayms1602(5);LCD_write_com(0x38);8 位總線、雙行 5X 7 點陣LCD_write_com(0x08);LCD_write_com(0x01);LCD_write_com(0x06);delayms1602(5);LCD_write_com(0x0c);/void LCD_user(unsigned char x , unsigned char

32、 *user)/向CGRAMI入自定義字符/形參x為CGRA岫定義字符的地址序號,序號范圍07/ unsigned char i;形參*user為主函數(shù)文件中自定義字符的字模數(shù)組名/for(i=0;i<8;i+)/LCD_write_com(0x40+x*8+i);/LCD_write_Data(useri);4.3 LCD1602端口和命令定義模塊#ifndef _1602_H_#define _1602_H_#include <reg52.h>sbit RS = P2A2;/定義1602各個控制位sbit RW = P2A1;sbit EN = P2A0;16void LCD_check_busy();/判忙void LCD_write_com(unsigned char com);/

溫馨提示

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

評論

0/150

提交評論