单片机控制跑马灯

发布者:熙风细雨最新更新时间:2018-08-12 来源: eefocus关键字:单片机控制  跑马灯 手机看文章 扫描二维码
随时随地手机看文章

一、跑马灯和流水灯的区别


好多人分不清跑马灯和流水灯,还以为是同一种状态,虽然难度等级是一样的,但是灯的亮灭显示方式是不一样的。请看下图


二、单片机控制LED灯的常用电路接法

弄清楚跑马灯的显示状态后可以开始进行设计了,   在日常的跑马灯设计电路中LED灯一般接为这两种形式,共电源或共地,也就是通常说的灌电流式和拉电流式

三、电路分析与编程

大家可以根据自己实际的电路需要选择其中一种接法,由于AT89S52单片机IO端口不操作时是高电平所以下面我选择的是共电源接法。


   电路分析:当电路输出高电平[端口为1]LED灯灭,当电路输出低电平[端口为0]LED灯亮

  大家可以按照自己的思路编程,方法不唯一,下面我将介绍3种方法
   
方法一:不利用算法,直接使用IO控制[可以说是最蠢的方法,但是一样能实现效果,并且容易理解]

#include

//LED输出端口位定义
sbit led0=P0^0;
sbit led1=P0^1;
sbit led2=P0^2;
sbit led3=P0^3;
sbit led4=P0^4;
sbit led5=P0^5;
sbit led6=P0^6;
sbit led7=P0^7;

//延时函数
void delay(void)
{
 unsigned char a,b;
  for(a=0;a<200;a++)
  for(b=0;b<200;b++);
}


void main()
{
led0=1; //端口初始化
led1=1;
led2=1;
led3=1;
led4=1;
led5=1;
led6=1;
led7=1;


while(1)
 {
 led0=0; //点亮LED0
  delay(); //延时
  led0=1; //熄灭LED0
  delay(); //延时,为下一个灯准备

 led1=0;
 delay();
  led1=1;
  delay();
   
  led2=0;
  delay();
 led2=1;
  delay();

 led3=0;
 delay();
 led3=1;
 delay();

 led4=0;
 delay();
 led4=1;
  delay();

 led5=0;
 delay();
 led5=1;
 delay();

 led6=0;
 delay();
 led6=1;
 delay();

 led7=0;
 delay();
 led7=1;
 delay();
 }
}


方法二:借助数组对上面程序进行改进,使端口一次性赋值定义

#include
#define uchar unsigned char       
#define uint unsigned int

//定义一个一维数组
unsigned char table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};


//延时函数
void delay(void)
{
  uchar a,b;
 for(a=0;a<200;a++)
 for(b=0;b<200;b++);
}


void main()
{
  uchar i;


  while(1)
 {
  for(i=0;i<8;i++)
 {
 P0=table[i];//11111110
  delay();
  }
}
}


方法三:利用函数封装库

#include
#include   //此为调用函数的头文件必须添加

#define uchar unsigned char 
#define uint unsigned int

//延时函数
void delay(void)
{
  uchar a,b;
  for(a=0;a<200;a++)
  for(b=0;b<200;b++);
}

void main()
{
  uchar k;


 k=0xfe;          //定义初值

  while(1)
  {
 P0=k;
  delay();
 k=_crol_(k,1);   //调用头文件封装库函数
  }
}

还有移位运算等其他的方法在这里就不一一列出


关键字:单片机控制  跑马灯 引用地址:单片机控制跑马灯

上一篇:单片机控制独立按键读入
下一篇:51单片机时间戳相关函数

推荐阅读最新更新时间:2024-03-16 16:10

