您的当前位置:首页正文

单片机试卷

2022-09-06 来源:个人技术集锦
单片机试卷一

题号 分数

一 二 三 四 五 六 合记 合分人 复核人 一.填空(20分,每空0.5分)

分数 评卷人 1.在一芯片上集成了 、 、 、和 构成单片机。

2.8031的规格是: 位CPU,片内RAM有128个字节, 个并行端口, 个中断源, 个定时器, 个全双工串行口。

3.8031的外部最大程序存储空间有 ,外部数据最大存储空间有 。 4.8031内部存储器各单元的地址是 ,各单元间的数据传送用 指令。 5.MCS51一个机器周期包括 个时钟振荡周期。

6.在访问外部存储器时, 口输出高8位地址, 口输出低8位地址,由 信号将低8位地址锁存到外部地址锁存器中,然后又从 口上传送数据。 7.可以做数据指针的寄存器有 、 和 。

8.6116是一个2K*8的静态存储器,那么,就2K的寻址空间而言,8031应至少有 根地址线与它相连,并通过 (管脚名)来实现对6116的读写控制。

9.就定时器的使用而言,通过SFR来安排工作方式、定时初值、启动,并可查询是否溢出。那么,所用到的SFR:T0的工作方式是 ,初值是用 和 ,启动和查询溢出是 。

10.MCS-51的定时器可以作定时和计数器使用。当设置为定时器时,它利用片内脉冲作计数时钟,时钟周期为 ; 11.中断服务程序的最后一条指令是 。

12.中断响应的必备条件是 , 及满足优先级方面的条件。 13.通过串行口接收数据:当满足 条件时方可接收,使用的指令是 。

14.在安排串行通信的通信协议时,两个最重要的参数是波特率和 ,8031是通过SFR中的 (SFR名)来安排这两个参数的。

15.串行通信中波特率是一个重要指标,它表示每秒钟传送 。 16.串行通信中可以利用内部定时器 ,通过设置它的 来得到不同的波特率。 17.下列几个文件哪个是源文件 ,哪个是能显示出汇编结果和出错信息的文件 。 A.*.LST

B.*.EXE C.*.OBJ D.*.HEX D.*.ASM

分数 评卷人 二.判断下列描述/指令正确与否,并填在相应的格中。 正确的填“T”,错误的填“F”(10分)。

题号 1 T/F 2 3 4 5 6 7 8 9 10 1. MOV 2. ADD 3. PUSH 4. MOV 5. MOVC

@DPTR, A 40H, 40H A,

B #3FH

@DPTR+A, A

6. MCS-51系列单片机的外扩I/O口是与外扩数据存储区统一编址,因此用户访问扩

展的I/O口时,是用MOVX指令进行的。

7.若8031的钟频是12MHZ,那么ALE信号的频率是1MHZ

8.从片外程序存储器中读取指令的过程中, RD管脚上会有负脉冲出现。 9.中断是CPU中止当前的工作,转去处理突发事件的过程。 10.程序计数器PC是用来存放下一条要执行的指令地址的。

分数 评卷人 三.下列是一段查表程序,入口参数在R0中,出口参数在A中。已知有三种错误,请改正后完整地写在右端(合理即可)。(10分)

ORG 0000H AJMP START ORG 0100H

START: MOV DPTR, TAB MOV A, R0 MOVC A, @DPTR RET

TAB: 00H,30H,40H,0A0H,50H END

分数 评卷人

四.读程序(共20分,1、3小题各5分,2小题10分) 1. ORG 1000H MOV R0, #70H MOV A, @R0 INC R0 MOV B, @R0 RET

问:A、B、R0中的内容是什么? (A)= ,(B)= ,(R0)= 。 执行前,各相应的寄存器、存储器的数据如下:(69H) =12H,(70H)=34H (71H)=56H

2. 子程序AAA的入口参数是在40H和41H中的两个无符号数,请根据给出的入口参数

写出执行结果,填在空格处。

ORG 1000H

AAA: MOV A,40H CLR C SUBB A,41H

JC ABC

MOV 42H,40H SJMP EE

