1樓:匿名使用者
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
2樓:鐵書包
是8051核心的微控制器嗎?如果是則:
mov a,#1
mov p1,a
rl a
lcall time
time:
1:mov r0 #數字
del r0
cjne r0,#00h,1ret
3樓:匿名使用者
#include
#include //數**算
#define uint unsigned int#define uchar unsigned charuchar temp;
void delay(uint z)
void main() }
4樓:匿名使用者
void delay_ms(unsigned int ms)//12m晶振
}void main()}}
微控制器mcs-51彙編問題。p1 口接8個led燈,程式執行後,8個led燈閃爍,閃爍頻率為20hz。急急急!!!!!!
5樓:尚云社
根據你的要求寫了乙個,記得選擇滿意答案哦
;fosc = 12mhz
;sysclk = 1us
flag bit 00h
cnt equ 25000 ;計時器初始值,頻率 = 20,週期 = 50ms,一半為25ms
org 00h
jmp main
org 0003h
jmp int0_isr
org 000bh
t0_isr:
mov tl0,#(65536 - cnt) mod 256mov th0,#(65536 - cnt) / 256jb flag,t0_end
xrl p1,#0ffh
t0_end:
reti
int0_isr:
cpl flag
reti
main:
mov sp,#50h
clr flag
mov tmod,#01h
mov tl0,#(65536 - cnt) mod 256mov th0,#(65536 - cnt) / 256setb tr0
setb it0 ;下降沿觸發
mov ie,#83h
mov p1,#00h
jmp $end
微控制器p1口接8盞led小燈,試寫乙個低4盞燈和高4盞燈分別亮滅1s、迴圈不止的程式。要求採用定時器中斷的方
6樓:匿名使用者
#include
#define uchar unsigned charuchar num=0;
void t0isr() interrupt 1}main()
用51微控制器P1口驅動LED做迴圈點亮控制,每個LED占空比50,週期兩秒
首先給p1口送 0feh 延時 左移 再次送p1口 做而論道 org 0000h mov a,7fh loop mov p1,a call dl1s mov p1,255 call dl1s rr a sjmp loop dl1s mov r5,10 d2 mov r7,200 d1 mov r6,...
微控制器為什麼P1口輸出低電平小燈才亮
0427付強 這與實際的電路連線有關,能夠構成led的電流回路,就能夠點亮led。下面這個電路圖,就是低電平點亮的電路圖 當i o口輸出高電平時,led兩端的電位相同,因此電壓為0v,不能構成電流回路,所以led不亮。當i o口輸出低電平時,led左側電位為0,而右側則在r1的上拉作用下電位提高,因...
微控制器P1口高四位控制低四位的指示燈程式解析
main mov a,p1 讀取io口的值 orl a,0fh 低四位置高 用於採集端需要先輸出高電平 swap a mov p1,a ljmp main main mov a,0fh 0fh到累加器 orl p1,a p1與0fh或運算,p1的低4位置1,高4位不變 mov a,p1 p1的狀態值...