導航:首頁 > 操作系統 > 24時倒計時單片機不用計時器

24時倒計時單片機不用計時器

發布時間:2022-11-20 07:02:47

⑴ 關於51單片機定時與倒計時。

你是要程序嗎?使用的什麼型號單片機,晶振多少,數碼管顯示數據依次是什麼,要倒計時或者計時多少時間?追問我之後我幫你寫程序。

⑵ 求51單片機24秒倒計時器程序設計

#include "reg51.h"

sbit COM2 = P2^0;
sbit COM1 = P2^1;
unsigned char DT[10]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09};
void delay(void);
void delay1(void);
void main ()
{
unsigned char i,k;
P0=0x00;
P2=0x00;
delay();
P0=0xFF;
P2=0xFF;
delay();
i=0;
k=0;
while(1)
{
for(k=0;k<55;k++)
{

P0=DT[i/10];
COM1=1;
COM2=0;
delay();
P0=DT[i%10];
COM1=0;
COM2=1;
delay();
}
i++;
if(i>24)
i=0;

}
}
void delay()
{
unsigned int i,j;
for(i=10;i>0;i--)
for(j=100;j>0;j--);
}

⑶ 單片機倒計時程序,不用中斷和定時器,怎麼寫

這樣出來的時間是不準的。可以採用變數自加的方式,也就是記錄程序運行的次數,再來測試具體多少次為1S。做時鍾類的最好還是用定時器或時鍾晶元。

⑷ 單片機 at89c51 6位數碼管24小時倒計時程序

留個郵箱發給你。

⑸ 尋求單片機編寫程序:24秒倒計時器,計時時間到發出提示音

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table1[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
uchar code table2[]= {0x01,0x02};
uchar dingshinum;
sbit baojing=P1^0;
void delayms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init()
{
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;

}
main()
{
uchar i=24,a,b,flag;
init();
while(1)
{
baojing=0;
if(dingshinum==20)
{
flag=1;
dingshinum=0;
if(i==0)
{

i=24;
baojing=1;
delayms(10);

}
i--;
a=i/10;
b=i%10;
while(flag)
{
P3=table2[0];
P2=table1[a];
delayms(5);

P3=table2[1];
P2=table1[b];
delayms(5);

if(dingshinum==20)
flag=0;
}

}
}
}
void dingshiqi1() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
dingshinum++;
}

⑹ 幫忙用單片機寫個24秒倒計時並且可以復位也可以自己設置初值讓他倒數的

問你開始了想你想好像是拿不到貨

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

