LCD顯示實(shí)驗(yàn)報(bào)告單片機(jī)lcd顯示實(shí)驗(yàn)報(bào)告_第1頁(yè)
LCD顯示實(shí)驗(yàn)報(bào)告單片機(jī)lcd顯示實(shí)驗(yàn)報(bào)告_第2頁(yè)
LCD顯示實(shí)驗(yàn)報(bào)告單片機(jī)lcd顯示實(shí)驗(yàn)報(bào)告_第3頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第 PAGE13 頁(yè) 共 NUMPAGES13 頁(yè)LCD顯示實(shí)驗(yàn)報(bào)告單片機(jī)lcd顯示實(shí)驗(yàn)報(bào)告歡迎下載LCD顯示實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)?zāi)康膶W(xué)會(huì)用LCD顯示字符和數(shù)字,顯示學(xué)號(hào)和姓名。實(shí)驗(yàn)內(nèi)容:所需要的程序:;_占用I/O RB1-RB5,RA5 ;_使用RAM 2個(gè)字節(jié) ;_程序包括: ;_- InitLCD 初始化液晶面板函數(shù) ;_- putcLCD 將字符寫入 LCD的函數(shù) ;_- SendCmd 將命令寫入 LCD的函數(shù) ;_- clrLCD 清 LCD顯示函數(shù) ;_入口參數(shù) WREG ;_出口參數(shù) 無(wú);_LCD顯示RAM地址:第一行0_808F;第二行0_C0CF;_#include p16f87

2、7a.inc ;定義所用單片機(jī)的頭文件COUNT EQU 0_20Count EQU 0_20; COUNT1 EQU 0_21Count1 EQU 0_21;COUNT2 EQU 0_22Count2 EQU 0_22;LCD_TEMP EQU 0_23Byte EQU 0_24BYTE EQU 0_24LCD_DATA1 EQU 0_25BYTESH EQU 0_26 ;_定義 LCD數(shù)據(jù) 控制I/O口 ;可以用任意的6個(gè)普通的I/O管腳定義;實(shí)際連線依據(jù)該部分定義;_#defineLCD_DB7 PORTB,5 ;占用的I/O口定義 #defineLCD_DB6 PORTB,4 ;該行硬

3、件連接:LCD的DB6與RB4連接,其它類推#defineLCD_DB5 PORTB,3 ;#defineLCD_DB4 PORTB,2 ;#defineLCD_E PORTA,5 ;#defineLCD_RS PORTB,1 ;#defineLCD_DB7_DIRTRISB,5 ;對(duì)應(yīng)的方向寄存器定義#defineLCD_DB6_DIRTRISB,4 ;#defineLCD_DB5_DIRTRISB,3 ;#defineLCD_DB4_DIRTRISB,2 ;#defineLCD_E_DIRTRISA,5 ;#defineLCD_RS_DIRTRISB,1 ; ;_; LCD 模塊命令#de

4、fineDISP_ON0_00C; 開顯示#defineDISP_ON_C0_00E; 開顯示, 開指針#defineDISP_ON_B0_00F; 開顯示, 開指針,開閃爍#defineDISP_OFF0_008; 關(guān)顯示#defineCLR_DISP0_001; 清顯示的操作數(shù)#defineENTRY_INC0_006; 操作數(shù)#defineENTRY_INC_S0_007; 操作數(shù)#defineENTRY_DEC0_004; 操作數(shù)#defineENTRY_DEC_S0_005; 操作數(shù)#defineDD_RAM_ADDR0_080; 初始化第一行顯示的操作數(shù)#defineDD_RAM_

5、UL0_0c0; 初始化第二行顯示的操作數(shù)ORG 0_0;NOP;NOP;NOP;clrf INTCONcall InitLCDcall clrLCD movlwDD_RAM_ADDR ;設(shè)置起始地址callSendCmdMOVLW ' 'CALL PUTCLCD;MOVLW 'L'CALL PUTCLCD;MOVLW 'i' CALL PUTCLCD;MOVLW 'a'CALL PUTCLCD;MOVLW 'n'CALL PUTCLCD;MOVLW 's 'CALL PUT

6、CLCD;MOVLW 'o'CALL PUTCLCD;MOVLW n'CALL PUTCLCD;MOVLW 'g'CALL PUTCLCD;MOVLW ' 'CALL PUTCLCD;MOVLW ' 'CALL PUTCLCD;movlwDD_RAM_UL ;設(shè)置起始地址callSendCmdMOVLW ' 'CALL PUTCLCD;MOVLW ' 'CALL PUTCLCD;MOVLW '2'CALL PUTCLCD;MOVLW '

