第十章-接口技术

2026/1/27 17:39:08

第十章 接口技术

10.1 在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,#10000001B ;设置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 MOV A,Rl MOV C,ACC.2 MOV A,CODE2 RLC A

MOV CODE2.A MOV A,R MOV C,ACC.1 MOV A,CODE3 RLC A

MOV CODE3,A MOV A,Rl MOV C,ACC.0 MOV A,CODE4 RLC A

MOV CODE4,A MOV A,R3 CLR C

RRC A MOV R3,A

DJNZ R2,FIND_CODE MOV Rl,#CODEl MOV R2,#04H MOV R3,#0F7H DSP_LP:

MOV A,#OFFH

MOV DPTR,#ADDR_PORTA

MOVX @DPTR,A ;将码盘扫描码送出 ;暂存读数 ;将ACC.3从左移人CODEl ;取读数 ;将ACC.2从左移人CODE2 l;取读数 ;将ACC.l从左移人CODE3 ;取读数 ;将ACC.0从左移人CODE4 ;更改扫描位 ;4次扫描末完,继续 ;将CODEl地址送Rl ;设置动态扫描位数 ;设置当前扫描位 ;关显示

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 DPTR, # ADDR_PORTB ;设段码地址 MOVX @ DPTR, A ;将段码送出 MOV A,R3 ;取位码

MOV DPTR, #ADDR_PORTA ;设位码地址 MOVX @ DPTR, A ;将位码送出 RR A ;位码右移 MOV R3,A

ACALL DELAY_10MS ;调延时l0ms子程序(在此省略) DJNZ R2,DSP_LP ;显示未完,继续 AJMP PRG_START ;转去执行读码盘

10.2 用串行口扩展4个发光数码管显示电路,编程使数码管轮流显示\和

\,每秒钟变换一次。

答:根据题图10-3中电路,设计程序如下

ORG 0030H

CLR P1. 0 ;清显示 SETB P1. 0

MOV SCON,#00 H ;设置串口工作方式 EX10_2A:

MOV R1,#04H ;显示位数 MOV R2,#00H ;地址偏移量 EX10_2B:

MOV A,R2 ;取显示段码 ADD A,#03H MOVC A,@A+PC

AJMP EX10_2C ;跳转

DB 77H,7CH,39H,5EH ;A,B,C,D的段码(本例中为共阳极) EX10_2C:

MOV SBUF,A ;启动串口发送

JNB TI, $ ;等待一帧发送完毕 CLR TI ;清发送中断标志 INC R2 ;修改地址偏移量 DJNZ R1,EX10_2B ;一屏显示未完,继续 ACALL DELAY ;调15延时子程序(省略) MOV R1,#04H ;下一帧显示 MOV R2,#00H EX10_2D:

MOV A,R2 ADD A,#03H MOVC A,@A+PC

AJMP EX10_2E

DB 79H,71H,3DH,76H ;E,F,G,H的段码 EX10_2E:

MOV SBUF,A JNB TI, $ CLR T1 INC R2

DJNZ R1,EX10_2D

CALL DELAY ;调1s延时子程序(省略) AJMP EX10_2A ;循环

10.3 试说明非编码键盘的工作原理。为何要消除键抖动,又为何要等待键释放?

答:由非编码键盘所提供的行和列矩阵,通过接口电路或者单片机的I/O口与CPU相连。 CPU可以采用查询或中断方式了解有无键输人并检查是哪一个键按下,且将该键号送入 CPU。当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能。

由于目前,无论是按键或是键盘的大部分,都是利用机械触点的合、断作用。机械触点在闭合及断开瞬间由于弹性作用的影响,在闭合及断开即释放瞬间均有抖动过程,从而使电压信号也出现抖动。抖动时间长短与开关的机械特性有关。

按键的稳定闭合时间,由操作人员的按键动作所确定,一般为十分之几秒至几秒时间。在此期间电压信号将出现多次变化很容易产生误判。为了保证CPU对键的一次闭合仅作一次键输人处理,必须去除抖动影响。

当键释放时同样存在键抖动影响,为了确保键释放也需要等待和判别。

10.4 试设计一个用8255与16键键盘连接的接口电路,并编写键码识别程存。 答:由题图10-4电路知C口和命令口地址分别如下


第十章-接口技术.doc 将本文的Word文档下载到电脑
搜索更多关于: 第十章-接口技术 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219