微控制器定時器定初始值的C程式設計與彙編程式設計,如下,我感覺這個初值設定不對應啊

2021-09-10 12:13:53 字數 1518 閱讀 4141

1樓:胖大海君

為你正確解答:

經過計算:

th0=(65536-1100)/256=251=fbhtl0=(65536-1100)%256=b4h;

即 定時時間常數 x=(65536-1100)=fbb4h和組合語言中的初始值有較大的誤差

th0 = 0xf5

tl0 = 0x33

組合語言應改為:

th0 = 0fbh

tl0 = 0b4h

如果滿意 請選擇:滿意回答

2樓:匿名使用者

那十六進位制數是從哪得來的?肯定是不對的。

65536-1100=64436=fbb4h,寫成c程式是:

th0 = 0xfb;

tl0 = 0xb4;

這種寫法並不是彙編的,也是c語言的寫法。

彙編是這樣的

mov th0 ,#0fbh

mov tl0 ,#0b4h

3樓:匿名使用者

都是c語言的寫法,只是左邊的更直觀,右邊的要先計算,再填寫

彙編的寫法是 mov th0,#0f5h

mov tl0 ,#33h

4樓:匿名使用者

左邊是十進的,右邊是十六進的,你換算一下就行了!

在微控制器定時器算那個th0初始值時 例如用十六進位制算到0xb800 為什麼在c語言寫的時候只是寫th0 = 0xb8;?

5樓:匿名使用者

是微控制器

bai定時器算那du個定時的初始

值,並不是zhith0的初始值,而是定時器工dao作在專方式1下時,計數的

屬初始值是16位的。而定時器的暫存器有兩個,高8位,th0,低8位,tl0。所以,要把初始值分成高8位給th0,低8位給tl0。

例如用十六進位制算到0xb836,則高8位給th0,th0=0xb8;

低8位給tl0,tl0=0x36;

6樓:我就是很煩

因為定時器是兩個八位的,th0代表的是t0定時器的高八位資料,tl0代表的是t0定時器的第八位資料,兩個要分開,不是一起寫的。

微控制器程式設計和c語言程式設計tmod初值怎麼不一樣,怎麼確定是多少,我用方式1定時,用t1 5

7樓:匿名使用者

tmod=0x01,表示t1是方式0,,t0是方式1;tmod=0x10表示t1是方式1,t0是方式0。即高半位元組是t1的模式,低半位元組是t0的模式,這與程式語言無關,只和晶片硬體有關。

按你的要求,tmod應該是0x10.

8樓:

查下你用的微控制器的手冊搜尋tmod然後挨個的看完,不同的微控制器tmod設定是不一樣的

9樓:匿名使用者

tmod的值不會因為語言的改變而改變,肯定是一樣的。有可能是你看錯了。你說的定時器方式tmod初值應該是0x10。

求關於微控制器定時器和計數器的c語言程式!大神出現吧

書上資料多,很簡單的。如果是為了應付老師的話超超就行了。如果是自己想設計的話好好研究把 把tmod 設定為一個定時一個為計數,定時的定0.5秒然後計算出th1和tli 的初值 計數的就8位的定為中斷在中斷裡顯示就行了 只要設定好tmod方波就能產生,用方式一,我認為計數用中斷比較好,不浪費cpu,在...

51微控制器中TCON定時器控制暫存器的位描述

tcon的作用是控制定時器的啟 停,標誌定時器溢位和中斷情況。tcon的格式如下圖所示。其 回中答,tf1,tr1,tf0和tr0位用於定時器 計數器 ie1,it1,ie0和it0位用於中斷系統。各位定義如下 tf1 定時器1溢位標誌位。當定時器1計滿溢位時,由硬體使tf1置 1 並且申請中斷。進...

51微控制器是如何產生PWM波的。。用定時器中斷如何實現

1 設定一個 io 輸出口dao作為 pwm 輸出2 設定一 回個 可調定時答器 如 定時 250 io輸出 0 定時 5 io輸出 1,高電平 窄 或 定時 5 io輸出 0 定時 250 io輸出 1,高電平 寬 即定時器每中斷一次要重灌定時資料 有的微控制器帶有pwm功能,用定時器實現的方法是...