单片机原理及接口技术课后习题第9章 答案Word文件下载.docx

上传人:b****3 文档编号:16570208 上传时间:2022-11-24 格式:DOCX 页数:32 大小:321.38KB
下载 相关 举报
单片机原理及接口技术课后习题第9章 答案Word文件下载.docx_第1页
第1页 / 共32页
单片机原理及接口技术课后习题第9章 答案Word文件下载.docx_第2页
第2页 / 共32页
单片机原理及接口技术课后习题第9章 答案Word文件下载.docx_第3页
第3页 / 共32页
单片机原理及接口技术课后习题第9章 答案Word文件下载.docx_第4页
第4页 / 共32页
单片机原理及接口技术课后习题第9章 答案Word文件下载.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

单片机原理及接口技术课后习题第9章 答案Word文件下载.docx

《单片机原理及接口技术课后习题第9章 答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术课后习题第9章 答案Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。

单片机原理及接口技术课后习题第9章 答案Word文件下载.docx

当为低电平时,DIR为高电平把A端数据传送至B端;

DIR为低电平,把B端数据传送至A端.在其她情况下不传送数据,并输出呈高阻态。

采用它为8051单片机扩展1个8位得输入口.

(1)          

(2)

图9-3 题6采用74LS245扩展输入口得2种电路

图9-3为采用74LS245扩展输人接口电路。

电路

(1)中,DIR上拉为高电平,74LS245数据传送方向强制为B端到A端,当P2、0为0时,且为低电平时,使能端为低电平,74LS245三态门打开,单片机CPU读取外设输入得数据。

其她情况下,74LS245得三态门呈高阻状态.

ﻩ电路

(2)中,只有单片机读取外设数据时,P2、0=0使74LS245得使能端有效,如果为低电平,把74LS245数据传送方向置为A端到B端,其A→B方向得三态门打开,单片机CPU读取外设输入得数据。

P2、0=1时,使能端无效,A端与B端处于隔离状态。

图9-3得2个电路都采用P2、0为片选,其输入口地址为0FEFFH(默认未用地址线为1)。

7、采用8155芯片为8051单片机系统扩展接口,外设为开关组(8个开关组成)与8个LED,每个开关控制1个LED。

现需要读取开关组得状态,并把其状态存储到8155芯片RAM中,若开关组得开关全部断开,则不记录。

设计接口电路并编制检测程序。

图9、4题7接口电路

接口电路如图9、4所示,8155得PB口用作读取开关组状态,PA口用作控制LED组,分配地址如下:

命令/状态寄存器:

0100H;

PA口:

0101H;

PB口:

0102H;

PA与PB口为基本输入输出方式。

K0控制LED0,K1控制LED1,以此类推.设存储开关状态得单元为STATE。

程序如下:

ﻩCMMDEQU 0100H

ﻩﻩPORTA EQU0101H

PORTBEQU0102H

ﻩPORTCEQU0103H

ﻩﻩSTATEEQU20H

MOVﻩA,#02H   ;

初始化,工作方式控制字

ﻩMOVDPTR,# 0100H ;

控制寄存器地址

ﻩMOVXDPTR,ﻩA ﻩ;

设置工作方式,初始化完成

MOV A,#0FFH

ﻩMOVDPTR,#0101H

ﻩﻩMOVXDPTR,A;

上电后,熄灭LED 

ﻩNOP

ﻩMOVSTATE,#0FFHﻩﻩ;

没有开关闭合

DETECT:

 MOVﻩDPTR,#0102Hﻩ ﻩ;

PB口地址

ﻩﻩMOVXA,DPTR ;

从PB口读开关状态

ﻩMOVﻩDPTR,#0101H;

PA口地址

ﻩMOVXDPTR,Aﻩﻩ;

从PA口输出控制LED指示灯

ﻩﻩNOP

ﻩCJNEA,#0FFH,VALID

ﻩSJMP DETECT

VALID:

ﻩMOV STATE,A;

