标题:
单片机定时器中断控制流水灯方向 以及控制延时程序
[打印本页]
作者:
s26250
时间:
2018-12-7 13:39
标题:
单片机定时器中断控制流水灯方向 以及控制延时程序
源程序如下
#include<reg52.h>
#include<intrins.h>
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
int k,n,a,b;
k=40;//定时器装初值为50ms 40次即2s
//延时函数
void delay(int xms)
{
int i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
//按键扫描
void keyscan()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
b=~b;//取反改变流水灯方向
while(!key1);
}
}
if(key2==0&&(k>=10&&k<80))
{
delay(10);
if(key2==0)
{
k=(k+10);//加10 增加500ms
while(!key2);
}
}
if(key3==0&&(k>10&&k<=80))
{
delay(10);
if(key3==0)
{
k=(k-10);//减10 减少500ms
while(!key3);
}
}
}
void main()
{
a=0xfe;
P0=a;
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
keyscan();
}
}
void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
n++;
if(n==k)
{
n=0;
if(b)
{
a=_cror_(a,1);
P0=a;
}
if(!b)
{
a=_crol_(a,1);
P0=a;
}
}
}
复制代码
源程序附件下载
定时器控制流水灯.rar
(26.68 KB, 下载次数: 28)
2018-12-7 13:39 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1