急求 单片机9279子程序 INIT8279,SCAN_KEY,Display8

来源:百度知道 编辑:UC知道 时间:2024/06/02 05:01:03
我是单片机菜鸟 最近有个课题需要整合一个8279的程序 需要INIT8279,SCAN_KEY,Display8这3个子程序
INIT8279: MOV A,#34H ;可编程时钟设置,设置分频系数(20分频)
MOVX @DPTR,A
CLR A ;8*8字符显示,左边输入,外部译码键扫描方式
MOV DPTR,#CMD_8279 ;CMD_8279为写命令地址、读状地址
MOVX @DPTR,A
SCAN_KEY: MOV DPTR,#CMD_8279
MOVX A,@DPTR ;读状态
Display8: PUSH 07H
MOV DPTR,#LED_TAB
MOV P2,#HIGH(CMD_8279)
MOV R1,#LOW(CMD_8279)
MOV A,#90H
MOVX @R1,A ;第一位开始显示
MOV R1,#LOW(DATA_8279)
MOV R7,#8
不知道是不是这3个 如果是请高手知道下怎么添加 是添加在程序最后么 我添加了 可是调试程序时 老提示我添加的3个子程序又错误
谢谢了

下面的程序是我在大学时写的程序显示程序,已通过测试,供参考。
;#########################################
STATE_8279 EQU 0301H ;命令口地址
DATA_8279 EQU 0300H ;数据口地址
TIME_STATE_8279 EQU 32H ;20分频
KEY_DISP_STATE EQU 00H ;显示方式命令字,8字符左边输入,编码扫描键盘,双键锁定
CLR_STATE EQU 0D1H ;清除命令字
READ_FIFO_RAM EQU 40H ;
KEY_FLAGE BIT 00H ;键标志位
DISP_ADD DATA 70H ;显示命令字
ORG 0000H
LJMP START
ORG 0030H
START:
MOV SP,#40H
LCALL INIT8279
CALL DISP
SACN_HERE:
LCALL SCAN_KEY
LCALL DISP1
LJMP SACN_HERE
;#####################8279初始化###################
INIT8279:
MOV DPTR,#STATE_8279
MOV A,#CLR_STATE
MOVX @DPTR,A
WAIT: MOVX A,@DPTR
JB ACC.7,WAIT
MOV A,#TIME_STATE_8279
MOVX @DPTR,A
MOV A,#KEY_DISP_STATE
MOVX @DPTR,A
RET

;###################键扫子程序##########################
SCAN_KEY:
MOV DPTR,#STATE_8279
MOVX A,@DPTR
ANL A,#07H ;屏蔽D7-