您的位置:

位移实现流水灯c语言,流水灯位移函数

本文目录一览:

单片机C语言流水灯移位指令

//没有编译过,大概思路就这样

#define P_LED P1; //定义到你自己的端口

void main(void)

{

unsigned char circledata=0x01,i=0;

while(1)

{

for(i=0;i4;i++) //显示范围 P_LED.0:P_LED3

{

P_LED=circledatai;

Delay_ms(1000);//根据自己的晶振写延时1S的函数

}

circledata=0xfe;

for(i=3;i=0;i--) //显示范围 P_LED.3:P_LED.0

{

P_LED=circledatai;

Delay_ms(1000);//根据自己的晶振写延时1S的函数

}

}

return;

}

怎么用c语言用循环位移法实现流水灯

单片机的内容吧。

单片机的一个Port是8位的。

方法1: 移位运算

while (1)

{

led = 0x01;

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

{

port_2 = led; // 将数值赋值给单片机的Port.

led = led 1; // 左移一位.

}

}

方法2: 乘法运算

while (1)

{

led = 0x01;

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

{

port_2 = led; // 将数值赋值给单片机的Port.

led = led * 2; // 乘2, 相当于左移1位.

}

}

为什么C语言位移可以实现发光二极管的流水灯?

每个位代表了一个二极管的引脚。根据单片机外围电路不同,逻辑高或低电平时,LED会点亮。假设逻辑高电平时LED点亮,如00000001,bit0-7控制led0-7,此时led0点亮,左移一位变为00000010,led0熄灭,led1点亮。

单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。

2、#include "reg51.h"首先写出单片机的头函数。

3、#include "intrins.h"输入位移函数。

4、unsigned int count=0,led;定义函数。

5、输入主函数,定义单片机的端口,写入延时函数。

6、中断跳转,使流水灯运行起来。

用c语言编写流水灯。

C语言流水灯程序是学习的基础,一定要搞懂!给你发两个!

(一)

#includereg51.h //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main()

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i8;i++) //8个流水灯逐个闪动

{

P2=~temp;

delay(500); //调用延时函数

temp=1;

}

temp=0x80;

for(i=0;i8;i++) //8个流水灯反向逐个闪动

{

P2=~temp;

delay(500); //调用延时函数

temp=1;

}

temp=0xFE;

for(i=0;i8;i++) //8个流水灯依次全部点亮

{

P2=temp;

delay(500); //调用延时函数

temp=1;

}

temp=0x7F;

for(i=0;i8;i++) //8个流水灯依次反向全部点亮

{

P2=temp;

delay(500); //调用延时函数

temp=1;

}

}

}

void delay(uint a) //延时函数,毫秒级别

{

uint i;

while(--a!=0) //执行空操作循环,其中a为形参,由调用该函数的函数语句提供值

{

for(i=0;i125;i++);//执行当0加到125时,大约会用掉1ms的时间

}

}

(二)

*****************************以下程序均采用12M晶振*****************************************************/

#includereg51.h

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

sbit p2=P2^0;

void main()

{

TMOD=0x01;

TR0=1;

ET0=1;

EA=1;

while(1)

{

;

}

}

timer0() interrupt 1

{

TH0=0x00;

TL0=0x06;

p2=!p2;

}

(三)

定时流水灯//

#includereg51.h

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

bit ldelay=0;

void main()

{

uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};

uchar leda;

TMOD=0x00;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(ldelay)

{

ldelay=0;

P2=led[leda];

leda++;

if(leda==9)leda=0;

}

}

}

timer2() interrupt 1

{

static uchar t;

TF0=0;

t++;

if(t==10)

{

t=0;

ldelay=1;

}

}

(四)

变速流水灯//

#includereg51.h

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

bit ldelay=0;

uchar speed=100;

void main()

{

uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};

uchar leda;

TMOD=0x00;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(ldelay)

{

ldelay=0;

P2=led[leda];

leda++;

if(leda==9)

{

leda=0;

speed-=10;

if(speed==0)speed=100;

}

}

}

}

timer2() interrupt 1

{

static uchar t;

TF0=0;

t++;

if(t==speed)

{

t=0;

ldelay=1;

}

}

(五)

//每2两圈改变一次亮度

#includereg51.h

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

bit ldelay=0;

uchar speeda=30;

uint k=0;

void main()

{

uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};

uchar leda;

uchar speed[10]={5,80,70,60,50,40,30,20,10,5};

uint i;

uint k;

TMOD=0x00;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(ldelay)

{

ldelay=0;

P2=led[leda];

leda++;

if(leda==9)

{

leda=0;

k++;

if(k==2){

k=0;

speeda=speed[i];

i++;

if(i==9)i=0;

}

}

}

}

}

timer2() interrupt 1

{

static uchar t;

TF0=0;

t++;

if(t==speeda)

{

t=0;

ldelay=1;

}

}

(六)

//在上面基础上调灯的亮度(调占空比)

#includereg51.h

#define uint unsigned int

#define uchar unsigned char

#define ulong unsigned long

bit ldelay=0;

uchar speeda=30;

uint k=0;

uchar scale;

void main()

{

uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};

uchar leda;

uchar speed[10]={5,80,70,60,50,40,30,20,10,5};

uint i;

uint k;

TMOD=0x00;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(ldelay==1)

{

ldelay=0;

P2=led[leda];

leda++;

scale++;

if(scale==10)scale=0;

if(leda==9)

{

leda=0;

k++;

if(k==2){

k=0;

speeda=speed[i];

i++;

if(i==9)i=0;

}

}

}

}

}

timer2() interrupt 1

{

static uchar t;

TH0=0x1c;

TL0=0xbf;

TF0=0;

t++;

if(t==speeda)

{

t=0;

ldelay=1;

}

if(scale==10)P2=0;

if(scale==0)P2=1;

}

位移实现流水灯c语言,流水灯位移函数

2022-11-23
流水灯c语言程序,流水灯C语言程序

2022-11-25
keil流水灯c语言程序,用keil编写流水灯程序

2022-11-26
4个流水灯c语言程序,流水灯c语言程序详解

2022-11-30
单片机流水灯程序c语言标题,用c语言编写单片机流水灯程序详解

2023-01-06
c语言版跑马灯,c语言版跑马灯led闪烁

2022-11-23
流水灯代码详解

2023-05-23
led灯翻转c语言程序,led闪烁灯c语言解析

2022-11-23
单片机c语言程序设计实训100例,单片机c语言应用100例p

本文目录一览: 1、《单片机C语言程序设计实训100例——基于8051+Proteus仿真》 第03篇源代码 2、单片机C语言程序设计实训100例里的第七题8只数码管滚动显示单个数字c语言设计 3、《

2023-12-08
发动机转速模拟实验c语言,发动机转速模拟实验c语言是什么

2022-11-26
单片机c语言dat8,单片机c语言打印机

2023-01-07
单片机技术应用c语言仿真版,单片机c语言编程免费下载pdf

2022-12-01
c语言51篇,c语言一百例

2022-11-24
数字电位器c语言程序,可编程数字电位器

2023-01-05
单片机c语言实验程序100例,单片机c程序设计100例

2022-11-26
单片机的c语言应用程序设计期末,单片机c语言项目式教程期末试

2022-12-02
单片机应用技术c语言版王百科,单片机c语言语法

2022-11-28
c语言题操作题,c语言简答题

2023-01-03
c语言定义led灯,简单的led灯c语言程序

2023-01-04
定时器计数c语言代码,c语言计时器代码的用法

2023-01-04