1. 單片機1秒鍾定時匯編語言怎麼編
可以有兩種方法,設晶振為12M,則
第一種方法:用延時的方法實現
DELAY: MOV R3,#10;延時子程序,延時1秒
D1: MOV R4,#200
D2: MOV R5,#250
D3: DJNZ R5,D3
DJNZ R4,D2
DJNZ R3,D1
RET
END
第二種方法:用定時器的方法實現
————
MOV R1,#20
————
DLY: MOV TMOD,#00000001B;延時子程序,設定定時器的工作方式
D1: SETB TL0,#176(65536-50000); 15536/256 (余數)
SETB TH0,#60;設置初出溢出值50ms,定時2S (商)
SETB TR0 ;啟動定時器
JNB TF0,$;是否溢出,沒有溢出等待,溢出走一條指令
CLR TF0;清零溢出
DJNZ R1,D1;走20次,剛好1秒
RET
END
2. 51單片機中用定時器定時1毫秒,怎麼編寫
假設晶振為12MHz,不用中斷時程序語句如下:
TMOD=0x01;//定時器0工作方式1
TH0=(65536-1000)/256;//裝入初值
TL0=(65536-1000)%256;
TF0=0;//清溢出標志;
TR0=1;//啟動定時器0
while(TF0==0);//等待定時時間到
TR0=0;
TF0=0;
3. 單片機開發板定時器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;
}
}