|
現(xiàn)在就是加第二行數(shù)據(jù)表調(diào)用就是到AJMP $這兒停不下來(lái)還重新刷寫(xiě),請(qǐng)教下老哥們
QQ圖片20190520163139.jpg (3.02 MB, 下載次數(shù): 34)
下載附件
2019-5-20 22:32 上傳
QQ圖片20190520163132.jpg (2.91 MB, 下載次數(shù): 44)
下載附件
2019-5-20 22:31 上傳
單片機(jī)源程序如下:
- ;1602液晶屏顯示程序
- ;====定義控制線端口=======
- ;P2.0-P2.7為數(shù)據(jù) D0-D7接口
- ;RS數(shù)據(jù)/命令選擇端 H/L
- ;RW讀/寫(xiě)選擇端 H/L
- ;EN使能控制端 H/L 開(kāi)/關(guān)
- RS EQU P0.0 ;等值指令(起外號(hào))
- RW EQU P0.1 ;等值指令(起外號(hào))
- EN EQU P0.2 ;等值指令(起外號(hào))
- ORG 00H ;定義起始地址位置
- JMP MAIN ;跳轉(zhuǎn)主程序
- ORG 30H ;開(kāi)始主程序地址位置
- /*主程序*/;==========================
- MAIN: MOV SP,60H ;設(shè)置堆棧指針地址位置
- CALL CHUSHIHUA ;調(diào)用1602初始化
- WW: MOV A,#80H ;設(shè)置1602顯示的地址位置行(第一行80H--90H 第二行0C0H--0D0H)
- LCALL XIE ;調(diào)用指令子程序?qū)懭腼@示地址的數(shù)據(jù)
- /* MOV A,#"A" ;需要顯示的東西
- CALL XIE1 ;調(diào)用顯示子程序*/
- CALL SHU1 ;調(diào)用數(shù)據(jù)表
- MOV A,#0C0H ;把第二行地址寫(xiě)入A中
- LCALL XIE ;調(diào)用第二行進(jìn)行顯示
- CALL SHU2 ;調(diào)用數(shù)據(jù)表1
- AJMP [ DISCUZ_CODE_3 ]nbsp;
- /*調(diào)用數(shù)據(jù)表顯示程序*/;===============
- SHU1: MOV R0,#00H ;00送給R0
- AAA: MOV A,R0 ;A中數(shù)為00
- MOV DPTR,#TAB ;數(shù)據(jù)表地址裝入DPTR中
- MOVC A,@A+DPTR ;數(shù)據(jù)表數(shù)據(jù)裝入A中
- CALL XIE1 ;調(diào)用數(shù)據(jù)進(jìn)行寫(xiě)入
- INC R0 ;R0+1吧下一個(gè)數(shù)據(jù)調(diào)入
- CJNE R0,#16D,AAA ;顯示16個(gè)數(shù)據(jù)
- RET ;返回主程序
- /*調(diào)數(shù)據(jù)表1顯示程序*/;===============
- SHU2: MOV R1,#00H ;00送給R0
- AAB: MOV A,R1 ;A中數(shù)為00
- MOV DPTR,#TAB1 ;數(shù)據(jù)表1地址裝入DPTR中
- MOVC A,@A+DPTR ;數(shù)據(jù)表數(shù)據(jù)裝入A中
- CALL XIE1 ;調(diào)用數(shù)據(jù)進(jìn)行寫(xiě)入
- INC R1 ;R0+1吧下一個(gè)數(shù)據(jù)調(diào)入
- CJNE R1,#16D,AAB ;顯示16個(gè)數(shù)據(jù)
- RET ;返回主程序
- /*1602初始化程序*/;===================
- CHUSHIHUA: CALL YANSHI ;調(diào)用延時(shí)
- MOV A,#38H ;寫(xiě)顯示模式設(shè)置 16X2顯示,5X7點(diǎn)陣,8位數(shù)據(jù)接口
- CALL XIE ;調(diào)用寫(xiě)指令子程序
- MOV A,#01H ;顯示清屏(數(shù)據(jù)指針地址和所有顯示清0)
- CALL XIE ;調(diào)用寫(xiě)指令子程序
- MOV A,#06H ;顯示光標(biāo)移動(dòng)設(shè)置為當(dāng)寫(xiě)一個(gè)字符后地址指針加1且光標(biāo)加1
- CALL XIE ;調(diào)用寫(xiě)指令子程序
- MOV A,#0CH ;顯示開(kāi)及光標(biāo)設(shè)置為開(kāi)顯示 不顯示光標(biāo) 光標(biāo)不顯示
- CALL XIE ;調(diào)用寫(xiě)子程序
- RET ;返回主程序
- /*寫(xiě)數(shù)據(jù)程序*/;=======================
- XIE1: SETB RS ;置1
- CLR RW ;置0
- CLR EN ;置0
- MOV P2,A ;寫(xiě)數(shù)據(jù)到P2口
- CALL YANSHI;調(diào)用延時(shí)
- SETB EN ;置1開(kāi)啟使能
- CALL YANSHI;調(diào)用延時(shí)
- CLR EN ;關(guān)使能
- CALL YANSHI;調(diào)用延時(shí)
- RET ;返回主程序
- /*寫(xiě)指令命令程序*/;=======================
- XIE: CLR RS ;置0
- CLR RW ;置0
- CLR EN ;置0
- MOV P2,A ;寫(xiě)指令數(shù)據(jù)到P2口
- CALL YANSHI;調(diào)用延時(shí)
- SETB EN ;開(kāi)啟使能
- CALL YANSHI;調(diào)用延時(shí)
- CLR EN ;關(guān)閉使能
- CALL YANSHI;調(diào)用延時(shí)
- RET ;返回主程序
- /*延時(shí)程序*/;========================
- YANSHI: MOV R7,#0F0H
- AA: MOV R6,#0D2H
- DJNZ R6,$
- DJNZ R7,AA
- RET
- /*數(shù)據(jù)表第一行*/;====================
- TAB: DB "welcome-to-1602-"
- /*數(shù)據(jù)表第二行*/;====================
- TAB1: DB "www點(diǎn)dfhw123點(diǎn)com "
- END
復(fù)制代碼
|
|