其實,上文中的電路,並不是實際的硬體電路,其中的數碼顯示器,是使用了 proteus 中的**元件。
如果想要製作硬體電路,這個**的元件就必須更換為七段解碼器晶元,選用 cd4511、74ls48 這些解碼器都可以。
如果採用軟體解碼,也可以省掉解碼晶元,這更體現了微控制器的智慧型特點。
下面就是採用軟體解碼的可控流水燈的電路圖:
圖中使用了共陰的數碼管,這是應網友的要求來設計的,其實,採用共陽極的更好一些。
圖中的元件引數都已經標註清楚,可以按照這些引數(允許在一定範圍內變動)購置硬體,焊接電路板。
電路進行了區域性的改動,原博文中的程式,也要有相應的改動。
改好的程式如下:
org 0000h
jmp start
org 0003h
jmp x0_int
org 000bh
jmp t0_int
org 0013h
jmp x1_int
;---------------------------------
start:
mov tmod, #51h ;/*01010001 t1計數,t0定時*/
mov th0, #high(65536 - 50000) ;50ms@12mhz
mov tl0, #low (65536 - 50000)
mov th1, #0
mov tl1, #0
setb tr0
setb tr1
setb it0
setb it1
mov ie, #10000111b
mov r7, #20
mov 30h, #20
mov 31h, #0
mov 32h, #0
mov p2, #06h ;顯示1
sjmp $
;---------------------------------
t0_int: ;50ms執行一次
mov tl0, #low (65536 - 50000) ;重新寫入初始值
mov th0, #high(65536 - 50000) ;50ms@12mhz
;------------------
jia:
jb p3.4, jian
jnb p3.4, $
dec 30h ;加速
mov a, 30h
jnz *** ;不能讓它為0
inc 30h
***:
;------------------
jian:
jb p3.5, xianshi
jnb p3.5, $
inc 30h
mov a, 30h
subb a, #80
jc ccc
mov 30h, #80
ccc:
;------------------
xianshi:
djnz r7, t0_end
mov r7, 30h
inc 32h
anl 32h, #7
;------------------
mov a, 31h
anl a, #3
rl a
rl a
rl a
add a, 32h
mov dptr, #hua_y
movc a, @a+dptr
cpl a
mov p1, a
;------------------
t0_end:
reti
;---------------------------------
x0_int: ;設定花型
call dl10ms
jb p3.2, x0_end
inc 31h
anl 31h, #3
mov a, 31h
mov dptr, #tab
movc a, @a + dptr
mov p2, a
x0_end:
reti
tab:db 06h, 5bh, 4fh, 66h
;---------------------------------
x1_int: ;啟動/停止
call dl10ms
jb p3.3, x0_end
cpl tr0
x1_end:
reti
;---------------------------------
hua_y:
db 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
db 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
db 0x81,0x42,0x24,0x18,0x81,0x42,0x24,0x18
db 0x18,0x24,0x42,0x81,0x18,0x24,0x42,0x81
;---------------------------------
dl10ms:
mov r5, #10
mov r6, #249
djnz r6, $
djnz r5, $ - 2
ret;---------------------------------
end大家可以和原文對照比較,看看都做了那些改動。
4 花樣流水燈
at89s51的定時 計數器t0產生2秒鐘的定時,每當2秒定時到來時,更換閃爍的燈,每個指示閃爍的頻率為0.2秒。即l1以0.2秒的速率閃爍,2秒定時到來時,燈l1閃過10下之後,l2開始以0.2秒的速率閃爍,如此迴圈下去,共4個燈,l1 l4 說明 定時2秒,採用16位定時50ms,共定時40次才...
FPGA之花樣流水燈控制模組
例子 8個燈中,硬體控制其中1個led燈以0.5秒的速度正向點亮一次,然後逆向點亮1次,並不斷迴圈。主 系統時鐘為50mhz 分析 首先,訊號 8個燈 系統時鐘clk 需要時鐘0.5秒 實現 系統時鐘分頻0.5秒模組。控制燈亮乙個。module div 25m clk 50m,clk 2hz inp...
51小程式 流水燈 花樣燈
該程式為燈乙個乙個亮 void main void u8 w,i while 1 for i 0,w 0x01 i 8 i port w w 1 delay 2000 只有乙個燈進行流水 花樣流水燈 名稱 花樣流水燈 編寫 jam 日期 2018.7.21 修改 無 功能 花樣燈 第一遍 led1 ...