A. 有誰能介紹一下_crol_具體怎麼用么
while(1) {
P1 = crol(1,1);
delay;
}
可以照這個思路來
B. 利用<intrins.h>文件中的_crol_函數(循環左移函數)實現流水燈(共陽極)請將程序補充完整
temp=_crol_(oxef,1);
C. 利用C51自帶的庫函數_crol_,以間隔500ms實現10個LED燈亮滅循環的C語言程序 能再發一個十個燈的給我嗎
_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); //整數循環左移
}
}
}
D. 利用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); //整數循環左移
}
}
}
E. 51單片機。用C語言的_crol_()函數實現LED燈循環左移。為什麼我的程序只亮一盞燈啊。。。沒有循環啊
你的led燈是共陽的,從你給的條件可以判斷。p1=0xfe,即最低位為『0』
,故點亮的是p1.0引腳所對應的led燈,也就是你所謂的c0。所以你的程序沒有問題啊。
F. 51單片機如何用C程序中的_crol_和_cror_實現流水燈來回顯示
用個移位處理就行了 set(void) { 流水燈.c * 描述 : 該程序實現LED的流水燈顯示。 該程序用於學習 LED流水本例中是調用的 intrins.h 中的
G. 流水燈程序中「<<」和「_crol_」的區別是什麼
前者是左移,最高位移出去了就丟棄,最低位補0,後者(正確的函數名應該是 _crol_)則是循環左移,最高位移出去後不丟棄,而是補到最低位,也就是說,最低位不補0
H. 單片機流水燈C語言程序(8個燈,依次點亮每個燈,延時500MS)
單片機流水燈C語言程序的源代碼如下:
#include //51系列單片機定義文件
#define uchar unsigned char //定義無符號字元
#define uint unsigned int //定義無符號整數
void delay(uint); //聲明延時函數
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8個流水燈逐個閃動
{
P1=~temp;
delay(100); //調用延時函數
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8個流水燈反向逐個閃動
{
P1=~temp;
delay(100); //調用延時函數
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8個流水燈依次全部點亮
{
P1=temp;
delay(100); //調用延時函數
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8個流水燈依次反向全部點亮
{
P1=temp;
delay(100); //調用延時函數
temp>>=1;
}
void delay(uint t) //定義延時函數
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
(8)crol程序擴展閱讀
51單片機流水燈的源代碼如下
#include<reg51.h>
#include<intrins.h>
voiddelay(inta)
{
inti;
while(a--)for(i=0;i<110;i++);
}
main()
{
inti;
while(1)
{
P0=0xfe;
for(i=0;i<8;i++)
{
P0=_crol_(P0,1);
delay(500);
}
}
}
I. 51單片機如何用C程序中的_crol_和_cror_實現流水燈來回顯示
for(i=0;i<8;i++)
{
P2=(1<<i);
delay();
}
for(i=0;i<8;i++)
{
P2=(1<<(7-i));
delay();
}
用個移位處理就行了 set(void) { 流水燈.c * 描述 : 該程序實現LED的流水燈顯示。 該程序用於學習 LED流水本例中是調用的 intrins.h 中
程序利用循環移位函數_crol_和_cror形成來回滾動的效果 #include #include #define ... R17 220R //名稱:花樣流水燈//說明:16 只LED 分兩段組按預設的多種花樣變換顯示
J. 51單片機 C語言 _crol_編程問題
51單片機的埠是准雙向口,每本書上都會這么說,但初學者都很難搞懂這一點。
51埠是弱上拉結構,要讀取埠的狀態,需要先把對應的埠置1,
物理上,P0埠對應兩個寄存器,一個是輸入寄存器,你說的ins就是埠的輸入狀態,由外部電路控制,程序沒法控制,只能讀。一個是輸出寄存器,存著你上次寫出的數據。