流水灯程序.docx
《流水灯程序.docx》由会员分享,可在线阅读,更多相关《流水灯程序.docx(10页珍藏版)》请在第一文库网上搜索。
1、P10P00P11P01P1JP02P1JP03P1*P0*P15P05P13P04P17!SSC51POTamP20noP21P2211pn10P”P25ITPYP27XIX:t.XD!XDIDALEPrPSHTn47Kx8vccLED1-MLED)LED)LED1*LEDSLED,LED7-44LEDSX*图1流水灯硬件原理图从原理图中可以看出,假如要让接在P1.0 口的LED1亮起来,那么只要把P1.0 口的电平变为低电平就可以了;相反,假如要接在PLO 口的LED1熄灭,就要把P1.0 口的电平变为高电平洞理,接在P1.1PL7 口的其他7个LED的点亮和熄灭的方法同LED1。因此,要
2、实现流水灯功能,我们只要将发光二极管LED1-LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应留意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在掌握二极管亮灭的时候应当延时一段时间,否则我们就看不到“流水”效果了。3.软件编程单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告知单片机怎么来进行工作,即编写程序掌握单片机管脚电平的凹凸变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简洁的流水灯掌握功能即实现8个LE
3、D灯的循环点亮,来介绍实现流水灯掌握的几种软件编程方法。3.1 位控法这是一种比较笨但又最易理解的方法,采纳挨次程序结构,用位指令掌握P1 口的每一个位输出凹凸电平,从而来掌握相应LED灯的亮灭。程序如下:ORG 0000H ;单片机上电后从0000H地址执行AJMP START ;跳转到主程序存放地址处ORG 0030H ;设置主程序开头地址START : MOV SP , #60H ;设置堆栈起始地址为60HCLRP1.0;PL0输出低电平,使LED1点亮ACALL DELAY ;调用延时子程序SETB P1.0;P1.0输出高电平,使LED1熄灭CLR Pl.l ;P1.1输出低电平,使
4、LED2点亮ACALL DELAY ;调用延时子程序SETB Pl.l ;P1.1输出高电平,使LED2熄灭CLR P1.2;P1.2输出低电平,使LED3点亮ACALL DELAY ;调用延时子程序SETB P1.2;P1.2输出高电平,使LED3熄灭CLR P1.3 ;P1.3输出低电平,使LED4点亮ACALL DELAY ;调用延时子程序SETB P1.3;P1.3输出高电平,使LED4熄灭CLR P1.4 ;P1.4输出低电平,使LED5点亮ACALL DELAY ;调用延时子程序SETB P1.4;P1.4输出高电平,使LED5熄灭CLR P1.5;P1.5输出低电平,使LED6点
5、亮ACALL DELAY ;调用延时子程序SETB P1.5;P1.5输出高电平,使LED6熄灭CLR P1.6 ;P1.6输出低电平,使LED7点亮ACALL DELAY ;调用延时子程序SETB P1.6;PL6输出高电平,使LED7熄灭CLR P1.7 ;P1.7输出低电平,使LED8点亮ACALL DELAY ;调用延时子程序SETB P1.7pl.7输出高电平,使LED8熄灭ACALL DELAY ;调用延时子程序AJMPSTART ;8个LED流了一遍后返回到标号START处再循环DELAY :;延时子程序MOV RO , #255;延时一段时间DI : MOV R1 , #255
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流水 程序