AD作业解答
- 格式:doc
- 大小:41.50 KB
- 文档页数:4
7-13 不知书上是有意还是无意,不对
为简化,程序按3道工序编写,题目是要执行工序i延时6秒执行工序列i+1,但如书的参
考答案,不可能正常按顺序执行程序的,大家可分析答案程序中堆栈及指针的变化.
如还按书上程序的方法,请注意红字所标。
WOX DATA 0
WOY DATA 1
WOZ DATA 3
DEX DATA 6
DEY DATA 6
DEZ DATA 6
ORG 0H
MOV DPTR, #7FFFH
MOV A, #80H
MOVX @DPTR, A
ACALL WORK
DB WOX
ACALL DLY
DB DEX
ACALL WORK
DB WOY
ACALL DLY
DB DEY
ACALL WORK
DB WOZ
ACALL DLY
DB DEZ
WORK: POP DPH
POP DPL
CLR A
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
PUSH DPH
RL A
MOV DPTR,#WTAB
JMP @A+DPTR
DLY: POP DPH
POP DPL
CLR A
MOVC A,@A+DPTR
INC DPTR
PUSH DPL
PUSH DPH
MOV R7, A
DLY1: ACALL DELAY
DJNZ R7, DLY1
RET
WTAB: AJMP WA
AJMP WB
AJMP WB
WA: MOV DPTR, #7FFCH
MOV A, #01H
MOVX @DPTR, A
……
RET
WB: MOV DPTR, #7FFCH
MOV A, #02H
MOVX @DPTR, A
……
RET
WC: MOV DPTR, #7FFCH
MOV A, #04H
MOVX @DPTR, A
……
RET
END
7-22 关键是要求自左至右显示,关注红字
MOV A, #06H
MOV DPTR, #8000H
JB 07H, LOP1
MOV R2, #0C0H
SJMP LOP2
LOP1: MOV R2, #0F9H
LOP2: MOV R3, #0DFH
MOV R4, #06H
LOP3: MOV DPTR, #8003H
MOV A, R3
MOVX @DPTR, A
MOV DPTR, #8002H
MOV A, R2
MOVX @DPTR, A
ACALL DELAY
MOV A, R3
RR A
MOV R3, A
DJNZ R4, LOP3
SJMP LOP2
DELAY: ……
8-15 参考答案不能说是错,但它不符合它题目要求.
依题意要用定时计数器(设时时钟频率为12MHz):定时1分钟即60秒
方法一
用T0定时60ms,产生脉冲,T1对此脉冲计数1000个,计数到时正好1分钟,1分钟定时到
时依次采集8个通道
ORG 0000H
LJMP STA
ORG 000BH
LJMP LOOP1
ORG 001BH
LJMP LOOP2
STA: MOV TMOD, #01010001B
MOV TH0, #15H
MOV TL0, #0A0H
MOV TH1, #0FCH
MOV TL0, #18H
MOV IE, #8AH
CLR P1.0
SETB TR0
SETB TR1
MOV R1, #20H ;地址指针
SJMP $
LOOP1:MOV TH0, #15H
MOV TL0, #0A0H
SETB P1.0
NOP
NOP
CLR P1.0
RETI
LOOP2: MOV TH1, #0FCH
MOV TL0, #18H
MOV DPH, #78H ;通道存储单元
MOV R3, #8
LOP3: MOVX @DPTR, A ;通道选择并启动
INC DPH
JB P3.3, $
P1.0
T1
MOV A, @DPTR
MOV @R1, A
INC R1
DJNZ R3, LOP3
MOV R1, #20H
RETI
方法二
只用一个定时器(如T0),用软计数器R5R6=03E8H(1000)
ORG 0000H
LJMP STA
ORG 000BH
LJMP LOOP1
STA: MOV TMOD, #01010001B
MOV TH0, #15H
MOV TL0, #0A0H
MOV R5, #03H
MOV R6, #0E8H
MOV IE, #82H
CLR P1.0
SETB TR0
MOV R1, #20H ;地址指针
SJMP $
LOOP1:MOV TH0, #15H
MOV TL0, #0A0H
DJNZ R3, LOP2
DJNZ R2, LOP2
MOV DPH, #78H ;通道存储单元
MOV R3, #8
LOP3: MOVX @DPTR, A ;通道选择并启动
INC DPH
JB P3.3, $
MOV A, @DPTR
MOV @R1, A
INC R1
DJNZ R3, LOP3
MOV R1, #20H
MOV R5, #03H
MOV R6, #0E8H
LOP2: RETI