一、填空题(每空1分,共15分)
1、 在计算机中,对带符号数的运算均采用补码。带符号负数1100 0011的补码为_10111101_。
2、单片机通常采用“三总线”的应用模式,芯片内部设有单独的地址总线、数据总线_ 和控制总线。
3、当使用80C51单片机时,需要扩展外部程序存储器,此时EA应为_0__。
4、若(A)=B3H,(R0)=A8H,执行指令XRL A,R0之后,(A)=_1BH__。
5、在80C51单片机中,带借位减法SUBB指令中,差的D7需借位时,_CY_=1,差的D3需借位时,AC_=1。
6、80C51单片机中,在调用子程序前,用_PUSH__指令将子程序中所需数据压入堆栈,进入执行子程序时,再用___POP__指令从堆栈中弹出数据。
7、在十六进制数与ASCII码值的转换过程中,当十六进制数在0~9之间时,其对应的ASCII码值为该十六进制数加___30H______。
8、外部中断INT0和INT1有两种触发方式:___电平触发方式_____和__边沿触发方式__。
9、在单片机串行通信中,依发送与接收设备时钟的配置情况,串行通信可以分为 __异步通信___和__同步通信_。
10、若累加器A中的数据为0111 0010B,则PSW中的P=__0___。
二、选择题(每题1分,共15分)
1、单片机是在一片集成电路芯片上集成了以下部分,除了( D )
A、微处理器 B、存储器 C、I/O接口电路 D、串口通信接口
2、一个机器周期包含多少个晶振周期(D )
A、2 B、6 C、8 D、12
3、80C51单片机有21个特殊功能寄存器,其中与串行口相关的有以下几个,除了( B )
A、SBUF B、TCON C、SCON D、PCON
4、80C51系列单片机具有4个8位的并行I/O口,其中哪个口工作时需要外接上拉电阻(A )
A、P0 B、P1 C、P2 D、P3
5、寄存器中的内容为地址,从该地址去取操作数的寻址方式称为( C )
A、寄存器寻址 B、直接寻址 C、寄存器间接寻址 D、变址寻址
6、源地址为1005H。目的地址为0F87H。当执行指令“JC rel”时,rel为( B )。
A、7EH B、80H C、82H D、84H
7、若(R0)=30H,(30H)=75H,(75H)=90H,执行指令MOV A,@R0后,(A)=__B____。
A、30H B、75H C、90H D、00H
8、下列哪个语句是起始地址设置伪指令( A )。
A、ORG B、END C、DW D、EQU
9、在80C51单片机中,各中断优先级最低的是( D )。
A、外部中断0 B、外部中断1 C、定时器0 D、计数器1
10、80C51单片机的中断响应时间至少需要( C )个完整的机器周期。
A、1 B、2 C、3 D、5
11、在80C51单片机中,在不带进位加法ADD指令中,当___B______时,溢出标志位OV=1。
A、D7、D6都向前进位 B、只有D7向前进位 C、D7、D6都没有向前进位 D、只有D3向前进位
12、当累加器A中的低4位(高4位),出现了非BCD码时,需要用十进制调整指令DA A,即在相应的低4位(高4位)加___C___,以产生正确的BCD结果。
A、2 B、4 C、6 D、8
13、若(P0)=1011 1100B。执行指令SETB P0.1后,(P0)=___B____。
A、1011 1101 B、1011 1110 C、1111 1100 D、0011 1100
14、80C51复位后,PC与SP的值分别为(B )。
A、0000H ,00H B、0000H ,07H C、0030H ,07H D、0030H ,00H
15、下列哪条指令是正确的(D )。
A、 PUSH R2 B、 ADD R0,A C、 MOVX A,@DPTR D、 MOV @R0,A
三、问答题(每题10分,共20分)
1、简述什么是堆栈?堆栈中入栈、出栈的过程?(10分)
堆栈是在内部RAM中按“后进先出”的规则组织的一片存储区。
入栈操作时,先将SP的内容加1,然后将指令指定的直接地址单元的内容存入SP指向的单元;出栈操作时,先将SP指向的单元内容传送到指令指定的直接地址单元,然后SP的内容减1
2、列举出80C51单片机的5种寻址方式,写出每一种方式相应的一条指令?(10分)
第一、寄存器寻址,MOV A,R0
第二、直接寻址,MOV A,50H
第三、寄存器间接寻址,MOV A,@R0
第四、立即寻址,MOV A,#50H
第五、变址寻址,MOV A,@A+DPTR
第六、相对寻址,JC 50H
第七、位寻址,CLR ACC.0
四、程序阅读题(15分)
1、 设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,((A))=__E7H______。(5分)
ORL A,#27H
ANL A,28H
XCHD A,@R0
CPL A
2、阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?(10分) MOV R1,#30H; (R1)=___30H_____,
MOV A,#64H; ((A))=___64H____,
ADD A,#47H; ((A))=___ABH____,(CY)=____0____,(AC) =____0____,
DA A ; ((A))=___11H____,(CY)=_____1___,(AC) =___1_____,
MOV @R1,A; (R1)=____30H___,(30H)=___11H_____。
五、计算题(10分)
若要求定时器T0工作方式1,定时时间为1ms,当晶振为6MHz时,求送入TH0和TL0的计数器初值各为多少?
解:由于晶振为6MHz,所以机器周期Tcy=112=2μs。 -6610
N=t/Tcy=110-3/210-6=500
X=216-N=65536-500=65036=FE0CH
即应将FEH送入TH0中,0CH送入TL0中。
所以,TH0和TL0的计数器初值各为FEH和0CH。
六、编程题(25分)
1、若单片机的晶振频率为12MHz,试用循环转移指令编写延时100ms的延时子程序。(10分)
答:分析:一个机器周期=12个晶振周期=1μs,执行一条DJNZ指令需要2个机器周期,即2μs。采用循环计数法实现延时,循环次数可以通过计算获得,并选择先执行后判断的循环程序。
汇编程序如下:
DEL: MOV R7,#400 ;1μs
DEL1: MOV R6,#123 ;1μs
NOP ;1μs
DEL2: DJNZ R6,DEL2 ;2μs,共(2*123)μs
μs, DJNZ R7,DEL1 ;2μs,共((2*123+2+2)*400+1)即100.01ms
2、有一变量存放在片内RAM的30H单元,其取值范围为00H~04H。要求编制一段程序,根据变量值求其平方值,并存入片内RAM的31H单元。(15分)
程序如下:
ORG 1000H
START: MOV DPTR,#2000H
MOV A,30H
MOVC A,@A+DPTR
MOV 31H,A
SJMP $
ORG 2000H
TABLE: DB 00,01,04,09,16