|
比如不是要那種1秒閃一秒滅那種,而是那種0.4秒亮。1.6秒滅那種.自己找了些程序想做參考,但基本都是那種比較固定的亮滅正好相反的那種。并且在Protest動態(tài)幀運(yùn)的時間計(jì)時是不是剛開始有個延遲?我現(xiàn)在在想的時兩個計(jì)時一個負(fù)責(zé)滅一個負(fù)責(zé)亮
單片機(jī)源程序如下:
#include<reg52.h>
sbit led=P1^0; //聲明一個用于測試的led燈
unsigned char one;
unsigned char two;
void main()
{
TMOD=0x01; //聲明定時器的工作方式M1=0,M0=1
//裝入初始值,即計(jì)滿所裝的數(shù)時,就會溢出
TH0=(65536-45872)/256;
TL0=(65536-45872)/256;
EA=1; //開啟全局中斷允許
ET0=1; //開啟定時器0中斷允許
TR0=1; //開啟定時器0
while(1); //讓程序一直循環(huán)下去,中斷也不斷產(chǎn)生
}
//中斷函數(shù)
void T_Time() interrupt 2
{
TH0=(65536-45872)/256; //重裝初值
TL0=(65536-45872)/256;
one++;
two++;
if(one==4) //當(dāng)number=20時,即為1s
{
one=0; //把number置0,重新計(jì)數(shù)
led=1; //使led燈每隔1s亮一次
}
else(two==16);
{
two=0;
led=0;
}
}
|
|