急求微控制器程式 實現燈左右移動和閃爍功能

2025-01-03 15:25:07 字數 4724 閱讀 7501

1樓:網友

專門給你寫的:

org 00h

sjmp main

org 40h

main:mov sp,#5fh

mov 30h,#11111110b

mov 31h,30h

lp:lcall zy ;左移3次。

lcall yy ;右移3次。

sjmp lp ;無限迴圈。

zy:mov r2,#24 ;左移3次,乘上八個燈=24次。

zy1:mov a,30h

rl amov 30h,a

mov p1,a

mov a,31h

rl amov 31h,a

mov p2,a

lcall delay

djnz r2,zy1

retyy:mov r2,#24 ;左移3次,乘上八個燈=24次。

yy1:mov a,30h

rl a ;p1不變。

mov 30h,a

mov p1,a

mov a,31h

rr a ;p2右移。

mov 31h,a

mov p2,a

lcall delay

djnz r2,yy1

retdelay:mov r3,#10 ;延時1秒,12mhzdelay1:mov r4,#

delay2:mov r5,#

djnz r5,$

djnz r4,delay2

djnz r3,delay1

retend

不用微控制器怎麼實現3個或多個燈輪流閃?

2樓:網友

可以用解碼器和觸發器一起,具體電路你自己去想,我感覺這樣能實現。

3樓:網友

最典型的就是cd4017和振盪器的組合。網上4017的典型電路里肯定有的。

11、 實現燈左右移動和閃爍 功能說明:微控制器埠接八隻led,使埠p1做單一燈的變化:從p1.0開始先向左移

4樓:做而論道

:org 0000h

sjmp start

org 0030h

start:

mov a, #0feh

loop:mov p1, a

call delay

rl a ;左移一次。

mov p1, a

call delay

rl a ;左移兩次。

mov p1, a

call delay

rl a ;左移三次。

mov p1, a

call delay

mov p1, a

call delay

rr a ;右移一次。

mov p1, a

call delay

rr a ;右移兩次。

mov p1, a

call delay

rr a ;右移三次。

mov p1, a

call delay

mov p1, #255 ;關閉。

call delay

mov p1, #0 ;顯示。

call delay

mov p1, #

call delay

mov p1, #

call delay

mov p1, #

call delay

mov p1, #

call delay

mov p1, #

call delay

mov p1, #

call delay ;以上閃爍四次。

ljmp loop ;從頭反覆。

delay: mov r5,#

s0: mov r6,#

s1: mov r7,#

djnz r7,$ 表示本行位址。

djnz r6,s1

djnz r5,s0

retend

做而論道。

微控制器流水燈程式 四個開關分別是全閃 全滅 下移 上移

5樓:不想的卑微

哥們key的值你沒有對它進行賦值呀,你粗拆是想通過按鍵來控鬥知制,可是你這按鍵狀態並沒有通過key傳遞呀,建議你初始空凳消化p1=0xff

微控制器上電後8個led燈閃爍,按下k1乙個燈從左右移動,按下k2兩個燈左右移動,

6樓:聖騎天啟者

沒有具體的電路圖,就只以p1口作為基本輸驅動口進行說明。主程式需要乙個delay函式進行led亮滅的延時。當然你首先要先進行p1口和開關按鍵的預定義,這個要看你板子的原理圖。

void delay(int l)

void main()

else if( ==0)

if (m == 0)

else if(m ==1)}}

7樓:做而論道

樓主寫這個幹嘛?

是不是需要設計些什麼?

8樓:陶茂強

誰知道怎麼讓k1按2下,led1才亮的程式,求程式!謝謝!

急求!求乙個使微控制器控制p1埠的8個led燈做作左移流水燈的c語言程式(用迴圈結構)

9樓:網友

#include

#include

#define uchar unsigned char

#define uint unsigned int

名稱 : delay()

功能 : 延時,延時時間為 10ms * del

輸入 : del

輸出 : 無。

void delay(uint del)

名稱 : main()

功能 : 實現燈的閃爍。

輸入 : 無。

輸出 : 無。

說明 :也可以使用例1的的方法來關閉數碼管。

void main(void)}}

這是乙個51微控制器的p1口小燈迴圈左移的例子,不懂的問我。應該能用。

