[第十章接口技术.doc
文本预览下载声明
接口技术
在80C51应用系统中扩展一片8255外界4位显示器和4位BCD码拨盘(参考题图10-1电路),试画出该部分的接口逻辑电路、并编写相应的显示子程序和读拨盘的子程序。
答:参考题图10-1设计电路如题图10-2所示,此外在PC0~3的各引脚上均接有一下拉电阻,图中省略没画。由题图10-2电路知A、B、C口和命令口地址分别如下:
ADDR_PORTA EQU 07FFCH ;A口地址
ADDR_PORTB EQU 07FFDH ;B口地址
ADDR.PORTC EQU 07FFEH ;C口地址
ADDR_CMND EQU 07FFFH ;命令口地址
;定义4个BCD码变量
CODE1 EQU 30 H
CODE2 EQU 31H
CODE3 EQU 32H
CODE4 EQU 33H
ORG 0030H
MOV A, ;设置8255的PA、PB口为输出
MOV DPTR,#ADDR_CMND ;PC口高4位为输出,低4位为输人
MOVX @DPTR,A
PRG_START:
MOV CODEl,#00H ;初始化4个BCD码值
MOV CODE2,#00H
MOV CODE3,#00H
MOV CODE4,#00H
MOV R3,#8FH ;置码盘扫描码初值
MOV R2,#04H ;置码盘扫描次数
FIND_CODE:
MOV DPTR,#ADDR_PORTC
MOV A,R3
MOVX @DPTR.A ;将码盘扫描码送出
MOVX A,@DPTR;读PC口低4位
MOV Rl,A ;暂存读数
MOV C,ACC.3
MOV A,CODEl
RLC A
MOV CODEI,A ;将ACC.3从左移人CODEl
MOV A,Rl ;取读数
MOV C,ACC.2
MOV A,CODE2
RLC A
MOV CODE2.A ;将ACC.2从左移人CODE2
MOV A,R l;取读数
MOV C,ACC.1
MOV A,CODE3
RLC A
MOV CODE3,A ;将ACC.l从左移人CODE3
MOV A,Rl ;取读数
MOV C,ACC.0
MOV A,CODE4
RLC A
MOV CODE4,A ;将ACC.0从左移人CODE4
MOV A,R3
CLR C
RRC A ;更改扫描位
MOV R3,A
DJNZ R2,FIND_CODE ;4次扫描末完,继续
MOV Rl,#CODEl ;将CODEl地址送Rl
MOV R2,#04H ;设置动态扫描位数
MOV R3,#0F7H ;设置当前扫描位
DSP_LP:
MOV A,#OFFH
MOV DPTR,#ADDR_PORTA
MOVX @DPTR,A ;关显示
MOV A,@Rl ;读当前地址内容
ADD A,#03H ;转换成段码
MOVC A,@A+PC
AJMP DSP_LPl
DM_TAB:
DB 03FH,006H,05BH,04FH,066H,06DH,07DH,007H
DB 07FH,06FH,000H,000H,000H,000H,000H,000H ;A~F不显示
DSP_LP1:
MOV
显示全部