当前位置:首页 > 单片机习题
11.单片机系统中的定时和计数功能有何区别?分别适用于什么场合?
答: “定时”功能是对片内稳频脉冲(是晶振频率的1/12)的计数,从计数开始到计满溢出为止,可以由计数值×稳频脉冲周期值来得到一个准确的时间值;而“计数”功能则是对单片机引脚上的外来随机脉冲进行计数,一般情况下,难以折算为精确时间。
定时功能适用于需要准确计量一段时间的定时场合;而计数功能适用于对外部事件的计数。 12.单片机用于外界过程控制中,为何要进行A/D、D/A转换?
答: 微型计算机只能处理数字形式的信息,但是在实际工程中大量遇到的是连续变化的物理量。例如温度、压力、流量、光通量、位移量以及连续变化的电压、电流等。对于非电信号的物理量,必须先由传感器进行检测,并且转换为电信号,然后经过放大器放大为0~5V电平的模拟量。所以必须加接模拟通道接口,以实现模拟量和数字量之间的转换。
A/D(模/数)转换就是把输入的模拟量变为数字量,供微型计算机处理;而D/A(数/模)转换就是将微型计算机处理后的数字量转换为模拟量输出。
五、阅读并分析程序(每小题8分,共16分)
1.以下程序段执行后,(A)= 6EH ,(30H)= EEH 。
MOV 30H,#0A4H MOV A,#0D6H MOV R0,#30H MOV R2,#5EH ANL A,R2 ORL A,@R0 SWAP A CPL A
XRL A,#0FEH ORL 30H,A
2.下列程序执行后,结果如何?
MOV R0, #7FH MOV 7EH,#0 MOV 7FH,#40H DEC @R0 DEC R0 DEC @R0
答: (R0)=_ 7E _ H, (7EH)=_ FF__ H, (7FH)=__3F__ H。
3.以下程序段执行后,(40H)= 5EH ,(41H)= 69H 。
CLR C
MOV A,# 56H SUBB A,#0F8H MOV 40H,A MOV A,#78H SUBB A,#0EH
8
MOV 41H,A
4.设(R0)=7EH,(DPTR)=10FEH,内部RAM 7EH和7FH 2单元的内容分别是FFH和38H,请写出下列程序段的每条指令的执行结果。
INC @R0; (7EH)=00H INC R0; (R0)=7FH INC @R0; (7FH)=39H INC DPTR; (DPTR)=10FFH INC DPTR; (DPTR)=1100H
INC DPTR; (DPTR)=1101H
5.设(R0)=20H,(R1)=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,(26H)=6FH,(27H)=76H,下列程序执行后,结果如何?
CLR C MOV R2,#3H
LOOP: MOV A,@R0
ADDC A,@R1 MOV @R0, A INC R0 INC R1 DJNZ R2, LOOP
JNC NEXT
MOV @R0, #01H SJMP $
NEXT:DEC R0
SJMP $
答:(20H)= 20H , (21H)= 00H , (22H)= 17H ,
(Cy)= 1 , (A)= 17H , (R0)= 23H , (R1)= 28H
6.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A、R0和内部RAM中50H,51H单元的内容为何值?
MOV A,59H MOV R0,A MOV A,#00H MOV @R0,A MOV A,#25H MOV 51H,A MOV 52H,#70H
答:(A)= 25H 、(R0)= 50H 、(50H)= 00H 、(51H)= 25H
7.已知(A)=7AH,(R0)=30H,内容RAM 30H单元的内容为A5H,请写出下列程序段执行后累加器A的内容。
ANL A,#17H ORL 30H,A
9
XRL A,@R0 CPL A
答:(A)= 5AH
8.阅读分析下列程序,说明它完成的功能。
MOV A,30H ANL A,#3CH RL A RL A
MOV 33H,A ANL 31H,#3 ANL 32H,#0C0H MOV A,31H ORL A,32H RL A RL A
ORL 33H,A
答:将内部RAM 30H的中间4位,31H的低2位,32H的高2位按序拼成一个新字节,存入33H单元。
9.请填写程序执行结果。已知执行前有(A)=02H、(SP)=40H、(41H)=FFH、(42H)=FFH,程序如下:
POP DPH POP DPL
MOV DPTR,#3000H RL A
MOV B,A
MOVC A,@A+DPTR PUSH ACC MOV A,B INC A
MOVC A,@A十DPTR PUSH ACC RET
ORG 3000H
DB 10H,80H,30H,80H,50H,80H
答:(A)= 80H 、(SP)= 40H 、(41H)= 50H 、(42H)= 80H 、(PC)= 8050H 。
10.阅读下列程序段并回答问题:
CLR C
MOV A,#9AH SUBB A,60H ADD A,61H DA A
MOV 62H,A
① 请问该程序执行何种操作?
② 已知初值:(60H)=23H,(61H)=61H,请问运行后:(62H)= ?
10
答:① 程序执行的操作是单字节BCD码减法运算,是将(61H)–(60H) →(62H)。 ② (62H)= 38H 。
六、请写出源程序并加以注释(8分)
1.试编写一个拼字程序(例如将05H和06H拼为56H),设原始数据放在片外数据区的7001H单元和7002H单元中,按顺序拼装后的单字节数放入7002H。 解: 程序段如下:
MOV DPTR,#7001H
MOVX A,@DPTR SWAP A MOV B,A INC DPTR
MOVX A,@DPTR ORL A,B
MOVX @DPTR,A
2.将40H开始存放的10个字节的数与50H开始存放的10个字节的数相减(假设被减数大于减数),编制该程序。设被减数指针为R0,减数指针为R1,差数放回被减数单元,R5存放字节个数。
解: 程序段如下:
SUB: MOV R0,#40H
MOV R1,#50H MOV R5,#10 CLR C
SUB1:MOV A,@R0 SUBB A,@R1 MOV @R0,A INC R0 INC R1
DJNZ R5,SUB1 RET
3.编写求无符号数最小值的子程序。
说明:20H和21H中存放数据块起始地址的低位和高位,22H中存放数据块长度;求得的最小值存入30单元中。
解: 程序段如下: CMP: MOV DPH,21H
MOV DPL,20H MOV 30H,#0FFH LP:MOVX A,@DPTR
CJNE A,30H,CHK SJMP LP1
CHK: JNC LP1
MOV 30H,A
LP1: INC DPTR
DJNZ 22H,LP
11
共分享92篇相关文档