可控的花樣流水燈

2021-07-09 14:59:50 字數 2880 閱讀 7159

其實,上文中的電路,並不是實際的硬體電路,其中的數碼顯示器,是使用了 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 ...