微控制器,迴圈程式,2極管,左邊每隔1S亮,右邊每隔2S亮,組合語言編。求解

時間 2022-05-08 19:15:04

1樓:匿名使用者

左邊4個led每隔1s亮1個。從p1.0到p1.3。

右邊4個led每隔2s亮1個。從p1.4到p1.7。

org 0000h

jmp start

org 4000h

start:

mov a,#0feh;

mov r2,#4;

loop1: mov p1,a; 左邊4個led每隔1s亮1個。從p1.0到p1.3。

call delay1s; 呼叫定時1s程式rl a;

djnz r2,loop1

mov r2,#4;

loop2: mov p1,a; 右邊4個led每隔2s亮1個。從p1.4到p1.7。

call delay1s; 呼叫定時1s程式call delay1s; 呼叫定時1s程式rl a;

djnz r2,loop2

jmp start

delay1s:

mov r7,#20

lpr7: call delay50ms;

djnz r7,lpr7

retdelay50ms:

mov tmod,#01h

mov th0,#(65536-50000)/256;

mov tl0,#(65536-50000) mod 256;

setb tr0;

jnb tf0,$

clr tf0;

retjmp $end

2樓:

彙編的沒有,下面的c語言的有這個型別的例子

3樓:匿名使用者

org ooooh

jmp st

org 4000h

st:mov p1,#0f0h

lcall ds1s;呼叫定時1秒程式

mov p1,#00h

lcall ds1s;呼叫定時1秒程式

mov p1,#0ffh

lcall ds1s;呼叫定時1秒程式

mov p1,#0fh

lcall ds1s;呼叫定時1秒程式

jmp st

ds1ms:

mov r6,#255

mov r7,#255

ds1:

nopnop

nopnop

nopnop

nopnop

nopnop

nopnop

nopnop

djnz r6,ds1

mov r6,#255

djnz r7,ds1

4樓:月下獨酌

so easy!

對著書上的例子做一箇中斷延時,然後反轉就行了。。

用組合語言編寫程式 使微控制器實驗箱上的八隻發光二極體左迴圈點亮2次,再右迴圈2次,這樣交替出現5次

5樓:匿名使用者

#include

#include

#define uchar unsigned charvoid delay(uchar a)

main()

}for(j=0;j<2;j++)

}            }}}

用微控制器編寫一段程式,使下面八個發光二極體從左到右間隔一定時間,依次亮一邊(有圖)

6樓:匿名使用者

從圖上看只要讓p0口的各引腳依次置0,則可滿足要求。

彙編程式如下:

mov p0,#0feh

x11:lcall delay

mov a,p0

rl a

mov p0,a

sjmp x11

7樓:焦小雨

org 0000h

main:

mov a,#11111110b//此為共陽極,先讓p0.0口先亮mov r0,#8

loop:

mov p0,a//向p0 口送碼

lcall delay//呼叫延時子函式

rr a //右移

djnz r0,loop //如果就迴圈一次這樣就行了;如果需要迴圈無數次就ljmp loop,關於r0的語全部去掉end

8樓:匿名使用者

#include

#include

unsigned char temp;

void main()}

微控制器程式:p1口接8盞led燈,8盞led燈迴圈點亮,間隔時間為50ms,用延時子程式實現

9樓:匿名使用者

8盞led燈迴圈點亮,間隔時間為50ms,你能分辨不?

還是給你改為間隔時間為1s,用定時器延時子程式實現org 0000h

jmp start

org 0030h

start:

mov a,#0feh;

mov r2,#8;

loop1: mov p1,a; 左邊4個led每隔1s亮1個。從p1.0到p1.7。

call delay1s; 呼叫定時1s程式rl a;

djnz r2,loop1

jmp start

delay1s:

mov r7,#20

lpr7: call delay50ms;

djnz r7,lpr7

retdelay50ms:

mov tmod,#01h

mov th0,#(65536-50000)/256;

mov tl0,#(65536-50000) mod 256;

setb tr0;

jnb tf0,$

clr tf0;

retjmp $end

10樓:鐵書包

是8051核心的微控制器嗎?如果是則:

mov a,#1

mov p1,a

rl a

lcall time

time:

1:mov r0 #數字

del r0

cjne r0,#00h,1ret

11樓:匿名使用者

void delay_ms(unsigned int ms)//12m晶振

}void main()}}

關於微控制器驅動三極體的問題,關於微控制器IO口控制三極體的問題

因為三極體基極電流較大。建議你換成mos管,比如2n7002,只需要極微小電流就可以驅動很大的輸出。 專解決學習難題 這裡的三極體是開關作用,不是放大作用,所以會這樣,驅動不夠,和你刪除程式無關。 單片的io口輸出高電平驅動的很低,是靠內部的上拉電阻供電,電流很小。而低電平的驅動能力就較大,所以你改...

微控制器程式解疑,題目 使發光二極體以200ms間隔閃爍

加上while 1 表示程式一直在執行,去掉以後,只執行了一次,不是沒有執行,你想一下執行一次的時間,你眼睛能觀察到嗎?是死迴圈。等著。等著中斷髮生。執行了中斷函式後,再返回到這裡繼續等待。把它去掉,就直接執行到 void to interrupt 1 函式之中了。在這個函式中,稍稍的幹了一點什麼,...

我這個51微控制器程式為什麼無法點亮數碼管啊

static uint8 j 0 不是寫到refresh led 函式的裡面,不然只執行case 0 led0 0 p0 number a j break 這一句 還有led0 1 led1 1 led2 1 led3 1 led4 1 led5 1 led6 1 led7 1 可以用p2 0xff...