51單片機(jī)延時(shí)程序 求一個(gè)51單片機(jī)延時(shí)1秒的程序,用匯編?
求一個(gè)51單片機(jī)延時(shí)1秒的程序,用匯編?Del1s:mov R7,?10d1:mov R6,D2:mov R5,?250 djnz R5,$djnz R6,D2 djnz R7,D1 RET描述:1。
求一個(gè)51單片機(jī)延時(shí)1秒的程序,用匯編?
Del1s:mov R7,?10d1:mov R6,D2:mov R5,?250 djnz R5,$djnz R6,D2 djnz R7,D1 RET描述:1。如果不使用R5、R6、R7,則可以用其他裝置代替,如30h、31h、32H等。本程序?yàn)?2m時(shí)鐘,如果時(shí)鐘不同,應(yīng)修改數(shù)值。如果FOSC=12Mhz,則機(jī)器周期為12/12m=1US。如果是匯編語(yǔ)言:L1:movr7,#100 L2:movr6,#100 L3:movr5,#50 djnzr5,$兩個(gè)機(jī)器周期是2T djnzr6,L3 djnzr7,L2 ret 2T*50*100*100=1000000us(總共1秒)。這是一個(gè)有誤差的粗略算法,但不會(huì)太大。
哪位單片機(jī)高手詳細(xì)的告訴我一下:單片機(jī)中的延時(shí)程序的延時(shí)時(shí)間怎樣計(jì)算的?比如,延遲1S,2S等等?
Delay1000ms:(ht46r65微控制器)(注意不要打開(kāi)定時(shí)器中斷權(quán)限位)mov a,10000111b(設(shè)置頻率和計(jì)數(shù)模式)(遞增計(jì)數(shù)或遞減計(jì)數(shù))mov tmr0c,a(tmr0c計(jì)數(shù)器的控制寄存器)mov a,low(65536-31250)(設(shè)置頻率為1s up 31250),所以它是delay1s mov tmr0l,a mov a,高(65536-31250)mov tmr0h,設(shè)置tmr0c.4 SNZ intc0.6 JMP$-1 CLR tmr0c.4 CLR intc0.6 ret