關於微控制器流水燈

2022-09-14 17:45:04 字數 1234 閱讀 4124

1樓:匿名使用者

不知道你有沒有搞明白所有的彙編指令的用途就看這個。p0口應該接了8個燈,操作他們的方法有兩種,一種是位操作,一種就是對整個p0口操作。51微控制器中每個並口有8條線,這8條線每條都接乙個led,如果是共陰極的話,給p0口的哪一位送高電平哪一位就亮。

如果是共陽極,送低點平亮。一般都是共陽極,因為微控制器上電後p口全部輸出高電平。舉個例子:

對於位操作 要想讓p1.0的燈亮mov p1.0,0

如果操作整個p0口的話應該是mov p1,11111110b或者mov p1,0xfe

我不明白他硬體電路是怎麼連線的,讓p1.0連線的燈亮會是給最高位賦0。如果有**的話,能上個原理圖是最好的!

至於送出去是80h,不知道為什麼,我感覺他寫錯了…如果是移位的話也應該是cfh…而且前面把01111111b送a的解釋是不知道…因為移位指令只能對a操作…我建議你先搞懂微控制器的基本知識和每條彙編指令的意義和用法再學。我現在用的是c。而且學微控制器最好有硬體,你光寫程式不驗證是學不會微控制器的。

我也是初學者,我留下我的口口303983882,如果有需要,可以找我!我們一起進步!我是用手機打的,有點亂,如果有錯字的話請諒解!

上面程式如果有錯的地方,請下面的人不要笑我,請大家幫我改正!謝謝!我也學微控制器沒多久。

2樓:

i/o口為低電平的時候,led點亮,所以當a=7fh時,p1口只有最高位的燈被點亮,所以只是看起來像是80h,並不是p1口送出的80h,所以「此時a中的值是7fh,所以送出去的也就是80h」這句話是錯誤的,這裡面提到80h是指資料

p1口有8個i/o(p1.0、p1.1……p1.7),所以是可以獨立操作的,也就是可以操作其中乙個,所以就能做到乙個乙個的亮

這個電路是利用51微控制器灌點流大的特點,+5v--》led--》i/o口,

3樓:忻憐雲

mov a,#01111111b;對累加器賦初值loop: mov p1,a;累加器裡的內容送到p1口a 的值是 7fh 啊 p0的值也是7fh 這個沒有問題80h 是指p0口的位址!!!!!!

你是否把位址和資料概念混淆了????

關於亮燈的 你檢視電路 初始化是p0.0 低電平 所以就亮 對應的這個燈 然後右移了 就應該亮p0.1的燈。

p0.0的燈也就滅了 因為這個時候執行loop: mov p1,a ; 指令

a的值變化了 變成了#10111111b請你再次對微控制器的 基本概念看下 80h 是位址 !!!!!!

微控制器,花樣流水燈,微控制器中的流水燈,花樣燈,跑馬燈

參考 微控制器原理與應用 基於彙編 c51及混合程式設計 一書的第146 147頁例題5 25,要改變流水燈的花樣只改變陣列a中各元素即可 k1 bit p3.0 k2 bit p3.1 org 0000h jmp start start mov tmod,01h setb tr0 mov r4,7...

微控制器流水燈彙編問題

org 0000h ljmp main org 030h mov p0,0dbh 11011011 零為亮 main mov a p0 rl a mov p0,a acall delay ajmp main delay mov r7,255 延時子程式d1 mov r6,255 d2 djnz r6...

微控制器只能做流水燈只能控制led嗎

0.樓上各位說的都是 驅動led 我這裡說的是 控制led 驅動 多少個led跟輸出電流能力有關,該能力可以通過外接功率三極體或mos管來實現 控制 多少個led則跟編碼有關係,詳細如下 1.一般而言,如果不接其他ic在中間,只能控制乙個燈 進製裡有 碼 的概念,使用二進位制的微控制器的乙個i o口...