ABC: MOV 42H,41H EE: RET (1):(40H)=11H,(41H)=12H 则 C= ,(A)= ,(42H)= 。 (2):(40H)=21H,(41H)=12H 则 C= ,(A)= ,(42H)= 。 3. ORG 1000H AAA: MOV R0, #20H MOV R3, #10 LOOP: MOV A, @R0 INC R0 MOV SBUF, A WAIT: JBC TI, PTI SJMP WAIT PTI: DJNZ R3, LOOP RET

描述上述子程序AAA的功能是什么。(相应的初始化程序可认为已写在主程序中)

分数 评卷人 五.写程序(共20分,1、2小题各5分,3小题10分)

1.将片内存储单元DATA1中的数据除以3,商放到30H、余数放在31H单元中。

2.用循环的程序结构写一段程序,将数据00H至0FH依次放到50H上至5FH单元。

3. 完成下列程序,用查表法求一个数据的七段码。

已知:入口参数是在30H单元中,存放的是一个BCD码。请将高4位对应的七段码存放在40H单元,低4位对应的七段码存放在41H单元(0~9的七段码已存放在TAB为表头地址的数表中)。 AAA: MOV A,30H ANL A,#0FH

RET

TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH

分数 评卷人 六. 共三题,选作两题。(20分)

要求:1当K1拨向上时(接地),L1、L2亮,L5、L6灭(数据为0C0H);

1.(10分)根据图1编程。

.2当K1拨向下时(接+5V),L1、L2灭,L5、L6亮(数据为0FH); 3当K1状态改变时,发光管也相应变化。

2.关于I/O口的扩展:用8255扩展一组I/O口。(10分)

8255是一个可以扩展三个IO口的芯片,所以它将至少占用四个片外数据存储区的地址,用两根地址线A0、A1就可以管理四个端口。

用7FFCH、7FFDH、7FFEH、7FFFH分别作它的A、B、C和命令口地址,实现从A口读入数据,取反后从B口输出。相应的命令字可选90H。 要求:

(1) 画出8031与8255之间的连接图。(只为8255上已画出的管脚提供连线 (2) 填空写完8255的初始化程序和任务程序。

ORG 0100H MOV DPTR, #7FFFH MOV A, #90H

;初始化8255 MOV DPTR, #7FFCH

;读A口 ;数据求反 MOV DPTR, #7FFDH

;从B口输出 RET

74LS373 D0 ~ D7 A1 A0 RD WR 8031 8255 CS

3.列程序段可以在P1.0和P1.1上生成如图3所示的波形,修改程序中的若干句,完成在P1.0、P1.1和P1.2上生成如图4所示的波形(注意时间间隔)。

ORG 0000H

LJMP START

ORG 001BH ;定时器/计数器1中断程序入口地址

LJMP INT

ORG 0100H

START: MOV A,#03H ;首显示码 MOV R1,#00H ;

MOV R0,#05H ;05H是0.5秒的计数值 MOV TMOD,#10H ;计数器T1置为定时方式1

MOV TL1,#00H ;装入时间常数,相当于0.1秒的定时 MOV TH1,#38H

ORL IE,#88H ;CPU中断开放标志位和定时器 ;1溢出中断允许位均置位 SETB TR1 ;开始计数 LOOP1: CJNE R0 ,#00 ,DISP

MOV R0 ,#05H ;R0计数计完一个周期,重置初值 INC R1 ;表地址偏移量加1 CJNE R1,#06H,LOOP2

MOV R1,#00H ; 如到表尾,则重置偏移量初值 LOOP2: MOV A ,R1 ;从表中取显示码入累加器

MOV DTPR , #TAB

MOVC A ,@A+DPTR

DISP: MOV P1,A ;将取得的显示码从P1口输出显示 LJMP LOOP1

INT: CLR TR1 ;停止计数 DEC R0 ;计数值减一

MOV TL1,#00H ;重置时间常数初值 MOV TH1,#38H RETI

TAB: DB 03H , 02H , 01H , 00H DB 01H , 00H END

因篇幅问题不能全部显示,请点此查看更多更全内容