tag 标签: 流水灯

相关帖子
相关博文
  • 热度 17
    2019-2-18 09:17
    5278 次阅读|
    0 个评论
    流水灯是若干个灯泡依次点亮,视觉上感觉到灯光在流动就叫做流水灯。 绚丽多彩的流水灯是怎么实现的呢?其实道理蛮简单的。它是由无数个LED灯组成的,而LED就是发光二极管的简称,它有个特性:就是它只允许电流单一方向流过.。如果让LED灯亮起来,他需要连接一个高电平和一个低电平,当它遇到低电平时它会亮起来而遇到高电平它就会熄灭。由于他只能单方向流过电流,所以也就会一亮一暗。 我们以4个灯为例,要让他们在不同的时间有顺序的亮起来要怎么做呢? 要让4个灯在不同的时间不同的顺序亮起来才能实现流水灯的效果,这就需要个平台来统计他们每个灯的信息,包括顺序和时间。而这个用来统计信息的平台有一个专业的名字叫做数据寄存器。数据寄存器主要用来保存操作数和操作运算结果等信息。程序员可利用数据寄存器的特性灵活处理字节信息,从而实现流水灯的效果。 以上所有信息仅作为学习交流使用,不作为任何学习和商业标准。 若您对文中任何信息有异议,欢迎随时提出,谢谢!
  • 热度 18
    2013-12-17 20:56
    1805 次阅读|
    1 个评论
    /*************************************************************************** * * AT89C51 流水灯程序 * 外部晶振频率12MHz * 作者:FAN * 创建日期:2013.12.17 *  ****************************************************************************/ #include #define LED   P0 #define TIME  5000 /* 函数定义 */ void delay_ms(unsigned int ms);  //毫秒延时函数 void led_se (void);    //LED循环流动点亮函数 void rcol(void);   //循环移位函数 /* 主函数  */ void main () {      LED = 0x80;      while (1)      {           led_se();      } } /* LED从左往右循环流动 */ void led_se (void) {      delay_ms(TIME);             //延时      rcol();    } /*      循环移位函数        */ void rcol (void) {  //循环移位,嵌入汇编     #pragma asm         MOV A, LED          CLR C         RRC A         MOV LED, A     #pragma endasm } /*      毫秒延时函数         */ void delay_ms(unsigned int ms) {     unsigned char i;     while(ms--)     {         for(i=0; i120; i++);     } } KEIL C51编译时提示 #pragma asm #pragma endasm   这两条伪指令出错,这个参照书标准嵌入汇编的格式,不知道为什么会出错,我是新手,请高手指点 你可以直接复制到你的KEIL C51试试,会不会提示这个两错误, 不知道是不是,我电脑编译问题 也试过不用汇编,全C写的,,调试时,P0端口永远输出都是0x00,AT89C51,开始我想,是不是端口,要初始化配置,我查看过它的数据手册,它的端口好像不要初始化配置啊。 请高手指点,谢谢!  
  • 热度 20
    2013-4-7 17:34
    2420 次阅读|
    2 个评论
    因为项目需要,着手开始STM32的学习。 手头有一个STM8/32三合一的板子,08年就从官方申请了,到现在才着手学习,惭愧啊! 代码是根据野火的教程一步步来的,因为时间关系,内部细节来不及说了,先通过下面的视频看下效果吧!下面附件是这次的代码和三合一板的原理图。 先学流水灯吧,这似乎是单片机入门的必修课似的。LED流水灯就是GPIO的使用,确切地说是O的使用,还不是I呢,呵呵。这个板子上GPIOB5~8接了LED,Source方式。  
相关资源