单片机控制蜂鸣器的实验电路
无源蜂鸣器也是有极性的电子元件,它的控制电路与有源蜂鸣器一样,如下图所示。但它的发声条件与有源蜂鸣器不同。   只有当一定频率的电流从正极流向负极时,无源蜂鸣器才会鸣响。下图所示是单片机P3.4引脚输出的各种频率的方波,三极管Q1在这些方波信号的控制下导通、截止,就会有和方波频率相同的电流流过无源蜂鸣器的正负两极,无源蜂鸣器就会发声了。   改变控制方波的频率可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。如图2(a)(b)的方波频率不同,控制方坡的频率越高蜂鸣器的声音越尖细,反之频率越低声音越低沉。   另外,改变控制方波的高低电平占空比,则可以控制蜂鸣器的声音大小,如图2中(c)(d)的频率相同占空比不同。
[模拟电子]
用<font color='red'>单片机控制</font>蜂鸣器的实验电路
用51单片机控制LCD12864显示屏源程序
12864液晶在出厂时其对比度已经调好,所以用户在使用的时候第三管脚可不用接任何东西,本实验板上为了兼容多家12864液晶所以加了液晶对比度调节电位器,若用户使用我们配套的12864液晶可不用管它,液晶的第三管脚悬空就可以。有些液晶功耗比较大,用户在使用的时候可将液晶的第19、20引脚的背光不接,这样字体会很清楚。 单片机源程序如下: /**********************BST-V51实验开发板例程************************ * 平台:BST-V51 + Keil U3 + STC89C52 * 名称: * 晶振:11.0592MHZ * 说明:免费开源,不提供源代码分析. ********
[单片机]
用51<font color='red'>单片机控制</font>LCD12864显示屏源程序
GPIO原理与配置(跑马灯,蜂鸣器,按键)
一。STM32 GPIO固件库函数配置方法 1. 根据需要在项目中删掉一些不用的固件库文件,保留有用的固件库文件 2. 在stm32f10x_conf.h中注释掉这些不用的头文件 3. STM32的IO口可以由软件配置成如下8种模式(4种输入模式,4种输出模式) 分别在CRL寄存器和CRH寄存器中配置,配置每一个IO口需要4位来配置 2位MODE位----配置是输入模式还是输出模式 2位CNF位---根据MODE位的配置来确定是哪种输入模式或输出模式 a。输入浮空 b。输入上拉 c。输入下拉 d。模拟输入 e。开漏输出 f。推挽输出 g。推挽式复用功能 h。开漏复用功能 配置函数 void GPIO_Init(GPIO
[单片机]
GPIO原理与配置(<font color='red'>跑马灯</font>,蜂鸣器,按键)
51单片机控制步进电机的程序
初学单片机:   #include reg52.h #include stdio.h code unsigned char tab =             {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};  unsigned char code F_Rotation ={0x02,0x04,0x08,0x10}; unsigned char Dis_Shiwei;//定义十位 unsigned char Dis_Gewei; //定义个位 sbit key1=P3^0;//定义按键位置 sbit key2=P3^1; sbit key3=P3^2; sbit key4=
[单片机]
pic单片机控制时钟芯片DS1302程序
#include p IC .h //包含 单片机 内部资源预定义 __CONFIG(0x1832); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 #define i_o RB4 //定义DS1302的数据口 #define sclk RB0 //定义DS1302的时钟口 #define rst RB5 //定义DS1302的复位口 // unsigned char time_rx; unsigned char time_rx @ 0x30; //定义接收寄存器 static v
[单片机]
基于51单片机控制的O01多功能电话答录机
  采用89CI051/2051控制的O01多功能电话答录机, 电路 简洁、性能稳定,可广泛用于程控电话机自动留言值班、监听、监录等场合。其工作原理、程序流程、控制电路介绍如下。      001电话录音机的原理框图和程序流程图如图l、图2、图3所示,其功能如下:      1.自动应答功能 实现自动应答功能需插上电话线,按下录音键,将自动/监听开关置于自动位置(录放开关、自动/监听开关置高 电平 ,机器处于自动待机状态)。来电时, 单片机 检测振铃次数达到设置值,送摘机控制信号和提示音播放信号,自动接通电话并送出自录的提示音。提示音播放结束,单片机检测到一个提示音结束信号时,输出电机控制信号,开始录音。对方挂机后,单片机检测到三
[单片机]
基于51<font color='red'>单片机控制</font>的O01多功能电话答录机
利用STC89C52单片机控制LCD1602(不带中文字库)显示的中文
一、设计原理 使用STC89C52单片机控制1602LCD(不带中文字库的);利用1602LCD(不带中文字库的)中的存储器(64个字节00H-3FH)自建立8个5 8点阵的字符从而显示中文字符。 二、LCD1602的指令集: 1、清屏 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 0 0 1 运行时间(250Khz):1.64ms; 功能:清DDRAM和AC值。 2、归位 RS R/W DB7 DB6 DB5 DB4 DB3 DB
[单片机]
单片机控制的负阻自激振动系统
单片机控制的共振式输送机 共振式输送机是采用惯性式激振器控制的机械振动系统,分为非振动式和振动式,前者:结构简单,制造方便,工作状态稳定,但功率消耗大。而后能耗少,但工作状态难调整,微小的频率漂移将引起很大的幅值波动。于是,在工程中常采用非共振式的。针对共振运行不稳定的问题,我们采用振动速度倒相信号的闭环反馈,即利用单片机进行采集和处理反馈信号,实现频率的自动跟踪 ,使系统处于平衡的共振状态。利用其共振的高效节能性,用小功率电机完成大功率电机所能完成的任务,对于大中型共振式机械节能优越性更为明显。该系统的结构框图如下: 共振式惯性输送机属于单自由度振动系统,由惯性激振器和机械振动系统组成,其力学简图如下:
[单片机]
<font color='red'>单片机控制</font>的负阻自激振动系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved