单片机题目 期末复习题 张毅刚
- 格式:doc
- 大小:529.00 KB
- 文档页数:2
通过甲机向乙机发送数据,乙机P1口所连接的8个发光二极管实现亮点流动。
两个单片机晶振均为12MHZ ,波特率要求为1200b/s 。
程序采用中断方式进行编写。
亮点持续时间为100ms ,由延时程序实现,给出时间计算过程。
甲机发送程序 ORG 0000H LJMP START ORG 0023H LJMP T-INT ORG 0100H
START: MOV SP ,#60H MOV TMOD ,#02H MOV TL1,#0E6H MOV TH1,#0E6H SETB TR1
MOV SCON ,#40H , SETB EA SETB ES
MOV A ,#OFEH MOV SBUF ,A LOOP: SJMP LOOP T-INT:CLR TI LCALL DELAY RL A
MOV SBUF ,A RETI
DELAY: MOV R0,#200 DL0: MOV R1,#250 DJNZ R1,$
DJNZ R0,DL0 RET END
乙机接受程序 ORG 0000H LJMP START ORG 0023H LJMP R-INT ORG 0100H
START: MOV SP ,#60H MOV TMOD ,#02H MOV TL1,#0E6H MOV TH1,#0E6H SETB TR1
MOV SCON ,#40H , SETB EA SETB ES SETB REN
LOOP: SJMP LOOP R-INT: CLR RI MOV A ,SBUF MOV P1,A RETI END
原理接线图如下,编写程序,使定时器T0以中断方式产生100ms 的延时,实现8个发光二极管的亮点流动,在亮点流动的过程中,如按下单单脉冲键SW1,8个发光二极管的发光状态将改变为同时闪烁,闪烁16次后恢复亮点流动,闪烁时间由延时程序完成,闪烁亮灭持续时间为100ms ,给出时间
分析:(1)T0的定时时间为100ms,工作方式为1,机器周期时间=2us,计数初值为:X=65536-T/机器周期=65536-50000/1=15536=3CB0H。
(2)T0方式1:M1M0位为01、GATE=0、C/T=0;T0不用,可以为任意位,一般取零即可,故TMOD=01H。
(3)因为T0方式1为16位计数器,所以(TH0)=3CH,(TL0)=0B0H。
(4)参考程序
ORG 0000H
LJMP START
ORG 0003H
LJMP INT0
ORG 000BH
LJMP T0INT
ORG 0100H
START: MOV SP, #30H
MOV TMOD, #01H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB EA
SETB EX0
SETB ET0
SETB IT0
SETB PX0
SETB TR0
MOV A, #0FEH
LOOP: SJMP LOOP
T0INT: MOV P1,A
RL A
MOV TL0,#0B0H
MOV TH0,#3CH
RETI
INT0: PUSH Acc
MOV A,#00H
MOV R2, #10H
LOOP1:MOV P1,A
LCALL DELAY
CPL A
DJNZ R2,LOOP1
POP Acc
RETI
DELAY: MOV R0, #FFH
DL0: MOV R1, #FFH
DJNZ R1,$
DJNZ R0,DL0
RET
END
1.已知(R0)=20H,(20H ) =10H,(P0) =30H,
(R2) =20H,执行如下程序段后
MOV @R0 , #11H
MOV A , R2
ADD A , 20H
MOV PSW , #80H
SUBB A , P0
MOV 40H , A
结果是:( 40H ) = 。
2.已知(R0)=20H,(20H)=36H,(21H)=17H,
(36H)=34H,执行过程如下:
MOV A , @R0
MOV R0 , A
MOV A , @R0
ADD A , 21H
ANL A , #21H
RL A
MOV R2 , A
则执行结束(R0)= , (R2)= 。
3.执行下面一段程序;
MOV SP, #60H
MOV A, #10H
MOV B, #01H
PUSH A
PUSH B
POP A
POP B
A,B的内容是:(A)= ,(B)=
2。