導航:首頁 > 操作系統 > 51單片機60秒倒計時系統簡介

51單片機60秒倒計時系統簡介

發布時間:2023-02-24 13:56:30

❶ 51單片機如何使外部中斷顯示60秒倒計時求程序,謝謝。

ORG00H;
SJMPSTAR;
ORG1BH;
SJMPTIS;轉T1中斷服務程序
ORG30H;
STAR:MOVR2,#60H;倒計時初值
MOVR4,#20H;定時中斷溢出計數器
MOVIE,#88H;開中斷
MOVTMOD,#10H;
MOVTH1,#3CH;定時初值
MOVTL1,#0B0H;定時初值
SETBTR1;啟動
ACALLDIS;調用顯示子程序
SJMP$;
TIS:MOVTH1,#3CH;
MOVTL1,#0B0H;
DJNZR4,T1S1;定時1S到否
MOVR4,#20;到1S,重置R4=20
DJNZR2,T1S0;倒計時遞減
CLRTR1;倒計時結束,關定時器
T1S0:ACALLDIS;調顯示
T1S1:RETI;中斷返回
SEG7:INCA;A的值加一
MOVCA,@A+PC;取顯示斷段
RET;;
DB0C0H,0F9H,0A4H,0B0H;;0至3的共陽型顯示碼
DB99H,92H,82H,0F8H;;4至7的共陽型顯示碼
DB80H,90H,88H,83H;8至B的共陽型顯示碼
DB0C6H,0A1H,86H,8EH;;C至F的共陽型顯示碼
DIS:MOVA,R2;;單位元組十六進制數轉為十進制數
MOVB,#10;
DIVAB;
ACALLSEG7;
MOVP1,A;;顯示十位
MOVA,B;;
ACALLSEG7;;
MOVP2,A;;顯示個位
RET;;子程序返回
END;

❷ 51單片機匯編語言倒計時60秒循環程序

可以在SJMP $這里改成判斷R2是不是為0,如是就重新載入60…如果不是就跳回重新判斷R2

❸ 51單片機 匯編語言 兩個七段共陽數碼管 60S倒計時

C語言的我這里有。
以下是24倒計時的程序。你修改TABLE: 中的數據內容就可以達到你的要求的了。裡面用到了兩片7447晶元。。。
ORG 0000h
AJMP START
ORG 0030H
START: CLR P3.1 ;D1亮
JB P3.7,START ;按下K1倒計時啟動
SETB P3.1 ;D1滅
CLR P3.0 ;D2亮
MOV TMOD,#01H ;設定時器TIMER0工作在模式1
MOV DPTR,#TABLE
NEXT: MOV A,#00H
MOVC A,@A+DPTR
MOV P1,A
MOV R3,#20 ;延時1秒
LCALL DELAY
INC DPTR ;數據指針加1
CJNE A,#0FFH,NEXT
MOV P1,#0FFH
SETB P3.0
LJMP START
; ****延時0.5秒子程序****
DELAY: SETB TR0 ;起動TIMER0開始計時
AGAIN: MOV TL0,#LOW(65536-50000) ;設定時器TL0的值
MOV TH0,#HIGH(65536-50000) ;設定時器TH0的值
LOOP2: JBC TF0,LOOP3 ;判斷TF=1?,是則跳轉至LOOP3,並清除TF0
JMP LOOP2 ;TF0不為1則跳轉至LOOP2
LOOP3: DJNZ R3,AGAIN ;R3是否為0?不是則跳轉至AGAIN
CLR TR0 ;是則停止TIMER0計數
RET
;*****顯示數碼表*****
TABLE:
DB 24H,23H,22H,21H,20H,19H,18H,17H,16H,15H,14H,13H
DB 12H,11H,10H,09H,08H,07H,06H,05H,04H,03H,02H,01H
DB 0FFH ;結束碼
END

❹ 怎麼用51單片機倒計時60秒(不用顯示),60s後控制電路斷開啊

