51单片机控制灯泡亮度的仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADC0831模拟量转换为对应8位数字量时延时大小的调节电路及程序
CS BIT P2.2 CLK BIT P2.1 DO BIT P2.0 ADCD EQU 35H PWM BIT P3.0 TB BIT P3.2
ORG 0000H AJMP MAIN ORG 0003H AJMP ZD
ORG 0100H MAIN:
MOV SP,#30H SETB IT0
;CLR IT0
SETB EA
SETB EX0 LCALL ADC
;MOV ADCD,#51
WAIT:
CLR PWM MOV A,ADCD LCALL DELAY SETB PWM MOV A,#0FFH SUBB A,ADCD LCALL DELAY
SJMP W AIT
ADC:
SETB PWM
SETB CS
CLR CLK
NOP
NOP
CLR CS
NOP
NOP
SETB CLK
NOP
NOP
CLR CLK
NOP
NOP
SETB CLK
NOP
NOP
CLR CLK
NOP
NOP
SETB CLK
NOP
MOV R0,#08H
ADCKS:
CLR CLK
MOV C,DO
RLC A
SETB CLK
NOP
NOP
DJNZ R0,ADCKS
SETB CS
MOV ADCD,A
RET
DELAY:
MOV R5,A
D1:
MOV R6,#18
DJNZ R6,$
DJNZ R5,D1
RET
ORG 0200H
ZD:
PUSH ACC
MOV A,#255
SUBB A,ADCD
LCALL DELAY
CLR PWM
POP ACC
RETI
END
ADC0832的应用
A_0832_CS EQU P2.0 A_0832_CLK EQU P2.1 A_0832_DO EQU P2.2 A_0832_T EQU 30H
A_0832_DA EQU 31H PWM BIT P3.0
TB BIT P3.2
ORG 0000H
LJMP MAIN
ORG 0003H
AJMP ZD
ORG 0100H
MAIN:
MOV SP,#30H
SETB IT0
SETB EA
SETB EX0
WAIT:
LCALL ADC_RD SJMP W AIT
ADC_RD:
MOV A_0832_T,#8 CLR A_0832_CLK CLR A_0832_CS SETB A_0832_DO
;START
SETB A_0832_CLK
;第一个上升沿
NOP
NOP
CLR A_0832_CLK NOP
NOP
SETB A_0832_DO
;选择CH0 NOP
SETB A_0832_CLK
;第二个上升沿
NOP
NOP
NOP
CLR A_0832_CLK
NOP
NOP
SETB A_0832_DO
;选择CH0
NOP
SETB A_0832_CLK
;第三个上升沿
NOP
NOP
NOP
CLR A_0832_CLK
;首个下降沿
NOP
NOP
NOP
SETB A_0832_CLK
NOP
NOP
A_0832_RD:
;读取前,8位
CLR A_0832_CLK
NOP
NOP
NOP
SETB A_0832_CLK
MOV C,A_0832_DO
RLC A
DJNZ
A_0832_T,A_0832_RD
MOV A_0832_DA,A
RR A
MOV A_0832_T,#7
A_0832_RD1:
;读后7位,+前1位
CLR A_0832_CLK
NOP
NOP
NOP
SETB A_0832_CLK
MOV C,A_0832_DO
RRC A
DJNZ
A_0832_T,A_0832_RD1
CJNE
A,A_0832_DA,ADC_RD
SETB A_0832_CS
RET
DELAY:
MOV R5,A
D1:
MOV R6,#14
DJNZ R6,$
DJNZ R5,D1
RET
ORG 0200H
ZD:
PUSH ACC
CLR PWM
MOV A,A_0832_DA
LCALL DELAY
SETB PWM
NOP
NOP
NOP
CLR PWM
POP ACC
RETI
END