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...