1樓:街邊漫布
p0是指p0^0~p0^7這八個埠。
led = crol_(led,1)是迴圈左移的一位的函式,臘碧led = cror_(led,1)是迴圈右移的函式,肢局鬥。
低電平0使led點亮。
當led=0xfe(1111 1110)時,執行led = crol_(led,1),即左移一位,高位溢位,補到低位,此時led=0xfd(1111 1101);
下一次左移變為led=0xfb(1111 1011).
如此迴圈,直到led=0x7f(0111 1111),即為最左邊的燈亮。
再執行led = cror_(led,1),則led=0xfe(1111 1110),回到初始狀態,歷磨反覆迴圈···
2樓:網友
你多打了乙個1吧?一共8個口,p0到p7,你怎麼打出9位來啊?
老實說,程式我是不很鄭拆搏御伍清楚,我沒看,不過p0應該是指一直到八位啊……led是低有效的吧,所以該位置0,喊祥對應就置低,然後對應led燈就會亮了……
流水燈的移位函式解釋一下 _crol_(led,1) 還有左移右移怎麼區分,
3樓:幻想秘境
_crol_ 是左移。
cror_是右移。
可以以最後乙個字母區分l->left左邊 r->right 右邊。
下面是我對這兩個函式的原理的理解,應該是這樣的:
比如左移,先將要左移的數與自己進行與運算,看看有沒有產生進位,並將進位儲存下來。
然後將要左移的數左移,之後再判斷之前有無進位,如果有就用1與左移後的數進行或運算。
led=led<<1和led = _crol_(led,1);的區別
4樓:網友
這是點亮led的程式 這兩個 最終目的 都是 實現流水 但是在使用時候 後者比前者方便 後者加上標頭檔案 就可以使用 前面的 在寫程式的時候 要自己手動的。
a=0x7f;
for(k=0;k<7;k++)
a=0xfe;
for(k=0;k<7;k++)
上面是個例程 後者就方便了#includefor(i=7;i>0;i--)
for(i=7;i>0;i--)
如何用c51微控制器實現p0口接兩個按鍵,p1口接8個led燈。key1按下左移動1位點亮led key2按下右移動1位點led
5樓:一萬光年
給個四路:
定意乙個變數;
if(按鍵1按下)
變數為1;if(按鍵2按下)
變數為2;if(變數==1)
左移控制;else if(變數==2)
右移控制;}
6樓:做而論道
主函式,改改即可:
void main()}
試試看。
led = _crol_(led,1)是什麼意思?
7樓:網友
led是定義的輸出口。_crol_()是 內部函式,迴圈左移。整句的意思就是把某個輸出口資料迴圈左移一位。
8樓:網友
把led的位迴圈左移,每次左移一位,led = _cror_(led,1)則為右移。
51微控制器如何用c程式中的_crol_和_cror_實現流水燈來回顯示
9樓:網友
用個移位處理就行了 set(void) {流水燈。c * 描述 : 該程式實現led的流水燈顯示。 該程式用於學習 led流水本例中是呼叫的 中的。
10樓:網友
支援2樓的,左移右移不是一樣的嗎,關鍵是要裝載#include
這個標頭檔案。
11樓:網友
我給你寫乙個左移的,右移的就自己……
#include
#include
#define uchar unsigned char#define uint unsigned intvoid delay(uint z)
void main()}
在p0口接上8個led燈,每次亮兩個燈的流水燈,如何實現led燈各閃爍5次再實現移位功能(彙編)
12樓:網友
閃爍5次再移位,可以用迴圈來實現。程式如下:
org 0000h
ljmp main
org 0030h
main:mov a,#0fch ;led燈初值,兩個燈點亮loop:
mov r2,#5 ;5次閃爍迴圈次數loop1:
mov p0,a ;p0口送控制值。
lcall delay ;延時。
mov p0,#0ffh ;關閉顯示,實現閃爍效果lcall delay
djnz r2,loop1 ;該迴圈執行5次閃爍rl a ;閃爍之後移位。
sjmp loop
delay:
mov r3,#200 ;延時大概100毫秒dly:
mov r4,#
djnz r4,$
djnz r3,dly
retend
13樓:做而論道
;--org 0000h
ljmp main
org 0100h
main:mov a, #0fch
--loop:
mov p0, a ;亮兩位。
lcall del
mov p0, #255 ;全滅。
lcall del
mov p0, a ;亮兩位。
lcall del
mov p0, #255 ;全滅。
lcall del
mov p0, a ;亮兩位。
lcall del
mov p0, #255 ;全滅。
lcall del
mov p0, a ;亮兩位。
lcall del
mov p0, #255 ;全滅。
lcall del
mov p0, a ;亮兩位。
lcall del
mov p0, #255 ;全滅。
lcall del
rl arl a
ljmp loop
--del:
mov r0,#
dl3:mov r2,#
dl2:mov r3,#
del1:djnz r3,del1
djnz r2,dl2
djnz r0,dl3
ret;--end
怎麼樣在c語言程式裡面 把p0和p2寫在一起,就是led燈從p0.0依次亮到p2.7?我需要16個燈的控制 這是8個燈
14樓:匿名使用者
1,id未初始化。
2,p0,p2各8位,可以代表16個燈的亮與滅。
3,有些函式與硬體有關,你得自己探索了。
如何用altiumdesigner實現原理圖到pcb板的轉換
建立工程,加入原理圖和pcb,儲存工程,儲存完以後,點設計 updata 就是設計選單下的第一項,就轉到pcb了 就是把原理圖和pcb檔案放在乙個工程裡面,畫好原理圖以後點設計選單裡面的到第一項就把原理圖轉成pcb,然後就可以自動布局和自動佈線了,這樣就是最詳細的了,要是還要說明到怎麼移動器件的話,...
如何用session實現普通會員與vip會員的檢視許可權
你的 set rs sql selecet vip from in user if session vip true then rs phone 許可權不夠 end if 問題 sql查詢語句缺少條件,正常來說應該為 sql selecet top vip from in user where use...
如何用C 實現單字切分
請把問題說得清楚點!如果僅僅是將詞切分為字,很簡單的!在。net中,漢字和英文本元 符號都用的是unicode表示,漢字與英文本元一樣,也是乙個char。漢字字元 範圍為 u4e00 u9fa5 注 標點不在此範圍 既然如此,就可以用從字串中切分字元的方法切分詞語。string chsword 周全...