導航:首頁 > 操作系統 > 單片機語言編寫60秒

單片機語言編寫60秒

發布時間:2022-07-17 21:05:59

單片機60秒倒計時程序怎麼寫啊!!!這個圖的!!!急用啊!!!!

/*代碼你可以參考一下,晶振按11.059200MHz寫的。
提示一下,按你這模擬是不能做實物的,要加上限流電阻*/

#include"reg52.h"

unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共陽數碼管段選

voidmain()
{
TMOD=0x01;
TH0=0xFC;
TL0=0x66;
EA=1;
ET0=1;
TR0=1;

while(1);
}

voidTimer0Interrupt(void)interrupt1
{
staticunsignedinti=0;
staticchartime=60;

TH0=0xFC;
TL0=0x66;

P3=table[time%10];
P2=table[time/10];

i++;
if(i>=1000)
{
i=0;
time--;
if(time<0)
{
time=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();
}

}

❸ 用單片機匯編語言編寫60秒計時器!

;數碼管段選接P1口,位選接P2.0和P2.1,
;採用定時器T1定時10ms,60H為1s計數單元,計數100次為1s
ORG
0000H
;程序從0地址開始
LJMP
MAIN
;跳到MAIN處執行
ORG
001BH
;定時器T1
LJMP
TIME1
ORG
0030H
MAIN:MOV
TMOD,#01H
;設置T1工作在模式1
MOV
TH1,#068H
;賦初值,定時10ms
MOV
TL1,#0F0H
MOV
IE,#88H
;開CPU中斷,開定時器1中斷
SETB
TR1
;啟動T1定時器工作
MOV
60H,#100
;給60H單元賦初值
CLR
4FH
;清零4FH單元
DISPLAY:
;顯示子程序
MOV
DPTR,#TAB
;DPTR指向編碼表位置
MOV
A,R3
;將R3的內容復制到A
MOV
B,#10
DIV
AB
;A除B,商給A,余數給B
MOVC
A,@A+DPTR
;根據A的值取出編碼表中的編碼
MOV
P1,A
;由P1口輸出A的內容
SETB
P2.0
;置位P2.0
CLR
P2.0
;清零P2.0
MOV
A,B
MOVC
A,@A+DPTR
;根據A的值取出編碼表中的編碼
MOV
P1,A
;由P1口輸出A的內容
SETB
P2.1
;置位P2.1
CLR
P2.1
;清零P2.1
JNB
4FH,DISPLAY
;判斷1秒時間是否到,沒有到,則跳轉到DIAPLAY處
CLR
4FH
;1秒到,清4FH
LJMP
DISPLAY
;調用顯示子程序
TIME1:MOV
TH1,#068H
;賦初值
MOV
TL1,#0F0H
DJNZ
60H,TT
;60H單元自減1,判斷是否為0,不為0則跳轉到TT處
MOV
60H,#100
;60H單元為0,則重新給其賦值100
SETB
4FH
;同時置位4FH單元
INC
R3
;R3自加1
CJNE
R3,#60,TT
;判斷R3是否為60,否則跳轉TT處
MOV
R3,#0
;R3為60,則給R3賦0
TT:RETITAB:
;編碼表
DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;編碼
END
;程序結束

❹ 單片機實現60秒倒計時 求教

寫程序最好不要出現超過1ms的死延時,特別是在普通8位單片機的編程,需要時間的地方盡量用定時器來做,單片機運行效率高

❺ 怎樣用單片機c語言實現60秒倒計時

這個很簡單的嘛。。自己看看書多做做就知道了。。像這樣簡單的都來問的話,那你工作的話就基本上完全是不會了。。
跟你提個思路吧,首先是,定義一個變數,用來保存初值60,然後進行定時器初始化,開啟定時器中斷,打開全部中斷。然後就是在定時器中斷處理函數裡面進行計數了,,當計時滿一秒的時候,就將最開始的初值為60的變數,進行減一操作。然後在主函數裡面進行顯示就可以了。。

❻ 單片機開發板定時器60秒怎麼編程

#include <reg51.h>

void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0F6;
TL0 = 0x3C;
EA = 1;
ET0 = 1;
TR0 = 1;
}