10樓:網友

如何能只用乙個介面控制12個燈常亮或是閃動。

用微控制器控制乙個燈閃爍

11樓:網友

1全部#include//包含51微控制器暫存器定義的標頭檔案void main(void)

void delay() // 延時程式延時程式裡面i,j的數字你可以修改一下,我沒試,可以大一點,也可以小一點,數字大一點閃得慢一點,小一點就快一點。

12樓:城市不快樂

沒裝微控制器,微控制器放到中間的插座上,插座有個尾巴是用來上下搬動,夾緊新盤引腳的(插座1腳對應微控制器1腳),微控制器io口控制led電路的一段,給高低電平,從而達到控制led兩端電壓的目的,實現led的亮滅。

13樓:來自舜耕山百年難遇的蔡文姬

怎麼讓led燈一秒鐘內閃爍兩次。

14樓:網友

呵呵!能看看你的原理圖嗎!?這個圖我也看不出內部的佈線啊!

幫忙解釋如下微控制器程式,想實現單燈閃爍,但是隻能做到乙個燈亮,怎麼修改?**等

15樓:**飄渺迷人

org 0000h

l1:cpl ;輸出取反,不斷翻轉 產生閃爍mov r7,#0ffh;延時計數器r7取255次l2:mov r6,#0ffh;延時計數器r6取255次l3:nop;

djnz r6,l3;r6減一次,不為0就轉 l3繼續djnz r7,l2;r7減一次,不為0就轉 l2繼續(總延時≈255x255x(2+1)機器週期)12mhz晶振時約秒。

sjmp l1;重複執行上述程式。

end用12mhz晶振,上述程式是亮 秒滅秒,每秒閃2-3次,應該可以看到的。如果只長亮就要看硬體方面了。

16樓:創客老司

只看這段程式,功能應該就是實現燈的閃爍,如果看不到閃的效果只是一直亮,很有可能是因為延時時間太短,閃爍頻率太高,你的眼睛不能分辨!一般來說人的眼睛能分辨10hz左右的頻率,如果有條件的話有示波器測一下燈的電壓波形是不是乙個方波形式,如果是那就說明是延時太短。

沒有條件可以改程式試試看!如:

org 0000h

l1:cpl

mov r7,#0ffh

l2:mov r6,#0ffh

l3:nop

nopnop

nopnop

nopnop

nop;這一段多加幾個nop試一下,最簡單的了,如果有效果可以考慮其他延時程式!

djnz r6,l3

djnz r7,l2

sjmp l1

end本人好長時間沒用匯編了,希望對你有幫助!

17樓:網友

可能是延時時間太短了。多加幾個nop試試。

org 0000h

l1:cpl

mov r7,#0ffh

l2:mov r6,#0ffh

l3:nop

nopnop

nopnop

nopnop

nopnop

nopdjnz r6,l3

djnz r7,l2

sjmp l1end

求微控制器中圍繞中斷的程式題目?急求

找了幾個定時 計數器的題目,外部中斷應該很簡單。1 利用定時 計數器t0從p1.0輸出週期為1s的方波,讓發光二極體以1hz閃爍,設晶振頻率為12mhz。2 利用定時 計數器t1產生定時時鐘,由p1口控制8個發光二極體,使8個指示燈依次一個一個閃動,閃動頻率為10次 秒 8個燈依次亮一遍為一個週期 ...

急求微控制器的自動斷電C語言程式

用乙個超大繼電器嘛。微控制器斷電後程式就飛了是怎麼回事?你用的哪個公司的微控制器,看你的程式設計器有沒有低電壓復位功能,有的話就開啟。急求51微控制器計數器的c程式!你好!具體要實現什麼功能,描述清楚。誰有sht10的c語言程式,要是通過c51微控制器控制的,急求!我這兩天也要用這個,不過我是用st...

急!!51微控制器匯程式設計序問題

缺少消抖環節。延時10ms後,再去判斷是否按下。loopmain jb counts 為1轉移,因為沒有按鍵。lcall dl10ms 為0,是有鍵按下,等10msjb counts 為1轉移,因為剛才是按鍵抖動。ljmp cou 依然為0,才去執行按鍵的功能程式。樓上說的消抖是乙個方面,也就是說當...