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就是端口的输入状态,由外部电路控制,程序没法控制,只能读。一个是输出寄存器,存着你上次写出的数据。