51单片机学习之2-流水灯

发布者:红尘清梦最新更新时间:2015-06-24 来源: 51hei关键字:51单片机  流水灯 手机看文章 扫描二维码
随时随地手机看文章
第五集

讲解了74HC573 使用方法,我在《51单片机复习笔记1(更新)》有记录。这里略。

讲解了Keil 的仿真方法。比较有用的内容是可以用它来测试一段代码所使用的时间,例如延时函数,在需要精确延时又不想使用定时器的时候可以使用该方法。至于其他的,个人认为还是直接下载到单片机中观察实际情况会比较直观。

 

第六集

51最小系统


 

 

复位原理:

51单片机是高电平脉冲复位,在RST引脚。复位脉冲的高电平宽度必须大于2个机器周期。为了方便计算,我们假设晶振频率为12M,那么它的时钟周期为1/12us(微秒)。它的一个机器周期是12*(1/12)=1us(微秒)。复位脉冲高电平宽度必须大于2个机器周期即2us,那么就要保证RST引脚高电平的时间大于2us单片机即可自动复位。

 

上电复位:

当通电时,开关是断开的,那么电流从VCC→电容→RST、R32→GND。刚上电的时候,电容开始充电,充满电后相当于断路,在电容充电到充满的过程中电压逐渐从高到低(从5V到0V)。也就是说一上电,RST端得到就是高电平,当这个时间超过2us时单片机复位,电容快充满到充满后RST得到是低电平,电源不断那么RST就一直是低电平而不会一直复位。RST高电平持续的时间取决于电容充电时间.。(这个电容要取多大?怎么计算的?)

 

手动复位:

通电之后,RST会自动复位一次,当单片机在运行的过程中我们需要它复位时可以断电使之上电复位。或者按下SW0开关也能实现复位。当SW0开关按下时电流从VCC→R33→RST、R32→GND形成回路。为方便计算R33假设为300欧即0.3K,我们可以先计算R33得到的电压是 5V* (0.3k/(4.7k+0.3k))= 0.3V  R32得到的电压为 5V*(4.7k/(4.7k+0.3k))=4.7V  RST端的电压也为4.7V,那么4.7对于单片机来说也算高电平,当按下手动按下SW按钮到松开肯定超过2us,所以单片机自动复位。

 

晶振电路:

两个电容一定要相等,取值范围为20-50pf 越大启动越慢。

 

自己搭建最小系统要注意的地方:

EA引脚一定要接高电平即VCC,这是最容易忽略的。这个引脚是用来选择是用片内存储器还是用片外存储器。51内部存储器一般都够我们使用。在以前的单片机需要外扩存储器。我们烧录的程序就是存在片内存储器。

要将P0组引脚当普通IO用时,需要接10K的上拉电阻。P1-P3里面都有上啦电阻。

1  做地址/数据总线时和做输入I/O口时,p0口不用接上拉电阻。
2 但当做输出I/O口时,p0口必须要接上拉电阻才可以。

P0口是集电极开路输出,也就是OC门,这种结构没有输出高电平的能力就相当于一个一端接地的开关,按下去就输出低电平0V,断开就没有电压,是悬空状态。
至于用不用上拉电阻,取决于外部电路,如果要输出高电平控制一个器件,而这个器件本身又没有内置上拉,就必须自己接一个上拉电阻,如果要用低电平控制一个器件,则可以不用加上拉。

 

第七集

一、流水灯的设计

流水灯就是让八个小Led的依次亮灭。先看看流水灯的电路图。



这是我的实验板的流水灯电路图。其中74HC573的D输入引脚DB1—DB8接在单片机的P1组引脚。74HC573的LE接在P2.5引脚。

 

程序设计思路:

我实验板上有8个Led灯,正极接在VCC,负极接在单片机的P1引脚(这里不使用74HC573锁存功能所以LE一直保存高电平,相当于Led直接接在单片机的IO口)。要让Led灯亮只需要把对应的端口设为低电平,那么Led灯亮。依次让P1的八个引脚给高低电平那么Led灯也会跟着暗亮。由于51单片机执行的速度很快,所以Led灯的闪烁速度也会很快,我们肉眼无法看到,所以要在电平切换时适当的延时一下。

