资料介绍
首先,介绍下原理。下图为主控芯片和流水灯模块的原理图。流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。要实现流水灯功能,我们只要将LED1~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。
实现8个LED流水灯程序用中文表示为:P1.0低、延时、P1.0高、P1.1低、延时、P1.1高、P1.2低、延时、P1.2高、P1.3低、延时、P1.3高、P1.4低、延时、P1.4高、P1.5低、延时、P1.5高、P1.6低、延时、P1.6高、P1.7低、延时、P1.7高、返回到开始、程序结束。
听起来是不是很简单啊!那么下面我们来看下实现流水灯功能的三种常用方法!
第一种,总线方法实现流水灯。
这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,加上延时函数,即可控制每个LED灯的亮灭。C程序如下:
第二种,移位方法实现流水灯
上一种方法是逐个将P1口的LED灯点亮来实现闲的,因此程序看起来有一点复杂。下面将一种用移位的方法。采用循环程序结构编程。首先在程序开始给P1.0口送一个低电平,其它位为高。然后延时一段时间再让低电平往高位移动,这样就实现“流水”的效果了。下面来看具体程序:
第三种,库函数实现流水灯
C52 提供了 _crol_(字符循环左移);_cror_ (字符循环右移)等库函数,包含在头文件intrins.h中。接下来还是先讲一下移位的小知识点吧。
左移。C52中操作符为“<<”,每执行一次左移指令,被操作的数将最高位移入单片机PSW寄存器的CY位。CY位中原来的数丢弃,最低位补0,其他位依次向左移动一位。相信大家学过C语言都清楚吧,这里就不多说了。而函数_crol_的作用是循环左移。它会将最高位移入最低位,其他位依次向左移一位。用法:x=0xfe;x=_crol_(x,1);//循环左移移位。接下来看具体程序:
知识点:PSW寄存器。
PSW(Program StatusWord)全称为程序状态字标志寄存器,是一个8位寄存器,位于单片机片内的特殊功能寄存器区,字节地址D0H,用来存放运算结果的一些特征,如有无进位、借位等。使用汇编编程时PSW寄存器很有用,但在利用C语言编程时,编译器会自动控制该寄存器,很少人为操作它,大家只需做简单了解即可。其每位的具体含义如图1 所示:
图 1 PWD(Program Status Word)寄存器
①CY:进位标志位,它表示运算是否有进位(或借位)。如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0。
②AC:辅助进位标志,又称半进位标志,它指两个8位数运算低四位是否有半进位,即低四位相加(或相减)是否进位(或借位),如有,则AC为1,否则为0。
③F0:由用户使用的一个状态标志位,可用软件来使它置1或清0;也可由软件来测试它,以控制程序的流向。
④RS1、RS0:4组工作寄存器区选择控制位。在汇编语言中这两位用来选择4组工作寄存器区中的哪一组为当前工作寄存区。
⑤OV:溢出标志位,反映带符号数的运算结果是否有溢出。有溢出时,此位为1,否则为0。
⑥P:奇偶标志位,反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个l(如11001100B,其中有4个1),则P为0,否则P为1。
(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 单片机流水灯三种实现
- 51单片机用三种方法实现流水灯(超详细)
- 基于51单片机的流水灯参考案例下载 35次下载
- PIC单片机TIMER0实现流水灯的自动控制设计资料下载
- 使用单片机实现3移位运算操作点亮流水灯资料免费下载 7次下载
- 使用单片机实现从左到右的流水灯的程序和仿真资料免费下载 14次下载
- 使用单片机实现花样流水灯的程序和仿真资料免费下载 30次下载
- 使用单片机实现左右来回的流水灯程序和仿真资料免费下载 14次下载
- 使用单片机实现流水灯左移的电路图和仿真资料免费下载 15次下载
- 使用单片机实现流水灯右移的电路图和程序及仿真资料免费下载 6次下载
- 使用单片机实现流水灯的详细资料说明 7次下载
- 使用51单片机实现流水灯的程序免费下载
- 使用单片机实现流水灯的两种代码免费下载
- 使用51单片机流水灯实现的三种方法详细说明
- 单片机流水灯汇编实现程序资料免费下载 17次下载
- 电源的三种常用冷却方法 760次阅读
- 如何用三种不同的方法来用按钮控制灯光 2156次阅读
- 基于单片机的流水灯电路设计 2582次阅读
- 如何使用51单片机制作一个心形流水灯 3999次阅读
- 利用51单片机流水灯和LCD1602实现表白功能 1470次阅读
- 基于51单片机按键控制流水灯设计 4394次阅读
- 利用单片机点亮流水灯实例解析 1w次阅读
- 如何通过FPGA实现一个流水灯? 7976次阅读
- 实现51单片机流水灯的三种详细资料说明 6014次阅读
- 51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析 9.6w次阅读
- 单片机控制花样流水灯原理图及程序 5.4w次阅读
- 51单片机流水灯电路图大全(六款单片机流水灯电路图介绍) 19.1w次阅读
- 单片机C语言程序设计之TIMER0控制流水灯 4379次阅读
- MCS-51单片机控制跑马灯的三种方法 4.5w次阅读
- 如何更高效地实现51单片机流水灯? 9955次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多