『壹』 用C語言編寫,單片機控制LED燈並用定時器延時,每隔一秒使LED依次點亮,8 個燈
我再幫你補一課,看了你的標題,我寫了一個用定時器0來控制一個LED燈第隔1秒鍾亮滅一次的程序,希望對你有用,另外我也寫了一個你說的那個程序,一起發上來吧
****************這個是用定時器0控制一個燈的亮和滅******************************
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/**************************************/
uchar num;
bit tt;
sbit d=P1^0;
/******************主程序入口********************/
void main()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TCON=0x10;
EA=1;
ET0=1;
tt=255;
while(1)
{
if(num==20)
{
tt=!tt;
d=tt;
num=0;
}
}
}
void timer() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num++;
}
****************這個程序是逐個點亮的(思路:由256逐減1,值由LED燈顯示)***********************
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
/**************************************/
uchar num,tt;
//bit tt;
sbit d=P1^0;
/******************主程序入口********************/
void main()
{
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
TCON=0x10;
EA=1;
ET0=1;
tt=255;
while(1)
{
if(num==20)
{
tt--;
P1=tt;
num=0;
}
}
}
void timer() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
num++;
}
『貳』 單片機延時一秒的c程序
單片機延時一秒
程序是不固定的
要根據你的晶振 計算出一次循環執行需要的時間
然後 寫循環次數
一般是
voiddelay_one_second(void)
{
inti;
for(i=0;i<TIMES;i++);
}
這樣就可以了。 TIMES是要計算的。或者 根據示波器 自己嘗試。
『叄』 51單片機延時一秒函數,晶振12MHZ
我這有個函數自己實驗出來的,在KEIL里看差不多就是延時1毫秒
void delay1ms(unsigned int t)
{
unsigned x,y;
for(x=t;x>0;x--)
for(y=124;y>0;y--);
}
把t 改為你要延時的數就可以了,1毫秒就把t改為1 500毫秒就把t改為500