流水灯的程序设计有很多种方法,如按位置位、数组、函数_cror_()_crol()等,我本来我是比较喜欢用函数的方法,但后来看了一下AVR的,貌似用的最多的是 与、或、非、异或这些运算符来操控IO口,所以我就用这种方式吧,练熟一些方便以后学习。

 

#include "reg52.h"
 

#define uchar unsigned char

#define uint unsigned int
 

 

// 用来延时

void delay ( uchar x)  

{

    uint y;

    for (; x > 0 ; x--  )

    for( y=500 ;y>0;y--);

}
 

 

void main()

{

   uchar Tmp;

   uchar i;

   while(1)

   {

      Tmp=0xFE;          //在流之前先让第一个灯亮 1111 1110 

      for(i=0; i<8; i++)

      {

         P1= Tmp;

         Tmp = Tmp<<1;     //左移动一位 0xFE=1111 1110 << 1 = 1111 1100

         Tmp = Tmp|0x01;   //将最后一位置1  1111 1100 | 0000 0001 = 1111 1101

         delay(100);       // 让灯亮一段时间

      }

   }
 }

关键字:51单片机  流水灯 引用地址:51单片机学习之2-流水灯

上一篇:51单片机学习之4-数码管
下一篇:51单片机_1602液晶自定义心形图案

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

