现在就是加第二行数据表调用就是到AJMP $这儿停不下来还重新刷写,请教下老哥们
单片机源程序如下:
- ;1602液晶屏显示程序
- ;====定义控制线端口=======
- ;P2.0-P2.7为数据 D0-D7接口
- ;RS数据/命令选择端 H/L
- ;RW读/写选择端 H/L
- ;EN使能控制端 H/L 开/关
- RS EQU P0.0 ;等值指令(起外号)
- RW EQU P0.1 ;等值指令(起外号)
- EN EQU P0.2 ;等值指令(起外号)
- ORG 00H ;定义起始地址位置
- JMP MAIN ;跳转主程序
- ORG 30H ;开始主程序地址位置
- /*主程序*/;==========================
- MAIN: MOV SP,60H ;设置堆栈指针地址位置
- CALL CHUSHIHUA ;调用1602初始化
- WW: MOV A,#80H ;设置1602显示的地址位置行(第一行80H--90H 第二行0C0H--0D0H)
- LCALL XIE ;调用指令子程序写入显示地址的数据
- /* MOV A,#"A" ;需要显示的东西
- CALL XIE1 ;调用显示子程序*/
- CALL SHU1 ;调用数据表
- MOV A,#0C0H ;把第二行地址写入A中
- LCALL XIE ;调用第二行进行显示
- CALL SHU2 ;调用数据表1
- AJMP [ DISCUZ_CODE_3 ]nbsp;
- /*调用数据表显示程序*/;===============
- SHU1: MOV R0,#00H ;00送给R0
- AAA: MOV A,R0 ;A中数为00
- MOV DPTR,#TAB ;数据表地址装入DPTR中
- MOVC A,@A+DPTR ;数据表数据装入A中
- CALL XIE1 ;调用数据进行写入
- INC R0 ;R0+1吧下一个数据调入
- CJNE R0,#16D,AAA ;显示16个数据
- RET ;返回主程序
- /*调数据表1显示程序*/;===============
- SHU2: MOV R1,#00H ;00送给R0
- AAB: MOV A,R1 ;A中数为00
- MOV DPTR,#TAB1 ;数据表1地址装入DPTR中
- MOVC A,@A+DPTR ;数据表数据装入A中
- CALL XIE1 ;调用数据进行写入
- INC R1 ;R0+1吧下一个数据调入
- CJNE R1,#16D,AAB ;显示16个数据
- RET ;返回主程序
- /*1602初始化程序*/;===================
- CHUSHIHUA: CALL YANSHI ;调用延时
- MOV A,#38H ;写显示模式设置 16X2显示,5X7点阵,8位数据接口
- CALL XIE ;调用写指令子程序
- MOV A,#01H ;显示清屏(数据指针地址和所有显示清0)
- CALL XIE ;调用写指令子程序
- MOV A,#06H ;显示光标移动设置为当写一个字符后地址指针加1且光标加1
- CALL XIE ;调用写指令子程序
- MOV A,#0CH ;显示开及光标设置为开显示 不显示光标 光标不显示
- CALL XIE ;调用写子程序
- RET ;返回主程序
- /*写数据程序*/;=======================
- XIE1: SETB RS ;置1
- CLR RW ;置0
- CLR EN ;置0
- MOV P2,A ;写数据到P2口
- CALL YANSHI;调用延时
- SETB EN ;置1开启使能
- CALL YANSHI;调用延时
- CLR EN ;关使能
- CALL YANSHI;调用延时
- RET ;返回主程序
- /*写指令命令程序*/;=======================
- XIE: CLR RS ;置0
- CLR RW ;置0
- CLR EN ;置0
- MOV P2,A ;写指令数据到P2口
- CALL YANSHI;调用延时
- SETB EN ;开启使能
- CALL YANSHI;调用延时
- CLR EN ;关闭使能
- CALL YANSHI;调用延时
- RET ;返回主程序
- /*延时程序*/;========================
- YANSHI: MOV R7,#0F0H
- AA: MOV R6,#0D2H
- DJNZ R6,$
- DJNZ R7,AA
- RET
- /*数据表第一行*/;====================
- TAB: DB "welcome-to-1602-"
- /*数据表第二行*/;====================
- TAB1: DB "www点dfhw123点com "
- END
复制代码
|