按鍵控制單片機(jī)改變流水燈速度
程序效果:有三個(gè)按鍵,按下其中任意一個(gè)流水燈的速度改變
*/
#includereg52.h> //52系列單片機(jī)的頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int
uchar count=40,flag=0; //定義剛開(kāi)始的流水燈的速度,后一個(gè)為標(biāo)志變量
void main()
{
uchar i=0;//定義局部變量
EA=1; //打開(kāi)總中斷
ET0=1; //打開(kāi)定時(shí)器
TR0=1; //啟動(dòng)定時(shí)器
TH0=(65536-50000)/256; //裝初值
TL0=(65536-50000)%256;
P2=0xfe; //點(diǎn)亮第一個(gè)數(shù)碼管,為下次循環(huán)做準(zhǔn)備
while(1)
{
if(flag) //flag被置位
{
flag=0;//清零,為下次做準(zhǔn)備
P2=~P2; //取反
P2=1; //左移一位
P2=~P2; //取反
i++;
if(i==8) //移到第八個(gè)數(shù)碼管,則從新裝初值
{
i=0;
P2=0xfe;
}
}
P0=0xf0; //賦初值
if((P00xf0)!=0xf0) //判斷是否有按鍵按下
{
if(P0==0x70) //按下第一個(gè)按鍵
count=60; //給count從新賦值
if(P0==0xb0)
count=20;
if(P0==0xd0)
count=10;
}
}
}
void time0() interrupt 1 //定時(shí)器0
{
static uchar cnt; //定義靜態(tài)變量
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++; //計(jì)數(shù)
if(cnt==count)
{
cnt=0; //清零
flag=1; //置標(biāo)志位
}
}
萬(wàn)能遙控器相關(guān)文章:萬(wàn)能遙控器代碼
加速度計(jì)相關(guān)文章:加速度計(jì)原理
評(píng)論