2013(答案)单片机原理与应用试卷A(最新)

时间:2022-05-24 23:14:14 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。


………………………………………………………………………………………………………………





一、填空题(每空1分,共15分)

1 8051内部有48位的并行I/O口,其中 P3 口的引脚还具有外中断、串行通信等第二功能。

2 MCS-51系列单片机内部数据存储器,片内RAM中位寻址区的地址范围是20H ~ 2FH ,工作寄存器区的地址范

围是 00H~1FH

3 MCS-51的时钟频率范围为 1.212MHz 。设fosc=6MHZ,执行一条2个机器周期的指令,时间为 4s ALE信号的工作频率是 1MHZ

4 MCS-51中,PCDPTR都用于提供地址,但PC是为访问 程序 存储器提供地址,而DPTR是为访问 数据 存储器提供地址。

5 MCS-51中,只有当EA引脚接 电平时,CPU才访问片内的ROM 6 用于查表的汇编指令语言助记符是 MOVC

7 五个中断源中优先级最高的是 外部中断0 ,其对应的中断号为 0 8 MCS-51的堆栈寄存器SP 8 位寄存器,堆栈是按__向上__方向伸展的. 9 中断服务程序的返回指令是 RETI



三、阅读程序题(每小题5分,共20分)

1已知A=22HR1=50H40H=15H50H=33H试写出80C51执行下列程序段后,寄存器A= 44H R1= 40H ,地址(40H= 22H 50H= 33H (要求写出

分析过程)

MOV R1#40H MOV

@R1 A

解:(R1)=40H(40H)=22H(A)=44H, 50H)不

RL A

2. 已知(SP=65H A=30HR0=80HB=20H则当MCS-51执行下列程序后,SP= 66H DPTR= 2080H (要求写出分析过程)

PUSH ACC PUSH R0 PUSH B POP DPH POP DPL

解:SP=SP+1=66HSP=30H

SP=SP+1=67HSP=80HSP=SP+1=68HSP=20H(DPH)=20H, SP=SP-1=67H(DPL)=80H, SP=SP-1=66H

3试用文字叙述程序所完成的功能是什么?(要求写出分析过程)

ORG 8000H MOV R0#50H MOV R2#10H

MAIN1: MOV @R0#0H

INC R0 DJNZ R2MAIN1 SJMP $ END

4.指出下面程序的错误。 #include main() {

a=b; int a=6,b;

解:单片机执行上述程序后,所实现的功能是:对地址50H开始的连续16个单元清零。评分标准:

可复制、编制,期待你的好评与关注!

解:变量应先定义再使用;



函数delay后无分号、且缺少“}delay为无参函数,不能传递参数。 此处多了分号;

char类型,应为unsigned char




delay(10)

void delay();

{

char i;

for(i=0;i<=255;i++); }



四、简单程序设计(每小题10分,共20分)

1、用8051单片机实现2-4译码器逻辑功能。假设以单片机的P1口的高2位作为译码器的2个输入端口,P3口作为译

码器的4个输出端(低电平有效)P1.0作为译码器的使能端(低电平有效)。请写出其2-4译码器的C51程序。

# include void main() {

unsigned char n; while(1) {

P1 = 0xff; if(P1_0 == 0) {

n = P1&0xC0; switch(n) {

case 0: P3_0 =0; break; case 64: P3_1 =0; break; case 128: P3_2 =0; break; case 192: P3_3 =0; break; defaultP3=0xffbreak } } else

P3 = 0xff; } }

2.编写一个由P1.2口周期输出400us的等宽连续方波信号的程序,系统采用12MHz晶振,要求使用T1工作在方式1。试编写其以中断方式实现的相关C语言程序。提示: 解:

计算计算初值:(65336-x)*1us=200us 即:0FF38H 控制寄存器设计:0001XXXX # include sbit P1_2 = P1^2

