单片机花式流水灯程序代码(单片机流水灯程序怎么写)
51单片机八个灯的流水灯代码
51单片机八个灯的流水灯代码:
1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。
2、#include "reg51.h"首先写出单片机的头函数。
3、#include "intrins.h"输入位移函数。
4、unsigned int count=0,led;定义函数。
5、输入主函数,定义单片机的端口,写入延时函数。
编辑推荐
对于刚接触单片机的学习者,似乎都很迷茫,C语言、汇编语言、电路、开发板,不知道从哪儿开始学起。其实在学习单片机原理与应用系统开发时,只有在学习一些理论知识的基础上,多阅读单片机应用系统开发案例,注重单片机应用系统开发实践训练,才能透彻地理解和掌握单片机结构与原理,才能更快更好地掌握单片机应用知识和单片机应用系统开发技能。
如何用单片机实现流水灯,从一依次亮到八,再从八依次亮?
单片机流水灯C语言程序的源代码如下:
#include //51系列单片机定义文件。
#define uchar unsigned char //定义无符号字符。
#define uint unsigned int //定义无符号整数。
void delay(uint); //声明延时函数。
硬件特征
1、单片机的体积比较小, 内部芯片作为计算机系统,其结构简单,但是功能完善,使用起来十分方便,可以模块化应用。
2、单片机有着较高的集成度,可靠性比较强,即使单片机处于长时间的工作也不会存在故障问题。
3、单片机在应用时低电压、低能耗,是人们在日常生活中的首要选择, 为生产与研发提供便利。
51单片机中如何用汇编语言编写流水灯
流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:
ORG 0000H ;复位启动
AJMP START ;
ORG 001BH ;T1中断
AJMP T1INT ;
;定义变量========================
YSJS EQU 30H;延时计数器
LED EQU 31H;LED控制缓冲器
;主程序==========================
START: MOV LED,#0FEH ;初始化数据
MOV YSJS,#0 ;
MOV TMOD,#10H ;定时器1工作于方式1,16位定时器
MOV TL1,#0B0H ;设置定时初值
MOV TH1,#3CH ;定时时间=50mS
SETB ET1 ;使能定时器1中断
SETB TR1 ;启动定时器1
SETB EA ;开总中断
MOV P1,LED ;初始化流水灯
LOOP: JMP LOOP ;循环等待中断
T1INT: PUSH PSW ;定时器1中断程序
PUSH ACC ;保护现场
MOV TH1,#3CH ;定时时间=50mS
MOV TL1,#0B0H ;
INC YSJS ;
PUSH ACC ;保护ACC
MOV A,YSJI ;
CJNE A,#2,QT1 ;50mS*2=100mS
MOV 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口送一个低电平,其它位为高。然后延时一段时间再让低电平往高位移动,这样就实现“流水”的效果了。
第三种,库函数实现流水灯。利用左移函数进行。
单片机流水灯程序
程序如下:
#include reg52.h
sbit led1 = P2^0;
sbit led2 = P2^1;
sbit led3 = P2^2;
sbit led4 = P2^3。
让电子信息技术与单片机技术相融合,有效提高了单片机应用效果。作为计算机技术中的一个分支,单片机技术在电子产品领域的应用,丰富了电子产品的功能,也为智能化电子设备的开发和应用提供了新的出路,实现了智能化电子设备的创新与发展。
从二十世纪九十年代开始,单片机技术就已经发展起来,随着时代的进步与科技的发展,目前该技术的实践应用日渐成熟,单片机被广泛应用于各个领域。现如今,人们越来越重视单片机在智能电子技术方面的开发和应用,单片机的发展进入到新的时期。
无论是自动测量还是智能仪表的实践,都能看到单片机技术的身影。当前工业发展进程中,电子行业属于新兴产业,工业生产中人们将电子信息技术成功运用。
很简的51单片机C语言流水灯程序
1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。
例程:
#includereg51.h??//51单片机头文件
#include?intrins.h?//包含有左右循环移位子函数的库
#define?uint?unsigned?int????//宏定义
#define?uchar?unsigned?char??//宏定义
sbit?beep=P2^3;
void?delay(uint?z)??//延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{????????????????????//delay(500);大约延时500ms.
????uint?x,y;
????for(x=z;x0;x--)
????????for(y=110;y0;y--);????
}
void?main()????????????//主函数
{
????uchar?a,i,j;
????while(1)????????//大循环
????{
????????a=0xfe;?????//赋初值
????????for(j=0;j3;j++)?for(i=0;i8;i++)???//左移三次
????????{
????????????P1=a;???????//点亮小灯
????????????beep=0;?????//开启蜂鸣器
????????????delay(50);?//延时50毫秒
????????????beep=1;?????//关闭蜂鸣器
????????????delay(50);??//再延时50毫秒
????????????a=_crol_(a,1);?//将a变量循环左移一位
????????}
????????a=0x7f;
???????for(j=0;j3;j++)?for(i=0;i8;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单片机是基础入门的一个单片机,还是应用最广泛的一种。
单片机怎么代码编写“P0口所接8个灯实现流水灯循环。P1.0所接开关按下后,循环的方向发生变换”?
用汇编编程如下:
ORG 0000H
LJMP MAIN
MAIN:
ORG 0100H
MOV A ,#80H ; 高电平亮灯。如低电平亮灯,改成#7FH
;
;正向循环
ZXH :
MOV P0 , A
RR A
LCALL S50MS ; 延时50MS
JB P1.0 , FXH
LJMP ZXH
;
;反向循环
FXH :
MOV P0 , A
RL A
LCALL S50MS ; 延时50MS
JNB P1.0 , ZXH
LJMP FXH
;
;延时50MS 子程序,自己编编
S50MS:
.......
RET
END