首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 电子制作
用单片机AT89C2051制作的轻触式步进调整控制电路
来源:本站整理  作者:佚名  2010-01-22 16:00:23



    本文介绍用单片机AT89C2051来编程制作轻触式步进调整控制电路,则外围电路较简单,微型继电器的驱动电路容易制作,实际运行效果也不错。适合初学者仿制。

    一、 电路结构
    轻触式步进调整控制电路主要由AT89C2051与微型继电器构成,电路如图二所示。P3.0和P3.1作输入端口,分别接上拉电阻R1、R2和轻触开关S1、S2,S1做步进调整开关,S2做退步调整开关。P1.7~P1.0和P3.2~P3.7共13个口作输出端口,每一个端口用一颗发光二极管与PNP型三极管基极相连接,输出信号经过三极管放大后驱动微型继电器工作,发光二极管起到连接输出信号和显示输出信号的作用。微型继电器的常开或常闭触点与外围电路联接,通过控制微型继电器的触点闭合或断开来达到控制外围电路作步进调整工作。


      图二   轻触式步进调整控制电路图


     图三     轻触式步进调整控制直流稳压输出电路图

     二、 工作原理
    接通电源后,AT89C2051内部程序首先将P1.7~P1.0和P3.2~P3.7输出端口置成高电位,使联接在每个输出端口上的微型继电器驱动电路均停止工作,其次将P3.0和P3.1输入端口也置成高电位,使输入端口处于准备接收信号的状态。然后程序开始单独循环检测P3.0端口是否为低电位,即检测轻触开关S1是否被按下,如果S1是第一次被按下,则P1.7端口由高电位变为低电位,LED1导通,使微型继电器J1触点闭合,LED1对应发光显示该端有信号输出;此后,程序除了循环检测接在P3.0端口的轻触开关S1是否被按下以外,还要增加循环检测接在P3.1端口的轻触开关S2是否被按下;如果S1是连续第二次被按下,则P1.6端口由高电位变为低电位,LED2导通,使微型继电器J2触点闭合,LED2对应发光显示该端有信号输出,同时P1.7端口从低电位变为高电位,LED1熄灭,微型继电器J1触点断开。依此原理,每按下一次S1时,J1~J13触点顺序步进闭合,LED随步进对应发光显示该端有信号输出,外围电路也随之作步进调整工作;反之,每按下一次S2时,J1~J13触点顺序退步闭合,LED随退步发光显示该端有信号输出,外围电路同样也随之作退步调整工作。图三是该电路的一个应用实例。适当剪短程序,用其中五个输出端口可轻触式步进调整控制直流稳压输出电压,控制J1~J5的触点闭合或断开,就能分别为LM317的调整端接入不同阻值的电阻,使LM317输出大小不同的电压。电阻R*8~R*12的值可以根据需要输出电压大小不同通过实验测得。在LM317输入为18V时,分别测得电阻值为  2K、1.4K、865Ω、704Ω、 和 327Ω,可对应输出12V、9V、6V、5V和3V五组常用直流稳压电压。

    三、轻触式步进控制电路的流程图
    图一是用89C2051制作轻触式步进控制电路的程序流程图中的一部分。其余部分原理相同,依次类推。


