1樓:匿名使用者
問題1:工作方式0:0x00;工作方式1:0x01;工作方式2:0x02;工作方式3:0x03;
問題2:當你選擇好工作方式後,接下來就是設定初始值,方式0:16位加法計數器用了13位,也就是說,可以計算2^13;要想計數更大,使用迴圈即可。
同理方式1:16位加法計數器用了16位,方式2是8位的。以上是對內部脈衝進行計數。
想計數p3_4輸入了多少個脈衝,需要用外部中斷。
問題3:
#include"reg52.h"
led[8]=;
main()}}
} }以上是每隔一秒數碼管加一;
所謂的查詢就是指不停的查詢置位標誌位tf0或tf1是否為1,當為1是說明你的定時時間到了。
寫了這麼多,你要是還不理解就多看幾遍書吧!
這分要是不給我,微控制器都不幹了!
2樓:匿名使用者
tmod是8位暫存器,高4 位和低4位分別控制定時器1和0用或操作的話就是單獨操作低4位(甚至是最低1位),高4位不變,管它原來是什麼值呢
由於51微控制器的暫存器只有8位,且定義比較簡單,因此我們完全可以一次設定兩個定時器,如直接寫 tmod= 0x11
但對於複雜一點或位數較多的暫存器用」與「「或」操作,有很大好處,因為乙個暫存器有很多位,我們有時根本弄不清也沒必要弄清每一位是幹什麼的,我們只對我們知道的 用得上的某幾位或某一位進行操作,這時用或操作可以將某些位置1,用與操作可以將某些位清0,而不改變其它位的狀態,特別對於不能位定址的暫存器,不能直接操作 暫存器的某一位,只有這樣作才最簡單
如p0|=0xf0, 對 p0高4位置1,低4位不變p0&=0xf0, 對 p0低4位清0,高4位不變
3樓:生活如歌
1)t1方式0:tmod=0x00.t1方式1:tmod=0x10因為t1t0都在tmod裡設定,高四位t1低四位t0
2)p3.4是t0計數器輸入引腳,此時只要設定tmod中的d2位即可(c/t位)即tmod=0x04,啟動計數後就可以計數了,此時一般計數初值為0
3)查詢方式時要不停地檢測tf0或者tf1,當為1時表示定時時間到或者計數到。
比如:jnb tf0,$
51微控制器中設定定時器模式時,tmod|=0x01和tmod=0x01有什麼區別
4樓:匿名使用者
有區別,tmod中有8bit
tmod |= 0x01 這樣第2~8bit原來是什麼還是什麼,不影響,第1bit賦值為1;
tmod=0x01 這樣是給2~8bit賦值為0,第1bit賦值為1。
5樓:shine落翼之殤
區別是tmod中有8bit
tmod |= 0x01 這樣第2~8bit原來是什麼還是什麼,不影響,第1bit賦值為1;
tmod=0x01 這樣是給2~8bit賦值為0,第1bit賦值為1。
51微控制器是對所有相容intel 8031指令系統的微控制器的統稱。該系列微控制器的始祖是intel的8031微控制器,後來隨著flash rom技術的發展,8031微控制器取得了長足的進展,成為應用最廣泛的8位微控制器之一,其代表型號是atmel公司的at89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的相容機型推出,今後很長的一段時間內將占有大量市場。
51微控制器是基礎入門的乙個微控制器,還是應用最廣泛的一種。需要注意的是52系列的微控制器一般不具備自程式設計能力。
6樓:匿名使用者
|=與=是兩個不同的意義,你學過程式設計的話應該知道,|=的意思是 賦值位或,你問題中的意思就是用0x01去或tmod各個位,而=就是直接複製,不管原來tmod各個位是什麼狀態,所以一般情況下建議使用第一種寫法。
關於微控制器的問題,tmod=0x51是什麼意思? 10
7樓:理冰珍
不是微控制器題目裡的tmod,而是微控制器的內部專用暫存器tmod的設定,它是定時器的工作模式設定暫存器,用它來設定定時器t0,t1的工作模式。
以最常用的定時器模式(還有一種計數器模式)為例高四位 用來設定定時器t1的,低四位用來設定定時器t0的。
定時器有四種工作方式,分別為0,1,2,3t0方式幾,低四位就是幾,t1方式幾,高四位就是幾。
51微控制器定時器1方式2怎麼設定為什麼tmod=0x20(是怎麼換算得) 定時器0方式2tmod又是多少?
8樓:闌珊處的野狗
1、首先第來一步是定時器
2是新增資源源,也是51微控制器定時器裡面功能最強大的乙個定時器。注意的是掌握好定時器2還是非常有必要的。
2、然後就是定時器2是乙個16位定時器/計數器,注意的是通過設定特殊功能暫存器t2con中的c/t2位可將其設定為定時器或是計數器。
3、接著就是通過設定t2con中的工作模式選擇位可將定時器2設定為三種工作模式,接著就是分別為捕獲、自動重新裝載和波特率發生器即可。
4、然後擊亅f2:定時器2溢位標誌位。這時候要注意用於請求中斷(必須由軟體清0)。
5、最後就是exf2:定時器外部標誌位。當外部訊號使能時,接著就是發生外部負跳變時置位請求中斷(必須由軟體清0)。
9樓:擱淺的夜
tmod=0x20這樣的語言抄並不是組合語言,是c語言0x20是16進製制轉換成8位2進製是 0010 0000tmod 中 m0 和m1位控制方式的選擇,所以 m0=0,m1=1是選擇方式2的。
如果是定時器0 方式2
tmod=0x02 設定定時器0的 即0000 0010
10樓:匿名使用者
特殊功能暫存器tmod是用於控制和
確定定時器/計數器t0、t1的工作模專
式和工作方式。它的格式屬如下:
d7 d6 d5 d4 d3 d2 d1 d0
gate c/t m1 m0 gate c/t m1 m0 高4 位為定時器t1方式字段 低4 位
為t0方式字段
m0 m1 的 各種高低電平組合可以表示4 種工作方式。當m1=1,m0=0時表示工作方式2
而作為定時器使用時,d6和d2為0
這樣,定時器1方式2就是0010 0000 即0x20定時器0方式2就是0000 0010 即0x02
11樓:匿名使用者
1.0x20是16進製制bai
等於 2進製的
du 0010000
2.相當於把timer1的tmod register 賦值為0010000
3.我忘zhi記了timer0 tmodregister相關的位的定義dao了。
你可以加入
內該群一起討論:容122691987
12樓:匿名使用者
tmod是8位暫存器,高4位用於設定定時器1的模式,低4位用於設定定時器0的模式。
tmod=0x20表示這是乙個2位16進製制專數,(『0x??』在c語言中表示16進製制數),而1位16進製制數可以表示為4位二進位制數,即0x20的20表示8位二進位制數,其中高位屬「2」表示的高4位二進位制數為0010,即設定的定時器1為工作方式2。如果要設定定時器0為方式2則tmod=0x02。
51微控制器 tmod=0x10 tmod=0x02 這兩個是不是乙個意思?
13樓:匿名使用者
學習使用微控制器如果不仔細閱讀資料手冊幾乎是無法進行的,對於51微控制器的應用,其實就是設定這些暫存器的事情,這些弄懂了也就入門了。
tmod=0x10 :
設定定時器1為方式1模式(16位定時器/計數器)。
tmod=0x02:
設定定時器2為方式2模式(自動過載8位定時器/計數器)
14樓:a卡卡
第二個是設定定時器0
15樓:吃飯長高
這個第二個應該是定時器0吧
關於微控制器TMOD問題,問個微控制器問題 TMOD 0x21 設定定時器1為工作方式2 求教這句話什麼意思
生活如歌 1 t1方式0 tmod 0x00.t1方式1 tmod 0x10因為t1t0都在tmod裡設定,高四位t1低四位t0 2 p3.4是t0計數器輸入引腳,此時只要設定tmod中的d2位即可 c t位 即tmod 0x04,啟動計數後就可以計數了,此時一般計數初值為0 3 查詢方式時要不停地...
關於51微控制器的中斷問題,51微控制器外部中斷0的問題
優先中斷,就是在執行乙個中斷的時候,又來了乙個中斷 如果新來的中斷,其優先順序高於正在執行的中斷,那麼就會暫停現在的中斷而去執行新來的中斷,等這個新中斷執行完之後再會回去繼續執行剛才那個沒執行完也就是那個被打斷的中斷 如果新來的中斷,其優先順序不如正在執行的中斷的優先順序高,那麼程式會繼續執行這個中...
51微控制器中斷問題
想完成這個功能 必須在主迴圈加入條件判斷語句 比如if anniu 1 否則跳轉,如果想實現單鍵啟動 停止 根據這個程式 把acc加1,用程式狀態字再判acc的奇偶標誌,吧anniu值1或值0來控制主迴圈的執行。至於用中斷或者普通埠鍵盤都無所謂。中斷分 電平躍變 只要有乙個脈衝就執行中斷程式 中斷函...