2014微机原理及应用—期中卷及答案1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西南交通大学2014-2015学年第(1)学期考试试卷
课程代码 课程名称 微机原理及应用 考试时间 120 分钟
阅卷教师签字: 批改试卷25,改错25 此处填写改卷者的名字
一、 填空题(每题1分,共10分)
0、 “模”是指一个计量系统的计算量程,2位十六进制整数的模是162=256 1、 2014的BCD 码是: 2014 H
2、 SWJTU 的ASCII 码为: 53 57 4A 54 55 H
3、 8051单片机的外部中断源有2个?自然优先级的排列是INT0、INT1。
4、 80C51单片机复位后从0000H 单元开始执行程序;使SFR 大部分都被清零,除SP 和P0~P3以外。
5、 微型计算机的工作过程是 取指令、分析指令、执行指令并不断循环的过程 。
6、 微型计算机硬件的结构组成包括CUP 、MEM 、I/O 接口、BUS
7、 汇编语言程序的基本结构有:顺序结构、循环结构、分支结构和子程序结构。
8、 当前广泛使用的微型计算机属于电子计算机发展史上的第四代大规模、超大规模集成电路电子计算
机。
9、 用于程序设计的语言可分为机器语言、汇编语言和高级语言 二、 简答题(每题5分,共4题20分) 0、 简述绘制流程图和编写源程序的基本原则。
1、 MCS-51的寻址方式有哪些?各列举一个实例。
2、 单片机的定义、特点和应用领域?
3、
的结构图,并说明每个区域可能有的寻找方式;
寄存器寻址、寄存器间接寻址、直接寻址 寄存器间接寻址、直接寻址(8位地址的字节)、位寻址(8位地址
的位)
寄存器间接寻址、直接寻址
直接寻址、寄存器寻址、位寻址(8位地址的位)
班 级 学 号 姓 名
密封装订线 密封装订线 密封装订线
00H 1FH 30H
7FH
80H
FFH
外部RAM
(或I/O )
64K 0000H
FFFFH
RD
WR
绘图要点:先绘制条件不成立的流程图, 然后绘制条件成立的流程图 最后在流程图汇合处和转移目的地址处加标号
写 汇 编:先按流程图按条件NO 流程优先方式拉直,并写完汇编程序 然后依次从最近的条件YES 流程写汇编程序
立即寻址: MOV A,#30H 变址寻址:MOVC A,@A+DPTR 相对寻址: JZ LOOP 直接寻找: MOV A,30H 位 寻 址:MOV C,30H 寄存器寻址:MOV A,R0 间接寻址:MOV A,@R0
将CPU 、ROM 、RAM 、输入/输出(I/O)接口电路以及定时器/计数器等主要部件集成在一块集成电路芯片上。
称为单片微型计算机(Single Chip Microcomputer),简称单片机。
单片机的特点:性价比高;针对性强;集成度高;功耗较小;品种多多,发展更新快。
应用领域:1、家用电器,如微波炉、电视机、电饭煲、空调器、电冰箱、洗衣机等。
2、在交通领域中。
如交通灯、汽车、火车、飞机、航空航天器等均有单片机的广泛应用。
3、智能仪器仪表。
如各种智能电气测量仪表、智能传感器等。
4、机电一体化产品。
如医疗设备(B 超)、机器人、数控机床、自动包装机、复印机等。
5、实时工业控制。
如温度控制、电机转速控制、生产线控制等。
三、多字节无符号数加法,要求用主程序调用子程序编程,子程序入口参数:R0存放被加
数的起始地址,R1存放加数的起始地址,字节数存在R2中,出口参数:R0存放和的起始地址,R3存放和的字节数;分别编写主程序和子程序。
;主程序,设置堆栈,配置入口参数,执行调用指令
ORG 0000H
MOV SP,#70H ;1分
MOV R0,#xxH
MOV R1,#yyH
MOV R2,#zzH ;1分
LCALL DADD ; 1分调用多字节无符号数加法子程序
SJMP $
;===================================
;子程序名:DADD
;功能:实现多字节无符号数相加,
;入口参数:R0存放被加数的开始地址,R1存放加数的开始地址,R2存放字节数.
;出口参数:R0存放和的开始地址,R3存放和的字节数.
;占用资源:A、B、C
;调用的其他子程序名:无
DADD: MOV A,R2
MOV R3,A
MOV B,R0 ;1分
CLR C ;1分
LOOP: MOV A,@R0
ADDC A,@R1
MOV @R0,A ;1分
INC R0
INC R1;1分
DJNZ R2,LOOP;1分
JNC LOOP1
INC R3
MOV @R0,#01H ;1分
LOOP1: MOV R0,B
RET;1分,子程序返回
四、 设被除数R0和除数R1中有两个补码形式的有符号数,要求编写求两数相除并把商送入R3余数送人R2的子程序,绘制流程图。
1
1
1
1
1
;子程序名: WDIV ;功能:实现单节有符号数相除, ;入口参数:R0存放被除数,R1存放除数. ;出口参数:R3存放商数,R2存放余数. ;占用资源: A 、B 、C ;调用的其他子程序名:无 SBIT BIT 20H.0 SBIT1 BIT 20H.1 SBIT2 BIT 20H.2 WDIV : MOV A ,R0 ;被除数送A RLC A ;被除数符号送Cy MOV SBIT1,C ;送入SBIT1 MOV A ,R1 ;除数送A RLC A ;除数符号送Cy MOV SBIT2,C ;送入SBIT2 ANL C ,/SBIT1 ;SBIT2 ∧ /SBIT1送Cy MOV SBIT ,C ;送入SBIT MOV C ,SBIT1 ;SBIT1送Cy ANL C ,/SBIT2 ;SBIT1 ∧ /SBIT2送Cy ORL C ,SBIT ;余数和商的符号位送Cy MOV SBIT ,C ;送入SBIT MOV A ,R1 ;处理除数 JNB SBIT2,NCH1 ;若它为正,则转NCH1 CPL A ;若它为负,则求补得绝对值 INC A NCH1:MOV B ,A ;除数绝对值送B MOV A ,R0 ;处理被除数 JNB SBIT1,NCH2 ;若它为正,则转NCH2 CPL A ;若它为负,则求补得绝对值 INC A NCH2:DIV AB ;求商和余数的绝对值 JNB SBIT ,NCH3 ;若它为正,则转NCH3 CPL A ;若它为负,则商求补 INC A NCH3:MOV R3,A ;商存入R3 MOV A ,B ;余数送A JNB SBIT ,NCH4 ;若它为正,则转NCH4 CPL A ;若它为负,则余数求补 INC A NCH4:MOV R2,A ;余数存入R2
五、 将外部RAM 2345H ~2361H 中的无符号数求累加和,结果存于内部RAM30H 和31H 中。
绘制流程图并编写程序。
单元开始存放有一组有符号数,数的个数存放在LEN 单元。
请编写程序将正数和负数并分别存入内部RAM
以BLOCK1和BLOCK2开始的单元中,并绘
制流程图。
MOV DPTR ,#2345H
MOV 30H,#00;存储和高字节 MOV 31H,#00 MOV R2,#1DH 29
LP: MOVX A ,@DPTR ADD A,31h
MOV 31H ,A
CLR A ADDC A,30H
MOV 30H,A INC DPTR DJNZ R2,LP SJMP $
MOV DPTR ,#BLOCK MOV R0,#BLOCK1 MOV R1,#BLOCK2
MOV R2,#LEN LP: MOVX A ,@DPTR JB ACC.7, LP1 MOV @R0,A INC R0 :INC DPTR DJNZ R2,LP SJMP $ :MOV @R1,A INC R1 SJMP LP2
七、比较内部RAM Data1和Data2单元内以补码形式表示的带符号数,并将大数存入BIG
单元,小数存入SMALL单元,若相等,则建立起标志位F0,完善流程图并编写程序。
Data1 EQU 40h
Data2 EQU 41h
BIG EQU 30H
SMALL EQU 31H
ORG 0000H
COM2: MOV A, Data1
XRL A, Data2
JNZ STEP1 ;两数不等,转STEP1
SETB F0 ;两数相等,F0置位
RET
STEP1: JB ACC.7, TEST;两数异号,转TEST
XRL A, Data2 ;两数同号,恢复Data1
SUBB A, Data2 ;比较
JC STEP3 ; Data1小,转STEP3 STEP2: MOV BIG, Data1 ; Data1大
MOV SMALL, Data2
RET
TEST: XRL A, Data2 ;恢复Data1
JNB ACC.7, STEP2 ; Data1为正,大,转STEP2 STEP3: MOV SMALL, Data1
MOV BIG, Data2
RET
1分
1分
1分
1分
1分
1分
1分
1分
八、 要求运用T0工作于方式0,从P1.1引脚输出1000Hz 方波,晶振频率为12MHz 。
绘制
中断方式程序的流程图,并写出相应的汇编语言程序。
解:① TMOD 初始化: GATE=0 ,
C/T=0, M1M0=00B
500μs 初值:方式0:X = M -t/T=213
- 500/1= 7692 = 1E0CH
=1111000001100B 即:TH0 = F0H ,TL0 = 0CH 。
ORG 0000H
LJMP MAIN ORG 000BH ;T0中断入口
LJMP T0INT
ORG 0100H
MAIN :CLR P1.1 ;设置方波的起始状态0 MOV TMOD, #00H ;定时器T0工作方式0
MOV TL0, #0CH ;送初值,保证定时时间为500us
MOV TH0, #0F0H SETB EA ;开T0中断 SETB ET0
SETB P1.1 ;设置方波的起始状态
SETB TR0 ;启动定时器 LOOP: …… ;主程序的循环处理程序 ……
LJMP LOOP
T0INT: MOV TL0, #0CH ;再送计数初值,保证定时时间始终为500us MOV TH0, #0F0H CPL P1.1 ;溢出处理;改变P1.1的状态 RETI ;中断返回
END
P1.180311分
1分
2分 2分
九、 51单片机P1.0~P1.7分别通过反相器接8个发光二极管,要求用T0定时查询方式,绘制响应的流程图并编写相应程序,每隔1s 循环点亮1只发光二极管,一直循环下去,已知系统的晶振频率为12MHz 。
解:① TMOD 初始化: GATE=0 , C/T=0,方式1:M1M0=01B ;所以TMOD=01H
②计算定时50ms 初值:方式1:X = M -t/T=216
– 50ms/1μ
所以T1的初值为:TH0 = 3CH ,
2分。