51單片機實現數碼管99秒倒計時,其實很簡單,就是使用定時器中斷來實現。目的就是學習怎樣用單片機實現倒計時,從而實現一些延時控制類的東西,99秒只是一個例子,你完全可以做出任意倒計時如10秒倒計時程序。定時器定時時間計算公式:初值X=M(最大計時)-計數值。
初值,換算成十六進制,高位給TH0,低位給TL0,如果用定時器0的話。
M(最大計時)如果是16位的,就是2的16次方,最大定時,65535 微秒,實現1秒定時,可以通過定時10毫秒,然後100次改變一次秒值即可。10*100毫秒=1S
計數值:你要定時多長時間,如果定時1毫秒,就是1000微秒,(單位為微秒),如果定時10毫秒,就是10000(微秒),當然,最大定時被定時器本身位數限制了,最大2的16次方(16位定時計數器),只能定時65.535毫秒。定時1S當然不可能1S定時器中斷。
下面為實現99秒倒計時C語言源程序
/*了解定時器,這樣的話,就可以做一些基本的實驗了,如定時炸彈~~,10秒後打開關閉繼電器*/
/*數碼管,12M晶振*/
#include <reg52.h>
#define uchar unsigned char
sbit p11=P1^1; //連的是繼電器。。
code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar shiwei;
uchar gewei;
void delay(unsigned int cnt)
{
while(--cnt);
}
void main()
{
TMOD|=0x01; /*定時器0 16位定時器 X=65535-10000(10毫秒)=55535=D8F0(十六進制)定時10ms
*/
TH0=0xd8;
TL0=0xf0;
IE=0x82; //這里是中斷優先順序控制EA=1(開總中斷),ET0=1(定時器0允許中斷),這里用定時器0來定時
TR0=1; //開定時器0
while(1)
{
P0=shiwei; //99的十位
P2=0; //99的個位,
delay(300); //動態掃描數碼管延時
P0=gewei;
P2=1;
delay(300);
}
}
void tim(void) interrupt 1 using 1 //定時器0中斷
{
static uchar second=99,count; //99隻是一個數,可以任意改,因為這里只學習怎樣實現倒計時
TH0=0xd8; //定時10毫秒
TL0=0xf0;
count++;
if(count==100) //10毫秒定時,10*100=1000(毫秒)=1秒
{
count=0;
second--;
if(second==0)
{
p11=0; //這里讓繼電器動作,當然動作之後,要復位才能等下次倒定時再動作。
second=99; //回到99再循環來,當然,可以做其他的控制,
}
shiwei=tab[second/10]; //數碼管10位
gewei=tab[second%10]; //數碼管個位
}

⑻ C51單片機 製作一個數碼管24秒倒計時的源程序 求大神

很簡單啊,用單片機定時器先定時20ms,再計數50次,即1s,再計數24次,即24秒。
計時結束後輸出
控制信息
值LED埠就行了!
手打不易,如有幫助請採納,謝謝!!

⑼ 下面是51單片機30秒倒計時程序,怎麼把它改成24小時倒計時程序,別的不變,十分感謝

#include "reg51.h"
sbit start=P3^2; //外部中斷0引腳 開始
sbit rst=P3^3; //外部中斷1引腳 復位
sbit breakk=P3^4;
sbit led=P3^5;
sbit beep=P3^7;

sbit P30=P3^0;
sbit P31=P3^1;
unsigned char code anma[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff
};

char time=24;//【原來的30s改為24小時】
char flag_t=0; // 1秒輔助計時
char now=0; // 0停止 1 計時 2報警 3復位
unsigned int temp=0;//【添加此行】// 【定義一個16位臨時變數】

unsigned char g=0,s=3,i=0;

void delay(unsigned int n)
{
while(--n);
}

void t0_srv() interrupt 1 using 1
{
TH0=0X3C;
TL0=0XB0;
flag_t++;
if(flag_t>=20){ //20*50ms=1s
flag_t=0;
temp++; //【添加此行】
if(temp>=3600)//1小時=3600s //【添加此行】
{
temp=0;//【添加此行】
time--;
if(time<=0){
beep=0;
led=0;
TR0=0;
now=2;
time=0;
}
}
}
}
void button_start() interrupt 0 using 1 //外部中斷0
{
delay(1500);
if(start==0) {
now=1;
TR0=1;
}
else return;
while(start==0);
delay(1500);

}
void button_rst() interrupt 2 using 1
{
delay(1500);
if(rst==0) {
TR0=0;
time=24;//【原為time=30;】
i=0;
led=1;
beep=1;
now=0;
}
else return;
while(rst==0);
delay(1500);

}

void disp()
{

g=time%10;
s=time/10;
g=anma[g];
s=anma[s];

P1=g;
P31=0;
delay(250);
P31=1;

P1=s;
P30=0;
delay(250);
P30=1;
//

}
void key()
{
if(breakk==0)delay(1500);
else return;
if(breakk==0) {
if(now==1){
i++;
if(i%2)TR0=0;
if(!(i%2))TR0=1;
}
}
else return;
while(breakk==0);
delay(1500);
}
main()
{
TMOD=0X01;//定時器0工作在方式1,
EA=1;
IT0=1;
ET0=1;
TH0=0X3C;//在12M 晶振下,定時時間為50ms
TL0=0XB0;

EX0=1;
EX1=1;

//TR0=1;
while(1){
disp();
key();
}

}

⑽ 實現24小時記時的數字鍾,有倒計時,暫停,正常記時,清零復位,較時功能,如何設計會比較好

  1. 首先實現數字鍾的功能,就需要選擇一款時鍾晶元,比如pcf8563,I2C通訊,非常方便使用。有了時鍾晶元,初始化後就可以知道實時時間了。

  2. 至於 倒計時,暫停,正常記時,清零復位,這個實際上就是使用單片機的定時器中斷去實現。通過初始化定時器的中斷時間,然後計數,就可以實現上面的功能了。

  3. 當然,還需要設計幾個按鈕,用於去控制這些功能。

閱讀全文

與24時倒計時單片機不用計時器相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163