哈尔滨工业大学威海单片机原理及接口技术期末期终.docx
《哈尔滨工业大学威海单片机原理及接口技术期末期终.docx》由会员分享,可在线阅读,更多相关《哈尔滨工业大学威海单片机原理及接口技术期末期终.docx(31页珍藏版)》请在冰豆网上搜索。
哈尔滨工业大学威海单片机原理及接口技术期末期终
2009年7月
《单片机原理及接口技术》期末
班级:
姓名:
学号:
成绩:
一、填空题(20分,每小题2分)
1、-19D的二进制的补码表示为11101101B。
2、89C51含4KB掩膜ROM,128B的RAM,在物理上有4个独立的存储器空间。
3、通过堆栈操作实现子程序调用,首先要把PC的内容入栈,以进行断点保护。
调用返回时再进行出栈操作,把保护的断点弹回PC。
4、74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中8块芯片。
5、PSW中RS1RS0=10H时,R2的地址为12H。
6、假定DPTR的内容为8100H,累加器A的内容为40H,执行下列指令:
MOVCA,@A+DPTR
后,送入A的是程序存储器8140H单元的内容。
7、设SP=60H,片内RAM的(30H)=24H,(31H)=10H,在下列程序段注释中填执行结果。
PUSH30H;SP=61H,(SP)=24H
PUSH31H;SP=62H,(SP)=10H
POPDPL;SP=61H,DPL=10H
POPDPH;SP=60H,DPH=24H
MOVA,#00H
MOVX@DPTR,A
最后执行结果是执行结果将0送外部数据存储器的2410H单元。
8、在中断系统中,T0和T1两引脚扩展成外部中断源时,计数初值应当是(TH)=(TL)=0FFH。
9、12根地址线可寻址4KB存储单元。
二、选择题(10分,每小题1分)
1、MCS-51响应中断时,下面哪一个条件不是必须的(C)
(A)当前指令执行完毕(B)中断是开放的
(C)没有同级或高级中断服务(D)必须有RETI
2、执行PUSHACC指令,MCS-51完成的操作是(A)
(A)SP+1→SP,(ACC)→(SP);(B)(ACC)→(SP),SP-1→SP
(C)SP-1→SP,(ACC)→(SP);(D)(ACC)→(SP),SP+1→SP
3、89C51是(C)
(A)CPU(B)微处理器
(C)单片微机(D)控制器
4、关于MCS-51的堆栈操作,正确的说法是(C)
(A)先入栈,再修改栈指针(B)先修改栈指针,再出栈
(C)先修改栈指针,再入栈(D)以上都不对
5、某种存储器芯片是8KB×4片,那么它的地址线根数是(B)
(A)11根(B)13根(C)12根(D)14根
6、MOVC,#00H的寻址方式是(A)
(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址
7、必须进行十进制调整的十进制运算(C)
(A)有加法和减法(B)有乘法和除法
(C)只有加法(D)只有减法
8、ORG0000H
AJMP0040H
ORG0040H
MOVSP,#00H当执行完左边的程序后,PC的值是(C)
(A)0040H(B)0041H(C)0042H(D)0043H
9、MCS-51复位时,下述说法正确的是(D)
(A)(20H)=00H(B)SP=00H(C)SBUF=00H(D)TH0=00H
三、简答分析题(30分,每小题10分)
1、简述89C51定时器的四种工作模式的特点,如何选择和设定。
答:
89C51定时器的四种工作模式有,模式1,模式2,模式3。
模式0时:
选择定时器的高8位和低5位组成13位定时器/计数器。
TL低5位溢出时向TL进位,TH溢出时向中断标志位TF0进位,并申请中断。
定时时间t=(213-初值)×振荡周期×12;计数长度为213=8192个外部脉冲。
模式1时:
当TMOD中的M1M0置成01时,定时器工作于方式1,构成16位定时器/计数器。
定时时间t=(216-初值)×振荡周期×12;计数长度为216=65536个外部脉冲。
模式2时:
把TL0和TL1配置成一个可以自动重装载的8位定时器/计数器。
TL担任8位计数器,TH保存初值,TL溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载在TL中。
定时时间t=(28-初值)×振荡周期×12;计数长度为28=256个外部脉冲。
模式3时:
方式3是两个8位定时/计数器模式,只适用于T0。
TH0和TL0成为两个独立的8位计数器。
TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。
TH0仅用作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭受TR1的控制。
T1无此模式。
选择和设定:
由定时器的2个控制寄存器TMOD和TCON,由软件写入TMOD和TCON两个8位寄存器,设置各个定时器的操作模式和控制功能。
2、位地址7CH与字节地址7CH如何区别?
位地址7CH具体在片内RAM中的什么位置?
答:
字节地址是片内RAM的单元地址,而位地址是片内RAM单元的某一位。
7CH字节地址RAM的7CH单元,而7CH位地址是RAM2FH单元中的D4位。
四、编程题(任选2题,20分,每题10分)
1、编写一程序,实现下图中的逻辑运算电路。
其中P3.1、P1.1、P1.0分别是单片机端口线上的信息,RS0、RS1是PSW寄存器中的两个标志位,30H、31H是两个位地址,运算结果由P1.0输出。
ORG0000H
MOVC,P3.1
ANLC,P1.1
CPLC
MOV20H,C;暂存数据
MOVC,30H
ORLC,/31H
ANLC,RS1
ANLC,20H
ANLC,RS0
MOVP1.0,C;输出结果
SJMP$
2、写一个软件延时1S和1min的子程序。
设fosc=6MHz,则1个机器周期=2μs。
解:
(1)1s=2μs×5×105
5×105=250×2000=250×200×5×2
ORG0000H
DELAY1S:
MOVR5,#5
DEL1:
MOVR6,#200
DEL2:
MOVR7,#250
DEL3:
DJNZR7,DEL3
DJNZR6,DEL2
DJNZR5,DEL1
RET
(3)1min=60S,调用上面1s子程序60次
ORG0100H
DELAY1M:
MOVR0,#60
LOOP:
LCALLDELAY1S
DJNZR0,LOOP
RET
3、编一子程序,从串行接口接受一个字符.
解:
START:
MOVTMOD,#20H;定时器T1工作于模式2
MOVTH1,#0E6H;设置波特率为1200b/s
MOVTL1,#0E6H
SETBTR1;启动T1
MOVSCON,#50H;串行接口工作于方式1,允许接收
L1:
JNBRI,L1;等待接收数据,末接收到数据,继续等待
CLRRI;接收到数据,清RI
MOVA,SBUF;接收到数据送A
RET
五、设计题(任选1题,20分,评分标准硬件设计、程序设计各10分)
1、利用89C51的P0口控制8个发光二极管LED。
相邻的4个LED为一组,使2组每隔1s交替发光一次,周而复始。
设计出硬件电路图,编写程序。
解:
(1)程序设计(设fosc=12MHz)
ORG0100H
MOVA,#0FH
ABC:
MOVP0,A
ACALLDELAY1S
SWAPA
SJMPABC
DELAY1S:
MOVR5,#04
DEL1:
MOVR6,#250
DEL2:
MOVR7,#250
DEL3:
NOP
NOP
DJNZR7,DEL3
DJNZR6,DEL2
DJNZR5,DEL1
RET
;
END
(2)硬件电路图如图:
2、现有一蜂鸣器,用89C51设计一系统,使蜂鸣器周而复始地响20ms,停20ms,编程。
解:
设fosc=12MHz,电路图如下:
定时时间:
应用公式t=(216-X)×12/fosc
X=216-t(fosc/12)=216-20000=45536=B1E0H
程序清单:
ORG0000H
LJMPSTART
ORG0040H
START:
MOVTMOD,#01H
MOVTL0,#OB1H
MOVTHO,#OE0H
SETBTR0
LOOP:
JNBTFO,DONE
CLRTF0
DONE:
MOVTL0,#OB1H
MOVTHO,#OE0H
CPLP1.0
SJMPLOOP
2008年7月
《单片机原理及接口技术》期末
班级:
姓名:
学号:
成绩:
一、填空题(20分,每小题2分)
1、十进制数-47用8位二进制补码表示为11010001B。
2、汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制。
3、JBC00H,rel操作码的地址为2000H,rel=70H,它的转移目的地址为2073H。
4、一个机器周期=12时钟周期,一个时钟周期=2个振荡周期,一个振荡周期=1个节拍。
5、用串口扩展并行口时,串行接口工作方式应选为方式0。
6、A/D转换器的三个最重要指标是转换速度、分辨率、转换精度。
7、当89C51的RST引脚上保持2个机器周期以上的低电平,8051即发生复位。
8、MCS-51中,外部中断请求标志位是IE0和IE1。
9、假定(SP)=60H,(ACC)=30H,(B)=70H。
执行下列指令:
PUSHACC
PUSHB
后,SP的内容为62H,61H单元的内容为30H,62H单元的内容为70H。
10、在直接寻址方式中,以8位二进制数作为直接地址,因此其寻址对象只限于片内RAM。
二、选择题(10分,每小题2分)
1、MCS-51在响应中断时,下列哪种操作不会发生(A)
(A)保存累加器A(B)保护PC
(C)找到中断入口(D)保护PC转入中断入口
2、MCS-51上电复位后,SP的内容是(B)
(A)00H(B)07H(C)60H(D)70H
3、PC中存放的是(A)
(A)下一条指令的地址(B)当前正在执行的指令
(C)当前正在执行的指令的地址(D)下一条要执行的指令
4、当8031外扩程序存储器8KB时,需使用EPROM2716(C)
(A)2片(B)3片(C)4片(D)5片
5、可以为访问程序存储器提供或构成地址的有(C)
(A)只有程序计数器PC(B)只有PC和累加器A
(C)只有PC、A和数据指针DPTR(D)PC、A、DPTR和SP
6、对程序存储器的读操作,只能使用(D)
(A)MOV指令(B)PUSH指令
(C)MOVX指令(D)MOVC指令
7、下面哪种设备不是输入设备(C)
(A)A/D转换器(B)键盘
(C)打印机(D)扫描仪
8、要访问MCS-51的特殊功能寄存器应使用的寻址方式是(A)
(A)直接寻址(B)寄存器间接寻址
(C)变址寻址(D)相对寻址
9、执行MOVXA,@DPTR指令时,MCS-51产生的控制信号(C)
(A)/PSEN(B)ALE(C)/RD(D)/WR
10、下面哪种指令将MCS-51的工作寄存器置成3区(B)
(A)MOVPSW,#13H(B)MOVPSW,#18H
(C)SETBPSW.4CLRPSW.3(D)SETBPSW.3CLRPSW.4
三、简答分析题(30分,评分标准:
每小题各10分)
1、89C51单片机片内设有几个定时器/计数器?
它们是由哪些特殊功能寄存器组成?
作定时器时,定时时间与哪些因数有关?
作计数器时,对外界计数频率有何限制?
答:
8051单片机片内设有2个定时器/计数器:
定时器/计数器1和定时器/计数器0,由THO、TLO、TH1、TL1、TMOD、TCON特殊功能寄存器组成。
作定时器时,定时时间与定时器的工作模式、定时器的计数初值以及单片机的晶振频率有关。
作计数器时,对外界计数频率不能高于振荡频率的1/24。
2、简述程序状态字寄存器PSW中各位的含义。
并说出选择工作寄存器组位的编码。
答:
程序状态字寄存器PSW:
程序状态字寄存器PSW:
是一个8位寄存器,用来存放当前指令执行后操作结果的某些特征,以便为下一条指令的执行提供依据。
定义格式如下。
其中,CY:
进借位标志;AC:
辅助进借位标志;F0:
软件标志;OV:
溢出标志;F1:
用户标志位;P:
奇偶校验标志;RS1、RS0:
工作寄存器组选择(如表所示)。
表工作寄存器组选择控制表
RS1RS0
寄存器组
对应RAM地址
00
0
00H∽07H
01
1
08H∽0FH
10
2
10H∽17H
11
3
18H∽1FH
3、阅读下列程序,并要求:
(1)说明程序功能;
(2)写出涉及的寄存器及片内RAM单元的最后结果
MOVR0,#40H
MOVA,@R0
INCR0
ADDA,@R0
INCR0
MOV@R0,A
CLRA
ADDCA,#0
INCR0
MOV@R0,A
答:
(1)功能:
将40H,41H单元中的内容相加结果放在42H单元,进位放在43H,
(2)(R0)=43H;(A)=1;(40H)=98H,(41H)=AFH;(42H)=47H,(43H)=01H。
四、编程题(任选2题,20分,评分标准:
每小题各10分)
1、将以7000H为首址的连续100个单元清零。
解:
MAIN:
MOVDPTR,#7000H
MOVR0,#100
CLRA
NEXT:
MOVX@DPTR,A
INCDPTR
DJNZR0,NEXT
RET
2、在AT89S51片内RAM20H~3FH单元中有32B数据,若采用方式1进行串行通讯,波特率为1200波特,fOSC=12MHz,编写发送/接收程序对。
解:
(1)T1工作于方式2作为波特率发生器,取SMOD=0,T1的计数如下:
波特率=
1200=
得:
X=230=E6H
(2)发送程序:
(采用查询方式编程)
ORG0000H
LJMPSTART
ORG0030H
START:
MOVTMOD,#20H
MOVTH1,#0E6H
MOVTL1,#0E6H
SETBTR1
MOVSCON,#40H
MOVR0,#20H
MOVR7,#32
LOOP:
MOVSBUF,@R0
JNBTI,$
CLRTI
INCR0
DJNZR7,LOOP
SJMP$
(3)接收程序
ORG0000H
LJMPSTART
ORG0030H
START:
MOVTMOD,#20H
MOVTH1,#0E6H
MOVTL1,#0E6H
Loop1:
SETBTR1
MOVSCON,#50H
MOVR0,#20H
MOVR7,#32
LOOP:
JNBRI,$
CLRRI
MOV@R0,SBUF
INCR0
DJNZR7,LOOP1
SJMP$
3、设单片机采用89C51,未扩展片外ROM,片外RAM采用一片6116,编程将其片内ROM从0100H单元开始的10B得内容依次外接到片外RAM从100H单元开始的10B中去。
解:
MOVR2,#00H;源数据缓冲器地址偏移量00H
MOVR3,#0AH;字节长度→R3
MOVDPTR,#0100H;源数据缓冲区首地址→DPTR
MOVA,R2;源地址偏移量→A
L1:
MOVCA,@A+DPTR;传送一个数据
MOVX@DPTR,A
INCDPTR;源地址(目的地址)加1
DJNZR3,L1;数据全部传送完?
没传送完,转L1继续传送
SJMP$;结束
五、设计题(20分)
设计89C51和ADC0809接口,采集2通道10个数据,存入内部RAM的50H~59H单元,画出电路图,编出程序,IN2的地址。
解:
硬件电路设计如图:
(评分标准:
10分)
IN2的地址为7FFAH,P1.0查询转换结束信号。
(评分标准:
2分)
程序设计如下:
(评分标准:
8分)
ORG0100H
MOVR7,#0AH
MOVR0,#50H
MOVDPTR,#7FFAH
NEXT:
MOVX@DPTR,A
JBP1.0.$
MOVXA,@DPTR
MOV@R0,A
INCR0
DJNZR7,NEXT
SJMP$
2007年7月
《单片机原理及接口技术》期末
班级:
姓名:
学号:
成绩:
一、填空题(20分,评分标准:
每小题各2)
1、十进制数-29的8位补码表示为11100011B。
2、MCS-51有7种寻址方式,特殊功能寄存器只能采用直接寻址方式。
3、MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器SCON加以选择。
4、MCS-51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP加以选择。
5、假定(A)=56H,(R5)=67H。
执行指令:
ADDA,R5
DAA
后,累加器A的内容为23H,CY的内容为1。
6、假定标号qaz的地址为0100H,标号qwe值为0123H(即跳转的目标地址为0123H)。
执行指令:
qaz:
SJMPqwe
该指令的相对偏移量为0123H-0102H=21H。
7、MCS-51单片机访问片外存储器时,利用ALE信号锁存来自P0口的低8位地址信号。
8、MCS-51单片机片内RAM的工作寄存器区共有32个单元,分为4组寄存器,每组8个单元,以R0~R7作为寄存器名。
9、MCS-51单片机中P0口作地址/数据总线,传送地址码的低8
位;P2口作地址总线,传送地址码的高8位。
二、选择题(20分,评分标准:
每小题各2分)
1、在中断服务程序中,至少应有一条(D)
(A)传送指令(B)转移指令(C)加法指令(D)中断返回指令
2、ORG2000H
LCALL3000H
0RG3000H
RET左边程序执行完RET指令后,PC=(C)
(A)2000H(B)3000H(C)2003H(D)3003H
3、要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是(A)
(A)98H(B)84H(C)42H(D)22H
4、若某存储器芯片地址线为12根,那么它的存储容量为(C)
(A)1KB(B)2KB(C)4KB(D)8KB
5、下面哪种外设是输出设备(A)
(A)打印机(B)纸带读出机(C)键盘(D)A/D转换器
6、下面哪一个部件不是CPU的指令部件(C)
(A)PC(B)IR(C)PSW(D)ID
7、以下运算中对溢出标志OV没有影响或不受OV影响的运算是(A)
(A)逻辑运算(B)符号数加减法运算(C)乘法运算(D)除法运算
8、以下指令中,属于单纯读引脚的指令是(C)
(A)MOVP1,A(B)ORLP1,#0FH
(C)MOVC,P1.5(D)DJNZP1,short-lable
9、在异步通讯接口,其帧格式由1个起始位(0)、7个数据位、1个偶校验和1个停止位“1”组成。
当该接口每分钟传送1800个字符时,传送波特率为(D)
(A)1800b/s(B)10b/s(C)3000b/s(D)300b/s
10、各中断源发出的中断请求信号,都会标记在MCS-51系统的(B)
(A)TMOD(B)TCON/SCON(C)IE(D)IP
三、判断题(10分,评分标准:
每小题各1分)
1、MCS-51的程序存储器只是用来存放程序的。
(×)
2、当MCS-51上电复位时,堆栈指针(SP)=00H。
(×)
3、判断以下指令段的正误。
(×)
MOVP2,#30H
MOVR2,#57H
MOVXA,@R2
4、0070H80FEHERE:
SJMPHERE执行该指令后,程序将原地踏步。
(√)
5、51单片机内部有两片寄存器,既是工作寄存器和专用寄存器,因在同片内RAM,则它们是统一编址。
(√)
6、要进行多机通讯,MCS-51串行接口的工作方式应选方式1。
(×)
7、定时器工作于方式2,若GATE=1、TR0=1、INT0=1就可启动定时/计数器。
(√)
8、使用89C51且/EA=1时,仍可外扩64KB的程序存储器。
(×)
9、MCS-51的相对转移指令最大负跳距是127B。
(×)
10、PC存放的是当前正在执行的指令。
(×)
四、简答分析编程题(任选3题,30分,评分标准:
每小题各10分)
1、89C51单片机片内设有几个定时器/计数器?
它们是由哪些SFR组成?
定时器/计数器作定时和计数时,其计数脉冲分别由谁提供?
答:
89C51单片机片内设有2个定时器/计数器:
定时器/计数器0和定时器/计数器1。
由TH0、TL0、TH1、TL1、TMOD、TCON特殊功能寄存器组成。
作定时器时,计数脉冲来自单片机内部,其频率为振荡频率的1/12;
作计数器时,计数脉冲来自单片机外部,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
2、简述89C51单片机的中断响应过程。
答:
单片机如查询到某个中断标志为1,将按优先级进行中断处理。
中断得到响应后,对于有些中断源,CPU在响应中断后会自动清除中断标志,由硬件将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向中断矢量地址单元中去执行相应的中断服务程序。
3、编程实现多字节无符号数加法
解:
编程说明:
多字节运算一般是按从低字节到高字节的顺序依次进行的
入口:
(R0)=被加数低位地址指针
(R1)=加数低位地址指针
(R2)=字节数
出口:
(R0)=和数低位地址指针
程序清单如下:
ADDBIN:
CLRC
LOOP1:
MOVA,@R0
ADDCA,@R1
MOV@R0,A
INCR0
INCR1
DJNZR2,LOOP1
JNCLOOP2
MOV@R0,#01H
RET
LOOP2:
DECR0
RET
4、将定时器/计数器做脉冲信号发生器。
编程利用定时器T0定时,在P1.0端输出周期性方波信号,方波周期为2ms,已知晶振频率为6MHz。
答:
1)T0工作模式的设定:
选择模式1(16位方式)(最大定时131ms)
2)定时初值的设定:
X=216-(1ms×6×106/12)=65036=FE0CH,即:
TH0应装0FEH,TL0应装0CH。