void main(void)
{
InitTimer0();
}

void Timer0Interrupt(void) interrupt 1
{
unsigned char num1,num2;
TH0 = 0x0F6;
TL0 = 0x3C;
num1++;
if(num1==200) //定時1s
{
num1=0;
num2++;
if(num2=60) //定時60秒
num2=0;

}

}

❼ 請幫忙寫一個程序:單片機控制液晶顯示器60秒倒計時(C語言)

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;
uchar code temp[]="00";
uint aa,ee,date1;
void delay(uint aa)
{
uint bb,cc;
for(bb=0;bb<aa;bb++)
for(cc=0;cc<100;cc++);
}
void write_ling(uint com)
{
RS=0;
P0=com;
delay(5);
EN=1;
delay(10);
EN=0;
}
void write_shuju(uint shuju)
{
RS=1;
P0=shuju;
delay(5);
EN=1;
delay(10);
EN=0;
}
void inite() //中斷、1602初始化
{
TMOD=0x01;
TH0=(65536-46080)/256;
TH0=(65536-46080)%256;
EA=1;
ET0=1;
TR0=1;
RW=0;
EN=0;
date1=60;
write_ling(0x38);
write_ling(0x0c);
write_ling(0x06);
write_ling(0x80);
write_ling(0x01);
write_ling(0x80+7);

for(aa=0;aa<2;aa++)
{
write_shuju(temp[aa]);
delay(5);
}
}
void display(uint date)
{
uint ge,shi;
ge=date%10;
shi=date/10;
write_shuju(0x30+shi);//0x30--0x39對應的是1602顯示0--9的ASCLL碼值
write_shuju(0x30+ge);
}
void timer0() interrupt 1
{
TH0=(65536-46080)/256;//11.0592MHZ晶振50Ms
TH0=(65536-46080)%256;
ee++;
if(ee==14)//加上前面延時子函數的延時, 在我的板子上ee=14的時候大概就是一秒鍾
{
ee=0;
date1--;
if(date1==0)
{
date1=60;
}
write_ling(0x80+7);
display(date1);
}
}
void main()
{
inite();
while(1);
}

小弟不才,希望這個程序對你有幫助!

❽ 單片機實現60秒計時器 用匯編語言

這是你學校的實驗儀嗎?這原理圖不全,沒有開關電路,兩個74374的選片電路也沒有,這寫不了程序的。

❾ 單片機60秒計時器設計程序