四、轻触式步进控制电路的源程序
ORG  0000H
MOV  P1 ,#0FFH
MOV  P3 ,#0FFH
L0 :JB  P3.0 ,L0    ;按键1是否被按下,不是转L0 
L1 :JNB  P3.0 ,L1   ;按键1是否被抬起,不是转L1 
CLR  P1.7       ;开第1个端口
Q0 :JB  P3.1 ,L2     ;按键2是否被按下,不是转Q0
Q1 :JNB  P3.1 ,Q1   ;按键2是否被抬起,不是转Q1
SETB  P1.7      ;关第1个端口
LJMP  L0       ;转L0 
L2 :JB  P3.0 ,Q0     ;按键1是否被按下,不是转Q0
L3 :JNB  P3.0 ,L3    ;按键1是否被抬起,不是转L3
SETB  P1.7      ;关第1个端口
CLR  P1.6       ;开第2个端口
Q2 :JB  P3.1 ,L4
Q3 :JNB  P3.1 ,Q3 
SETB  P1.6 
CLR  P1.7 
LJMP  L2 
L4 :JB  P3.0 ,Q2    ;
L5 :JNB  P3.0 ,L5 
SETB  P1.6     ;关第2个端口
CLR  P1.5      ;开第3个端口
Q4 :JB  P3.1 ,L6
Q5 :JNB  P3.1 ,Q5 
SETB  P1.5 
CLR  P1.6 
LJMP  L4 
L6 :JB  P3.0 ,Q4 
L7 :JNB  P3.0 ,L7 
SETB  P1.5      ;关第3个端口
CLR  P1.4       ;开第4个端口
Q6 :JB  P3.1 ,L8
Q7 :JNB  P3.1 ,Q7 
SETB  P1.4 
CLR  P1.5 
LJMP  L6 
L8 :JB  P3.0 ,Q6 
L9 :JNB  P3.0 ,L9 
SETB  P1.4      ;关第4个端口
CLR  P1.3       ;开第5个端口
Q8 :JB  P3.1 ,L10
Q9 :JNB  P3.1 ,Q9 
SETB  P1.3 
CLR  P1.4 
LJMP  L8 
L10 :JB  P3.0 ,Q8 
L11 :JNB  P3.0 ,L11 
SETB  P1.3           ;关第5个端口
CLR  P1.2            ;开第6个端口
Q10 :JB  P3.1 ,L12
Q11 :JNB  P3.1 ,Q11 
SETB  P1.2 
CLR  P1.3 
LJMP  L10 
L12 :JB  P3.0 ,Q10 
L13 :JNB  P3.0 ,L13 
SETB  P1.2           ;关第6个端口
CLR  P1.1            ;开第7个端口
Q12 :JB  P3.1 ,L14
Q13 :JNB  P3.1 ,Q13 
SETB  P1.1 
CLR  P1.2 
LJMP  L12 
L14 :JB  P3.0 ,Q12 
L15 :JNB  P3.0 ,L15 
SETB  P1.1           ;关第7个端口
CLR  P1.0            ;开第8个端口
Q14 :JB  P3.1 ,L16
Q15 :JNB  P3.1 ,Q15 
SETB  P1.0 
CLR  P1.1 
LJMP  L14 
L16 :JB  P3.0 ,Q14 
L17 :JNB  P3.0 ,L17 
SETB  P1.0           ;关第8个端口
CLR  P3.2            ;开第9个端口
Q16 :JB  P3.1 ,L18
Q17 :JNB  P3.1 ,Q17 
SETB  P3.2 
CLR  P1.0 
LJMP  L16 
L18 :JB  P3.0 ,Q16 
L19 :JNB  P3.0 ,L19 
SETB  P3.2            ;关第9个端口
CLR  P3.3             ;开第10个端口
Q18 :JB  P3.1 ,L20
Q19 :JNB  P3.1 ,Q19 
SETB  P3.3 
CLR  P3.2 
LJMP  L18 
L20 :JB  P3.0 ,Q18 
L21 :JNB  P3.0 ,L21 
SETB  P3.3           ;关第10个端口
CLR  P3.4            ;开第11个端口
Q20 :JB  P3.1 ,L22 
Q21 :JNB  P3.1 ,Q21 
SETB  P3.4 
CLR  P3.3 
LJMP  L20 
L22 :JB  P3.0 ,Q20 
L23 :JNB  P3.0 ,L23 
SETB  P3.4           ;关第11个端口
CLR  P3.5            ;开第12个端口
Q22 :JB  P3.1 ,L24 
Q23 :JNB  P3.1 ,Q23 
SETB  P3.5 
CLR  P3.4 
LJMP  L22 
L24 :JB  P3.0 ,Q22 
L25 :JNB  P3.0 ,L25 
SETB  P3.5            ;关第12个端口
CLR  P3.7             ;开第13个端口
Q24 :JB  P3.1 ,L26 
Q25 :JNB  P3.1 ,Q25 
SETB  P3.7 
CLR  P3.5 
LJMP  L24 
L26 :JB  P3.0 ,Q24 
L27 :JNB  P3.0 ,L27 
SETB  P3.7             ;关第13个端口
LJMP  L0              ;转L0   
END

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:25,972.66000 毫秒