当前位置:首页 » 编程语言 » c语言流水灯

c语言流水灯

发布时间: 2023-10-21 05:24:50

Ⅰ 单片机流水灯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++);

}

(1)c语言流水灯扩展阅读

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);

}

}

}

Ⅱ 很简的51单片机C语言流水灯程序

1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。
例程:

#include<reg51.h>//51单片机头文件
#include<intrins.h>//包含有左右循环移位子函数的库
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
sbitbeep=P2^3;
voiddelay(uintz)//延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{//delay(500);大约延时500ms.
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidmain()//主函数
{
uchara,i,j;
while(1)//大循环
{
a=0xfe;//赋初值
for(j=0;j<3;j++)for(i=0;i<8;i++)//左移三次
{
P1=a;//点亮小灯
beep=0;//开启蜂鸣器
delay(50);//延时50毫秒
beep=1;//关闭蜂鸣器
delay(50);//再延时50毫秒
a=_crol_(a,1);//将a变量循环左移一位
}
a=0x7f;
for(j=0;j<3;j++)for(i=0;i<8;i++)//右移三次
{
P1=a;//点亮小灯
beep=0;//开启蜂鸣器
delay(50);//延时50毫秒
beep=1;//关闭蜂鸣器
delay(50);//再延时50毫秒
a=_cror_(a,1);//将a变量循环右移一位
}
}
}



2、51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。

Ⅲ 单片机C语言 两个按键控制8位花样流水灯,P1.0接按键k1,P1.1接按键k2,P0口的8位接8个发光二极管

编程序如下:
; 花样流水灯(8个发光二极管以各种形式循环点亮)
; 功能:流水灯(8个发光二极管循环以1S间隔以各种形式循环点亮)
ORG H ;伪指令,指定程序从H开始存放
LJMP MAIN ;跳转指令,程序跳转至MAIN处执行
ORG H ;伪指令,指定程序从H开始存放
MAIN: MO SP, #60H ;给堆栈指针赋初值
MO P1,#0FFH ;给P1口赋值
MO DPTR,#TABLE;查表
LIGHT: MO R4,#42 ;设置循环次数
LOOP: MO A,#42 ;给A赋初值
SUBB A,R4 ;将A的值与R4的值相减,结果存在A中
MOC A,@A+DPTR ;将A+DPTR的值所对应的TABLE中的值赋给A
MO P1,A ;将A的值赋给P1口
LCALL DEL1S ;调用1S延时子程序
DJNZ R4,LOOP ;判断R4是否为0,不为0跳转,为0顺序执行
LJMP LIGHT ;跳转指令,跳转至LIGHT处继续执行
;1S延时子程序(11.MHz晶振,误差0微秒)
DEL1S: MO R5, #H
DL1S0: MO R6, #0A4H
DL1S1: MO R7, #H
DJNZ R7, $
DJNZ R6, DL1S1
DJNZ R5, DL1S0
RET
TABLE: ;定义表格数据
DB 0FFH ;全灭
DB 0FEH 0FDH 0FBH 0F7H 0EFH 0DFH 0BFH 07FH ;依次逐个点亮
DB 0FEH 0FCH 0F8H 0F0H 0E0H 0C0H H H ;依次逐个叠加
DB H 0C0H 0E0H 0F0H 0F8H 0FCH 0FEH 0FFH ;依次逐个递减
DB 07EH 0BDH 0DBH 0E7H 0E7H 0DBH 0BDH 07EH ;两边靠拢后分开
DB 07EH 03CH H H H H 03CH 07EH ;两边叠加后递减
DB H ;全亮
END ;程序结束指令
C语言程序如下:
/* 该实验是花样流水灯(8个发光二极管以各种方式循环点亮),功能是花样流水灯(8个发光二极管以1S间隔以各种方式循环点亮) */
#include//包含reg.52文件
#define uint unsigned int//宏定义
#define uchar unsigned char//宏定义
void delay(uint z);//声明延时函数
uint a;//定义循环用变量
uchar code table[]={
0xff,//全灭
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,//依次逐个点亮
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,//依次逐个叠加
0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,//依次逐个递减
0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e,//两边靠拢后分开
0x7e,0x3c,0x18,0x00,0x00,0x18,0x3c,0x7e,//两边叠加后递减
0x00,//全亮
;//¶¨ҥѭ»·Ӄʽ¾ݱ�
/*Aµď֏󣺏ȊLj«ð£¬Ȼº󒀴Ζ𸶵ぁ£¬Ȼº󒀴Ζ𸶵�
Ȼº󒀴Ζ𸶵ݼ�»º󁽱߿¿£º󷖿ª£¬Ȼº󁽱ߵ�ݼ𖎱
׮º󈫁a£ѭ»·£¡*/
void in()//inº¯ʽ
{
a=0;//¸񸳳𕛕
while(1)//whileѭ»·
{
P1=table[a];//½«a˹Ԛµ”able֐µĖµ¸³¸􁿚
delay();//1Sѓʱד³̐ɠ a ;//aµĖµ¼Ӓ»
if(a==42)//²⊔aʇ·񵈓Ƥ2
a=0;//¸񸳖µ
}
}
void delay(uint z)//1msѓʱד³̐򣬍¨¹�±䑓ʱʱ¼F{
uint x,y;
for(x=z;x

热点内容
荣耀畅玩什么配置 发布:2025-02-01 00:36:35 浏览:458
电脑对时服务器 发布:2025-02-01 00:36:22 浏览:162
闪迪存储卡港版 发布:2025-02-01 00:31:25 浏览:78
visualstudio编译器 发布:2025-02-01 00:31:20 浏览:753
如何移植安卓上面的软件 发布:2025-02-01 00:28:03 浏览:121
一刀传世混沌和破天是什么服务器 发布:2025-02-01 00:28:00 浏览:688
红米k40怎么修改安卓data 发布:2025-02-01 00:23:04 浏览:886
文件夹怎么显示全名 发布:2025-02-01 00:10:30 浏览:860
sdwebimage缓存机制 发布:2025-02-01 00:02:55 浏览:886
安卓手机如何调电视 发布:2025-01-31 23:54:37 浏览:556