液晶顯示164接口實(shí)驗(yàn)說課材料_第1頁
液晶顯示164接口實(shí)驗(yàn)說課材料_第2頁
液晶顯示164接口實(shí)驗(yàn)說課材料_第3頁
液晶顯示164接口實(shí)驗(yàn)說課材料_第4頁
液晶顯示164接口實(shí)驗(yàn)說課材料_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

液晶顯示164接口實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)器材硬件接線軟件功能程序清單備注說明<<<1實(shí)驗(yàn)?zāi)康?掌握點(diǎn)陣字符型液晶顯示(LCD)編程方法2實(shí)驗(yàn)器材:

1.單片機(jī)2.LCD(液晶顯示屏)3.74HC164(8位移位寄存器)3硬件接線:

VCC16151413121110090807060504030201LCD(HD44780)Q7Q6Q5Q4Q3Q2Q1Q0BACPCRVCC74HC164MOS1SPSCKPTC3PTC2PTC1PTC0SSVCCMC68HC908GP324軟件功能:開始運(yùn)行時(shí),LCD顯示“WaitReceiving..”等待接收字符,當(dāng)收到16個(gè)字符時(shí),顯示之,重復(fù)此功能5*--------------程序說明--------------------------**文件名LCD.ASM*硬件連接:74HC164的Q0-Q7分別接LCD的DB0-DB7;*74HC164的MR,CLK接分別MCU的PTC3,SCK;*74HC164的B接MCU的VCC(+5V);*74HC164的A接MCU的MOSI;*LCD的E,R/W,RS分別接的PTC2,PTC1,PTC0。*程序描述:1.開始運(yùn)行時(shí),LCD顯示“WaitReceiving..”*2.等待接收字符,當(dāng)收到16個(gè)字符時(shí)顯示之,*重復(fù)此功能。*目的:掌握點(diǎn)陣字符型液晶顯示(LCD)編程方法*備注說明:從PC機(jī)輸入被顯示的16個(gè)字符,以串行通信方*式發(fā)送到單片機(jī),在液晶屏上顯出這些字符。*-------------------------------------------------*7*-----口地址定義-------------------------------PTCEQU$0002;C口數(shù)據(jù)寄存器LCD-RSEQU0;LCD寄存器選擇信號接PTC0LCD-RWEQU1;讀寫信號接PTC1LCD-EEQU2;LCD使能信號接PTC2HC164-CREQU3;74HC164(移位寄存器)

;清除端接PTC3DDRCEQU$0006;C口數(shù)據(jù)方向寄存器*----SPI(串行外設(shè)接口)地址定義-------------------SPCREQU$0010;SPI控制寄存器SPSCREQU$0011;SPI狀態(tài)和控制寄存器BIT-SPTEEQU3;SPI發(fā)送器空標(biāo)志位SPDREQU$0012;SPI數(shù)據(jù)寄存器8*----SCI串行通信口地址------------------------SCS1EQU$0016;串行通信接口狀態(tài)寄存器地址SCDREQU$0018;串行通信接口數(shù)據(jù)寄存器地址*----變量定義---------------------------------ORG$0090BYTEDISPLYRMB1;臨時(shí)存放一個(gè)字符LCD-BUFFERRMB16;存放16字節(jié)FlashStartAddrequ$8000

;程序開始地址(因芯片不同可以更改)**********************************************9*---------主程序-----------------------------ORGORGFlashStartAddrMainInit:;復(fù)位后程序從此開始執(zhí)行

;系統(tǒng)初始化SEI;禁止所有中斷LDHX#$023F;堆棧初始化,放入GP32的RAM最高端TXSJSRInit0;調(diào)系統(tǒng)初始化子程序Init0,初始學(xué)習(xí)時(shí)跳過此處;I/O初始化NOP ;初始化LDA#%00111010;SPI初始化設(shè)置:禁止中斷, ;主機(jī)方式,時(shí)鐘低電平有SPSCK啟動移位、 ;脈沖,普通推拉模式,允許SPISTASPCRLDA#%00000000;禁止中斷,禁止錯(cuò)誤檢測,;時(shí)鐘分頻系數(shù)為2STASPSCR10LDADDRC;初始化E,RW,RS控制信號ORA#%00001111;PTC3-0為輸出STADDRCLDHX#$00DISPLAY1:;把要顯示的16個(gè)初始字符;放入LCD-BUFFER中LDADISPLAYBYTES,XSTALCD-BUFFER,XAIX#1CPHX#$10BNEDISPLAY1;循環(huán)16次BRASTART11DISPLAYBYTESFCB"WAITRECEIVING.."START:

JSRINIT-74HC164

;初始化74HC164

;(移位寄存器)

JSRINIT-LCD

;LCD初始化

JSRSHOW-LCD-BUFFER