ﻩ;

记录开关状态

AJMPDETECT

8、采用8255芯片为8051单片机系统扩展接口,外设为开关组(8个开关组成)与8个LED,每个开关对应1个LED。

现需要每隔50ms读取一次开关组得状态,并把其状态存储到内部RAM中。

设计接口电路并编制检测程序.假设系统晶振频率为12MHz。

图9、5 单片机与8255接口电路

ﻩ图9、5为接口电路,PA、PB、PC与控制寄存器地址分别为:

0000H、0001H、0002H与0003H。

根据开关K0~K7状态控制LED0~LED7得显示状态,K0控制LED0,依此类推.设置8255得工作方式,PA口外接开关,为方式0得输入,PB口外接LED,为方式0得输出,则工作方式控制字得标志位D7为1,D6~D3(A组):

0000,D2~D0(B组):

010,组合后得控制字为:

10000010,即82H。

设存储开关状态得单元为STATE,用定时器/计数器T0定时50ms,工作方式为方式1,初始值为:

,即3CB0H

ﻩPORTA EQU0100H

ﻩﻩPORTBEQU0101H

ﻩPORTCEQU0102H

CMMDEQU0103H

ﻩﻩSTATEEQU 20H

//mianprogram

ﻩﻩACALLIni8255;

ﻩACLLIniTimer0

WAIT:

JBC TF0,DETECT

SJMPWAIT

DETECT:

ﻩMOVTH0,#3CH

ﻩﻩMOVTL0,#0B0H

ﻩMOVﻩDPTR,#PortBﻩ ;

PB口地址

MOVXA,DPTR ﻩ;

从PB口读开关状态

ﻩMOVDPTR,#PortA ﻩ;

PA口地址

MOVX DPTR,Aﻩ;

NOP

ﻩMOVSTATE,A

AJMPWAIT

Ini8255:

MOVA,#82H  ;

初始化,工作方式控制字

ﻩﻩMOVﻩDPTR,#CMMD;

ﻩﻩMOVXDPTR,ﻩAﻩﻩ;

MOVA,#0FFH

ﻩﻩMOVDPTR,#PORTA

ﻩMOVX DPTR,A  ;

上电后,熄灭LED 

ﻩﻩﻩNOP

ﻩRET

IniTimer0:

ﻩMOVTMOD,#01H

ﻩﻩMOV TH0,#3CH

ﻩﻩMOVTL0,#0B0H

ﻩﻩﻩSETBTR0

ﻩRET

9、简述矩阵键盘得行列扫描与线反转法原理。

(1)行列扫描法:

在按键识别过程时,依次使行线输出电平,然后检查列线得输入电平,如果所有列线得输入全为高电平,则该行无按键按下;

如果不全为高电平,则被按下得按键在本行,且在输入电平变为低电平得列得交叉点上。

(2)线反转法:

ﻩ第一步,首先使行线为输入,列线为输出。

列线全部输出低电平,那么,行线中变为低电平得行线为按键所在得行。

第二步,使行线变为输出,列线变为输入。

行线输出全部为低电平,那么,列线中变为低电平得列线为按键所在得列。

10、一个简单计数器得电路原理图如图所示。

要求每按一次S键,计数器计数一次,计数值送P1口显示,采用单只数码管显示,计16次后从0开始。

图9、6 题10原理图

ﻩ1BITﻩP3、3

ﻩﻩVALUEEQU20H

ﻩORG0000H

ﻩLJMPMAIN

ﻩORG1000H

ﻩMAIN:

ﻩSETBP3、3

ﻩﻩMOVVALUE,#00

ﻩﻩACALL DISPﻩﻩﻩ;

初始化显示0

ﻩWAIT0:

ﻩJB S1,WAIT0;

ﻩﻩﻩACALLDEL10MS

WAIT1:

JBS1,WAIT1ﻩﻩ;

判断按下

ﻩWAIT2:

ﻩJNBS1,WAIT2;

