課程設(shè)計(jì) 一個(gè)60秒定時(shí)器 給出電路圖 詳細(xì)點(diǎn) 好的加分
主體思路:用兩片74160接成60進(jìn)制計(jì)數(shù)器,將59作為進(jìn)位輸出端.
將CLK端接1Hz的時(shí)鐘脈沖信號.
你看看行不行
單片機(jī)開發(fā)板定時(shí)器60秒怎么編程
#include
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) //定時(shí)1s
{
num1=0;
num2++;
if(num2=60) //定時(shí)60秒
num2=0;
}
}
單片機(jī)60秒計(jì)時(shí)器設(shè)計(jì)程序
ORG 0000H ;從地址0開始執(zhí)行
JMP START ;跳轉(zhuǎn)到START處
orG 000BH ;TIMER0 的中斷向量
LJMP TIMER_0 ;跳轉(zhuǎn)到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 ;設(shè)定定時(shí)方式
MOV SP , #30H ;移開堆棧
MOV TH0, #75 ;設(shè)定定時(shí)初值
MOV TL0, #234 ;設(shè)定定時(shí)初值
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 ;啟動(dòng)T0
LOOP_1:
MOV A , 50H ;A=(R0)
MOVC A, @A+DPTR ;讀取數(shù)據(jù)
MOV P0,A ;把數(shù)據(jù)賦給P0口
CLR P2.7 ;打開位碼
CALL DELAY
SETB P2.7 ;關(guān)閉位碼
NOP
NOP
MOV A,51H ; A=(R1)
MOVC A,@A+DPTR ;讀取第二位7—SEGMENT—– LED的數(shù)據(jù)
MOV P0, A ;把讀取的數(shù)據(jù)送入P0口
NOP
NOP
CLR P2.6 ;打開第二個(gè)數(shù)碼管的位碼
CALL DELAY
SETB P2.6 ;關(guān)閉位碼
MOV A, 52H ;A=(R2)
MOVC A, @A+DPTR ; 讀取第三位7—SEGMENT—– LED的數(shù)據(jù)
MOV P0, A ;把讀取的數(shù)據(jù)送入P0口
NOP
NOP
CLR P2.5 ;打開第三位的位碼
CALL DELAY
SETB P2.5 ;關(guān)閉位碼
MOV A , 53H ;A=(R3)
MOVC A , @A+DPTR ; 讀取第四位7—SEGMENT—– LED的數(shù)據(jù)
MOV P0, A ;把讀取的數(shù)據(jù)送入P0口
CLR P2.4 ;打開第四位的位碼
CALL DELAY
SETB P2.4 ;關(guān)閉位碼
NOP
NOP
JMP LOOP_1 ;跳轉(zhuǎn)到LOOP-1
//*******************以下是TIMER0的中斷服務(wù)子程序***********************//
TIMER_0:
PUSH PSW ;
CLR TR0 ;
DJNZ R4, NEXT ;不夠一秒就繼續(xù)執(zhí)行
MOV A,50H ;
CJNE A, #9, LOOP_2 ;所要顯示的數(shù)字是否達(dá)到9?若未達(dá)到,就跳轉(zhuǎn)到LOOP-2
MOV 50H,#0 ;(50H)=0
MOV A ,51H ;A=(50H)
CJNE A,#9,LOOP_4 ; 所要顯示的數(shù)字是否達(dá)到9?若未達(dá)到,就跳轉(zhuǎn)到LOOP-4
MOV 51,#0 ;(51H)=0
MOV A ,52H ;A=(52H)
CJNE A,#9,LOOP_5 ; 所要顯示的數(shù)字是否達(dá)到9?若未達(dá)到,就跳轉(zhuǎn)到LOOP-5
MOV 52H ,#0 ;(52H)=0
MOV A ,53H ;A=(53H)
CJNE A ,#9,LOOP_6 ; 所要顯示的數(shù)字是否達(dá)到9?若未達(dá)到,就跳轉(zhuǎn)到LOOP-6
MOV 53H,#0 ;(53H)=0
JMP LOOP_3 ;跳轉(zhuǎn)到LOOP–3
LOOP_2:
INC 50H ;50H的數(shù)據(jù)增加1
JMP LOOP_3 ;跳轉(zhuǎn)到LOOP–3
LOOP_4:
INC 51H ;51H的內(nèi)容增加1
JMP LOOP_3 ;跳轉(zhuǎn)到LOOP–3
LOOP_5:
INC 52H ;52H的內(nèi)容增加1
JMP LOOP_3 ;跳轉(zhuǎn)到LOOP–3
LOOP_6:
INC 53H ;53H的內(nèi)容增加1
LOOP_3:
MOV R4, #40 ;R4=40
NEXT:
MOV TH0,#75 ;設(shè)定定時(shí)初值
MOV TL0,#234 ;設(shè)定定時(shí)初值
SETB TR0 ;啟動(dòng)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; 這是以前做過的,硬件電路圖找不到了,仔細(xì)看一看引腳的I/O,可以參考用的
用單片機(jī)的定時(shí)器及中斷設(shè)計(jì)一個(gè)60秒的定時(shí)器
;數(shù)碼管段選接P1口,位選接P2.0和P2.1,;采用定時(shí)器T1定時(shí)10ms,60H為1s計(jì)數(shù)單元,計(jì)數(shù)100次為1s ORG 0000H ;程序從0地址開始 LJMP MAIN ;跳到MAIN處執(zhí)行 ORG 001BH ;定時(shí)器T1 LJMP TIME1 ORG 0030H MAIN:MOV TMOD,#01H ;設(shè)置T1工作在模式1 MOV TH1,#068H ;賦初值,定時(shí)10ms MOV TL1,#0F0H
winform c# 60秒計(jì)時(shí)器的程序
直接使用Timer控件 設(shè)置timer1.Interval=60000 //執(zhí)行頻率為60秒 private void timer_Tick(object sender, System.EventArgs e){ timer1.Enabled=false; //停止記時(shí) //這里是執(zhí)行語句 }
單片機(jī)定時(shí)器倒計(jì)時(shí)60秒程序中CJNE R2,#0FFH,LOOP1 是什么意思
就是到0 時(shí)再減就是#0FFH了 作用就是R2到0 ,返回到LOOP1,重新從60開始.
單片機(jī)六十秒倒計(jì)時(shí)程序
原發(fā)布者:寂寞的豬豬
60秒倒計(jì)時(shí)程序#include#defineucharunsignedchar#defineuintunsignedintuchartemp,bai,shi,ge,num;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelay(uint);voidmain(){temp=60;num=0;P2=0x00;TMOD=0x01;TH0=(65536-45872)/256;TL0=(65536-45872)%256;EA=1;ET0=1;TR0=1;while(1){shi=temp/10;ge=temp%10;P0=table[shi];P2=0x02;delay(5);P0=table[ge];P2=0x01;delay(5);}}voidT0_time()interrupt1{TH0=(65536-45872)/256;TL0=(65536-45872)%256;num++;if(num==40){num=0;temp–;if(temp==0){temp=60;}}}voiddelay(uintz){uintx,y;for(x=z;x>0;x–)for(y=110;y>0;y–);}
設(shè)計(jì)一個(gè)計(jì)數(shù)器類,引用計(jì)數(shù)器類實(shí)現(xiàn)60秒倒計(jì)時(shí)
你咋不用ne555設(shè)計(jì)一個(gè)呢
FLASH 60秒鐘的倒計(jì)時(shí)代碼
60秒倒計(jì)時(shí),[可選最后10(9–0)秒帶聲音(你需要在flash同文件夾下放一個(gè)1.mp3聲音文件,聲音半秒即可);]展開全部
該flash1楨2個(gè)圖層
圖層1放腳本如下:
txt = 59;
var song0 = new Sound();
datas = new Date();
time = int(datas.getSeconds());
function djs() {
_root.onEnterFrame = function() {
datas = new Date();
newtime = int(datas.getSeconds());
if (newtime != time) {
txt–;
// if (txt=0) {
// song0.loadSound(“1.mp3”, true);
// txt2 = Math.floor(song0.duration/1000)+”sec”;
// }
if (txt txt = 59;
}
time = newtime;
}
};
}
圖層2放一個(gè)動(dòng)態(tài)文本,文本框50X50大小即可,變量名txt;
再放一個(gè)開始按鈕,按鈕下放腳本如下:
on(press){
djs()
}
把上面腳本中用//注釋掉的4行放開即可最后10秒帶聲音
就這些,你試試吧!
用單片機(jī)實(shí)現(xiàn)60秒倒計(jì)時(shí)
ORG 0
SJMP STAR
ORG 1BH
SJMP TIS
ORG 30H
STAR:MOV R2,#60
MOV R4,#20
MOV IE,#88
MOV TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1
MOV A,R2
MOV B,#10
DIV AB
ACALL SEG7
MOV P1,A
MOV A,B
ACALL SEG7
MOV P2,A
TIS:MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ R4,TIS0
MOV R4,#20
DJNZ R2,TIS1
CLR TR1
SJMP TIS1
TIS0:RETI
TIS1:MOV A,R2
MOV B,#10
DIV AB
ACALL SEG7
MOV P1,A
MOV A,B
ACALL SEG7
MOV P2,A
RETI
SEG7:INC A
MOVC A,@A+PC
RET
DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H
DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,08EH
END