标题:
单片机流水灯计时器
[打印本页]
作者:
塔索爽
时间:
2018-5-11 21:15
标题:
单片机流水灯计时器
基于单片机的流水灯计时器,程序附件里。
lsd.png
(22.77 KB, 下载次数: 45)
下载附件
2018-5-11 21:14 上传
单片机源程序如下:
#include<reg52.h>
#include"delay.h"
//**************数组定义*******************
/************************端口定义**************************/
sbit k1=P2^5; //
sbit k2=P2^6; //
sbit k3=P2^7; //
//**************变量定义*******************
uchar temp,miao;
uchar flag;
uchar flag1;
uchar flag2;
/*******************定时器T0初始化********************/
void T0_init()
{
TMOD=0x01; //设T0为方式1
TH0=(65535-50000)/256; //计数50000个
TL0=(65535-50000)%256;
EA=1; //开启总中断
ET0=1; //允许T0中断
TR0=1; //启动
}
/************************按键*************************/
void key()
{
if(k1==0)
{
delayxms(5);
while(k1==0);
delayxms(5);
flag=!flag;
}
if(k2==0)
{
delayxms(5);
while(k2==0);
delayxms(5);
flag1=1;
}
if(k3==0)
{
delayxms(5);
while(k3==0);
delayxms(5);
flag2=!flag2;
}
}
/**************************主函数*************************************/
void main()
{
T0_init();
while(1)
{
key();
P1=miao;
if(flag1==1)
{
miao=0;
flag1=0;
}
if(flag==0)
{
TR0=1;
}
if(flag==1)
{
TR0=0;
}
}
}
/***************************************************
函数功能:T0
***************************************************/
void T0_time() interrupt 1
{
TH0=(65535-50000)/256; //计数50000个
TL0=(65535-50000)%256;
temp++;
if(temp==20)
{
temp=0;
if(flag2==0)
{
miao++;
if(miao==64)
{
miao=0;
}
}
if(flag2==1)
{
miao--;
if(miao==0)
{
miao=63;
}
}
}
}
复制代码
所有资料51hei提供下载:
10-流水灯.rar
(114.52 KB, 下载次数: 12)
2018-5-11 21:14 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
520hhh
时间:
2018-5-18 17:39
请问需要哪些元器件
作者:
520hhh
时间:
2018-5-18 18:08
请问需要哪些元器件
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1