ORG 0000H ;從地址0開始執行
JMP START ;跳轉到START處
orG 000BH ;TIMER0 的中斷向量
LJMP TIMER_0 ;跳轉到TIMER—0
START:
MOV P0, #0FFH ;
MOV P1, #0FFH ;
MOV P2, #0FFH ;
MOV P3, #0FFH ;
MOV R4 , #40 ;R4=40
MOV IE , #10000010B ;開中斷
MOV TMOD , #00000001B ;設定定時方式
MOV SP , #30H ;移開堆棧
MOV TH0, #75 ;設定定時初值
MOV TL0, #234 ;設定定時初值
NOP
NOP
MOV DPTR , #TABLE ;表首地址
MOV 50H, #0 ;50H=0
MOV 51H, #0 ;51H=0
MOV 52H, #0 ;52H=0
MOV 53H, #0 ;53H=0
NOP
NOP
SETB TR0 ;啟動T0
LOOP_1:
MOV A , 50H ;A=(R0)
MOVC A, @A+DPTR ;讀取數據
MOV P0,A ;把數據賦給P0口
CLR P2.7 ;打開位碼
CALL DELAY
SETB P2.7 ;關閉位碼
NOP
NOP
MOV A,51H ; A=(R1)
MOVC A,@A+DPTR ;讀取第二位7---SEGMENT----- LED的數據
MOV P0, A ;把讀取的數據送入P0口
NOP
NOP
CLR P2.6 ;打開第二個數碼管的位碼
CALL DELAY
SETB P2.6 ;關閉位碼
MOV A, 52H ;A=(R2)
MOVC A, @A+DPTR ; 讀取第三位7---SEGMENT----- LED的數據
MOV P0, A ;把讀取的數據送入P0口
NOP
NOP
CLR P2.5 ;打開第三位的位碼
CALL DELAY
SETB P2.5 ;關閉位碼
MOV A , 53H ;A=(R3)
MOVC A , @A+DPTR ; 讀取第四位7---SEGMENT----- LED的數據
MOV P0, A ;把讀取的數據送入P0口
CLR P2.4 ;打開第四位的位碼
CALL DELAY
SETB P2.4 ;關閉位碼
NOP
NOP
JMP LOOP_1 ;跳轉到LOOP-1
//*******************以下是TIMER0的中斷服務子程序***********************//
TIMER_0:
PUSH PSW ;
CLR TR0 ;
DJNZ R4, NEXT ;不夠一秒就繼續執行
MOV A,50H ;
CJNE A, #9, LOOP_2 ;所要顯示的數字是否達到9?若未達到,就跳轉到LOOP-2
MOV 50H,#0 ;(50H)=0
MOV A ,51H ;A=(50H)
CJNE A,#9,LOOP_4 ; 所要顯示的數字是否達到9?若未達到,就跳轉到LOOP-4
MOV 51,#0 ;(51H)=0
MOV A ,52H ;A=(52H)
CJNE A,#9,LOOP_5 ; 所要顯示的數字是否達到9?若未達到,就跳轉到LOOP-5
MOV 52H ,#0 ;(52H)=0
MOV A ,53H ;A=(53H)
CJNE A ,#9,LOOP_6 ; 所要顯示的數字是否達到9?若未達到,就跳轉到LOOP-6
MOV 53H,#0 ;(53H)=0
JMP LOOP_3 ;跳轉到LOOP--3
LOOP_2:
INC 50H ;50H的數據增加1
JMP LOOP_3 ;跳轉到LOOP--3
LOOP_4:
INC 51H ;51H的內容增加1
JMP LOOP_3 ;跳轉到LOOP--3
LOOP_5:
INC 52H ;52H的內容增加1
JMP LOOP_3 ;跳轉到LOOP--3
LOOP_6:
INC 53H ;53H的內容增加1
LOOP_3:
MOV R4, #40 ;R4=40
NEXT:
MOV TH0,#75 ;設定定時初值
MOV TL0,#234 ;設定定時初值
SETB TR0 ;啟動TIMER0
POP PSW ;
RETI ;返回
DELAY: ;100MS?????
MOV R7,#2
D1: MOV R6,#25
D2: DJNZ R6,D2
DJNZ R7,D1
RET
TABLE: DB 03FH,06H,5BH,4FH;
DB 66H,6DH,7DH,07H;
DB 7FH,6FH;
END; 這是以前做過的,硬體電路圖找不到了,仔細看一看引腳的I/O,可以參考用的

閱讀全文

與單片機語言編寫60秒相關的資料

熱點內容
紅塔銀行app怎麼樣 瀏覽:562
農行app怎麼開網銀 瀏覽:649
java迭代器遍歷 瀏覽:301
閩政通無法請求伺服器是什麼 瀏覽:48
怎麼做積木解壓神器 瀏覽:203
王者榮耀解壓玩具抽獎 瀏覽:49
12位是由啥加密的 瀏覽:868
程序員編迷你世界代碼 瀏覽:895
php取現在時間 瀏覽:246
單片機高吸收 瀏覽:427
怎麼區分五代頭是不是加密噴頭 瀏覽:244
hunt測試伺服器是什麼意思 瀏覽:510
2013程序員考試 瀏覽:641
畢業論文是pdf 瀏覽:736
伺服器跑網心雲劃算嗎 瀏覽:471
單片機定時器計數初值的計算公式 瀏覽:801
win7控制台命令 瀏覽:567
貓咪成年app怎麼升級 瀏覽:692
360有沒有加密軟體 瀏覽:315
清除cisco交換機配置命令 瀏覽:751