1.基于单片机的流水灯程序设计
对于共阳极连接的二极管,P0接阴极
P0=0X00;
delay(s);
P0=0Xfe;
while(1)
{
if(左移成立)
{
if(flag==1){P0=0Xfe;flag=0;}
P0=P0<<1;
}
else if(右移成立)
{
if(flag==1){P0=0Xfe;flag=0;}
P0=P0>>1;
}
else if(全灭成立)
{P0=0XFF;flag=1;}
else
{P0=0x00;flag=1;}
}
看能参考一下不?
2.关于单片机C语言的流水灯设计
把18个发光二极管分别与单片机的P0.0-P0.7、P1.0-P1.7、P2.0-P2.1,并街上5K欧的上拉电阻。
程序如下:
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp0,temp1,num;
sbit d1=P2.0;
sbit d2=P2.1;
void delay(uint);
void main()
{
while(1)
{
temp0=0xfe;
temp1=0xff;
d1=1;
d2=1;
for(num=0;num<8;num++)
{
P0=temp0;
P1=temp1;
delay(100);
temp0=_crol_(temp0,1);
P0=0xff;
delay(100);
}
temp0=0xff;
temp1=0xfe;
d1=1;
d2=1;
for(num=0;num<8;num++)
{
P0=temp0;
P1=temp1;
delay(100);
temp1=_crol_(temp1,1);
P1=0xff;
delay(100);
}
temp0=0xff;
temp1=0xff;
d1=0;
d2=1;
delay(100);
d1=1;
d2=0;
delay(100);
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
上面是依次点亮程序,时间间隔为100ms,如果更改,只需更改delay()内的数字即可;
全部点亮程序如下:
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp0,temp1,num;
sbit d1=P2.0;
sbit d2=P2.1;
void main()
{
temp0=0xff;
temp1=0xff;
d1=1;
d2=1;
P0=temp0;
P1=temp1;
}
3.单片机流水灯设计程序
//-----------------------------------------------------------------
// 名称: 左右来回的流水灯
//-----------------------------------------------------------------
// 说明: LED按设定的时间左右来回滚动显示
//
//-----------------------------------------------------------------
#include
#include
#define INT8U unsigned char
#define INT16U unsigned int
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main()
{
INT8U b=0,derection=0;
DDRA=0xFF;
while(1)
{
if(derection==0)
PORTA=0x01>b;
if(++b==8)
{
b=0;
derection=!derection;
}
_delay_ms(60);
}
}
4.单片机控制流水灯
郭天祥51教程里面的,如果有其他问题,追问或私信
/**************************************************************************************
* LED闪烁的简单试验 *
* 延时实现p2口LED流水灯效果 (用循环移位指令) *
* 连接方法: JP11(P2)和JP1(LED灯) 用8PIN排线连接起来 *
* *
***************************************************************************************/
#include //此文件中定义了51的一些特殊功能寄存器
#include
void delayms(unsigned char ms)
// 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i
转载请注明出处众文网 » 单片机控制流水灯的毕业论文(基于单片机的流水灯程序设计)