图5.23 5.23题逻辑电路图
DAC0832的口地址为7FFFH。波形占空比为1:4,高电平波形/低电平波形为1/3。 当VO=2.5V时,D=80H;VO=1.25V时,D=40H。 程序如下:
ORG 0000H
LJMP MAIN ORG 0030H MAIN: MOV SP,#60H
MOV DPTR,#7FFFH
NEXT: MOV A,#80H MOVX @DPTR,A ACALL DELAY MOV R4,#03H MOV A,#40H MOVX @DPTR,A LOOP: ACALL DELAY DJNZ R4,LOOP AJMP NEXT DELAY: ?? RET
END 24.在一个80C51与一片ADC0809组成的数据采集系统中,ADC0809的地址为7FF8H~7FFFH。试画出逻辑电路图,并编写程序,每隔1分钟轮流采集一次8个通道数据,8个通道总共采集100次,其采样值存入以片外RAM 3000H开始的存储单元中。 解:
硬件电路连接图如图5.24所示。
图5.24 5.24题逻辑电路图
设80C51的时钟频率为12MHz,程序如下:
ORG 0000H LJMP MAIN ORG 001BH LJMP T1_1 ORG 0030H MAIN: LOOP: T1_1: LOOP1: RETI_0:MOV SP,#60H MOV R7,#100 MOV R1,#30H MOV R0,#00H MOV R2,#20 MOV R3,#60 MOV TOMD,#10H MOV TH1,#3CH MOV TL1,#0B0H SETB EA SETB ET1 SETB TR1 SJMP LOOP DJNZ R7,LOOP SJMP $ ORG 0100H MOV TH1,#3CH MOV TL1,#0B0H DJNZ R2,RETI_0 MOV R2,#20 DJNZ R3,RETI_0 MOV R3,#60 MOV R6,#8 MOV DPTR,#7FF8H MOVX @DPTR,A JB P1.0,$ MOVX A,@DPTR PUSH DPH PUSH DPL MOV DPH,R1 MOV DPL,R0 MOVX @DPTR,A INC DPTR MOV R1,DPH MOV R0,DPL POP DPL POP DPH INC DPTR DJNZ R6,LOOP1 RETI END
;设堆栈指针 ;置采集次数 ;片外RAM地址高位 ;片外RAM地址低位 ;置入初值20(计1 s) ;置入初值60(计1 min) ;定时器T1工作于模式1 ;计数器定时50ms的初值 ;开中断 ;定时器T1允许中断 ;启动定时器T1 ;等待中断 ;是否到100次? ;中断服务程序,重新赋计数器初值 ;1 s未到,返回 ;重新置“1s”计数器初值 ;1 min未到,返回 ;重新置“1min”计数器初值 ;8个通道计数器初值 ;IN0地址 ;启动A/D转换 ;判转换是否结束 ;读取转换结果 ;将通道地址压入堆栈 ;将片外RAM地址送DPTR ;将转换结果存入片外RAM ;片外RAM地址加1 ;保存片外RAM地址 ;恢复通道地址 ;通道地址加1 ;8个通道是否采集结束 ;中断返回
相关推荐: