‘壹’ 请问以下有关单片机跑马灯的c语言程序各语句的含义(详细)
#include <reg51.h> //51头文件
#include <intrins.h> //包含移位函数_crol_
void Delay10ms(unsigned int c); //延时函数声明
void main(void)
{
unsigned char LED;
LED = 0x01; //一个unsigned char有8位,每一位代表了一个灯,初始点亮第一盏灯
while(1)
{
P0 = LED; //点亮一盏灯
Delay10ms(50); //延时500ms,让其量一会儿
LED = _crol_(LED,1); //向左移位函数,比如 0x01 --> 0x02 --> 0x04 -->0x08 ---> 0x10
}
}
void Delay10ms(unsigned int c) //延时函数
{
unsigned char a, b;
for (;c>0;c--) //三重循环延时,大约延时10ms
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
‘贰’ 51单片机 ,设计一个跑马灯程序,用软件延时,p0输出,怎么设计c语言,用p1口的开关控制灯循环的速率
51单片机是单片机接触最早的,下边这个程序希望能帮到你。(只有主函数,就不进行硬件什么定义以及头文件包含什么的了)
void delay(int times){//延时函数,times控制延时时间
int i, j;
for(i = 0; i < times; i++)
for(j = 0; j < 210; j++)
;
}
int main(void){
unsigned char data, i;
while(1){
data = P1;//把开关值读回来
for(i = 0; i < 8; i++){
P0 = ~(0x01 << i); //某位为高电平某位对应的灯亮
delay(data);//把读取的开关值用来控制延时
}
}
}
‘叁’ C语言设计跑马灯程序
#include<reg51.h> //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;
}
}
void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
跑马灯程序最基本的,c语言还未入门啊!!!
‘肆’ 求一个C语言程序,5个74hc595级联驱动40个LED跑马灯的简易程序
40个LED其实可以把LED做成矩阵方式连接,就没必要用5片595驱动了啊,你这样感觉硬件电路有点累赘。不过呢你这样做呢程序简单点,是吧。
手上只有2片联级使用的,给你个参考吧,有问题再说
//**********************************
//写595两个字节
行数据
//*****data_A为高字节,data_B是低字节
void
WRITER_595A(data_A,data_B)
{
uint
i,n;
//
data1=datt;
//赋值显示数据
for(i=0;i<8;i++)
//写入第一字节
{
n=data_A
&
0x80;
if(n==0x80)
LS595_DATA_A=1;
else
LS595_DATA_A=0;
LS595_CLOK_A=0;
LS595_CLOK_A=1;
data_A=data_A<<1;
}
for(i=0;i<8;i++)
//写入第二字节
{
n=data_B
&
0x80;
if(n==0x80)
LS595_DATA_A=1;
else
LS595_DATA_A=0;
LS595_CLOK_A=0;
LS595_CLOK_A=1;
data_B=data_B<<1;
}
LS595_SCLK_A=0;
LS595_SCLK_A=1;
LS595_SCLK_A=0;
}