7、0'CALL PUTCLCD;MOVLW '0'CALL PUTCLCD;MOVLW '7'CALL PUTCLCD;MOVLW '2'CALL PUTCLCD;MOVLW '1'CALL PUTCLCD;MOVLW '2'CALL PUTCLCD;MOVLW '1'CALL PUTCLCD;MOVLW '0'CALL PUTCLCD;MOVLW 1'CALL PUTCLCD;MOVLW '6'CALL PUTCLC

8、D;GOTO $;InitLCD 初始化LCD模塊 InitLCDbsfSTATUS,RP0 ;Bank 1bcfSTATUS,RP1 ;初始化相關(guān)I/O引腳MOVLW B;ANDWF TRISB,F; bcf LCD_E_DIRMOVLW 0_07MOVWF 0_1C;CMCON=7bcf STATUS,RP0 ;Bank 0MOVLW B;ANDWF TRISB,F; bcf LCD_E bsf LCD_E ;清數(shù)據(jù)線bcf LCD_Ebsf LCD_DB5 ;設(shè)置LCD工作方式bsf LCD_Ebcf LCD_EcallLongDelaymovlw0_28 ;再次設(shè)置工作方式callSe

9、ndCmd ;四位數(shù)據(jù)總線,兩行顯示,5_7點(diǎn)陣字符movlwDISP_ON ;開顯示callSendCmd movlwENTRY_INC ;設(shè)置指針移動(dòng)方式callSendCmdcallclrLCD ;清屏return;_putcLCD 將字符數(shù)據(jù)送入 LCD _;_本程序?qū)⒆址麛?shù)據(jù)分成了高半字節(jié)和低半字節(jié)分別輸入 _;_先送入的是高半字節(jié) _PUTCLCDbsf LCD_RS ;設(shè)置為送數(shù)據(jù)模式movwf Byte ;存 WREG 到 Byte 寄存器call write ;寫入高半字節(jié)swapf Byte,F ;送入數(shù)據(jù)的低字節(jié)call write ;接著送低半字節(jié)call Delayr

10、eturn;_;_SendCmd - 送命令到 LCD _;_本程序?qū)⒚顢?shù)據(jù)分成了高半字節(jié)和低半字節(jié)分別輸入 _;_先送入的是高半字節(jié) _;_SendCmdbcfLCD_RS ;設(shè)置為送命令模式,與PUTCLCD僅相差此行movwfByte ;存 WREG 到 Byte 寄存器call write ;送入命令的高字節(jié)swapfByte,F ;送入命令的低字節(jié)call writecallDelayreturn;_;_clrLCD - 清除 LCD 顯示 _;_clrLCDmovlwCLR_DISP; callSendCmdreturn;_;_write - 送半個(gè)字節(jié)數(shù)據(jù);_writeMOVF

11、 BYTE,W;MOVWF BYTESH;BTFSS PORTB,1;JUGDE RS,AND SAVE TO BYTESH,3GOTO BCFRS;BSF BYTESH,3;GOTO GOGOGO;BCFRS BCF BYTESH,3;GOGOGO ;MOVLW B;ANDWF PORTB,F;bcf LCD_DB7;bcf LCD_DB6;bcf LCD_DB5;bcf LCD_DB4MOVLW 0_F8;ANDWF BYTESH,F;BCF STATUS,C; RRF BYTESH,F;RRF BYTESH,F; MOVF BYTESH,W;MOVWF PORTB;CALL DELAY;

12、btfsc Byte,7 ;寫入半字節(jié);bsf LCD_DB7;btfsc Byte,6;bsf LCD_DB6;btfsc Byte,5;bsf LCD_DB5;btfsc Byte,4;bsf LCD_DB4bsf LCD_E ;發(fā)送數(shù)據(jù)信號(hào)bcf LCD_Ereturn;_Delay; call指令占用2個(gè)指令周期clrfCount; 清 Count占用1個(gè)指令周期DloopdecfszCount,f; 這兩行指令將延時(shí)gotoDloop; (256 _3) -1 個(gè)指令周期return; return占用2個(gè)指令周期LongDelay ; call指令占用2個(gè)指令周期clrfCount ; 清 Count占用1個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論