ﻩACALLDEL10MS

ﻩWAIT3:

ﻩJNBS1,WAIT3ﻩ;

判断释放

INCVALUEﻩﻩ;

加1

ﻩANLVALUE,#00001111B;

仅显示低位

ﻩACALLDISPﻩﻩ;

显示

ﻩﻩSJMP WAIT0

//显示子程序

DISP:

MOV A,VALUEﻩﻩ;

取显示信息

ﻩMOVDPTR,#SEG_TABﻩﻩ;

字型码表得首地址

ﻩMOVCA,A+DPTRﻩ;

通过显示信息查其字型码

ﻩMOVP1,Aﻩ;

输出显示

NOP

ﻩﻩﻩRET

//延时子程序

DEL10MS:

MOVR5,#10

DELX:

ﻩMOVR6,#200ﻩ

DEL0:

ﻩNOP

ﻩﻩNOP

ﻩﻩﻩNOP

ﻩDJNZR6,DEL0

ﻩDJNZR5,DELX

ﻩRET

SEG_TAB:

DB0C0H,0F9H,0A4H,0B0H,99H, 92H, 82H,0F8H,80H,90H

     DB88H, 83H, 0C6H,0A1H,86H,8EH  ;

以下为显示字型码表,0~9,A~F

END

11、简述LED数码管得静态显示与动态显示原理。

(1)静态显示:

在多位静态显示时,各个LED数码管相互独立,公共端接地(共阴极)或接正电源(共阳极)。

每个数码管得8个显示字段控制端分别与一个8位并行输出口相连,只要输出口输出字型码,LED数码管就立即显示出相应得字符,并保持到输出口输出新得字型码。

ﻩ(2)动态显示:

多位LED数码管动态显示方式就是各个LED数码管一位一位地轮流显示。

在硬件电路上,各个数码管得显示字段控制端并联在一起,由一个8位并行输出口控制;

各个得LED数码管得公共端作为显示位得位选线,由另外得输出口控制.动态显示时,各个数码管分时轮流地被选通,即在某一时刻只选通一个数码管,并送出相应得字型码,并让该数码管稳定地显示一段短暂得时间,在下一时刻选通另一位数码管,并送出相应得字型码显示,并保持显示一段时间,如此循环,即可以在各个数码管上显示需要显示得字符.

 

图9、7LED数码管静态显示原理  图9、8LED数码管动态显示原理

12、用P1与P3口作为输出口,设计一个5位得LED数码管显示系统,并在显示器上显示“HELLO"

图9、9题12接口电路图

接口电路图如图9、9所示,用2片74LS245提高接口得驱动能力,LED数码管为共阴型。

ﻩﻩSEG_OUTEQUP3

BIT_OUTEQU P1

//====================================

ﻩORG0000H

LJMPSTART

ﻩﻩORG0030H

START:

ﻩMOVSP,#60H

ﻩﻩMOVﻩ20H,#40H//显示"

 HELLO"

对应字型表序号编码:

4012 23

ﻩMOV 21H,#12H

ﻩMOV22H,#23H

 MOVR1,#30H

MOV R0,#20H

ﻩCALLSPLIT

ﻩﻩINCR0

INCR1

CALLSPLIT

ﻩﻩINCR0

INCR1

ﻩCALLSPLIT

RED:

ﻩACALL DSPLY1

SJMPRED

//===================================

SPLIT:

ﻩMOVA,R0

ﻩﻩANLA,#0F0H

ﻩﻩSWAP A

ﻩMOVR1,A

ﻩﻩINCR1

ﻩMOVA,R0

ﻩANLA,#0FH

ﻩMOV R1,A

ﻩRETﻩ

//===========================================

//6位显示

DSPLY1:

ﻩMOV R0,   #30Hﻩﻩﻩ;

显示缓冲区地址

 MOVR2,  #11111110Bﻩ;

显示起始位置

REDO:

ACALL  DISPﻩﻩ;

