4.8051的定时器/计数器有几个?是多少位的?有几种工作方式?其工作原理如何?
答:8051有2个16位的定时器/计数器,有4种工作方式。定时器与计数器的工作原理是相同的,8051的定时器/计数器是根据输入的脉冲进行加1计数,当计数器溢出时,将溢出标志位置1,表示计数到预定值。
5.8051有哪几个中断源?哪些是内部中断源?哪些是外部中断源?.
答:8051有5个中断源,分别是定时器/计数器T0、T1的溢出中断TF0、TF1,串行口的收/发中断RI/TI,外部中断;其中定时器/计数器T0、T1的溢出中断TF0、TF1、串行口的收/发中断RI/TI是内部中断源,外部中断、是外部中断源。
三、判断题(20分)
1.判断以下各条指令是否正确(LL1和PROC为标号)(10分) (1)MOVX @R0,B × (2)MOV A,30H ○ (3)MOVX A,30H × (4)ADDC A,R7 ○ (5)SUB A,R2× (6)ANL #99H ,36H× (7)MOV C,ACC.0 ○ (8)ORL P1.0,P3.1× (9)JBC P0,LL1 × (10)ACALL PROC ○
2.判断以下说法是否正确,不正确予以改正。(10分)
(1)单片机是面向数据处理的。 × 单片机是面向控制的。 (2)定时器与计数器的工作原理均是对输入脉冲进行计数。○
(3)由于MCS-51的串行口的数据发送和接收缓冲器都是SBUF,所以其串行口不能同时发送和接收数据,即不是全双工的串行口。 × 由于MCS-51的串行口的数据发送和接收缓冲器都是SBUF,但在物理上,实际上是两个缓冲器,其串行口可以同时发送和接收数据,是全双工的串行口。
(4)END表示指令执行到此结束。 × END表示指令汇编到此结束。 (5)ADC0809是8位逐次逼近式模/数转换接口。○
四、阅读程序(20分)
1.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?(5分)设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。
(1)MOV A,#48H ;寻址方式:立即寻址 (A)= 48H (2)ADD A,60H ;寻址方式: 直接寻址 (A)= 4EH (3)ANL A,@R0 ;寻址方式: 寄存器间接寻址(A)= 09H
2.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?(15分) 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分)
若8051的晶振频率fosc为6MHz,定时器/计数器T0工作在工作方式1,要求产生10ms定时,写出定时器的方式控制字和计数初值(分别写出TH0与TL0值)
答:1)(5分)T0:定时方式,工作在方式1。方式字TMOD=01H (2)(5分)fosc=6MHz,16位计数器,10ms定时,设计数初值为a,
16316
t=12/ fosc*(2 - a) 10*10=12/6 *(2 - a) a=60536=EC78H 即TH0=ECH TL0=78H 所以:TMOD=01H TH0=ECH TL0=78H 六、编程题(15分)
1.阅读程序并填空,形成完整的程序以实现如下功能。(5分)
有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H。要求将该字符串中每一个字符加偶校验位。(以调用子程序的方法来实现。)
源程序如下: ORG 1000H MOV R0,#40H MOV R7,#10 NEXT: MOV A, ① ACALL SEPA MOV @R0,A INC R0 DJNZ ② ,NEXT SJMP $ SEPA: ADD A,#00H ③ PSW.0,SRET
SRET:
ORL A, ④ ⑤
① @R0 ② R7 ③ JNB ④ #80H ⑤ RET
2.从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。(10分) 答: 从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。(10分) MOV R0,#30H MOV R1,#40H MOV A,#50H MOV R7,#10 LOOP: MOV 20H,@R0 JB 20H.7,FSHU ZSHU: MOV @ R1,20H INC R1 SJMP NEXT FSHU: XCH A,R1 MOV @R1,A XCH A,R1
INC A
NEXT: DJNZ R7,LOOP SJMP $
机模拟试卷006及答案
一、填空题(每空1分,共10分)
一、填空(每题2分,共10分)
1、MCS-51单片机片内有 5 个中断源,其中 2 个外部中断源。
2、设定T1为计数器方式,工作方式2,则TMOD中的值为 60H(高位为6即可) 。 3、若IT1=0,当引脚 P3.2 为低电平的时候,INT0的中断标志位 IE0 才能复位。 4、在接口电路中,把已经编址并能进行读写操作的寄存器称为 端口 。
5、在单片机中,为实现数据的I/O传送,可使用三种控制方式,即 无条件传送 方式、查询 方式和 中断 方式 二、选择题(每小题2分,共10分)
1、寻址空间为数据程序存储器所用的指令是( A ): A. MOVX B.MOV C.MOVC D.ADDC
2、执行中断返回指令,从堆栈弹出地址送给( C ). A. A B. CY C. PC D. DPTR
3、七段共阴极发光两极管显示字符‘H’,段码应为(E ) A.67H B. 6EH C. 91H D. 76H E.90H
4、在串行通信中, 8031中发送和接收的寄存器是( B) 。 A.TMOD B. SBUF C. SCON D. DPTR 5、波特的单位是(B )
A. 字符/秒 B. 位/秒 C. 帧/秒 D. 字节/秒 三、指令题(每小题4分,共16分) 1、将20H单元清零 MOV 20H,#00H 或 CLR A MOV 20H, A
2、将片外RAM2000H中的低字节与片内20H中的低字节交换。 MOV DPTR,#2000H XCHD A,@R0 MOV R0,#20H MOVX @DPTR,A MOVX @DPTR,A
3、已知某端口地址为2FFFH,将片内RAM20H的内容写到该端口中。 MOV A, 20H MOVX DPTR, #2FFFH MOVX @DPTR, A
4、把DPTR的内容压入堆栈 PUSH DPH PUSH DPL
四、填写下表(每空2分,共10分)
指令 CLR 40H PUSH ACC MOVC A,@A+PC SJMP $ MOVX @DPTR, A 寻址空间 位寻址区 片内RAM(数据存储器) (ROM)程序存储器 (ROM)程序存储器 外部RAM(数据存储器) 五、读程序(每小题5分,共10分)
1、设(A)=38H,R0=28H,(28H)=18H,执行下列程序后,(A)= 0E7H ORL A,#27H ANL A,28H XCHD A,@R0 CPL A
2、设(A)=38H,(20H)=49H,PSW=00H,(B)=02H,填写以下中间结果。 SETB C
ADDC A, 20H (A)= 82H (CY)= 0 (AC)= 1 RLC A (A)= 04H (CY)= 1 (P)= 1 MUL AB (A)= 08H (B)= 00H (OV)= 0 六、简答题(共14分)
1、简述子程序调用和执行中断服务程序的异同点。(8分)
相同点:均能中断主程序执行本程序,然后再返回断点地址继续执行主程序。 不同点:
(1)中断服务程序入口地址是固定的,子程序调用入口地址是用户自己设定的。
(2)中断服务子程序返回指令除具有子程序返回指令所具有的全部功能之外,还有清除中断响应时被置位的优先级状态、开放较低级中断和恢复中断逻辑等功能。
(3)中断服务子程序是在满足中断申请的条件下,随机发生的;而子程序调用是用户主程序事先安排好的。
2、已知晶振频率为6MHz,在P1.0引脚上输出周期为500微秒的等宽矩形波,若采用T1中断,工作方式2,试写出中断初始化程序(6分) MOV TMOD, #20H SETB ET1 MOV TL1, #06H SETB TR1 MOV TH1, #06H SJMP $
SETB EA 七、编程题(10分)
将内部RAM20H为首的16个单元的8位无符号数排序写出程序,并作适当注释
SORT: MOV R0, #20H MOV R7,#07H
CLR TR0 ;交换标志位复位
LOOP: MOV A,@R0 MOV 2BH, A INC R0
MOV 2AH, @R0 CLR C
SUBB A, @R0;比较前后两个数
JC NEXT ; MOV @R0, 2BH
DEC R0
MOV @R0, 2AH
INC R0
SETB TR0 ;置交换标志位有效 NEXT: DJNZ R7, LOOP
JB TR0, SORT;若交换标志位有效,继续进行 HERE: SJMP $
八、读图题(20分)
阅读下列硬件图,补齐连接线(5分),并回答问题(各5分):