採用普通集成電路製作輕觸式步進調整控制電路時,外圍電路相對較複雜;本文介紹用單片機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
[admin via 研發互助社區 ] 用89C2051製作輕觸式步進調整控制電路已經有2634次圍觀
http://cocdig.com/docs/show-post-42076.html