单片机流水灯c语言讲解,单片机流水灯c语言实现概要1.doc

单片机流水灯c语言实现概要1

实验一 闪烁的Led

//名称:闪烁的Led

//说明:Led按设定的时间间隔闪烁,约亮1秒灭1秒

//-----------------------------------

#include

#define uchar unsigned char//uchar宏定义

#define uint unsigned int//uint宏定义

sbit led=P1^0;

//-----------------------------------

//延时子程序

//-----------------------------------

void delayMs(uint x)

{

uchar i;//uchar i取值为0-255

while(x--)

{

for(i=0;i<120;i++);//延时120微妙

}

}

//------------------------------------

//主程序

//-----------------------------------

void main ()

{

while(1)

{

led=~led;

delayMs(2050);//约亮1秒灭1秒

}

}

实验二 从左到右的流水灯

//名称:从左到右的流水灯

//说明:接在P0端口的8只Led从左到右循环依次点亮,产生走马灯效果

//-----------------------------------

#include

#include//循环左移头文件宏定义

#define uchar unsigned char

#define uint unsigned int

//------------------------------------

//延时函数

void delayMs(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//-------------------------------------

//主程序

void main ()

{

P0=0xfe;//P0口初始化值1111.1110

while(1)

{

P0=_crol_(P0,1);//P0口循环左移1位

delayMs(150);//晶振为11.0592时,0.1594885秒移动一次

}

}

实验三 左右来回循环的流水灯

//名称:左右来回循环的流水灯

//说明:程序利用循环移位函数_crol_和_cror形成来回滚动的效果

//---------------------------------------

#include

#include

#define uchar unsigned char

#define uint unsigned int

//---------------------------------------

void delayMs(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<120;i++);

}

}

//--------------------------------------

void main ()

{

uchar i;

P2=0x01;//P2端口初始化

while(1)//死循环

{

for(i=0;i<7;i++)//i自加1,当i=7时执行第二个for语句

{

P2=_crol_(P2,1);//P2端口循环左移1位

delayMs(150);

}

for(i=0;i<7;i++)

{

P2=_cror_(P2,1);//P2端口循环右移1位

delayMs(150);

}

}

}

//注释for(i=0;i<7;i++).i初始值为0,

//i++就是i自加1,每加一次执行

//P2=_crol_(P2,1);//P2端口循环左移1位

//delayMs(150);延时

//当i=7时,跳出第一个for语句,

//执行第二个for语句

实验四 花样流水灯

//

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值