文档详情

[第十章接口技术.doc

发布:2017-01-16约9.56千字共11页下载文档
文本预览下载声明
接口技术 在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
显示全部
相似文档