显示1位

   ﻩMOV A,R2ﻩﻩ;

计算下一个显示位置

    ﻩRL  A

 MOV  R2,  A

  INC R0     ;

修改显示缓冲区地址指针

  ﻩXRL A, #10111111B;

6位显示完否

 JNZREDOﻩﻩ;

未完,继续显示

   RET ﻩﻩﻩ;

返回

//==========================================

ﻩ;

显示一位子程序

DISP:

ﻩMOVDPTR,ﻩ#LED_SEGﻩ;

字型码表首地址

 ﻩMOVﻩA,R0ﻩﻩ;

取显示数据

 ﻩMOVCA,A+DPTRﻩﻩ;

求显示数据得字型码

   MOV SEG_OUT,A;

输出字型码

  MOVA,ﻩR2ﻩﻩ;

取显示位置

  ﻩMOVﻩBIT_OUT,A;

  ACALLﻩDL1MS

ﻩMOV A,#0FFHﻩﻩﻩﻩ;

稳定显示1ms

   ﻩMOV BIT_OUT,A

RET

字型码表

LED_SEG:

ﻩDB 76H;

 Hﻩ序号:

00

ﻩﻩﻩDB 79Hﻩ;

 Eﻩﻩ序号:

01

ﻩﻩﻩDB38H ﻩ;

Lﻩﻩﻩ序号:

02

ﻩﻩDB3FHﻩ;

 0ﻩﻩ序号:

03

ﻩDB00H ;

BLANKﻩ序号:

04

DL1MS:

ﻩMOV R5,#200;

12M时延时1ms

DEL:

NOP

ﻩNOP

DJNZR5,DEL

RET

END

13、一个显示电路如图9、60所示。

请采用串行口方式0实现LED数码管得动态显示,在显示器上自左向右动态显示“654321"

,每个字符保持时间为0、1s。

图9、10习题13原题电路图

ﻩORG0000H

ﻩLJMP START

ﻩﻩORG 0030H

START:

ﻩMOVSP,#60H

ﻩﻩMOV20H,#12Hﻩ//显示数据

ﻩMOV21H,#34H

ﻩMOV22H,#56H

 ﻩMOV R1,#30H

ﻩﻩMOV R0,#20H

ﻩCALL SPLITﻩﻩ//分离BCD码

ﻩINCR1

CALLSPLIT

ﻩﻩINCR0

ﻩINC R1

CALL SPLIT  

RED:

ﻩACALLDISPLY

ﻩﻩSJMP RED

//===================================

SPLIT:

MOV A,R0

ﻩANLA,#0F0H

SWAPA

ﻩMOVR1,A

ﻩINCR1

ﻩMOVA,R0

ANL A,#0FH

ﻩMOVR1,A

ﻩRETﻩ

//================================

DISPLY:

MOVR0, #30Hﻩ;

显示缓冲区首地址

 MOV    R2,    #05Hﻩﻩ;

显示位置,最右端1位

NEXT:

 ﻩACALL DISP11ﻩﻩﻩ;

    INC  R0ﻩﻩﻩﻩ;

 ﻩDEC R2ﻩﻩﻩ;

计算下一位显示位置

   ﻩCJNE R2,#0FFH,NEXTﻩ;

6位显示完否?

     RETﻩﻩﻩﻩ;

显示完返回

;

显示1位子程序

DISP11:

MOVA, R0ﻩ;

 MOV   DPTR,#SEG_TAB

ﻩMOVC A,  A+DPTR;

取显示数据得字型码

 ﻩMOV SBUF,Aﻩﻩ;

GOON:

 JBCTI,  DPLY

   AJMP GOON

DPLY:

 MOVA,R2

 MOV P1,Aﻩﻩ;

输出显示位置

 ﻩACALLDL100MSﻩﻩﻩ;

延时

ﻩMOVP1,#07H

ﻩﻩRET

ﻩﻩ;

SEG_TAB:

