原始知识: 通过查看CT107D单片机原理图得知单片机通过P0来控制8个LED灯;

由于基本处于新手状态,看了一点单片机视频(此前并未有过实操),没有注意到M74HC573元件控制受P0和Y4C共同控制,也不知这是锁存器,通过资料补缺得知这是锁存器,还需要译码器来解锁;


由上得知Y4C受WR和Y4控制,而WR在CON3控件,在这块板子里2和3是连接起来的,所以WR一直处于低电平0;所以就转向看Y4;

Y4受到P25 P26 P27 控制,所以要控制LED亮起来,单片机必须控制P0和P2部分引脚;

通过原理图可知Y4控制解锁控制LED灯的锁存器(74HC138);
所以可以 P2 = (P2&0x1F|0x80); 设置 P2^ 7 P2^ 6 P2^5 100指向Y4;
同理可以关闭外设(例如蜂鸣器);P2 = (P2&0x1F|0xA0);指向Y5;置P0 = 0;

void cls_buzz(void)
{P0 = 0xFF; //准备LED全部灭掉P2 = P2 & 0x1F | 0x80; // P27~P25 清零,再定位 Y4C ---4的倍数8P2 &= 0x1F; // P27~P25 清零P0 = 0;//准备关闭外设P2 = P2 & 0x1F | 0xA0; // P27~P25 清零,再定位 Y5C ----5的倍数AP2 &= 0x1F;//将打开的锁存器关闭,使任何一个锁存器都打不开
}

初始化以后,就可以开始对流水灯更进一步了;
如何操控出流水灯了;二进制确实是很棒的设置;它可以通过位转换实现流水灯;通过0x1向右按位移动,实现位的转换(实际上数值倍数形式扩展)
0x1>>n;

