参考程序:ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R7,#8 ;设置外循环次数 MOV R5,#0FFH LL0: MOV A,R7 MOV R6,A ;设置内循环次数 MOV A,#0FFH CLR C LL1:

void delay(uchar t){ uchar x;for(x=0;x

1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:

单片机流水灯C语言程序的源代码如下:include //51系列单片机定义文件 define uchar unsigned char //定义无符号字符 define uint unsigned int //定义无符号整数 void delay(uint); //声明延时函数 void main(void){ uint

用汇编编程如下:ORG 0000H LJMP MAIN MAIN:ORG 0100H MOV A ,#80H ; 高电平亮灯。如低电平亮灯,改成#7FH ;;正向循环 ZXH :MOV P0 , A RR A LCALL S50MS ; 延时50MS

while(ms--){ for(i=0;i<120;t++){ ; } }}void main(){ unsigned char i=0,j=0; PData=0x00;//全灭状态 for (i=8;i>0;i--){//控制常亮的位置,先从最高位开始,依次循环到最低

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,定

单片机怎么写8路流水灯程序

你按一下按钮,给对应LED灯的口赋值#0FEH(1111 1110)第一个灯亮,松开给(1111 1111)都灭,再按一下给(1111 1101),依次这样循环就行了。

你可以打开电脑的计算器,从查看那里选择 程序员 类型的计算器,使用二进制 1000 0000表示左边第一个灯,1100 0000表示左边两个灯 然后转回十进制或十六进制赋值给引脚p0,假设流水灯使用p0口 while(1){ int n = 128

while(1)//把while放到你的主函数里 { if(key==0) //定义到自己的按键 { run++; //全局变量 if(run==4){ run=1;} } P0=0xff; //这个程序控制的是P0口 switch(run){ case 1:P0=0xfe;P0=0x

这是8个LED灯的流水灯,接在P1,P3.2脚接一个按键,用定时器定时控制流水灯的速度。仿真图如下图所示。

一个独立按键控制八只流水灯

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

依旧是基础的LED灯部分的实验 说明:实现一排灯从左到右依次一个一个点亮熄灭,实现流水灯 proteus电路图 元件清单:(分别是) 51单片机 电容 瓷片电容(也可用普通电容) 晶振 红色二极管 电阻 电路图的连接方法 程序清单

程序如下:include sbit led1 = P2^0;sbit led2 = P2^1;sbit led3 = P2^2;sbit led4 = P2^3;sbit led5 = P2^4;sbit led6 = P2^5;sbit led7 = P2^6;sbit led8 = P2^7;void main()

51单片机八个灯的流水灯代码:1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;

1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。例程:include //51单片机头文件#include //包含有左右循环移位子函数的库#define uint unsigned int //宏定义#define uchar unsi

P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay

proteus电路图 画法依旧不说,给出元件清单,其实都差不多,与上篇一致51单片机 电容 瓷片电容 晶振 红色二极管 电阻 电路图如图 程序清单 说明:流水灯的闪亮方法肯定不是唯一的,按照各种形式都可以写出所需的程序,这里只用

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

这里是花样7的程序”} if(j==8){ “这里是花样8的程序”} if(j>8) j==1; //按键8次后把J归1 } } void delay(uchar z) //延时 { uchar x,y;fou(x=z;x>0;x--)fou(y=110;y>0;y--);}

以前用汇编语言写过一个控制四种花样的。http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/5adeb99112822680a877a415.html

DJNZR6,DJNZR5,$-2 DJNZR4,$-4 RET END 注:LED共阳接法

RL A MOV P1,A ;1秒一变的花样流水灯。T0E:RETI END

ACALL DELAY_05s;延时0.5s MOV P0,#0FDH;P0.1灯亮 ACALL DELAY_05s;延时0.5s MOV P0,#0FBH;P0.2灯亮 ACALL DELAY_05s;延时0.5s MOV P0,#0F7H;P0.3灯亮 ACALL DELAY_05s;延时0.5s MO

实现8个LED花样流水灯 要求《1》2种以上的花样形式,花样表演并须有一定的规律:

1,LED灯箱采用超薄设计,比传统灯箱节能70%以上。国际领先的照明工艺技术,使光照更集中,更高效节能; 2,LED光源,一千小时仅耗几度电(普通60W白炽灯十七小时耗1度电,普通10W节能灯一百小时耗1度电)。
可以用 _crol_(),记得要家#include
51单片机的定时器估计是所有MCU里面最简单的定时器了,所涉及到的寄存器不多,就那么几个,如TMOD(模式寄存器),TCON(控制寄存器),具体内容你可以去查看51的DATA SHEET。 在使用的时候,先设置定时器模式,再设置控制寄存器,这些设置都是按照自己的需要来定。 例如你这个功能,4S的定时,你可以这么设置。 /********************************************************** 定时器初始化函数,50mS定时,为什么是50mS不是4S?因为定时器为16位定时模式,最大定时时间为65.535mS,以50mS方便计算 ***********************************************************/ void Timer_Init( void ) { TMOD = 0x01;//定时器0 ,工作方式1,十六位定时模式 TH0 = ( 65536 - 50000 ) / 256; //高八位数据 TL0 = ( 65536 - 50000 ) % 256;//低八位数据 定时时间大概为50mS,具体视晶振频率而定 EA = 1;//因为你要用到中断,所以打开总中断 ET0 = 1;//运行定时器0的中断 TR0 = 1;//定时器0开始计数,当你需要让它停止计数的时候让它等于0就可以了 } void main() { Timer_Init();//调用定时器初始化函数 while(1) { //你的程序 } } //再写个中断服务函数 void Timer0( void ) interrupt 1 { static unsigned char count = 0;//该变量用来计50mS的个数,当count = 8时,为4S TH0 = ( 65536 - 50000 ) / 256; //再给定时器赋初值,否则将改变为复位值 TL0 = ( 65536 - 50000 ) % 256;// count++; if( count == 8 ) { count = 0; //4S到了,该干嘛干嘛去 } }
来自理科生的浪漫,用51单片机制作心形流水灯
#include#include#define uchar unsigned charuchar keyval,led,led1;sbit key=P3^2;void ext0() interrupt 0{while(key==0);keyval++;keyval%=3;}void delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}main(){led=0xfe;led1=0x55;while(1) { switch(keyval) { case 0:P1=led;led=_crol_(led,1);delay(200);break; case 1:P1=led;led=_cror_(led,1),delay(200);break; case 2:P1=led1;led1=~led1;delay(200);brek; default:break; } }}
while(1) { P1=aa; delayms(1000); aa=_crol_(aa,1); } 这前面的while(1)根本不会退出,也就是不会执行下面的if(key1 == 0)的语句了,所以按键按下去当然没有反应了 if(key1==0) { P1=0x7e;
以P1口的8位共阳极LED为例, 初始化: sbit P1_0=P1^0; sbit P1_1=P1^1; sbit P1_2=P1^2; sbit P1_3=P1^3; sbit P1_4=P1^4; sbit P1_5=P1^5; sbit P1_6=P1^6; sbit P1_7=P1^7; delay函数: void delay(int x) { int a,b; for(a=0;a<x;a++) { for(b=0;b<10000;b++); } } 主程序 void main() while(1) { P1_0=1; delay(1000); P1_0=0; delay(1000); P1_1=1; delay(1000); P1_1=0; delay(1000); //以此类推至P1_7 }
来自理科生的浪漫,用51单片机制作心形流水灯