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