導航:首頁 > 操作系統 > 51單片機th0tl0怎麼求

51單片機th0tl0怎麼求

發布時間:2023-06-13 13:36:28

㈠ 51單片機定時器初值公式

1.簡單說起,256表示一個8位分界點,對它求模得高位位元組存在TH0中,求余得低位位元組放在TL0中,拿十進制打比:15/10得十位1,15%10得個位數5
2.12Mhz時,單周期指令時間為12/fsoc=1us
方式1為16位定時/計數器
故定時1ms為:TH0=(2^16-1000)/2^8,
TL0=(2^16-1000)%256
當為11.0592MHz時,單周期指令時間為12/fsoc=12/11.0592us
由於採用方式0,為13為定時器,TH0高8位和TL0的低5位
故定時1ms為:
TH0=(2^13-1000/(12/11.0592))/2^5,
TL0=(2^16-1000/(12/11.0592))%2^5
這么晚了 寫寫不容易,多給些分以此鼓勵俺
O(∩_∩)O~

㈡ 1.單片機定時器中知道溢出時間,知道取值范圍,知道時間間隔,怎麼算TH0和TL0的值,求詳細解答

首先應該知道一個脈沖周期是多少 ?24MHZ時,輸給定時器的脈沖頻率是2MHZ,一個脈沖周期是0.5US因此,此時定時 器可以最長定時65536*0.5=32.768MS 0.2秒一次不能完成,需多次累積,如一次定時20ms,累積10次,定時20MS需要計數的脈沖個數是40000個初值可以直接這么寫
初值=65536-40000
且初值=TH0*256+TL0所以
TH0=(65536-40000)/256
TL0=(65536-40000)%256
因初值=TH0*256+TL0
當然也可以直接寫出數值,有專門的小程序可以完成這個計算

㈢ 51單片機定時器初值用變數設置定時不準確,為什麼,求高手。TH0=(65536-X)/256,TL0=(65536-X)%256

看一下C代碼編譯後的匯編代碼就知道了,用變數方式很耗時,而直接用數字,編譯器已經將算式的值算好了,代碼里就是一個MOV指令而已,只需1us!!!
TH0=(65536-2000)/256; TL0=(65536-2000)%256;

匯編後,只要2us就完事了。 而用變數方式,單片機很忙,計算幾十乃至上百微妙才完事!
15: TH0=(65536-a)/256;
C:0x0190 AE09 MOV R6,a(0x09)
C:0x0192 AF0A MOV R7,0x0A
C:0x0194 AB07 MOV R3,0x07
C:0x0196 AA06 MOV R2,0x06
C:0x0198 E4 CLR A
C:0x0199 C3 CLR C
C:0x019A 9B SUBB A,R3
C:0x019B FF MOV R7,A
C:0x019C E4 CLR A
C:0x019D 9A SUBB A,R2
C:0x019E FE MOV R6,A
C:0x019F 7401 MOV A,#0x01
C:0x01A1 9400 SUBB A,#0x00
C:0x01A3 FD MOV R5,A
C:0x01A4 E4 CLR A
C:0x01A5 9400 SUBB A,#0x00
C:0x01A7 FC MOV R4,A
C:0x01A8 E4 CLR A
C:0x01A9 FB MOV R3,A
C:0x01AA 7A01 MOV R2,#0x01
C:0x01AC F9 MOV R1,A
C:0x01AD F8 MOV R0,A
C:0x01AE 1201EA LCALL C?SLDIV(C:01EA)
C:0x01B1 8F8C MOV TH0(0x8C),R7
16: TL0=(65536-a)%256;
C:0x01B3 AE09 MOV R6,a(0x09)
C:0x01B5 AF0A MOV R7,0x0A
C:0x01B7 AB07 MOV R3,0x07
C:0x01B9 AA06 MOV R2,0x06
C:0x01BB E4 CLR A
C:0x01BC C3 CLR C
C:0x01BD 9B SUBB A,R3
C:0x01BE FF MOV R7,A
C:0x01BF E4 CLR A
C:0x01C0 9A SUBB A,R2
C:0x01C1 FE MOV R6,A
C:0x01C2 7401 MOV A,#0x01
C:0x01C4 9400 SUBB A,#0x00
C:0x01C6 FD MOV R5,A
C:0x01C7 E4 CLR A
C:0x01C8 9400 SUBB A,#0x00
C:0x01CA FC MOV R4,A
C:0x01CB E4 CLR A
C:0x01CC FB MOV R3,A
C:0x01CD 7A01 MOV R2,#0x01
C:0x01CF F9 MOV R1,A
C:0x01D0 F8 MOV R0,A
C:0x01D1 1201EA LCALL C?SLDIV(C:01EA)
C:0x01D4 AF03 MOV R7,0x03
C:0x01D6 8F8A MOV TL0(0x8A),R7
17: TH1=(65536-1000)/256;
C:0x01D8 758DFC MOV TH1(0x8D),#0xFC
18: TL1=(65536-1000)%256;
C:0x01DB 758B18 MOV TL1(0x8B),#0x18

閱讀全文

與51單片機th0tl0怎麼求相關的資料

熱點內容
vb組態軟體源碼 瀏覽:698
加密蚊帳防蚊門簾 瀏覽:828
vs2010多線程編程 瀏覽:214
新股上市指標源碼 瀏覽:698
c語言51單片機教程 瀏覽:554
app中的hd是什麼意思 瀏覽:279
手機什麼解壓器最好 瀏覽:49
什麼是適合自己的app 瀏覽:451
雲伺服器怎麼補漏洞 瀏覽:176
如何看自己的安卓是什麼等級 瀏覽:633
被丁磊挖走的程序員 瀏覽:19
gsk980ta編程 瀏覽:507
單片機離線 瀏覽:84
解壓助眠敲擊外國長指甲 瀏覽:421
3次元編程 瀏覽:803
夫妻傳送英文命令 瀏覽:316
程序員題代做 瀏覽:950
戴爾伺服器怎麼擴大內存 瀏覽:641
解壓包密碼消失 瀏覽:135
昆侖通態觸摸屏用戶窗加密 瀏覽:564