《程序简单花样齐全的流水灯.pdf》由会员分享,可在线阅读,更多相关《程序简单花样齐全的流水灯.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、利用单片机实现五种花样流水灯 1.硬件电路图设计 本文仿真软件采用 Proteus 和 Keil C51。其中 Keil Proteus 可以仿真、分析(SPICE)各种模拟器件和集成电路,C51 可完成程序的编译链接和仿真调试,并能生成 hex 文件。通过 Keil C51 与 Proteus 的联调便可实现仿真实验。硬件电路采用单片机最小系统(晶振电路+复位电路),利用 P0 口作为数据输出端口。由于 P0 口是一个 8 位漏极开路的的双向 I/O 口,必需外接上拉电阻才能有高电平输出。当单片机输出高电平时对应的 LED 灯熄灭,当输出低电平时则点亮。2.C 语言程序 程序定义了五个数组分
2、别对应五种不同的花样流水灯方式,其中每个数组中的每个元素控制 P0 口的壮态,从而控制每个 LED 灯的壮态。另外,程序将流水灯每个壮态的间隙时间进行了宏定义,这使得修改每个壮态的保持时间十分方便。#include /包含单片机头文件#define uint unsigned int#define uchar unsigned char#define DataPort P0 /定义 P0 为数据输出端口#define TIME 30 /设定流水灯每个状态的间隙时间 /*us 级延时程序*/void Delayus2x(uint n)while(-n);/*ms 级延时程序*/void Dela
3、yms(uint n)while(-n)Delayus2x(245);Delayus2x(245);/*五个数组分别对应五种不同的流水灯*/uchar DB115=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 xbf,0 xdf,0 xef,0 xf7,0 xfb,0 xfd,0 xfe;uchar DB215=0 xfe,0 xfc,0 xf8,0 xf0,0 xe0,0 xc0,0 x80,0 x00,0 x80,0 xc0,0 xe0,0 xf0,0 xf8,0 xfc,0 xfe;uchar DB315=0 xe7,0 xdb,0
4、xbd,0 x7e,0 xbd,0 xdb,0 xe7,0 xff,0 xe7,0 xc3,0 x81,0 x00,0 x81,0 xc3,0 xe7;ucharDB436=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 x7e,0 x7d,0 x7b,0 x77,0 x6f,0 x5f,0 x3f,0 x3e,0 x3d,0 x3b,0 x37,0 x2f,0 x1f,0 x1e,0 x1d,0 x1b,0 x17,0 x0f,0 x0e,0 x0d,0 x0b,0 x07,0 x06,0 x05,0 x03,0 x02,0 x01,0 x
5、00;ucharDB536=0 x80,0 x40,0 xc0,0 xa0,0 x60,0 xe0,0 xd0,0 xb0,0 x70,0 xf0,0 xe8,0 xd8,0 xb8,0 x78,0 xf8,0 xf4,0 xec,0 xdc,0 xbc,0 x7c,0 xfc,0 xfa,0 xf6,0 xee,0 xde,0 xbe,0 x7e,0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 xff;/*主函数*/void main(void)uint i=0;while(1)/死循环,流水灯依次在五种方式中循环 DataPort=0 x
6、ff;/灯全灭 Delayms(TIME);for(i=0;i15;i+)DataPort=DB1i;Delayms(TIME);/第一种方式 for(i=0;i15;i+)DataPort=DB2i;Delayms(TIME);/第二种方式 DataPort=0 xff;Delayms(TIME);for(i=0;i15;i+)DataPort=DB3i;Delayms(TIME);/第三种方式 DataPort=0 xff;Delayms(TIME);for(i=0;i36;i+)DataPort=DB4i;Delayms(TIME);/第四种方式 DataPort=0 x00;Delayms(TIME);for(i=0;i36;i+)DataPort=DB5i;Delayms(TIME);/第五种方式 3.软件仿真图 3.1 第一种 3.2 第二种 3.3 第三种 3.4(略)3.5(略)