;把LCD-BUFFER中的 ;16個(gè)字符送LCD顯示12LDHX#$00DISPLAY2:;從PC機(jī)接收16個(gè)字符放入LCD-;BUFFER開始的內(nèi)存中BRCLR5,SCS1,*;與PC機(jī)串行通信,判斷接收器;是否滿LDASCDR;讀SCI數(shù)據(jù)寄存器STALCD-BUFFER,XAIX#1CPHX#$10BNEDISPLAY2JMPSTART***************************************************13*---INIT-LCD(LCD初始化子程序)------------------*入口:無*功能:初始化LCD(HD44780)*調(diào)用子程序:LCDCOMMAND(LCD命令執(zhí)行子程序)*占用CPU內(nèi)部寄存器:A,X*----------------------------------------------INIT-LCD:BCLRLCD-RS,PTC;令LCD的RS=0,R/W=0,;進(jìn)行LCD初始化BCLRLCD-RW,PTCLDA#%00111000;功能設(shè)置:8位數(shù)據(jù)接口,;2行顯示,5*10點(diǎn)陣模式JSRLCDCOMMAND14LDA#%00001000;顯示開關(guān)控制:開顯示,;關(guān)光標(biāo)顯示,不閃爍JSRLCDCOMMANDJSRINIT-74HC164;74HC164(移位寄存器);初始化BCLRLCD-RS,PTC;RS,RW清零開始清屏BCLRLCD-RW,PTCBRCLRBIT-SPTE,SPSCR,*;判斷發(fā)送數(shù)據(jù)寄存器;是否為空LDA#%00000001;清屏指令JSRLCDCOMMANDLDHX#$2DF;等待清屏完畢,時(shí)間>1.6ms

15CLR-LCD-2-MS:

;延時(shí)

AIX#-1CPHX#0

BNECLR-LCD-2-MS

LDA#%00000110

;輸入方式設(shè)置:數(shù)據(jù)讀寫;操作后,AC自動增1顯示不動,;光標(biāo)左移

JSRLCDCOMMAND

LDA#%00010100

;光標(biāo)移位設(shè)置:光標(biāo)右;移一個(gè)字符位,AC自動加1

JSRLCDCOMMANDLDA#%00001100

;顯示開關(guān)設(shè)置:開顯示,;關(guān)光標(biāo)顯示,不閃爍

JSRLCDCOMMANDRTS16*----LCDCOMMAND(LCD命令執(zhí)行子程序)----------*入口:A*功能:對A中指令送LCD(HD44780),進(jìn)行命令執(zhí)行或*字符顯示*占用CPU內(nèi)部寄存器:A*-------------------------------------------LCDCOMMAND:PSHH;保護(hù)現(xiàn)場PSHXPSHA;保護(hù)入口指令碼BRCLRBIT-SPTE,SPSCR,*;測試狀態(tài),發(fā)送數(shù)據(jù) ;寄存器是否為空17JSRINIT-74HC164;初始化74HC164芯片

PULA;彈出入口指令碼STASPDR;把指令碼發(fā)送出去BRCLRBIT-SPTE,SPSCR,*;測試發(fā)送完畢NOPNOPBSETLCD-E,PTC;LCD開始接受數(shù)據(jù),;置使能位為118NOPNOPBCLRLCD-E,PTC;LCD結(jié)束接受數(shù)據(jù),置;使能位為0LDHX#$0020;等待40usDBNZX*PULX;恢復(fù)現(xiàn)場PULHRTS********************************************19*---INIT-74HC164(74HC164初始化)--------------*入口:無*功能:清空74HC164*占用CPU內(nèi)部寄存器:HX*-------------------------------------------INIT-74HC164:BCLRHC164-CR,PTC ;CR為0清除74HC164中的數(shù)據(jù)

BSETHC164-CR,DDRCLDHX#$0020 ;等待40usDBNZX*BSETHC164-CR,PTC ;清除完畢,74HC64的CR ;轉(zhuǎn)為高電平RTS20*----SHOW-LCD-BUFFEER(LCD顯示子程序)-------**入口:內(nèi)存LCD-BUFFER開始的16個(gè)地址中存放要顯*示的字符編碼*功能:顯示內(nèi)存LCD-BUFFER開始的16字節(jié)數(shù)據(jù)*調(diào)用:LCDCOMMAND子程序*占用CPU內(nèi)部寄存器:A,HX*------------------------------------------*SHOW-LCD-BUFFER: ;進(jìn)行顯示數(shù)據(jù)寄存器 ;(DDRAM)地址設(shè)置BCLRLCD-RS,PTCBCLRLCD-RW,PTC ;設(shè)置前8個(gè)字符 ;首DDRAM地址21LDA#%10000000JSRLCDCOMMANDLDHX#$0;顯示前8個(gè)字符SHOW-FIRST-8BYTE:BSETLCD-RS,PTC;令LCDRS=1,R/W=0, ;寫入數(shù)據(jù)到DDRAM中BCLRLCD-RW,PTCLDALCD-BUFFER,X;將{LCD-BUFFER+X} ;的數(shù)據(jù)放入A作為入口JSRLCDCOMMAND22

AIX#1CPHX#$8BNESHOW-FIRST-8BYTELDA#%11000000;設(shè)置后8個(gè)字符首DDRAM地址BCLRLCD-RS,PTCBCLRLCD-RW,PTCJSRLCDCOMMANDLDHX#$08;顯示后8個(gè)字符SHOW-NEXT-8BYTE:BSETLCD-RS,PTC;令LCD的RS=1,R/W=0,寫入

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論