導航:首頁 > 操作系統 > 單片機crol函數程序代碼

單片機crol函數程序代碼

發布時間:2023-01-02 11:10:05

1. 單片機控制8個led燈交替點亮的程序

#include "reg51.h"
main()
{
unsigned int i,j;
while(1)
{
P1=0xfe; //點亮第一個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xfd; //點亮第二個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xfb; //點亮第三個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xf7; //點亮第四個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xef; //點亮第五個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xdf; //點亮第六個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0xbf; //點亮第七個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
P1=0x7f; //點亮第八個LED
for(i=200;i>0;i--)
for(j=500;j>0;j--);
}
}
或:
#include "reg51.h"
void delay(unsigned int t)
{
unsigned inti,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
main()
{
unsigned char w,i;
while(1)
{
w=0xfe;
for (i=0;i<8;i++)
{
P1=w; //循環點亮LED
w<<=1; //點亮燈的位置移動,最低位補0
w=w|0x01; //將最低位置1
delay(500); //延時
}
}
}
或:
#include "reg51.h"
//程序中使用_crol_函數,所以要包含頭文件"intrins.h"
#include "intrins.h"
void delay(unsigned int t)
{
unsigned int i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
main()
{
unsigned char temp;
temp=0xfe;
while(1)
{
P1=temp;
delay(500); //延時
temp=_crol_(temp,1); //點亮LED的位置循環左移一位
}
}

2. 51單片機簡單問題,麻煩看下代碼,測試儀只亮了第一個LED燈沒有執行_crol_

// 學習單片機編程,可以先看一些模擬實例作為參考,看懂了再學著編程。

#include<reg51.h>

#define uchar unsigned char

uchar temp;

int key1,key,disbuf;// 此表為 LED 的字模 0 1 2 3 4 5 6 7 8 9 a b c d e f

unsigned char code LED7Code[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

unsigned char ledx[8];

bit s0,s1;

void delay(uchar z)

{

uchar i,j;

for(i=0;i<120;i++)

for(j=0;j<z;j++);

}

void scan() //要是按鍵了,掃描鍵盤編碼值

{

P1=0xF0;

delay(1);

temp=P1;

switch(temp)

{

case 0xe0: key1=0;

break;

case 0xd0: key1=1;

break;

case 0xb0: key1=2;

break;

case 0x70: key1=3;

break;

}

P1=0x0f;

delay(1);

temp=P1;

switch(temp)

{

case 0x0E: key=key1+0;

break;

case 0x0D: key=key1+4;

break;

case 0x0B: key=key1+8;

break;

case 0x07: key=key1+12;

break;

default : key=-1;

}

if((key1+1)&&(key+1)) disbuf=key;

}

void ejjc() //判斷是否按鍵

{

P1=0xF0;

if(P1!=0xF0) { scan();s0=1;}

else { s0=0; s1=1;}

}

void main()

{

uchar i;

while(1)

{

ejjc();

if(s0==1 && s1==1)

{

s0=0;s1=0;

for(i=0;i<8;i++)

{ ledx[i]=ledx[i+1]; ledx[8]=disbuf; }

}

P0=0xff;

P2=LED7Code[ledx[0]];

P0=0xfe;

delay(5);

P0=0xff;

P2=LED7Code[ledx[1]];

P0=0xfd;

delay(5);

P0=0xff;

P2=LED7Code[ledx[2]];

P0=0xfb;

delay(5);

P0=0xff;

P2=LED7Code[ledx[3]];

P0=0xf7;

delay(5);

P0=0xff;

P2=LED7Code[ledx[4]];

P0=0xef;

delay(5);

P0=0xff;

P2=LED7Code[ledx[5]];

P0=0xdf;

delay(5);

P0=0xff;

P2=LED7Code[ledx[6]];

P0=0xbf;

delay(5);

P0=0xff;

P2=LED7Code[ledx[7]];

P0=0x7f;

delay(5);

}

}

3. 51單片機。用C語言的_crol_()函數實現LED燈循環左移。為什麼我的程序只亮一盞燈啊。。。沒有循環啊

你的led燈是共陽的,從你給的條件可以判斷。p1=0xfe,即最低位為『0』
,故點亮的是p1.0引腳所對應的led燈,也就是你所謂的c0。所以你的程序沒有問題啊。

4. 利用C51自帶的庫函數_crol_,以間隔500ms實現10個LED燈亮滅循環的C語言程序

先發一個8 個燈的。
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,num;
void delay(uint);
void main()
{

temp=0xfe;
while(1)
{
for(num=0;num<8;num++)
{
P1=temp;
delay(100);
temp=_crol_(temp,1);
P1=0xff;
delay(100);
}

}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

/****************************************************************************
再發一個10個燈的,不過函數是IROL
*******************************************************************************/
_crol_不好實現,我用_irol_實現的。
//P2低兩位,P1全部8位分別接LED,共十隻LED
#include <reg51.h>
#include <intrins.h>

void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

main()
{
unsigned int j;
unsigned char i;
while(1)
{
j=0xfffe;
for(i=0;i<10;i++)
{
P2=j/256;
P1=j%256;
delay(500);
j=_irol_(j,1); //整數循環左移
}
}
}

5. 菜鳥提問單片機_crol_函數

不對吧,你說的P1=0xfe,二進制應該是1111 1110,第一個燈亮,高四位是1111,低四位是1110,左移一位,變為1111 1101第二個亮!那個十六進制f轉換位二進制是1111 e對應的是1110

6. 51單片機 C語言 _crol_編程問題

51單片機的埠是准雙向口,每本書上都會這么說,但初學者都很難搞懂這一點。

51埠是弱上拉結構,要讀取埠的狀態,需要先把對應的埠置1,

物理上,P0埠對應兩個寄存器,一個是輸入寄存器,你說的ins就是埠的輸入狀態,由外部電路控制,程序沒法控制,只能讀。一個是輸出寄存器,存著你上次寫出的數據。

7. 51單片機如何用C程序中的_crol_和_cror_實現流水燈來回顯示

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//延時
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
uchar i;
P2=0x01;
while(1)
{
for(i=0;i<7;i++)
{
P2=_crol_(P2,1); //P2 的值向左循環移動
DelayMS(150);
}
for(i=0;i<7;i++)
{
P2=_cror_(P2,1); //P2 的值向右循環移動
DelayMS(150);
}
}
}

8. 單片機問題,求教高手下面一段程序原理,希望能逐句給出解釋,非常感謝

#include<reg51.h>//頭文件
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void DelayMS(uint ms)//延時函數
{
uchar t;
while(ms--) for(t=0;t<120;t++);
}

void main(void)//主函數
{
uchar i;
P1=0xfe;//將P1口的八個管腳拉電平11111110,即P1.0為低,其他為高,點亮流水燈。
for(i=0;i<8;i++)
{
DelayMS(200);
P1=_crol_(P1,1);//將P1口的賦值循環左移,該語句執行一次,開始時由
11111110變成11111101,再執行一次,變成11111011,以此類推。可以看見流水燈動起來了。
}
P1=0xff;//全部變為高電平
P0=0x7f;//P0口電平拉為01111111
for(i=0;i<8;i++)
{
DelayMS(200);
P0=_cror_(P0,1);//循環右移,和循環左移原理相似
}
// DelayMS(200); //延時
}

有什麼不懂得可以問,望採納!!!!

9. 單片機c語言中_cror_ 這個函數是怎麼用的

1、首先要寫入單片機的頭函數,定義單片機P1口的8個管腳,讓他們分別代表流水燈的8個led。

10. 菜鳥提問單片機c語言函數_crol_

這么說吧,舉個例子,假如原來b=0xBA;即二進制的(10111010),
p1=_crol_(b,1);其執行過程是這樣的,
1,首先把b循環左移,結果是01110101,即b=0x75;
2,把循環後的結果送給P1口,所以,P1口的值是0x75

閱讀全文

與單片機crol函數程序代碼相關的資料

熱點內容
光遇安卓與ios什麼時候互通 瀏覽:598
js如何運行時編譯 瀏覽:915
引力app在哪裡下載 瀏覽:609
編寫app如何得到錢 瀏覽:800
吉利汽車軟體放哪個文件夾安裝 瀏覽:223
多文件編譯c 瀏覽:541
頭頂加密後為什麼反而更稀疏 瀏覽:793
離心機壓縮機揚程高 瀏覽:658
xshell連接linux命令 瀏覽:5
把多個文件夾的內容合並在一起 瀏覽:483
基於單片機的澆花系統設計ppt 瀏覽:685
卷積碼編解碼及糾錯性能驗證實驗 瀏覽:354
請在刪除驅動器之前暫停加密什麼意思 瀏覽:787
光催化pdf 瀏覽:98
java字元串包含某字元 瀏覽:528
ssm身份認證源碼 瀏覽:466
預排序遍歷樹演算法 瀏覽:671
加密裝置如何打開ping功能 瀏覽:480
python下載372 瀏覽:903
u盤子文件夾隱藏 瀏覽:297