void service_int0() interrupt 3 {

可复制、编制,期待你的好评与关注!




TH1 = 0xffH; TL1 = 0x38H; P1_2 = !P1_2; }

void main(void) {

TMOD = 0x10; TH1 = 0xffH; TL1 = 0x38H; EA= 1; ET1 = 1; TR1 = 1; While(1); }







五、应用题(每小题15分,共30分)

1. 8031单片机外接一片2716 EPROM和一片6116 RAM,一片6264RAM组成一个应用系统。要求用线选法(限定用P2.7

P2.6P2.5)完成下图MCS-51片外存储器扩展线路的连接,并指出各存储器芯片的地址范围(没用到的地址线设为1 解:2716的地址为1101 1000 0000 0000-1101 1111 1111 1111 D800H-DFFFH 6116的地址为1011 1000 0000 0000-1011 1111 1111 1111 B800H-BFFFH 6264的地址为0110 0000 0000 0000-0111 1111 1111 1111 6000H-6FFFH

8

8

32

2716

A11

A12

6264

3







2、假设图2PA口和PC口共同接两个共阳极的七段显示器,MCS-51RAM 70H-73H存放的内容为3456,将这些数以动态显示方式分别在对应位的数码管上显示,即显示的效果为3456。试编写C语言程序。

可复制、编制,期待你的好评与关注!




8051P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALEP2.2P2.5RDWR

8155

PA0AD0

PA1AD1

PA2AD2PA3

AD3PA4AD4PA5

PA6AD5

PA7

AD6AD7ALEIO/MCERDWR

PC1PC2PC3PC4

74LS244

100×8+5V

74LS06



2

#include #include #define unchar unsigned char #define _8155A_cmd XBYTE[0xDF00] #define _8155A_PA XBYTE[0xDF01] #define _8155A_PC XBYTE[0xDF03]

const unchar segtab[4]={ 0x4F,0x66,0x6D, 0x7D}; void main(void) {

unchar i;

_8155A_cmd=0x0f; 控制字为0x0d也对 While(1) {

for(i=0;i<4;i++) {

_8155A_PC=(1<_8155A_PA=segtab[i]; delay(); } }

}



三、阅读程序题(每小题5分,共20分)

1已知A=11HR1=50H40H=15H50H=33H试写出80C51执行下列程序段后,寄存器A= 80H R1= 40H ,地址(40H= 11H 50H= 33H (要求写出

分析过程)

MOV R1#40H R1 < 40H

可复制、编制,期待你的好评与关注!




XCHD

@R1 A ((40H))0-3 <> (A)0-3

RR A (A)右移一位

2. 已知SP=60H A=30HB=70H则当MCS-51执行下列程序后,SP= 60H DPTR= 3070H (要求写出分析过程)

PUSH ACC PUSH B POP DPL POP DPH

解:SP=(60H)+1=61H; (61H) =(A)=30H;SP=(61H)+1=62H; (62H) =(B)=70H; (DPL) =(62H)=70H; SP=(62H)-1=61H; (DPH) =(61H)=30H;SP=(61H)-1=60H

3下面查表指令执行后,累加器(A= D或者44H (要求写出分析过程)

ORG 8000H

MOV A#30H A=30H2字节指令 MOVC A@A+PC 执行时(PC=8003H ......

ORG 8030H

TAB: DB ABCDEFGHIJ 执行查表指令后将8003H+30H=8033H地址对应的程序存储器中的内容字符’D’送到A 4.指出下面程序的错误。 #include Void main() {

uchar data var1; uchar pdata *dp1; var1=XBYTE[0x0008]; dp1=0x1000; *dp1=0x80; delay(10) while(1);

void delay();

{ uchar i;

for(i=0;i<=255;i++); }



四、简单程序设计(每小题10分,共20分)

1、用8051单片机实现8-3编码器逻辑功能。假设以单片机的P2口作为编码器的8个输入端口(低电平有效)P3口的3位作为编码器的3个输出端,P3.5作为编码器的使能端(低电平有效)。请画出该编码器的逻辑图,并写出其8-3

编码器的C51程序。 # include void main() {

1. uchar 2. 3. dp1赋值的地址应小于FFH4Delay()不能传递参数且Delay(10)后缺少; 5. void delay()之前缺少“}”且之后多“;.

可复制、编制,期待你的好评与关注!




unsigned char n; while(1) {

P2 = 0xff;

P3 = 0x20;或者P3=P3& 0x20; if(P3_5 == 0) { n = P2; switch(n) {

case 254: P3= 0x00 break; case 253: P3= 0x01 break; case 251: P3= 0x02 break; case 247: P3= 0x03break; case 239: P3= 0x04break; case 223: P3= 0x05 break; case 191: P3= 0x06break; case 127: P3= 0x07break; defaultP3=0x00break } } else

P3 = 0xff; } }

I0I1I2I3I4I5I6I7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7

P3.0P3.1P3.2

EN

P3.5

8051



2.编写一个由P2.0口周期输出300us的等宽连续方波信号的程序,系统采用12MHz晶振,要求使用定时器1工作在方式2。试编写其以查询方式实现的相关C语言程序。提示:

TCON TMOD IE

TF1 GATE EA

TR1 C/T

TF0 M1 ET2

TR0 M0 ES

IE1 GATE ET1

IT1 C/T EX1

IE0 M1 ET0

IT0 M0 EX0

可复制、编制,期待你的好评与关注!




答:计算初值:(256 解得:

X)1150

X106D6AH

# include sbit P2_0 = P2^0 void main (void) {

EA0;

ET1 = 0; TMOD &= 0x0f; TMOD |= 0x20; TH0 = 0x6A; TL0 = 0x6A; For(; ;) { If(TF1) {TF1 = 0; P2_0 =!P2_0; }}}







五、应用题(每小题15分,共30分)

1. 8031单片机外接一片2764 EPROM芯片、一片6264 RAM和一片8155组成一个应用系统。其中,8155作为256B

RAM使用。要求用线选法(限定用P2.7P2.6P2.5)完成下图MCS-51片外存储器扩展线路的连接,并指出各存储器芯片的地址范围(没用到的地址线设为1

8

8

AD0AD7ALE

IO/M

8

5

6224

WE

CS

8155

OE



2764的地址为1100 0000 0000 0000-1101 1111 1111 1111 C000H-DFFFH 6264的地址为1010 0000 0000 0000-1011 1111 1111 1111 A000H-BFFFH

8155的地址为0111 1111 0000 0000-0111 1111 1111 1111 7F00H-7FFFH

可复制、编制,期待你的好评与关注!




2、假设图2PA口接一组开关,PB口接一组指示灯,MCS-51不断查询PA口开关的状态,并用指示灯的状态反映开关的状态,即开关闭合时灯亮,开关断开时灯灭。试编写C语言程序。*提示:8255PA口和PB口均工作在方式08255的控制字格式 # include # include < absace.h > #define unchar unsigned char #define CONT 0x90

#define ADDR8D XBYTE[0XDFFF] #define ADDR8C XBYTE[0XDFFE] #define ADDR8B XBYTE[0XDFFD] #define ADDR8A XBYTE[0XDFFC] Void main(void) {

Unchar x; While(1){

ADDR8D=CONT; x = ADDR8A; ADDR8B= ~x; } }

评分标准:结构正确6分,控制字正确2分, 控制端口、PA口和PB口传输地址正确3分, PA口读入数据1分,PB口输出数据1分,按照图能根据PA状态正确使得PB口灯点亮或者熄灭2分。



(注:文档可能无法思考全面,请浏览后下载,供参考。)



可复制、编制,期待你的好评与关注!


本文来源:https://www.wddqw.com/doc/614caeef8aeb172ded630b1c59eef8c75fbf95de.html