在。。很簡單啊,,一個80c51,一個繼電器,引腳出發定時,然後執行60s,然後斷開

❺ 利用單片機設計實現一個60秒倒計時顯示裝置,並且計時到後發出報警聲音。

#include<reg52.h>
sbitbz=P3^1;
unsignedchara[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};
unsignedcharn,time=60;
main()
{
P1=a[0];
P2=a[6];
TMOD=0X01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
while(1);
}
timer0()interrupt1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
if(time!=0)
{
n++;
if(n==100)
{
n=0;
time--;
P1=a[time%10];
P2=a[time/10];
}
}
elsebz=~bz;
}

❻ 關於51單片機60秒倒計時的c語言程序,delay和dispiay部分分別什麼意思啊,具體點

delay(int t)這個是延時子程序,如果採用20M晶振的話,調用一次延時t毫秒。
display()是數碼管動態掃描顯示子程序,位控位為P3.0、P3.1,段碼控制為P1。掃描間隔時間為5毫秒左右。

❼ 採用AT89C51單片機設計一隻電子秒錶,倒計時(60~1每間隔1秒倒數)

硬體電路 有2位數碼管可以顯示秒錶的時間 0~10秒

有3個按鍵 K1為開始計時 K2為停止計時 K3為清零

軟體設計:

K1按下則啟動定時器定時 每到1秒 顯示器緩沖單元內容加1

K2按下則停止定時器定時

K3按下則將顯示器緩沖單元內容清零。

❽ 小白求救,51單片機利用兩個數碼管實現60秒倒計時

個位數能夠顯示正常,那麼就說明十位數的處理代碼出了問題;

給出代碼看看吧

❾ 求C51單片機匯編語言控制兩位數碼管倒計時程序,從60秒到30秒再到90秒並循環倒計時顯示。

從60秒到30秒再到90秒並循環倒計時顯示。
----
有點不好理解。

從60秒到30秒,看來,是倒計時。
到了30之後,怎麼辦?是立即改為90嗎?
到了90之後,再怎麼辦?是立即改為60嗎?

❿ 求C51單片機匯編語言控制兩位數碼管60秒倒計時的程序,最好能說明下思路

#include <at89x52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define seg P0
#define sw P2
int tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
int dis[]={0,0};
uint X;
uchar Count=0;
uchar sec=60;
void display()
{
int a;
int m=0x01;
dis[0]=sec/10;
dis[1]=sec%10;
for(a=0;a<2;a++)
{
seg=0xff;
seg=tab[dis[a]];
sw=m;
m=_crol_(m,1);
}
}
void TINT0() interrupt 1
{
TL0=-50000%256;
TH0=-50000/256;
if(++Count==20)
{
if(sec>0)sec--;
Count=0;
}
}
void Main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TL0=-50000%256;
TH0=-50000/256;
while(1)
{
if(sec==0)sec=60;
display();
}

}

閱讀全文

與51單片機60秒倒計時系統簡介相關的資料

熱點內容
蘋果開機白屏帶文件夾問號 瀏覽:731
體驗服為什麼伺服器會關閉 瀏覽:39
酒店命令 瀏覽:750
中走絲線切割編程視頻 瀏覽:78
衣服壓縮袋手泵原理 瀏覽:714
通達信編程書籍 瀏覽:981
車用壓縮天然氣瓶閥 瀏覽:971
鞋的程序員 瀏覽:259
車的壓縮比是什麼意思 瀏覽:202
網站源碼怎麼傳到文件夾 瀏覽:914
海南壓縮機在哪裡 瀏覽:491
電腦文件夾清晰的文件結構 瀏覽:839
如何把蘋果手機的app轉到安卓 瀏覽:305
java同步並發 瀏覽:249
fw壓縮圖片 瀏覽:258
淘寶申請源碼靠譜嗎 瀏覽:874
androidupdater 瀏覽:635
c2d游戲源碼大全可復製版 瀏覽:771
電腦怎樣重置網關命令 瀏覽:411
winftplinux 瀏覽:335