1樓:匿名使用者
用rl a 他是左移補零的,你rlc a 是把最高位放在psw的c中,再左移,c再放在最低位.而rl是不經過c的。左移後低位補零,你把rlc換成rl就可以了
2樓:做而論道
;org 0000h
ljmp start
org 0030h
start:
mov a, #0feh
mov r2, #8
output:
mov p1, a
rl a ;這是左移dec a ;------------------加上這行,就不滅了。
acall delay
djnz r2, output
ljmp start
delay:
mov r6, #0
mov r7, #0
delayloop: ;延時程式
djnz r6, delayloop
djnz r7, delayloop
retend
3樓:匿名使用者
;8個led疊加點亮
main: mov r3,#8 (8個led)mov r2,#0 (計數器)mov a, #1 (點亮led1)ma1: mov p1,a
acall delay (延時)mov r2,a (儲存)rl a (左移)or a,r2 (再裝配)djnz r3,ma1
jmp mainend
51微控制器中如何用組合語言編寫流水燈
4樓:匿名使用者
org 0100h
ltor: mov a,#01h
loop: rr a
du ;從左到右亮,每次亮一盞zhi
mov p1,a
acall delay
jnb acc.0,loop
loop1: rl a
mov p1,a ;從右到dao左亮,每次亮一盞acall delay
jnb acc.7,loop1
loop2: rr a
orl a,#80h
mov p1,a ;從左到右依次點亮每一盞燈acall delay
jnb acc.0,loop2
loop3: rl a
anl a,#0feh
mov p1,a ;從右到左依次熄滅每一盞燈acall delay
jb acc.7,loop3
sjmp ltor
delay: mov r6,#01h ;延時子程式l2: mov r7,#01h
l1: nop
djnz r7,l1
djnz r6,l2
retend
5樓:匿名使用者
埠的暫存器,賦予一個初值。每位對應一路燈。然後做移位命令。左移右移都可以,不就可以流水了。 寫好花樣,查表 ;亮燈控制程式; ;**; org ,
6樓:匿名使用者
org 0000h
ajmp main
org 0100h
main: mov dptr,#tab
mov r7,#4fh
loop: movc a,@a+dptr
inc dptr
mov p1,a
acall delay
clr a
djnz r7, loop
ajmp main
org 0200h
tab: ;從左到右,再從右內到左,一容次亮一個
db 7fh,0bfh,0dfh,0efh,0f7h,0fbh,0fdh,0feh ;15,0fh
db 0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fh
;從右到左,再從右到左,依次點亮
db 0ffh,0feh,0fch,0f8h,0f0h,0e0h,0c0h,80h,00h
db 0ffh,7fh,3fh,1fh,0fh,07h,03h,01h,00h
7樓:匿名使用者
org 0000h
mov a, #01h
start: mov p1, a
rl a
lcall delay
ljmp start
delay:
mov r6, #0
mov r7, #0
delayloop:
djnz r6, delayloop
djnz r7, delayloop
retend
8樓:匿名使用者
loop:
mov a, #01h
mov r2, #8
output:
mov p1, a
rl a
call delay
djnz r2, output
ljmp loop
delay:
mov r6, #0
mov r7, #0
delayloop:
djnz r6, delayloop
djnz r7, delayloop
retend
9樓:
來自理科生的浪漫,用51微控制器制作心形流水燈
51微控制器彙編控制8個流水燈 5
10樓:匿名使用者
思路:迴圈控制常亮狀態的值,將其從最高位迴圈到最低位。這個用於最後狀態的常亮
在常亮迴圈中,控制不是常亮的其它所有位進行再次迴圈,逐漸從最低位亮滅迴圈到最高位
**如下:
#include
unsigned char pdata; //整體結果
unsigned char currdata;//變化的最高位
//延時,本函式是非精確延時,若需要精確延遲則需要根據本函式的彙編語句進行精確計算後調整迴圈體次數
void delay(unsigned int ms)}}
void main(){
unsigned char i=0,j=0;
pdata=0x00;//全滅狀態
for (i=8;i>0;i--){//控制常亮的位置,先從最高位開始,依次迴圈到最低位
for (j=0;j
11樓:ux之家
這是c程式。。。彙編忘記不太會了。p1口接8個led燈#include
#include
#define uchar unsigned charuchar j,temp;
int i = 8;
void delay(unsigned int ms) //延時
void display(int wei) //顯示
}}void main() //主函式i--;
if(i==0)}}
12樓:匿名使用者
這個簡單,亮還是滅和你io共陽或共陰有關係,彙編從來不用.
51微控制器彙編怎麼用四個獨立按鍵來控制流水燈的速度?
13樓:匿名使用者
不用中斷一樣的實現,而且可以有多少個按鍵就可以有多少種流水燈方式。你使用的鍵盤函式直接呼叫流水燈函式就可以。比如使用獨立鍵盤,if(p1.
1==0) light_water(); 然後:
void light_water()
}這樣就會有一個led從右往左移動8次;那麼當第一次流水未完時,又呼叫第二個流水函式light_water1就能中斷當前執行的流水函式又去執行第二個流水燈函式了。
14樓:一個白日夢
一般是一個鍵加速,一個鍵減速,,一個鍵最高速度,一個鍵最低速度........比較方便操作!
51微控制器流水燈程式
15樓:電路diy手工
來自理科生的浪漫,用51微控制器制作心形流水燈
16樓:安迪的快樂時光
花樣流水燈的玩法,一個51微控制器8位埠輪流輸出16顆燈珠,
17樓:匿名使用者
推薦你看郭天祥十天學會微控制器,回講實際程式的,講的挺好的
c51微控制器中如何用組合語言編寫流水燈
18樓:冷安順樹琪
51微控制器用組合語言編寫流水燈程式,就是控制多個led,使其在特定時間間隔內,只有一個led
發光,其他熄滅,用這種方式順序移動點亮led的位置,就形成了流水燈的效果。以下是程式:
;假設晶振12mhz,p1控制8個led低電平亮;啟動入口********************====org0000h
;復位啟動
ajmp
start
;org
001bh
;t1中斷
ajmp
t1int
;;定義變數********************====ysjs
equ30h;延時計數器
ledequ
31h;led控制緩衝器
;主程式*************************=start:
movled,#0feh
;初始化資料
movysjs,#0;;
movtmod,#10h
;定時器1工作於方式1,16位定時器
movtl1,#0b0h
;設定定時初值
movth1,#3ch
;定時時間=50ms
setb
et1;使能定時器1中斷
setb
tr1;啟動定時器1
setb
ea;開總中斷
movp1,led
;初始化流水燈
;loop:
jmploop
;迴圈等待中斷;;
t1int:
push
psw;定時器1中斷程式
push
acc;保護現場
;mov
th1,#3ch
;定時時間=50ms
movtl1,#0b0h
;inc
ysjs
;push
acc;保護acc
mova,ysji
;cjne
a,#2,qt1
;50ms*2=100ms
movp1,led
;mov
a,led;rl
a;累加器a的值迴圈左移1位
movled,a
;mov
ysjs,#0;;
qt1:
popacc
;恢復現場
poppsw
;reti
;返回主程式
end;彙編程式結束
19樓:量子
微控制器不分是不是c51,只要是51微控制器都支援彙編需要和c語言兩種方式設計程式,實現流水燈功能。
20樓:匿名使用者
埠的暫存器,賦予一個初值。每位對應一路燈。然後做移位命令。左移右移都可以,不就可以流水了。 寫好花樣,查表 ;亮燈控制程式; ;**; org ,
21樓:匿名使用者
org 0000h
mov a, #01h
start: mov p1, a
rl a
lcall delay
ljmp start
delay:
mov r6, #0
mov r7, #0
delayloop:
djnz r6, delayloop
djnz r7, delayloop
retend
22樓:錦繡江山千萬年
loop:
mov a, #01h
mov r2, #8
output:
mov p1, a
rl a
call delay
djnz r2, output
ljmp loop
delay:
mov r6, #0
mov r7, #0
delayloop:
djnz r6, delayloop
djnz r7, delayloop
retend
51微控制器,開關控制LED,開始流水燈,按一下停止,再按一下繼續流水燈
dchar unsigned cha 採用中斷方式,程式如下 include include define uchar unsigned charsbit button p3 2 uchar press 0 uchar luishui 0xfe void delay uchar z void mai...
51微控制器控制數碼管並顯示,51微控制器控制8個數碼管並顯示
數碼管段選連線到微控制器p0口,位選連線到p2口org 0000h main call display ajmp main display mov r0,0 mov r1,0x01 mov dptr,tab loop inc r0 mov a,r0 movc a,a dptr mov p0,0 消隱...
51微控制器流水燈問題用c語言用到光感測器
當手滑到感測器1時,用定時器進行計時,超過你設定的時間,視為這次無效,不亮燈不就行了 51微控制器16路流水燈怎麼用c語言寫,並求每個步驟的講解 我給你個簡單的例子 include 預處理檔案裡面定義了特殊暫存器的名稱如p1 口定義為p1 void main void unsigned int a ...