微控制器定時器的問題,為什麼led1 0xfe這條語句,加與不加的結果是一樣的

2021-04-19 07:32:53 字數 1842 閱讀 9390

1樓:硬體開發

#include

#define uint unsigned int#define uchar unsigned charsbit led1=p1^0;

uchar tt;

void main()}}

void timer0() interrupt 1沒有看到程式zhi有問題啊

dao,你定時器 工作啊內加到容1秒led就回閃爍

2樓:匿名使用者

led1是位變數,你給賦值0xfe,這顯然是不符合規矩的,並且你是一秒取反一次,所以加不加都無所謂。

3樓:匿名使用者

led1=0xfe本身就是一句廢話bai,前面的dusbit led1=p1^0;,已經將led1定義為位變zhi量,然後卻用

dao1個位元組的常數給內這個位變數賦值,這樣做容是錯誤的。雖然程式可以編譯通過,那是編譯器的遺憾。但實際執行到led1=0xfe這條語句時led1是不會亮的,當然也不會影響程式的繼續執行。

led1之所以會按程式執行重複亮滅的動作,是後面的led1=~led1;在起作用,如果你把這句也遮蔽了,看看程式會怎麼樣。正確的賦值方法是led1 = 1或led1 = 0.。

4樓:高山景行

led1為位變數,賦值0xfe顯然不好,其實為1,而p1.0預設輸出也為1,所以有沒有一樣。改為led1=0就起作用了。

不加此語句,有預設值輸出,程式當然能執行了。注意,對於位量,非0既為1。

5樓:紅橙男紫

我覺得你下面是重新跟led1賦值,,,也就是它不再表示是p1^0了,也就是不再指向p1口了

幫我解釋一下微控制器定時中斷程式,每一條語句的詳細詳細含義。比如tmod=0x11中的11是什麼意思 20

6樓:匿名使用者

tmod = 0x11; 定時器1和定時器0都工作在模式1(看tmod暫存器的每個位定義)

th0 = 0xfc; 定時器0的高八位值為0xfctl0 = 0x17; 定時器0低八位值為0x17(51定時器為加1計數,也就是從0xfc17加到0xffff產生中斷)

tr0 = 1; 啟動定時器0et0 = 1; 使能定時器0中斷ea = 1; 開啟總中斷

7樓:寶寶不下雨

tmod是一個8位的暫存器,不能位定址,所以必須整體寫入用來控制定時器模式的,低四位用來控制定時器t0,高四位控制t1。對於每個定時器的四位暫存器,低兩位用來定義定時器的工作方式,方式一方式二等;第三位是功能選擇位,定義計時器為定時或計數;第四位為門控位,用來決定intx引腳輸入電平的影響,可以理解為是否引入外部控制來控制定時器的啟停動作。

tmod=0x11,轉為二進位制就是00010001,即t0和t1的最低兩位均為01,工作方式為方式1--16位定時器或計數器。第三位為0,設定t0,t1為定時器,對內部脈衝進行計數,用來折算時間。第四位也是0,說明不參考intx引腳電平,由內部暫存器來控制定時器的啟停。

th0和tl0,是t0的初值,分別寫入計時器的高八位和低八位,定時器從這個值開始進行加1計算,直到16位暫存器計滿溢位則輸出中斷。th1和tl1對應t1。

tr是定時器啟動位,tr0和tr1分別對應t0和t1,tr=1時定時器啟動,tr=0時停止。這裡要注意,前面說的門控位,如果門控位為1,則定時器的啟動除tr=1以外,還要求intx引腳輸入1。

et0可以理解為t0的中斷開關,只有et0=1的時候,t0才可能輸出中斷。

ea則是中斷的總開關,ea=0的時候,所有的中斷都無效。

寫的很繁瑣,要是看不懂可以繼續問我。

微控制器定時器計算問題,一個微控制器 定時器 計算 問題

12m的晶振每秒可產生1m個機器週期,50ms就需要50000個機器週期,定時器在方 式1工作,是版16位計數器,最大值權為65536,所以需設定初值15536,即3cb0h,所以th0 0x3c,tl0 0xb0。11.0592m的晶振每秒可產生0.9216m個機器週期,50ms就需要46080個...

微控制器頻率的計算求解,微控制器中用定時器 和計數器來求頻率 計算公式是怎麼寫的???

1000hz 就是不知道這些頻率是怎麼計算出來的 微控制器的晶振是12mhz,微控制器初學者,請求用你通俗易懂的語言解釋,謝謝,非常感謝,鬱悶好幾天了。不是算的,是試驗出來的。想要輸出不同的頻率,就需要改變週期。改變延時時間,即可 yanshi 7 yanshi 10 要想得到準確的時間,就應該用組...

STC89C52微控制器中斷和定時器問題 TMOD

這些暫存器實 bai際試幾次就能深刻明du白他們的用途了,說的話zhi擔心你可能還是不dao能完全理解。內ea是總中斷開關,當容ea 0時,微控制器不執行任何中斷,因此如果想要微控制器進入中斷,ea必須賦值為1。et0 et1是定時 計數器t0 t1的中斷開關,其值為0時對應的中斷失效 有爭議 tr...