稳压示意图
通过整流桥的电流:
通过E0后:
最后通过集成稳压块7805
这样的电流在通过2个电容后就适合计算机工作了,在电路原理图右上角以+5V输出。
2.5 遥控器部分
图2-9
遥控器系统分为发射与接受两个部分,发射部分就是遥控器。接受部分能接收到遥控器发射的红外线。(与人体位置检测的红外线发射管共用红外接收头)
11
第3节 系统的软件设计
系统软件程序设计主要包括: 系统程序框图,主程序设计,采样子程序设计,数据处理程序等。各芯片地址编码为:81551/0口:7FF8H - 7FFDH,ADC0809: OBFF8H-OBFFFH
3.1 系统程序框图
图3-1 系统程序框图
程序框图如图3-1所示,程序开始后,对程序进行初始化。向P0脚写入低电平,开启所有中断,启动计数器。当中断1来时,进入中断1,设置R0为0,调用延时程序TIME0(延时10ms),判断R0是否等于7,若不是,则加1,继续发送数据进入循环,直至R=7,即实现的是灯慢慢变亮的一个过程。当中断0和中断1同时产生时,根据优先级,屏蔽掉中断1,开启中断0。调用延时程序TIME0(延时1分钟),查询中断0控制位;防止人体不小心到达热释电探测器的探测范围内,采用延时程序来排除干扰,防止误判。若为0,则返回主程序;若为1,则向P0高四位发送数据,使灯保持原来最亮状态,调用延时程序TIME1,判断R0是否等于0,若是则中断返回,若不是,则R0减1,继续循环,直至R0等到于0,此程序的目的是实现灯慢慢变暗。
12
3.2 系统主程序设计
源程序:
ORG 0000H AJMP MAIN ORG 0003H AJMP
DET1
;远探测器
ORG 0013H AJMP
ORG 0050H
MAIN: MOV P0, #00000001B ;置初始值DET0,DET1可重复触发,灯灭
DET0
;近探测器
MOV TMOD, #00000010B MOV
;方式2,8位自动重装计数器 ;开启计数器T0 ;开启所有中断
TCON, #00010000B
MOV IE, #10000111B SJMP
$
;灯慢慢变亮
DET1: MOV P0, #00000001B
CALL TIME0 ;灯亮度延时10ms
MOV P0, #00000011B CALL
TIME0
MOV P0, #00000101B CALL
TIME0
MOV P0, #00000111B CALL
TIME0
MOV P0, #00001001B CALL
TIME0
MOV P0, #00001011B CALL
TIME0
MOV P0, #00001101B
13
CALL TIME0
MOV P0, #00001111B CALL RETI
;灯慢慢熄灭
DET0: CALL
TIME1
;延时1分钟
TIME1
MOV TCON, A ANL A, #1 JZ LOOP
MOV P0, #00001111B
CALL
TIME0
MOV P0, #00001101B CALL
TIME0
MOV P0, #00001011B CALL
TIME0
MOV P0, #00001001B CALL
TIME0
MOV P0, #00000111B CALL
TIME0
MOV P0, #00000101B CALL
TIME0
MOV P0, #00000011B CALL
TIME0
MOV P0, #00000001B
RETI
LOOP: RET
;延时10ms
TIME0: SETB
TR0
MOV R0, #20 D_1:MOV
R1, #250 DJNZ
R1, $
14
DJNZ R0, D_1
CLR TR0 RET
;延时1分钟
TIME1: SETB
TR0
MOV R0, #250 MOV R1, #200 MOV R2, #60
R0, D_2
D_2 : DJNZ
MOV R1, #200 DJNZ
R1, D_2
MOV R2, #60 DJNZ
R2, D_2
CLR TR0 RET END
3.3 采样子程序设计
根据电路图2-5,因EOC未接入单片机,故只能采用延时等待的方法来读取A/D转换结果,ADC0809的INO和INl两个地址分别是OBFF8H, OBFF9H, INO通道采集到的11个数据放入以ADTURNO(片内21H)为首址的一片数据区内,IN1通道采集到的11个数据放入以ADTURN1(片内2CH)为首址的另一片数据区内。 程序清单:
AD: MOV R0, #ADTURNO MOV R6, #OBH
ADLOOP: MOV DPTR, #OBFF8H; 启动INO通道A/D转换 GOON: MOVX @DPTR, A
MOV R7, #OAOH; 延时等待转换结束 DLAY: NOP NOP NOP
15