for(i=0; i<8; i++){P2 = ((P2&0x1f)|0x80);//译码器指向Y4进而解锁控制LED灯的锁存器;P0 = ~(0x01<<i);  //1向左移位i位,再反转为0,输入为0 Led灯亮;P2 &= 0x1f;//上锁(译码器不指向任何锁码器)delay(i);//等待}

通过for循环,i的递增实现流水灯;

最终代码如下:

#include <stc15f2k60s2.h>
#include <intrins.h>void cls_buzz(void)
{P2 = (P2&0x1F|0xA0);//P2^7 P2^6 P2^5  101 控制译码器Y5作用于控制外设的锁存器解锁;P0 = 0x00;                 //设P0为0;把外设都关闭(包括蜂鸣器)P2 &= 0x1F;                  //上锁(译码器不指向任何锁码器)
}void delay(unsigned char x)
{while(x--){unsigned char i, j, k;_nop_();_nop_();i = 9;j = 104;k = 139;do{do{while (--k);} while (--j);} while (--i);
}}
unsigned char i;
void main()
{cls_buzz();while(1){for(i=0; i<8; i++){P2 = ((P2&0x1f)|0x80);//译码器指向Y4进而解锁控制LED灯的锁存器;P0 = ~(0x01<<i);  //1向左移位i位,再反转为0,输入为0 Led灯亮;P2 &= 0x1f;//上锁(译码器不指向任何锁码器)delay(i);//等待}}}

点亮LED灯--制作流水灯相关推荐

  1. 【万物基于电灯】FPGA点亮LED做一个流水灯

    刚刚入门FPGA,菜鸟一个,新手一个,勿喷** 0.实验目标 使用Quartus II在黑金Alinx301开发板上实现时间间隔为1s的流水灯. 1. 软件安装:Quartus II与ModelSim ...

  2. Tiny4412使用汇编点亮LED,实现流水灯效果

    2019独角兽企业重金招聘Python工程师标准>>> 本文转自:http://www.techbulo.com/1313.html 从今天开始就正式进入到tiny4412的开发学习 ...

  3. Step1 :【C51】LED灯闪烁、跑马灯、流水灯、实现每次亮两个灯的流水灯

    Step1Step1Step1 :[C51]LED灯闪烁.跑马灯.流水灯.实现每次亮两个灯的流水灯 在我所使用的开发板中,LED采用共阳极接法,即所有LED阳极管脚接电源VCC,其阴极管脚接到P2口上 ...

  4. 以STM32为核心制作流水灯

    ** 以STM32为核心制作流水灯 ** 文章目录 以STM32为核心制作流水灯 一.硬件部分 1.IO口选择 2其余硬件 3.连线 二.软件部分 2.1寄存器配置 2.2主函数编写 2.3程序烧录 ...

  5. 51单片机小白零基础教程——点亮第一个小灯以及流水灯(附原理图、代码详细讲解)

    点亮第一个小灯以及流水灯 一.LED灯电路图分析 (1)LED灯的描述 (2)LED灯在电路图中的分析 (3)主控电路分析 二.如何利用Keil uVision4创建一个程序 三.Stc-isp烧录软 ...

  6. 51单片机(入门保姆级教程)——LED闪烁及流水灯

    一.LED基本原理和知识 图1 LED共阳极原理图 1.1 LED共阴极和共阳极的含义 LED的最小单元是发光二极管.发光二极管是区分正负极的,正向导通,反向截止.共阴极就是发光二极管的负极连接在一起 ...

  7. LED原理及流水灯的实现

    LED原理及流水灯的实现 原理 Library中 ACTIVE:可视化的,可以看清LED的活动 LED_BIBY的意思是:两种极性的LED颜色:B-blue,Y-yellow LED是蓝色的,发光后颜 ...

  8. 51单片机-LED模块-来回流水灯

    51单片机-LED模块-来回流水灯 1. 视频 哔哩哔哩视频地址: https://www.bilibili.com/video/av89552821 51单片机-LED模块-来回流水灯 2. 文件 ...

  9. 51单片机 74HC154译码器制作流水灯+Proteus仿真

    51单片机 74HC154译码器制作流水灯+Proteus仿真 Proteus仿真 实例代码 #include <reg52.h> #define uint unsigned int #d ...

最新文章

  1. 前端学习(3094):vue+element今日头条管理-反馈
  2. MATLAB字符数组和空数组
  3. 标签插入两一个html,一个类下有很多a标签,给第二个a标签添加样式,怎么写才能不用再给第二个a添加类_html/css_WEB-ITnose...
  4. Java中获取资源文件路径
  5. [转]加密技术在企业数据安全中的应用
  6. REST无状态风格的理解
  7. FFmpeg源代码简单分析:makefile
  8. html在p中加空格,HTML基础 p 多个空格和换行都算一个空格
  9. hadoop集群重启
  10. php mysql sum用法_mysql怎么使用sum()求id字段的和?
  11. 【转】cron表达式详解
  12. java swing 飞机大战游戏 github 免费 开源 公开 源码
  13. Mac版本QQ消息防撤回
  14. PMP项目管理13个计划
  15. 一张图知道优秀项目经理应该具备的能力
  16. ffmpeg的使用笔记
  17. 记一次 打包报错:Keystore was tampered with, or password was incorrect
  18. 品味奢华 匠心独韵——飞利浦Fidelio T1设计与声音的哲学
  19. 正则表达式介绍+一些简单应用
  20. 并查集+字符排序-困兽之斗(乐视题)

热门文章

  1. 玩转神器 Nginx
  2. 计算机软件登记权证书,计算机软件著作权登记申请表(计算机软件登记文书).doc...
  3. Vue3 企业级项目实战:项目须知与课程约定
  4. 九阳豆浆机鸿蒙系统,智能全营养技术 九阳豆浆机现售699元
  5. 使用纹理(Textures)
  6. Win10 IE11浏览器,您正在查看的页使用 Java,Microsoft 网站提供有关 Java 支持的更多信息 解决
  7. 传感器自学笔记第十二章——火焰传感器+HC-SR501人体感应模块+按键模块+红绿双色LED(共阴)模块+按键开关模块+三色LED
  8. MATLAB编程-excel文件操作
  9. 考研总分多少能去辽师_一个分数擦线过辽师大心理学考生的考研心得体会
  10. Allegro PCB封装表贴器件-0805电阻-实战-详细封装制作过程(一)