tmod是定時器、計數器模式控制暫存器,它是乙個逐位定義的8為暫存器,但只能使用位元組定址。
其各位是:
由上圖我們就可以看出,這個暫存器控制了兩個定時器/計數器
暫存器的高四位控制定時器1,低四位控制定時器0
gate:門控制
gate=0: 僅由tr0,tr1置位分別啟動定時器t0、t1
gate=1:由外部中斷引腳int0、int1來啟動定時器t0、t1
當int0引腳為高電平時tr0置位,啟動定時器t0;
當int1引腳為高電平時tr1置位,啟動定時器t1
c/t:功能選擇位
c/t=0:定時功能
c/t=1:計數功能
m1、m0:工作方式選擇位
如果我們同時使用定時器1和定時器0的時候,一定要注意對他們初始化的時候,不能夠相互影響,即當我們配置好tmod的低四位之後,再去配值tmod的高四位的時候,一定不能破壞低四位的資料。
序列口控制暫存器,它用於控制序列通訊的方式選擇、接收和傳送,指示串列埠的狀態。scon既可以位元組定址,也可以位定址。
它的各位為:
sm0、sm1:序列口工作方式控制位
其中我們在初始化串列埠通訊的時候,最有用的就是sm0、sm1、sm0這三位了,具體配置如下:
一般情況下我們可以選擇方式1。
sm2:多機通訊控制位
多機通訊是工作於方式2和方式3,即sm2主要用於方式2和方式3。當序列口工作於方式2或3,以及sm2=1時,只有當接收到第9位資料(rb8)為1時,才把接收到的前8位資料送入sbuf,且置位ri發出中斷申請,否則會將接收到的資料放棄。當sm2=0時,就不管第9位資料是0還是1,都會將資料送入sbuf,並發出中斷申請。
ren:允許接受位(一般配置為1)
ren=1:允許接收
ren=0:禁止接收
tb8:傳送資料位8(一般配置為0)
在方式2和方式3中,tb8是要傳送的——即第9位資料位。在多機通訊中同樣亦要傳輸這一位,並且它代表傳輸的位址還是資料,tb8=0為資料,tb8=1時為位址。
rb8:接收資料位8(一般配置為0)
在方式2和方式3中,rb8存放接收到的第9位資料,用以識別接收到的資料特徵。
ti:傳送中斷標誌位
可定址標誌位。方式0時,傳送完第8位資料後,由硬體置位,其它方式下,在傳送或停止位之前由硬體置位,因此,ti=1表示幀傳送結束,ti可由軟體清「0」。
ri:接收中斷標誌位
可定址標誌位。接收完第8位資料後,該位由硬體置位,在其他工作方式下,該位由硬體置位,ri=1表示幀接收完成。
在配置串列埠初始化程式的時候,我們一般只用配置高四位,如果我們選擇工作方式1,那麼就是scon=0x50;(sm0=0,sm1=1,sm2=0,ren=1)
pcon全稱power control register,即功率控制暫存器,我們在配置51微控制器中的波特率的時候會用到它,其各位如下
系統復位預設為smod=0。當用51微控制器的定時器2產生波特率時,波特率不受smod的影響。
各位的定義:
smod:
smod=0:串列埠方式1,2,3時,波特率正常
smod=1:串列埠方式1,2,3時,波特率加倍
lvdf:低電壓檢測標誌位,同時也是低電壓檢測中斷請求標誌位
gf1、gf0:兩個通用工作標誌位,使用者可以自由使用
pd:掉電模式設定位
pd=0:微控制器處於正常工作狀態
pd=1:微控制器進入掉電模式可由外部中斷或硬體復位模式喚醒,進入掉電模式後,外部晶振停振,cpu、定時器、序列口全部停止工作,只有外部中斷工作。在該模式下,只有硬體復位和上電能夠喚醒微控制器。
idl:空閒模式設定位
idl=0:微控制器處於正常工作狀態
idl=1:微控制器進入空閒(idle)模式,除cpu不工作外,其餘仍繼續工作,在空閒模式下可由任乙個中斷或硬體復位喚醒。
暫存器(通用暫存器)
因為學習使用的是王爽的 組合語言 第3版 因此也只能提到8086cpo的暫存器。對於其他而言,原理都是相通的。對於8086暫存器,有14個暫存器,主要是 ax bx cx dx si di sp bp ip cs ss ds es psw。一 通用暫存器 8086的通用暫存器有ax bx cx dx...
暫存器,標誌暫存器
涉及硬體傳輸資料的,往往包含以下內容 1.資料傳輸引腳 資料放 2.控制引腳 怎麼控制 3.狀態引腳 結果如何 暫存器相當於cpu內部的儲存單元,可能是連續排列,相當於 c語言中的陣列。一 8個通用暫存器 16 bit accumulate axah alr0 count cxch clr1 dat...
CS 暫存器 和 IP 暫存器
下面將要介紹的是一組非常非常重要的暫存器,即 cs ip cs ip 兩個暫存器指示了 cpu 當前將要讀取的指令的位址,其中cs 為 段暫存器,而ip 為指令指標暫存器。什麼叫做指示了 cpu 當前將要讀取的指令呢?在 8086 cpu 中,為什麼 cpu 會自動的執行指令呢?這些指令肯定是存放在...