導航:首頁 > 編程語言 > 可編程定時開關增加倒計時功能

可編程定時開關增加倒計時功能

發布時間:2023-07-16 09:46:04

⑴ 如何用單片機做一個簡單的倒計時器

我已經完成了,下面是電路圖和實際效果,你也試試,程序已經調試完成了!!!是使用秒錶程序改編完成的,喜歡的話,點一個贊吧!希望能幫到你!!!

#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器

typedef unsigned int u16; //對數據類型進行聲明定義

typedef unsigned char u8;

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

u8 code smgan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f};//顯示0~F的值

u8 ssec=100,sec=60,min=04;

u8 DisplayData[8];

sbit beep=P1^5;

unsigned long counter=0;

unsigned int c=0;

sbit p15=P1^5;

bit p;

/*******************************************************************************

* 函 數 名 : delay

* 函數功能 : 延時函數,i=1時,大約延時10us

*******************************************************************************/

void delay(u16 i)

{

while(i--);

}

/*******************************************************************************

* 函 數 名 : Timer0Init

* 函數功能 : 定時器0初始化

* 輸 入 : 無

* 輸 出 : 無

*******************************************************************************/

void Timer0Init()

{

TMOD=0X11;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。

TH0=0Xd8; //給定時器賦初值,定時10ms

TL0=0Xf0;

ET0=1;//打開定時器0中斷允許

EA=1;//打開總中斷

TR0=1;//打開定時器 -->啟動定時器中斷!

ET1=1;

TR1=1;

TH1=(65536-250)/256; //FC

TL1=(65536-250)%256;

}

/*******************************************************************************

* 函 數 名 : DigDisplay

* 函數功能 : 數碼管動態掃描函數,循環掃描8個數碼管顯示

*******************************************************************************/

void DigDisplay()

{

u8 i;

for(i=0;i<8;i++)

{

switch(i) //位選,選擇點亮的數碼管,

{

case(0):

LSA=0;LSB=0;LSC=0; break;//顯示第0位

case(1):

LSA=1;LSB=0;LSC=0; break;//顯示第1位

case(2):

LSA=0;LSB=1;LSC=0; break;//顯示第2位

case(3):

LSA=1;LSB=1;LSC=0; break;//顯示第3位

case(4):

LSA=0;LSB=0;LSC=1; break;//顯示第4位

case(5):

LSA=1;LSB=0;LSC=1; break;//顯示第5位

case(6):

LSA=0;LSB=1;LSC=1; break;//顯示第6位

case(7):

LSA=1;LSB=1;LSC=1; break;//顯示第7位

}

P0=DisplayData[i];//發送段碼

delay(100); //間隔一段時間掃描

P0=0x00;//消隱-->撤銷選中;

}

}

void datapros()

{

DisplayData[0]=smgan[ssec%10];

DisplayData[1]=smgan[ssec/10];

DisplayData[2]=0x40;

DisplayData[3]=smgan[sec%10];

DisplayData[4]=smgan[sec/10];

DisplayData[5]=0x40;

DisplayData[6]=smgan[min%10];

DisplayData[7]=smgan[min/10];

}

/*******************************************************************************

* 函 數 名 : main

* 函數功能 : 主函數

* 輸 入 : 無

* 輸 出 : 無

*******************************************************************************/

void main()

{

Timer0Init(); //定時器0初始化

while(1)

{

datapros();

DigDisplay();

}

}

/*******************************************************************************

* 函 數 名 : void Timer0() interrupt 1

* 函數功能 : 定時器0中斷函數

* 輸 入 : 無

* 輸 出 : 無

*******************************************************************************/

void Timer0() interrupt 1

{

TH0=0Xd8; //給定時器賦初值,定時10ms

TL0=0Xf0;

ssec--;

if(ssec==00) //1s

{

ssec=100;

sec--;

if(sec==00)

{

sec=60;

min--;

if(min==-1)

{

P1=1;

ssec=0;sec=0;min=0;

TR0=0;

}

}

}

}

void Timer1() interrupt 3

{

TH1=(65536-250)/256; //FC

TL1=(65536-250)%256;

if(p!=1) p15=~p15;

if(p==1) p15=0;

c++;

if(c==250)

{

//c=0;

p=~p;

}

if(c>=250&&1695);

if(c==1696) c=0;

}

編程實現倒計時的秒錶,2位LED數碼管顯示,延時採用硬體延時的方法

編程實現倒計時的秒錶,2位LED數碼管顯示,延時埋閉採用硬體延時的方法
用單片機的定時器T0定時,計時1秒,實現倒計時的秒錶的功能。
程序如下
#include<reg51.h>
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽數碼管段碼表
unsigned char second;//秒倒計時變數
unsigned char t0n;//T0中斷次數計數
sbit k1=P3^2;//定義按鍵
void delay()
{
unsigned int j;
for(j=400;j>0;j--);
}
void display()//顯示子程序
{
P2=0x01;
P0=tab[second/10];//顯示十位
delay();
P2=0x02;
P0=tab[second%10];//顯示個位
delay();
}
void main()
{
TMOD=0x01;//用T0定時,中斷方式
TH0 =0x3C;//晶振12M,定時50ms
TL0 =0xB0;
IE =0x82;
while(1)
{
display();//調顯示子程序
if(k1==0)//按鍵按下
{
if(TR0==0)
{
TR0=1;//啟動開始計時
second=60;//從60秒開始倒計時
}
else
TR0=0;
while(k1==0);/滲嘩/等待按鍵釋放
}
}
}
//T0中斷程序
void T0_int() interrupt 1
{
TH0 =0x3C;
TL0 =0xB0;
t0n++;
if(t0n>=20)/彎喊裂/1秒到
{
t0n=0;
second--;//減1秒
if(second==0)TR0=0;
}
}

⑶ plc編程怎麼實現計時器倒著計時

用你的設定值減去定時器的當前計時值,就是倒計時。比如你設定計時器計時時間為100秒,計時器現在計時到25秒。那就用100秒減去25,就是倒計時還有75秒。

閱讀全文

與可編程定時開關增加倒計時功能相關的資料

熱點內容
編譯的英語是啥 瀏覽:311
伺服器如何上傳網站東西 瀏覽:205
編譯器怎麼通過系統控制台輸出的 瀏覽:467
拆傢具用什麼app 瀏覽:45
單片機國內外 瀏覽:651
函數的運演算法則題目 瀏覽:719
有免費編譯軟體嗎 瀏覽:918
java互聯網公司 瀏覽:70
對弈下象棋的app哪裡好 瀏覽:707
有什麼食譜app推薦 瀏覽:471
python實現動態口令 瀏覽:825
我的世界電腦伺服器地址怎麼添加 瀏覽:850
傳奇地圖怎麼加密到pak 瀏覽:977
linux刪除mysql用戶 瀏覽:755
圖案設計pdf 瀏覽:586
pdf編輯器在線 瀏覽:471
華為雲雲耀伺服器如何關機 瀏覽:996
數字加密的歷史 瀏覽:614
宏傑文件夾打不開 瀏覽:820
施工日記app哪個好 瀏覽:567