DB 0C0H, 0F9H,0A4H,0B0H, 99H, 92H, 82H, 0F8H,80H, 90H

   DB88H,83H,0C6H, 0A1H, 86H,8EH

//====================================

DL1MS:

MOVR5,#200;

ﻩ12M时延时1ms

ﻩNOP

ﻩﻩNOP

DJNZR5,DEL

RET

DL100MS:

MOVR6,#100

DELX0:

ﻩACALLDL1MS

ﻩDJNZ R6,DELX0

ﻩﻩRET

ﻩENDﻩ

14、采用8155或8255扩展I/O口,设计一个显示电路显示“654321”。

  图9、11 采用8255扩展得LED数码管动态显示接口电路

图9、11为采用8255扩展得LED数码管动态显示接口电路.图中PA口用于输出字型码,PB口用于输出显示位置,LED数码管为共阴型,显示位置采用译码器译码得方式实现。

在电路中采用同相缓冲器74LS07提高PA口得驱动能力,同相驱动器SN75451用于驱动显示器得公共端。

电路中8255得PA与PB口处于基本输入/输出方式得输出模式,PA口地址为0000H,PB口为0001H,命令寄存器地址为0003H。

定义SEG_OUT为PA口地址,BIT_OUT为PB口地址.程序如下:

//定义区

SEG_OUTEQU0000H //PortA输出字型码

BIT_OUTEQU0001H//PortB输出位控码

PortC EQU 0002H//

ﻩCMMD EQU0003H//命令寄存器地址

//========================

ORG0000H

ﻩﻩLJMP START

ﻩORG 0030H

START:

ﻩMOVSP,#60H

ﻩMOVDPTR,#CMMDﻩ//8255初始化

ﻩMOVA,#10000000B //方式0,A/B/C口为输出

ﻩﻩMOVXDPTR,A

ﻩNOP

MOVﻩ20H,#12Hﻩ//显示数据

ﻩMOV 21H,#24H

ﻩMOV22H,#56H

   MOV R1,#30H

ﻩﻩMOV R0,#20H

ﻩCALLSPLIT

ﻩINCR0

ﻩINC R1

ﻩCALL SPLIT

INC R0

ﻩﻩINCR1

ﻩﻩCALLSPLIT

RED:

ACALLDSPLY2

ﻩﻩSJMPRED

//===================================

SPLIT:

MOVA,R0

ANLA,#0F0H

ﻩSWAPA

ﻩMOVR1,A

ﻩﻩINCR1

MOVA,R0

ﻩﻩANLA,#0FH

ﻩﻩMOV R1,A

ﻩﻩRETﻩ

//===========================================

DSPLY2:

MOVR0,#30Hﻩﻩﻩ;

   MOVR2, #00000000Bﻩ;

REDO:

ACALL DISPﻩ;

ﻩﻩINCR2ﻩﻩﻩﻩ;

计算下一次得显示位置

 INCR0      ;

修改显示缓冲区指针

    CJNE R2,#06H, ﻩREDOﻩ;

6位显示完否?

  ﻩRET ﻩﻩﻩﻩ;

显示结束返回

//==========================================

ﻩ;

DISP:

ﻩMOVﻩDPTR,ﻩ#LED_SEG;

 ﻩMOVﻩA,ﻩR0ﻩﻩﻩ;

 ﻩMOVCA,A+DPTR;

 MOV ﻩDPTR,ﻩ#SEG_OUT;

字型码输出口地址

ﻩMOVXDPTR,Aﻩﻩ;

  ﻩMOVA,ﻩR2ﻩ;

  ﻩMOV DPTR,ﻩ#BIT_OUT;

显示位置输出口地址

  MOVXDPTR,ﻩAﻩ;

 ACALLDL1MS

ﻩMOV A,#0FFHﻩﻩﻩ;

稳定显示1ms

   MOVXDPTR,ﻩA

ﻩRET

LED_SEG:

 DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;

'0,1,2,3,4,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1