51单片机通用汇编延时子程序,
[DELY]:通用延时子程序 [地址]:7FEBH - FFEBH [功能]:延时 [入口]:延时常数放在 R2 寄存器中。时间常数 N(十六进制)所对应的延时时间(6MZH 晶振时)见下表: [出口]:R2=0 [占用寄存器]:R2 [调用]:无 例:延时1 秒子程序 MOV R2,#18H LCALL 7FEBH RET ORG 7FEBH ;通用延时子程序(07EBH & 0FEBH & ...) L7FEB: PUSH 02H ;R2(复位后R2即为 02H)存放时间常数,进栈保护 L7FED: PUSH 02H ; R2 进栈保护 L7FEF: PUSH 02H ; 进栈 L7FF1: DJNZ R2,$ ;R2 不为零
[单片机]
51单片机学习笔记2 -- 单灯控制及流水灯
1.LED仿真电路绘制 LED就不展开介绍了,二极管单向导通电能转换光能,直接上原理图,可以看到LED灯D1连接在51单片机P1.0引脚 在Protues元器件查找输入关键词LED,在详细列表下拉找到几个颜色的LED,分别是蓝、绿、红、黄,随便找一个颜色的LED即可 单个LED的接线按照原理图如下进行仿真电路绘制,注意LED的朝向(LED阳极接限流电阻R2,阴极接芯片引脚P1.0) 2.Keil 51工程创建 打开Keil软件,先关掉当前打开的工程,菜单栏 Project - Close Project 新建一个文件夹以存放工程文件,Keil新建工程 选择新建的文件夹存放工程,并给工程命名 选择工程对应的处
[单片机]
<font color='red'>51单片机</font>学习笔记2 -- 单灯控制及<font color='red'>流水灯</font>
基于51单片机的自动门设计
一.硬件方案 本设计是用STC89C52单片机作为控制器,步进电机、热释电型红外传感器、led指示灯、蜂鸣器相结合的系统。热释电红外传感器给单片机传输检测信号,通过单片机控制电机驱动,从而控制电机转动,实现门的自动开关。 主要由51单片机+5线4相步进机+人体感应模块+发光二极管+按键设计而成;如图: 二.设计功能 (1)具有自动开门和手动开门两种模式的功能。 (2)采用两个红外人体感应传感器,一个是安装在进门口,一个安装在出门口,自动模式下:任意一个感应到人都会自动打开门步进电机正转一圈,开门后当没有感应人系统会自动延时3秒自动关门,如果在关门的时候感应人到,门就会自动打开,防止误伤到人。优点:安全可靠。 (3)手动模式
[单片机]
基于<font color='red'>51单片机</font>的自动门设计
51单片机红外遥控电风扇程序
红外遥控电风扇的电路图下载:http://www.51hei.com/bbs/dpj-20601-1.html 下面是主要源码: /**********************李登峰************************ * 编写;李登峰 * 晶振:11.0592MHZ ******************************************************************/ /*----------------------------------------------- 名称;单片机红外遥控电风扇 ---------------------------------------
[单片机]
<font color='red'>51单片机</font>红外遥控电风扇程序
51单片机入门教程(6)——外部中断
一、外部中断 1.1 中断 关于中断的概念在上一篇博客中已经提到了。(传送门:51单片机入门教程(5)——定时器中断) 中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。 51单片机的中断源优先级与向量号如下表: 中断源 优先级 中断向量号 INT0 – 外部中断0 最高 0 T0 – 定时器/计数器0中断 第2 1 INT1 – 外部中断1 第3 2 T1 – 定时器/计数器1中断 第4 3 串口中断 第5 4 T2 – 定时器/计数器2中断 最低 5 1.2 外部中断 除了定时器中断外,51单片机还有两个外部中断源
[单片机]
<font color='red'>51单片机</font>入门教程(6)——外部中断
基于51单片机的共阳篮球计分器设计
一.硬件方案 本设计采用51单片机作为核心元件,利用两个供阴的三位一体数码管来显示两队的分数,一个四位一体数码管显示时间的计时。显示分数范围可达0~999分,足够赛程计分的需要。四位一体数码管中2个用于显示分钟,2个用于显示秒钟。比赛前,将时间设置好,比赛开始时启动计时,直至倒计时到零为止。计时范围达到0~99分钟,能满足实际赛程计时的需要。为了配合计时器调整时间和计分器校正比分,设计了6个按键,4个用于输入甲、乙两队的分数,另2个用于启动和暂停赛程时间。另外,还设计了定时报警系统,即比赛时间到时,扬声器发出报警声提示赛程结束。 硬件主要为:STC89C52单片机+最小系统+数码管显示模块+数码管驱动模块+蜂鸣器模块+按键模块
[单片机]
基于<font color='red'>51单片机</font>的共阳篮球计分器设计
51单片机系列连载3—数码管静态显示
今天主要介绍一下数码管,实际上在学完发光二极管的基础上,数码管一点都不难理解,因为这二者本来就是一脉相通的。首先,我们看一下实物图,基本人人都很熟悉: 它的内部结构就是由8个发光二极管组成的,只是要区分共阳极与共阴极,这个跟之前的二极管原理一样。当然,在排列时要注意顺序,一般都是a到h。 那么什么是动态显示与静态显示呢?看一下官方的解答。所谓静态显示,就是每一个数码管的段码都要独占具有锁存功能的输出口,CPU把要显示的字码送到输出口上,就可以使数码管
[单片机]
基于51单片机的超声波发生器设计方案
  本设计的超声波发生器是利用单片机生成初始信号,然后经过一系列处理电路的作用后生成用来杀灭水蚤的超声波,成本低、效果好,可以在农业上加以采用。在此对3个模块进行设计:   (1)信号发生模块。12 MHz的8051单片机硬件连接及其程序设计。   (2)信号处理模块。驱动电路设计(CD4069非门集成芯片);倍频电路设计(S9014或ECGl08三极管、104普通电容、11 257.9 nH自制电感、1 kΩ电阻);整波电路设计(CD4069非门集成芯片);和频电路设计(CD4081与门集成芯片);选频电路设计(S9014或ECGl08三极管、104普通电容、112.58 nH自制电感、1 kΩ电阻)。   (3)信号检测
[单片机]
基于<font color='red'>51单片机</font>的超声波发生器设计方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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