程序如下:include
一般来说,实现流水灯功能需要以下步骤:首先确定单片机型号和开发环境,并熟悉指令集和寄存器配置。然后确定LED灯的连接方式,并编写程序来控制LED灯的亮灭状态。最后在程序中添加延时函数来实现LED灯的亮灭延迟。在编写程序时
这里我们利用Proteus绘制单片机流水灯的电路图,keil c51编写流水灯的程序。仿真既可以帮助我们学习,也可以检验电路是否合理。防止电路已经焊接完成,但设计不合理的情况。我们打开Proteus软件,点击左边菜单栏的P按钮 然后再搜索框
include
看看这个,用51单片机做的 //P2.0、P2.1、P2.2三个口分别接黄红绿三个信号灯,每隔59秒红灯和绿灯轮流亮和暗,//第60秒黄灯持续亮一秒,此时其他灯不亮。include
proteus电路图 画法依旧不说,给出元件清单,其实都差不多,与上篇一致51单片机 电容 瓷片电容 晶振 红色二极管 电阻 电路图如图 程序清单 说明:流水灯的闪亮方法肯定不是唯一的,按照各种形式都可以写出所需的程序,这里只用
51单片机流水灯的程序加电路图
} switch(keyval) { case 0:led=0xff;P0=led;break; case 1:TR0=1;led=0xfe;break; case 2:TR0=0;break; default:break; } }}
include
2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,定义单片机的端口,写入延时函数。6、中断跳转,使流水灯运行起来。
改动如下:……INT_SUB:MOV TH0,#3CH;重新给定时/计数器设初值 MOV TL0,#0B0H DJNZ R7,LOOP;判断记时次数是否够,一次50毫秒,共十次 RL A MOV P1,A MOV R7,#10;重新给计时循环次数赋值 LOOP:RETI END 这就
DB 11111100B,11111001B,11110011B,11100111B ; 流水灯的编码2 DB 11001111B,10011111B,00111111B,01111110B DB 01111110B,00111111B,10011111B,11001111B DB 11100111B,11110011B,11111001B,11111100B DB
流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:ORG 0000H;复位启动AJMP START;ORG 001BH;T1中断AJMP T1INT;;定义变量===YSJSEQU 30H;延时计数器LEDEQU 31H;LED控制缓冲器 ;主程序===START:MOV LED,#
采用中断方式,程序如下:include
51单片机中断控制流水灯顺序
void Init_GPIO( )//端口引脚初始化,关闭所有指示灯 { LED1_OFF( ) ;LED12_OFF( ) ;} void Delay_ms( u16 dat ) //延时函数 { u16 i, j;for(i = dat; i>0; i--){ for (j=300; j>0; j
include "reg51.h"unsigned char led[]={0xfe,0xfd,0xfb,0xf7}; //LED灯的花样数据 void delay(unsigned char time){ //延时函数 unsigned int j=15000;for(;time>0;time--)for(;j>0;j--);} void m
led8 = 0;//点亮剩余的灯 //省略……while(1);}
这个流水灯程序最好用数组定义8个状态的灯,这样用for循环就可以实现了。简洁明了,易读性强,也容易理解。include
51单片机八个灯的流水灯代码:1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;
51单片机流水灯程序
void delay(unsigned char i){ unsigned char m,n;for(m=i;m>0;m--)for(n=125;n>0;n--);} void main(){ unsigned char k,i;while(1){ P1=0xfe;for(i=5;i>0;i--){ for(k=0;k<8;k++){ del
void delay(void){ uchar i,j;for(i=0;i<150;i++)for(j=0;j<240;j++);} main(){ uchar led,i,j;while(1){ for(i=0;i<8;i++){ led=0xfe<
unsigned char num;void UserInital(){ delay_cnt=0;num=0;TMOD |= 0x01;//T0模式选择:模式1 TH0 = 0xec; //定时5MS(12mhz)TL0 = 0x78;TR0 = 1;//打开定时器T0 ET0 = 1;//T0中断使能
include
sbit led7 = P2^6;sbit led8 = P2^7;void main(){ int i,j;//点亮第一个灯 led1 = 1;led2 = 0;led3 = 0;led4 = 0;led5 = 0;led6 = 0;led7 = 0;led8 = 0;//延时1秒 for(i = 0;i <
P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay
依旧是基础的LED灯部分的实验 说明:实现一排灯从左到右依次一个一个点亮熄灭,实现流水灯 proteus电路图 元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 电路图的连接方法 程序清单
51单片机C程序实验LED灯:[2]左到右的流水灯
工具:STC系列51单片机、串口转换器(USB转TTL 或232转TTL)材料:实验板一块(可以买现成的,也可以买面包板自己搭建),电阻、LED灯 若干,5V电源等。以下程序可以直接用Keil C 直接编译执行。//可以通过左移函数_crol_
单片机流水灯控制原理就是将多个LED灯珠连接到不同的单片机输出端上,编程使单片机的这些输出端逐个的输出信号点亮LED,在设置好各个LED的通电时间和通电间隔时间后,就可以看到这些LED灯珠此起彼伏的亮起,如同流水一样.
//P2口可参照P0口流水灯情况。基本相同。0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0x
一单片机8个流水灯的这个流程表的话,这个你这个你要看他的一个品牌牌子型号,这样的话才能更好的配合他的一个这个这个表。
51单片机中断控制流水灯顺序的步骤如下:1、初始化中断向量表:将中断向量表中的全部中断向量初始化为0,确保中断发生时能正确跳转到相应的中断服务程序。2、配置中断优先级:设置中断优先级寄存器中的相应位,以确定各个中断的
我们在Proteus里面双击单片机,加载单片机流水灯程序 并把晶振改为12Mhz 我们点击下面那个三角形符号就可以允许仿真了 仿真的时候引脚接口会有电压颜色显示,可以看到流水灯已经在走了
51单片机流水灯安装与调试的过程
P3=seg3[c];} } while(P2_3==0){ for(d=0;d<4;d++) //查表显示花样 4 { delay(500);P1=seg4[d];P3=seg4[d];} while(P2_4==0){ for(e=0;e<4;e++) //查表显示花样5 { delay(500
单片机流水灯代码:#include
03 8只LED左右来回点亮 /* 名称:8只LED左右来回点亮 说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果 / include
sbit led7 = P2^6;sbit led8 = P2^7;void main(){ int i,j;//点亮第一个灯 led1 = 1;led2 = 0;led3 = 0;led4 = 0;led5 = 0;led6 = 0;led7 = 0;led8 = 0;//延时1秒 for(i = 0;i <
proteus电路图 画法依旧不说,给出元件清单,其实都差不多,与上篇一致51单片机 电容 瓷片电容 晶振 红色二极管 电阻 电路图如图 程序清单 说明:流水灯的闪亮方法肯定不是唯一的,按照各种形式都可以写出所需的程序,这里只用
51单片机C程序实验LED灯:[4]花样流水灯
uchar code display_P0[]={ 0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,//P0口由低位向高位依次亮灯(前一位的灯灭) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,//P0口灯全灭 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,,//P0口灯全灭 0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,//P0口由高位向低位依次亮灯(前一位的灯灭),最后全灭 0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,//P0口由低位向高位依次亮灯(前一位的灯b不灭) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //P0口灯全亮 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//P0口灯全亮 0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE, //P0口灯由高位向低位依次灭(前一位不亮),最后仅剩最低位亮灯。 0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0x7F,//P0口以两个亮灯为单位,由低位向高位逐位移动,最后移至最高位,仅剩最高位亮灯。 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, //P0口全灭 0xE7,0xDB,0xBD,0x7E,0xBD,0xDB,0xE7,0xFF,//P0口中间两位亮灯,然后两个亮灯分别向两端移动,当分别移至最高位和最低位时,再按原方法返回,返回至起始状态后全灭。 0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF,//P0口中间两位亮灯,然后两个亮灯分别向两端扩散,当分别扩散至次高位和次低位时,再按原方法恢复,返回至起始状态后全灭。 0xAA,0x55,0x18,0xFF,0xF0,0x0F,0x00,0xFF,//差位两灭,先是最高位亮,然后最高位灭;再变成中间两位灭,其余的全亮;全灭→低四位亮→高四位亮→全灭。 0xFF,0x00,0x00,0xFF,0xFF };//全灭→全亮→全亮→全灭→全灭 uchar code display_P2[]={ //P2口可参照P0口流水灯情况。基本相同。 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F, 0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00, // 0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE, 0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F,0xFF, // 0xE7,0xDB,0xBD,0x7E,0xBD,0xDB,0xE7,0xFF, 0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF, 0xAA,0x55,0x18,0xFF,0xF0,0x0F,0x00,0xFF, 0xFF,0x00,0x00,0xFF,0xFF };一单片机8个流水灯的这个流程表的话,这个你这个你要看他的一个品牌牌子型号,这样的话才能更好的配合他的一个这个这个表。
51单片机八个灯的流水灯代码: 1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。 2、#include "reg51.h"首先写出单片机的头函数。 3、#include "intrins.h"输入位移函数。 4、unsigned int count=0,led;定义函数。 5、输入主函数,定义单片机的端口,写入延时函数。 编辑推荐 对于刚接触单片机的学习者,似乎都很迷茫,C语言、汇编语言、电路、开发板,不知道从哪儿开始学起。其实在学习单片机原理与应用系统开发时,只有在学习一些理论知识的基础上,多阅读单片机应用系统开发案例,注重单片机应用系统开发实践训练,才能透彻地理解和掌握单片机结构与原理,才能更快更好地掌握单片机应用知识和单片机应用系统开发技能。
流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下: ORG 0000H;复位启动AJMP START;ORG 001BH;T1中断AJMP T1INT; ;定义变量========================YSJSEQU 30H;延时计数器LEDEQU 31H;LED控制缓冲器 ;主程序==========================START:MOV LED,#0FEH;初始化数据MOV YSJS,#0;MOV TMOD,#10H;定时器1工作于方式1,16位定时器MOV TL1,#0B0H;设置定时初值MOV TH1,#3CH;定时时间=50mSSETB ET1;使能定时器1中断SETB TR1;启动定时器1SETB EA;开总中断 MOV P1,LED;初始化流水灯LOOP:JMP LOOP;循环等待中断T1INT:PUSH PSW;定时器1中断程序PUSH ACC;保护现场MOV TH1,#3CH;定时时间=50mSMOV TL1,#0B0H;INC YSJS; PUSH ACC;保护ACCMOV A,YSJI;CJNE A,#2,QT1;50mS*2=100mSMOV P1,LED;MOV A,LED;RL A;累加器A的值循环左移1位MOV LED,A;MOV YSJS,#0;QT1:POP ACC;恢复现场POP PSW;RETI;返回主程序END;汇编程序结束 扩展资料: 实现流水灯的三个方法: 第一种,总线方法实现流水灯。这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,加上延时函数,即可控制每个LED灯的亮灭。 第二种,移位方法实现流水灯采用循环程序结构编程。首先在程序开始给P1.0口送一个低电平,其它位为高。然后延时一段时间再让低电平往高位移动,这样就实现“流水”的效果了。 第三种,库函数实现流水灯。利用左移函数进行。
单片机型号应该是stc89C51,既然是用STC单片机,你这是要用开发板吧,那买开发板时应该有原理图的,看原理图,可知道8个LED灯接在哪个并行口了,才好写程序的。下面给你一个仿真图,P0口接8个LED流水灯。
流水灯还要什么电路图?阴极随便接2 个IO口,阳极串一小电阻(320~510)到+5V 。 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV R0,#8 MOV A,#0FEH DISP: MOV P0,A ACALL DLY200 RL A DJNZ R0,DISP MOV R0,#8 MOV P0,#0FFH DISP1: MOV P1,A ACALL DLY200 RL A DJNZ R0,DISP1 MOV R0,#8 MOV P1,#0FFH AJMP DISP DLY200: ;延时200us,误差 0us MOV R7,#04H DL1: MOV R6,#74H DL0: MOV R5,#0D6H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL1 NOP RET END