单片机模拟题Word下载.docx
《单片机模拟题Word下载.docx》由会员分享,可在线阅读,更多相关《单片机模拟题Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
它们对应的中断矢量地址:
外部中断0---0003H;
定时器/计数器0---000BH;
外部中断1---0013H;
定时器/计数器1---001BH;
串行口(RI/TI)--0023H;
定时器/计数器2(T2)---002BH(注:
它不是中断源)。
17、A/D转换器是一种用来将连续的模拟信号转换成适合于数字处理的二进制数的期间。
常用的A/D转换器有双积分式转换器、逐位比较式转换器、并行直接比较式转换器。
18、在单片机的四个并行I/O口中,其驱动能力最强的是P1口。
,
19、在单片机的四个并行I/O口中,P1口是真正的双向I/O口。
准双向口的含义是:
在外部需要输入电平时,应先置为高电平。
20、I/O口的每一位由锁存器、输出驱动、输入缓冲器组成。
21、MCS—51单片机外部中断请求信号有电平触发方式、边沿触发方式。
当采集到INT0、INT1的有效信号为低电平时,激活外部中断。
22、MCS—51单片机扩展程序存储器所用的控制信号为PSEN,扩展数据存储器所用的控制信号为WD和WR,访问内部RAM用MOV指令。
23、定时器T0、T1的四种工作方式的四种计数器结构:
方式0:
13位计数器;
方式1:
16位计数器;
方式2:
自动重装的8位计数器,T1作为波特率发生器;
方式3:
T0分为两个8位计数器。
24、定时器/计数器T0、T1的方式寄存器TMOD中的GATE位的含义:
门控位,当它为1时,有外部中断和控制寄存器TR0、TR1来启动定时器;
当它为0时,仅有TR0和TR1来启动定时器T0和T1。
C/T位:
功能选择位,当为1时,选择计数功能,为0时选择定时功能。
25、MCS—51单片机的片内数据存储空间的128字节单元通常可划分为三个区域,分别是:
寄存器区、位寻址区、通用RAM区。
26、MCS—51有5个中断源,2个优先级,上电复位时,外部中断0中断优先级别最高。
27、MCS—51的机器周期是1us(设f=12MHz),一条指令最多有4个机器周期。
28、MCS—51中,外部数据存储器最大寻址范围为64KB。
29、80C51串行口工作在方式1和方式3时,传输波特率都是由T1决定的,工作在方式2时波特率是固定的,接收时REN必须为高电平,接收是在RXD引脚上检测到由1到0跳变开始的。
发送一阵信息是10位的。
三、简答题(15,每题5分)
1、在80C51的片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。
分析下面各条指令,说明源操作数的寻址方式,按顺序执行各条指令后的结果。
(此题的数据,顺序,指令会有改动,但类型不会变)
MOVA,40H
MOVR0,A
MOVP1,#0F0H
MOV@R0,30H
MOVDPTR,#3848H
MOV40H,38H
MOVD0H,R0
MOVR0,30H
MOV18H,#30H
MOVA,@R0
MOVP2,P1
答:
MOVA,40H直接寻址(A)=48H
MOVR0,A寄存器寻址(R0)=48H
MOVP1,#0F0H立即寻址(P1)=0F0H
MOV@R0,30H寄存器间接寻址,因为(R0)=48H,(30H)=38H,
所以(48H)=38H
MOVDPTR,#3848H立即寻址(DPTR)=3848H
MOV40H,38H直接寻址(40H)=40H
MOVD0H,R0直接寻址(D0H)=38H
MOVR0,30H直接寻址(R0)=38H
MOV18H,#30H立即寻址(18H)=30H
MOVA,@R0寄存器间接寻址因(R0)=30H,(30H)=38H,所以
(A)=38H
MOVP2,P1寄存器寻址(P2)=0F0H
2、请描述独立键盘和矩阵键盘的特点,并分别说明他们的工作原理。
(1)独立键盘。
特点:
每个键都独立地接入一根数据输入线,这种键盘结构简单,使用方便,但随着键数的增多,所占用的I/O口线也增多。
工作原理:
所有的数据输入线都连接成高电平,当任何一个键压下时,与之相连的数据输入线江北拉成低电平,只要用位处理指令即可判断是否有键压下。
(2)矩阵键盘。
可以多个键共用一根数据输入线,比较节省I/O口资源,扫描过程较复杂。
CPU先使行线O0线为低,其余行线为高,即0行为“0“状态,其余行为”1“状态。
然后CPU读入输入缓冲器的状态,以确定那条列线为“0”状态,此时,0为“0”状态,则为“0”键按下;
若I1为“0”状态,则为“1“键压下;
依次类推。
若输入缓冲器的状态全部为”1“状态,则CPU继续使行线O1为低,其余行线为高。
再读入输入缓冲器的状态,以确定那条列线为”0“状态,从而判断哪个键按下。
判断出哪个键压下后,程序转入相应的键处理程序。
3、请写出四条不同的数据传送指令和五条不同类型的控制转移指令。
(可能会考其他的指令)
数据传送:
MOVA,Rn
MOVDPTR,#打塔6
XCHA,Rn
PUSHdirect
控制转移:
SJMPrel
RET
JZrel
DJNZRn,rel
NOP
四、程序设计题(3-12,4-8,每题10分,题型一样,但绝不是原题)
1、请编写程序,将片外数据存储器中20H单元中的内容和21H单元的内容相乘,并将结果存放在22H和23H单元中,高位存放在高地址中。
(考试时,数值会有改动)
MOVR0,#20H;
R0指向20H
MOVXA,@R0;
取来被乘数
MOVB,A;
存入B寄存器
MOVR0,#21H;
R0指向21H
取来乘数,入累加器A
MULAB;
得结果
MOVR0,#22H;
R0指向23H
MOVA,B;
结果高位在23单元中
MOVX@R0,A
2、在80C51单片机系统中,已知时钟频率为6MHz,选用定时器T0设置方式3,请变成实现P1.0和P1.1口分别输出周期为1ms和400us的方波。
产生1ms和400us的方波,则分别要500us和200us的定时。
另外,定时器T0设置成方式3,则是把TL0和TH0分别作为两个8位定时器。
f=6MHz=6×
106Hz,方式3计数器长度L=8,28=256。
定时时间T1=500us=500×
10-6s
定时常数Tc=2L-(f×
T1÷
12)=256-(6×
106×
500×
10-6÷
12)=256–250=6H
定时时间T2=200us=200×
T2÷
200×
12)=256–100=38H
P1.0和P1.1口分别输出周期为1ms和400us的方波程序:
ORG000BH
AJMPITOP
;
ORG001BH
AJMP1T1P
ORG100H
START:
MOVSP,#60H;
设置栈指针
ACALLPTOM3;
调定时器初始化程序
HERE:
SJMPHERE;
等待中断
;
PTOM3:
MOVTMOD,#03H;
定时器初始化,设T0为方式3
MOVTL0,#6H
MOVTHO,#38H
SETBTR0;
定时器开始
SETBTR1
SETBET0;
开中断
SETBET1
SETBEA
RET
IT0P:
MOVTL0,#6H;
TL0定时器中断程序
CPLP1.0
RET1
IP1P:
MOVTH0,#38H;
TH0定时器中断器程序
CPLP1.1
RETI
五、综合应用(15分,实验3内容)
到时题目上会有一个用单片机和8255控制两个数码管实现计时功能,单片机和8255的连线部分题目已给出,要求我们连8255和数码管的部分。
数码管要求的是静态显示。
这题先对8255进行初始化,然后写循环程序控制数码管。
下面是当时实验时的程序:
程序设计
分析:
6MHz,12个时钟周期为2us,16位计数最大定时131ms,每次125ms产生溢出,8次为1s。
即(65536-x)*2=125000,则x=3036,即0xbdc;
汇编程序如下:
PA_PORTEQU0CFA0H;
PB_PORTEQU0CFA1H;
PC_PORTEQU0CFA2H;
PCTL_PORTEQU0CFA3H;
ORG0000H
LJMPSTART
LJMPINT_T0_over
ORG0030H
MOVSP,#68H
MOVR0,#0
MOVR1,#0
LCALLinit_t0
SETBTR0
SETBEA
MOVDPTR,#PCTL_PORT
MOVA,#80H
MOVX@DPTR,A;
8255的PA、PB都工作在方式0,输出
LOOP:
MOVDPTR,#PB_PORT
MOVA,#0FFH
//数码管熄灭
MOVA,#0FDH
MOVX@DPTR,A
MOVA,R1
MOVB,#10
DIVAB
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVDPTR,#PA_PORT
MOVR2,#10
LOOPA:
//显示十位
DJNZR2,LOOPA
MOVA,#0FEH
MOVA,B
LOOPB:
//显示个位
DJNZR2,LOOPB
LJMPLOOP
init_t0:
CLRTR0;
//T0禁止计数定时
MOVTMOD,#01H;
//T0方式1(16位),定时
MOVTH0,#0bH;
MOVTL0,#0dcH;
SETBET0;
//T0允许中断
RET
INT_T0_over:
;
C/T0溢出中断服务函数
PUSHPSW
PUSHACC
INCR0;
CJNER0,#8,LOOP1
LOOP1:
JCLOOP2
MOVR0,#0
INCR1
CJNER1,#60,LOOP3
LOOP3:
MOVR1,#0
LOOP2:
POPACC
POPPSW
RETI
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;
//共阴数码管段码
END