你好!欢迎来到 !
语言
当前位置: 首页>> 技术中心>> 单片机入门>> 很多网友都对流水灯感兴趣,给2个流水灯程序

很多网友都对流水灯感兴趣,给2个流水灯程序

关键字: 流水灯 作者:admin 来源:不详 发布时间:2018-05-18 浏览:0

下面给出两个程序。

//================================================

//利用单片机定时器中断,使P0口外接的8个发光二极管以1位1s的速度,轮流发光。

//================================================

#include

#include

#define ucha unsigned char

#define uint unsigned int

void init();

ucha b = 0;

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

main()

{

ucha a = 0xfe;

P0 = a;

init();

while(1) {

if(b == 20) { //如果中断了20次.

b = 0; //就是1s

a = _crol_(a, 1);//移位

P0 = a; //输出

}

}

}

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

void init()

{

TMOD = 0x01; //T0定时方式0

TH0 = (65536 - 50000) / 256; //定时

TL0 = (65536 - 50000) % 256;

TR0 = 1; //启动

ET0 = 1; //开放中断

EA = 1;

}

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

void timer0() interrupt 1 //每隔50ms中断一次

{

TH0 = (65536 - 50000) / 256; //恢复初始值

TL0 = (65536 - 50000) % 256;

b++; //中断次数加一

}

/*

//================================================

//利用单片机软件延时,使P0口外接的8个发光二极管以1位1s的速度,轮流发光。

//================================================

#include

#include

#define ucha unsigned char

#define uint unsigned int

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

ucha a;

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

void main()

{

uint i, j;

a = 0xfe;

while(1) {

a = _crol_(a, 1);

P0 = a;

for(i = 250; i > 0; i--) //多次循环,目的是延时

for(j = 500; j > 0; j--);

}

}

//============================

*/

上述两个程序,可以用PROTEUS仿真,截屏画面如下:

1.png

编辑:admin 最后修改时间:2018-05-18

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright ? 2014-2023 All Rights Reserved.粤ICP备14043402号-4

Baidu
map