tms320f28335開發(fā)板dsp學習入門推薦核心-芯片lcd1602中文_第1頁
tms320f28335開發(fā)板dsp學習入門推薦核心-芯片lcd1602中文_第2頁
tms320f28335開發(fā)板dsp學習入門推薦核心-芯片lcd1602中文_第3頁
tms320f28335開發(fā)板dsp學習入門推薦核心-芯片lcd1602中文_第4頁
tms320f28335開發(fā)板dsp學習入門推薦核心-芯片lcd1602中文_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

14LCD也就是說想要在LCD1602屏幕的第一行第一列顯示一個"A"字,就要向DDRAM的00H地址寫入“A”字的代碼就行了。但具體的寫入是要按LCD模塊的指令格式來進行的,后面我會說到的。那么一行可有40個地址呀?是的,在1602中我們的字符是因為在操作系統(tǒng)里和BIOS里都有字符字模。什么是字模?就代表 上圖左邊的數(shù)據(jù)就是字模數(shù)據(jù),右邊就是將左邊數(shù)據(jù)用“○”代表0,用剛才我說了想要在LCD1602屏幕的第一行第一列顯示一個"A"字,就要向DDRAM00H地址寫入“A”字的代碼41H就行了,可41H這一個字節(jié)的代碼如何才能讓LCD模塊在屏幕的陣點上顯示“A”字呢?同樣,在LCD模塊上也了字模器,這就是CGROM和CGRAM。HD44780內(nèi)置了192個常用字符的字模,CGROM(CharacterGeneratorROM8自定義的字符產(chǎn)生RAM,稱為CGRAM(CharacterGeneratorRAM)。下圖說明了CGROM和CGRAM與字符的對應(yīng)關(guān)系。0001,合起來就是41HPCP1='A'這樣的方法。PC“A41H字符代碼0x00~0x0F為用戶自定義的字符圖形RAM(對于5X8點陣的字符,可以存放8組,5X10點陣的字符,存放4組),就是CGRAM了。后面我會詳細說余字符碼(0x10~0x1F0x80~0x9F)沒有定義。那么如何對DDRAM的內(nèi)容和地址進行具體操作呢,下面先說說HD44780的指令集及其設(shè)置說明,請瀏覽該指令集,并找出對DDRAM的內(nèi)容和地址進行操作的指功能:<1>清除液晶顯示器,即將DDRAM的內(nèi)容全部填入"空白"的<2>功能:<1> S

位 設(shè) 0=顯示功能 0=無光 1=有光 0=光標閃 00011011 0=數(shù)據(jù)總線為4 0=顯示1 1=顯示2 0=5×7點陣/每字 設(shè)定CGRAM設(shè)定DDRAM<2>地址計數(shù)器(AC)的內(nèi)容 功能:DDRAM或CGRAM中的內(nèi)容。讀狀 輸入 輸出:DB0~DB7=狀態(tài) 寫數(shù) 舉個實例,就在LCD1602屏幕上第一行第一列顯示個“A”字。先初始化。(!好像上面沒初始化這條指令啊#include P1------ #defineLCD_DB #defineucharunsignedchar#defineuintunsignedvoidLCD_init(void);/ mand(ucharcommand);//寫指令函數(shù)voidLCD_write_data(uchardat);//寫數(shù)據(jù)函數(shù)voidLCD_disp_char(ucharx,uchary,uchardat);//在某個屏幕位置上顯示一voiddelay_n40us(uintn);/voidLCD_init(void){mand(0x38);/82,5x7} mand(uchardat){} voidLCD_write_data(uchardat){}//*******顯示一個字符函數(shù)voidLCD_disp_char(ucharx,uchary,uchar{

}/*******檢查忙函數(shù)voidLCD_check_busy() //至于不能正常使用LCD { //for循環(huán)作延時,普通指令只要 }voiddelay_n40us(uintn){uintuchar //實踐證明我的LCD1602voidmain(void){}DDRAM;再將CGRAM中的自定義字符送到DDRAM中顯示查看LCD1602的CGROM字符代碼表,可以發(fā)現(xiàn) 過先定義LCD1602的CGRAM然后就可以同調(diào)用CGROM字符一樣來調(diào)用自定義好的字符(這里提示一下,自定義的字符最多可寫8個)那么如何設(shè)定CGRAM中的內(nèi)容呢?首先我們要把所要編寫的字符對應(yīng)于5X8點陣了也就是將點陣的某一行中有顯示的點用1表示,無顯示的點用0表示,以此形CGROM字符一樣來來調(diào)用它了。RSR/WDB7DB6DB5DB4DB3DB2DB1 設(shè)定CGRAM(內(nèi)容)指令碼如下:RSR/WDB7DB6DB5DB4DB3DB2DB1DB0 #include<intrins.h>sbitlcd1602_e=P0^5;#definelcd1602_sent_datP2#definelcd1602_datlcd1602_rs=1; #definelcd1602_writelcd1602_rw=0;#definelcd1602_readlcd1602_rw=1;#definelcd1602_e_ablelcd1602_e=1;#definelcd1602_e_unablelcd1602_e=0;unsignedcharcode/*- 調(diào)入了四幅圖像:向 --/* x=5x8--/* 8x=8x8--unsignedchar{unsignedchardat;returndat;}void{}voidlcd1602_write_dat(unsignedchar{chari;} (unsignedchar{char ;}{

}

voidlcd1602_write_character(unsignedcharadd,unsignedchar{while{}}//addCGRAMvoidlcd1602_write_pic(unsignedcharadd,unsignedchar{unsignedchari;{}}void{CGROM//寫八個自定義字符到CGRAM}5使用4畫完自定義字符這是第三步,在液晶屏刷新率不高的情況下,我們可以用sbitlcd1602_e=P0^5;/*#definelcd1602_io_writlcd1602_rw=0;#definelcd1602_io_readlcd1602_rw=1; #definelcd1602_io_datlcd1602_rs=1;#definelcd1602_io_ablelcd1602_e=0;#definelcd1602_io_unablelcd1602_e=1;sbitlcd1602_dat1=P0^0;sbitlcd1602_dat2=P0^1;sbitlcd1602_dat3=P0^2;sbit//unsignedcharcodetable[]="ball//unsignedcharcodetable1[]="THEBEST!";voiddelay(unsignedintz){unsignedinta,b;for(b=114;b>0;b--}voidlcd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論