程序如下:
1)程序1:
DA_ADR EQU 7FFFH ;DA的地址 ORG 0000H LJMP MAIN ORG 0100H
MAIN: MOV DPTR,#DA_ADR ;DA的地址 CLR A
LOOP: MOVX @DPTR,A INC A
CJNE A,#0FFH,LOOP SJMP MAIN END
2)程序2:
0.02S
DA_ADR EQU 7FFFH ;DA的地址 ORG 0000H LJMP MAIN ORG 0100H
MAIN: MOV DPTR,#DA_ADR ;DA的地址
16
CLR A
LOOP: MOVX @DPTR,A INC A
ACALL DEL
CJNE A,#0FFH,LOOP
L2: SJMP L1
L1: MOVX @DPTR,A DEC A
ACALL DEL CJNE A,#0,L0 SJMP MAIN DEL:MOV R7,#5 DJNZ R7,$ RET END
3)程序3:
图中Δt=0.1ms,ΔV=10,阶梯波级数为10级。
uo?tt0?V
DA_ADR EQU 7FFFH ;DA的地址 ORG 0000H LJMP MAIN ORG 0100H
MAIN: MOV DPTR,#DA_ADR ;DA的地址 CLR A MOV R7,#5
LOOP: MOVX @DPTR,A ACALL DEL
ADD A,#51
DJNZ R7,LOOP SJMP MAIN
17
DEL:MOV R6,#5 L1:MOV R5,#255 DJNZ R5,$ DJNZ R6,L1 RET END
8-11. 答:在启动A/D转换指令“MOVX @DPTR,A”中,A中数据写到ADC0809的三态输出锁存缓冲器,A中的数据是什么都无所谓,因为这时数据输出允许信号无效,三态输出锁存缓冲器对外呈高阻状态。DPTR中的地址包含了选中转换模拟量的模拟通道和START信号。作用是使STAET信号有效从而启动A/D转换器进行转换,并同时使EOC信号为低电平表示转换开始。
读转换信号指令“MOVX A,@DPTR”中,DPTR中的地址包含了选中转换模拟量的模拟通道和OE信号。作用是使OE信号有效从而使数据经过三态输出锁存缓冲器输出,数据出现在数据总线上。 8-12. 答:程序如下;
ORG 0000H LJMP MAIN ORG 0003H
LJMP INT0
ORG 0030H ;主程序 MAIN:DATA EQU 30H
MOV R0, #DATA ;设立数据存储区指针
MOV R2,#08H ;设置8路采样计数值
SETB IT0 ;设置外部中断0为边沿触发方式 SETB EA ;CPU开放中断
SETB EX0 ;允许外部中断0中断
MOV DPTR,# 0BFFFH ;送入口地址并指向INT0 LOOP: MOVX @DPTR,A ;启动A/D转换,A的值无意义
HERE:SJMP HERE ;等待中断IN0
ORG 0100H ;中断服务程序 INT0:MOVX A,@DPTR;读取转换后的数字量
MOV @R0,A ;存入片内RAM单元 DEC DPL ;指向下一模拟通道
INC R0 ;指向下一个数据存储单元 DJNZ R2,NEXT ;8路未转换完,则继续 CLR EA ;已转换完,则关中断
18
CLR EX0 ;禁止外部中断0中断
SJMP L1
NEXT:MOVX @DPTR,A ;再次启动A/D转换
L1:RETI ; 中断返回
END
ALE CK Q CLK
D Q G OEADC D7 IN7 Q7 0809 P0 8051 : 373: : : C EA D0 Q0 B A WRD0~D7 +P2.6 STARTIN0 ALE
RD + OE
P3.2 1 EOC 第9章 单片机系统的工程设计
9-1~9-4略
9-5.(1)单相四拍方式,步间软件延时10 ms,连续正转。
ORG 0000H AJMP START ORG 0030H
START:MOV A,#0EEH LOOP: MOV P1, A
ACALL DELAY RL A AJMP LOOP DELAY:MOV R6,#45 DL2: MOV R5,#54 DL1: DJNZ R5,DL1
DJNZ R6,DL2 RET END
(2)双相四拍方式,步间软件延时10 ms,连续反转。
ORG 0000H AJMP START ORG 0030H
19
START:MOV A,#0CCH LOOP: MOV P1, A
ACALL DELAY
RR A AJMP LOOP DELAY:MOV R6,#45 DL2: MOV R5,#54 DL1: DJNZ R5,DL1
DJNZ RET END
R6,DL2 20