标题:
单片机定时器实现流水灯代码
[打印本页]
作者:
Iris123
时间:
2019-6-14 16:23
标题:
单片机定时器实现流水灯代码
定时器实现流水灯
单片机源程序如下:
//*********************************************************************************
//功能:查询方式实现间隔1s的流水灯程序。8个发光二极管依次顺序点亮,采用循环移位
//函数_crol_(m,1)实现
//实验箱上D1区J52接P1
//*********************************************************************************
#include<reg51.h> /*包含头文件REG51.H*/
#include <intrins.h> /*包含函数_crol_(m,1)的头文件*/
#define uchar unsigned char
#define LED P1 /*定义8个LED接至P1口*/
#define Count 50000 /* T1方式1定时50ms的计数值*/
uchar Temp1, Temp2;
void Delay1s(); //1s延时函数声明
void main() //主程序
{
TMOD=0x10; //设置T1为定时器、方式1
LED=0xff; //8个LED全部熄灭
Temp1=0xfe; //点亮最上面的LED
LED=Temp1;
while(1)
{
Delay1s(); //调用1s延时函数
Temp2=_crol_(Temp1,1); //采用_crol_(m,1)实现单只LED从上到下依次点亮
Temp1=Temp2;
LED=Temp2;
}
}
//*********************************************************************************
//函数名:Delay1s
//函数功能:利用T1定时、方式1实现1s延时,采用查询方式实现
//*********************************************************************************
void Delay1s()
{
uchar i;
for(i=0;i<0x14;i++) //设置20次循环次数
{
TH1=(65536-Count)/256; //T1的高8位初值
TL1=(65536-Count)%256; //T1的低8位初值
TR1=1; //启动T1
while(!TF1); //查询计数是否溢出,即定时50ms时间到了吗?
TF1=0; //50ms定时时间到,将T1溢出标志位TF1清零
}
}
复制代码
所有资料51hei提供下载:
定时器实现流水灯.zip
(61.82 KB, 下载次数: 25)
2019-6-14 16:22 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1