下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、;*LCD模塊測試程序* ;編程:劉鋼 ;日期:2005/1/21 ;*器件說明* ;用PIC16F877A驅(qū)動LCD模塊 ;LCD模塊,型號:ST1620-1 ;LCD模塊初始化,由廠家提供的資料顯示,其初始化過程為: ;1-延時15ms ;2-寫指令38H(寫入之前不用檢測Busy信號 ;3-延時5ms ;4-再次寫入38H指令(寫入之前不用檢測Busy信號,至于為什么要重復(fù)寫入現(xiàn)在不清楚,而且下面還要寫一次. ;5-延時5ms ;4-再次寫入38H指令(寫入之前不用檢測Busy信號 ;5-檢測Busy信號; ;6-寫指令38H,此條指令是將LCD顯示模塊設(shè)置為8位數(shù)據(jù)線,雙行,5X7點(diǎn)陣
2、顯示 ;7-檢測Busy信號; ;8-寫指令08H,關(guān)閉顯示 ;9-檢測Busy信號; ;10-寫指令01H,顯示清屏 ;以后寫入光標(biāo)等的控制指令. ;* LIST P=PIC16F877A ;告訴匯編器所要匯編的器件型號 INCLUDE "P16F877.INC" ;匯編程序的頭文件 ;設(shè)置單片機(jī)的特殊存儲器位,使用HS(高速晶振,打開上電延時復(fù)位功能, ;關(guān)閉看門狗,關(guān)閉低電壓編程功能. _CONFIG _HS_OSC &_PWRTE_ON&_WDT_OFF&_LVP_OFF ;注意:在CONFIG前面一定要加上兩條下畫線,否則匯編時會出錯! ;
3、* LCD_RS EQU 02H LCD_RW EQU 01H LCD_E EQU 00H COUNT1 EQU 020H COUNT2 EQU 021H COUNT3 EQU 022H COUNT4 EQU 023H DATA_TEMP EQU 041H DATADO EQU 042H ;* ORG 0000H ;上電復(fù)位初始地址 GOTO MAIN ;* ORG 0010H ;主程序起始地址 MAIN ;初始化端口 BANKSEL ADCON1 ;選擇體1 BCF INTCON,GIE ;關(guān)閉中斷 MOVLW 07H MOVWF ADCON1 ;上電時有A/D轉(zhuǎn)換功能的端子全部被設(shè)為了A狀
4、態(tài), MOVLW 0XFF MOVWF TRISA ;暫時將A口設(shè)為輸入 CLRF TRISB ;設(shè)B口為輸出 CLRF TRISC ;設(shè)C口為輸出 CLRF TRISE ;設(shè)E口為普通I/O口,RE0-RE2為輸出口 MOVLW 0XFF MOVWF TRISD ;暫時將D口設(shè)為輸入 BANKSEL PORTC ;選擇體0 ;初始化LCD模塊* CALL DELAYTIME10 ;LCD上電延時15秒鐘,使LCD上建立工作所需電壓. CALL DELAYTIME10 MOVLW 038H ;寫入38H指令,本來在此不用檢測Busy信號(在COMAND_WR子程序 CALL COMAND_WR
5、 ;中包含有檢測Busy信號的子程序,但此處不想單獨(dú)編寫命令寫 ;入程序,所以全部用同一個命令寫入子程序. CALL DELAYTIME5 MOVLW 038H ;再次寫 入38H指令(寫入之前不用檢測Busy信號,至于為什么要 CALL COMAND_WR ;重復(fù)寫入現(xiàn)在不清楚,而且下面還要寫一次. CALL DELAYTIME5 MOVLW 038H CALL COMAND_WR CALL DELAYTIME5 MOVLW 038H CALL COMAND_WR MOVLW 08H ;并閉LCD模塊的顯示. CALL COMAND_WR MOVLW 01H ;清LCD模塊顯示. CALL
6、COMAND_WR MOVLW 06H ;將模塊設(shè)為向顯示數(shù)據(jù)存貯器寫入一個數(shù)據(jù)后,地址或光標(biāo)加 CALL COMAND_WR ;1,即后寫入的字符處于顯示屏的右邊. ;以下為LCD顯示測試程序* ;為了使程序具有通用性,所以將命令字的寫入,數(shù)據(jù)的寫入與讀出程序都做成了子程序. MOVLW 0CH ;開LCD模塊的顯示 CALL COMAND_WR LCD_DISPLAY MOVLW 080H ;設(shè)置第一行字符從第一位開始顯示.由于已經(jīng)將指針 CALL COMAND_WR ;設(shè)為了每向顯示存貯器寫入一個數(shù)據(jù)指針加1,所以越 ;后寫入的數(shù)據(jù)會越靠近右邊.另外,由于在LCD模塊的 ;初始化時已經(jīng)寫
7、入了清顯示命令,光標(biāo)及顯示存貯器 ;的地址指針已回到了00H,所以在此處不寫入此段命令 ;也可以. CALL LCD_DISPLAY1 ;顯示第一行字符 MOVLW 0C0H ;設(shè)置第二行字符從第一位開始顯示. CALL COMAND_WR CALL LCD_DISPLAY2 DISPLAY_LOOP CALL SWAP ;讀出LCD顯示數(shù)據(jù)存貯器中的字符數(shù)據(jù)并移位. CALL DELAYTIME250 ;延時. MOVLW 0C0H ;寫入顯示數(shù)據(jù)存貯器的首地址. CALL COMAND_WR MOVLW 030H ;數(shù)據(jù)表指針. MOVWF FSR WR_LOOP MOVF INDF,W
8、;將數(shù)據(jù)表中的數(shù)據(jù)寫入到LCD模塊顯示數(shù)據(jù)存貯器中. CALL DATA_WR INCF FSR MOVF FSR,W SUBLW 040H ;是否已經(jīng)將16個字符數(shù)據(jù)全部寫入到LCD模塊中. BTFSS STATUS,Z GOTO WR_LOOP ;沒有寫完則返回繼續(xù)寫入. GOTO DISPLAY_LOOP ;*以下為各子程序* ;移位子程序 ;程序功能:使字符向左流動并循環(huán)顯示.在本程序中,只是第二行的字符會流動顯示,第一行字符固定顯示. ;移位原理:將LCD模塊的顯示存貯器內(nèi)的40H4FH(對應(yīng)第二行顯示存貯器的第1字符到第16字符數(shù)據(jù)讀出, ; 依次放置于地址為30H3FH的數(shù)據(jù)寄存
9、器器中,然后將其整體向下 移一位.以達(dá)到字符流動顯示的 ; 效果,并將40H中的數(shù)據(jù)取出放入30H中,以達(dá)到循環(huán)的效果. SWAP MOVLW 030H ;設(shè)置數(shù)據(jù)表(30H40H寄存器指針起始值 MOVWF FSR ;數(shù)據(jù)表指針. MOVLW 0C0H ;設(shè)置想要讀出的LCD模塊的顯示存貯器的起始地址,此處的C0H對 ;應(yīng)LCD模塊第二行的第1個字符 CALL COMAND_WR READ CALL DATA_RD ;調(diào)數(shù)據(jù)讀出子程序從LCD模塊的顯示存貯器中讀出數(shù)據(jù),每讀一次 ;LCD顯示存貯器的地址指針會自動加1,不用人工干預(yù). MOVF DATA_TEMP,W ;將子程序讀出的數(shù)據(jù)存于
10、W中. MOVWF INDF ;用間接尋址指令將讀出的數(shù)據(jù)存入以FSR為指針的寄存器中. INCF FSR ;將指針加1,指向下一個寄存器. MOVF FSR,W ;檢查指針數(shù)值是否達(dá)到40H,如果達(dá)到40H表明已經(jīng)讀出了16個數(shù)據(jù) SUBLW 040H ;將指針數(shù)據(jù)與40H相減. BTFSS STATUS,Z ;如果為零則狀態(tài)寄存器的Z位置1. GOTO READ ;如果不為零則表示還沒有讀出16個數(shù)據(jù),轉(zhuǎn)回再繼續(xù)讀出. MOVLW 03FH MOVWF FSR ;設(shè)置寄存器指針,這次的指針用于移位. RD_LOOP MOVF INDF,W ;將指針?biāo)傅募拇嫫髦械臄?shù)據(jù)取出. INCF FS
11、R ;將指針加1. MOVWF INDF ;將先前從寄存器中取出的數(shù)據(jù)寫入到下一個寄存器中(因為指針被加1. DECF FSR ;將指針減1,消去剛才加上的1. DECF FSR ;將指針減1,指向上一個寄存器. MOVF FSR,W SUBLW 02FH ;判斷移位16個數(shù)據(jù) BTFSS STATUS,Z GOTO RD_LOOP ;如果移位沒有完成則繼續(xù)移位. MOVF 040H,W ;將40H中的數(shù)據(jù)(實際是移位前3FH中的數(shù)據(jù)放入30H中,以達(dá)到循環(huán)的效果. MOVWF 030H RETURN ;顯示子程序* LCD_DISPLAY1 ;LCD模塊第一行字符顯示子程序,顯示"
12、*LS Liengsing*" ;由于每向LCD模塊的顯示存貯器中寫入一個字符模塊的顯示存貯器地址指針就加1,不用人工干預(yù). MOVLW '*' CALL DATA_WR MOVLW '*' CALL DATA_WR MOVLW 'L' CALL DATA_WR MOVLW 'S' CALL DATA_WR MOVLW ' ' CALL DATA_WR MOVLW ' ' CALL DATA_WR MOVLW 'E' CALL DATA_WR MOVLW 'n
13、9; CALL DATA_WR MOVLW 'g' CALL DATA_WR MOVLW 'i' CALL DATA_WR MOVLW 'n' CALL DATA_ WR MOVLW 'e' CALL DATA_WR MOVLW 'e' CALL DATA_WR MOVLW 'r' CALL DATA_WR MOVLW '*' CALL DATA_WR MOVLW '*' CALL DATA_WR RETURN LCD_DISPLAY2 ;LCD模塊第二行字符顯示子程
14、序,顯示"*Liu Gang*" MOVLW '*' CALL DATA_WR MOVLW '*' CALL DATA_WR MOVLW '*' CALL DATA_WR MOVLW '*' CALL DATA_WR MOVLW 'L' CALL DATA_WR MOVLW 'i' CALL DATA_WR MOVLW 'u' CALL DATA_WR MOVLW ' ' CALL DATA_WR MOVLW 'G' CALL DA
15、TA_WR MOVLW 'a' CALL DATA_WR MOVLW 'n' CALL DATA_WR MOVLW 'g' CALL DATA_WR MOVLW '*' CALL DATA_WR MOVLW '*' CALL DATA_WR MOVLW '*' CALL DATA_WR MOVLW '*' CALL DATA_WR RETURN INCLUDE "TS1620SUBPRG_A8.ASM" ; 以下為延時子程序 * DELAYTIME5 MOVLW
16、D'51 MOVWF COUNT2 LOOP01 MOVLW D'255 MOVWF COUNT3 LOOP02 DECFSZ COUNT3 GOTO LOOP02 DECFSZ COUNT2 GOTO LOOP01 RETURN ;* DELAYTIME10 MOVLW D'101 MOVWF COUNT2 LOOP11 MOVLW D'255 MOVWF COUNT3 LOOP12 DECFSZ COUNT3 GOTO LOOP12 DECFSZ COUNT2 GOTO LOOP11 RETURN ;* DELAYTIME500 MOVLW D'20 MOVWF COUNT4 LOOP21 MOVLW D'255 MOVWF COUNT3 LOOP22 MOVLW D'255 MOVWF COUNT2 LOOP23 DECFSZ COUNT2 GOTO LOOP23 DECFSZ COUN
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度綠色環(huán)?;疱伒昙用私?jīng)營授權(quán)合同
- 員工安全素養(yǎng)的提升安全意識培養(yǎng)考核試卷
- 2025-2030全球聚氨酯三防漆行業(yè)調(diào)研及趨勢分析報告
- 速凍水餃課程設(shè)計
- 高中詞匯課程設(shè)計
- 項目評估課程設(shè)計范本
- 長沙現(xiàn)代物流課程設(shè)計
- 語文復(fù)習(xí)技巧課程設(shè)計
- 預(yù)應(yīng)力混凝土t課程設(shè)計
- 早教中心元宵課程設(shè)計
- 服務(wù)經(jīng)營培訓(xùn)課件ppt 老客戶經(jīng)營綜合版
- MT/T 199-1996煤礦用液壓鉆車通用技術(shù)條件
- GB/T 6144-1985合成切削液
- GB/T 10357.1-2013家具力學(xué)性能試驗第1部分:桌類強(qiáng)度和耐久性
- 第三方在線糾紛解決機(jī)制(ODR)述評,國際商法論文
- 公寓de全人物攻略本為個人愛好而制成如需轉(zhuǎn)載注明信息
- 第5章-群體-團(tuán)隊溝通-管理溝通
- 腎臟病飲食依從行為量表(RABQ)附有答案
- 深基坑-安全教育課件
- 園林施工管理大型園林集團(tuán)南部區(qū)域養(yǎng)護(hù)標(biāo)準(zhǔn)圖例
- 排水許可申請表
評論
0/150
提交評論