<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MCS-51單片機特殊功能寄存器詳解

          MCS-51單片機特殊功能寄存器詳解

          作者: 時間:2016-11-29 來源:網(wǎng)絡 收藏
          1、 定時器/計數(shù)器的方式寄存器TMOD

          TMOD是一個8位的特殊功能寄存器,對應的地址是89H,不可位尋址。A 主要完成三個功能:
          *確定選擇定時器還是計數(shù)器;
          *選擇何種工作方式;
          *是否借用外中斷控制定時器和計數(shù)器的啟停;
          B TMOD的低4位是控制T0的字段(T0--P3.4 定時器/計數(shù)器0外部事件脈沖輸入端)

          TMOD的高4位是控制T1的字段(T1--P3.5定時器/計數(shù)器1外部事件脈沖輸入端)
          C 控制字的格式和含義

          a、 GATE(TMOD.7)
          分為兩種情況:GATE=0,定時器的啟停和INT1無關,只取決于TR0;
          GATE=1,定時器的啟停不僅要由TR0來控制,而且要INT1引腳的控制,只有二者
          都為高電平時定時器 才開始工作;

          b、 C/T(TMOD.6)

          分為兩種情況:C/T=0,用作定時器;
          C/T=1,用作計數(shù)器;

          d、 M1(TMOD.5),M0(TMOD.4)
          用M1,M0來控制定時器/計數(shù)器的4種工作方式:
          *方式0:M1=0,M0=0.13位定時/計數(shù)方式
          *方式1:M1=0,M0=1.16位定時/計數(shù)器
          *方式2,M1=1,M0=0.8位初值自動重新裝入的8位定時/計數(shù)器
          *方式3,M1=1,M0=1.僅適用于T0,分為兩個8位計數(shù)器,T1停止計數(shù)

          2、定時器/計數(shù)器控制寄存器TCON
          TCON是一個8位的特殊功能寄存器,對應的地址為88H,可為尋址。
          A 控制字的格式和含義
          a、TF1(TCON.7),TF0(TCON.5)----T1、T0計數(shù)溢出標志位
          當計數(shù)器計數(shù)溢出時,該位置“1”。使用查詢方式時,此位作為狀態(tài)位供cpu
          查詢,但應注意在查詢該位有效后應以軟件方法及時將該位清“0”。使用中斷
          方式時,此位作為中斷申請標志位,進入中斷服務程序后由硬件自動清0.
          b、TR1(TCON.6),TR0(TCON.4)----計數(shù)運行控制位
          TR1(TR0)=1,啟動定時/計數(shù)器工作的必要條件,還與GATE位的狀態(tài)有關。
          TR1(TR0)=0,停止定時/計數(shù)器工作。
          該位可由軟件置1或清0.
          C、 IE1(TCON.3),IE0(TCON.1)----外部中斷INT1(P3.3)、INT0(P3.2)的中斷請求標志位
          當有外部的中斷請求時,INT1(INT0)=1(有硬件完成),在cpu響應中斷后,由硬件將
          IE1(IE0)清0.
          d、 IT1(TCON.2),IT0(TCON.0)----INT1(INT0)觸發(fā)方式控制位
          可由軟件進行置位和復位。IT0(IT1)=0,INT0(INT1)為低電平觸發(fā)方式;
          IT0(IT1)=1,INT0(INT1)為負跳變觸發(fā)方式;

          3、中斷允許寄存器IE
          在51中斷系統(tǒng)中,中斷的允許或禁止是由片內(nèi)可進行位尋址的8位中斷允許寄存器IE來
          控制的

          EA(IE.7):總開關,如果它等于0,則所有中斷都不允許;
          ES(IE.4):串行口中斷允許;
          ET1:定時器1中斷允許;
          EX1:外中斷1中斷允許;
          ET0:定時器0中斷允許;
          EX0;外中斷0中斷允許;
          4、5個中斷源的優(yōu)先級
          單片機的中斷服務入口地址如下,它們的自然優(yōu)先級由高到低排列。
          外中斷0:0003H;
          定時器0:000BH;
          外中斷1:0013H;
          定時器1:001BH;
          串口:0023H;
          采用c51的編程語言,該語言中斷服務函數(shù)的完整語法如下:
          返回值 函數(shù)名稱(【參數(shù)】)【模式】【重入】interrupt n 【using n】
          interrupt對應的是中斷源的編號,而【using】決定了使用寄存器的組號。這里,需要對
          寄存器的組號進行簡單的解釋。51系統(tǒng)中有4個寄存器組,具體的位置取決于psw(程序狀態(tài)字)
          的兩位RS0、RS1的設置。當運行一個中斷任務時,采用不同的寄存器組。在c51
          中,寄存器組的選擇就取決于using后的變量的指定,變量位0~3的整數(shù)。
          在這里給出不同中斷服務程序的c51程序寫法:
          *外中斷INT0--------void intsvr0(void) interrupt 0 using 1
          *定時/計數(shù)器T0-----void timer0(void) interrupt 1 using 1
          *外中斷INT1--------void intsvr0(void) interrupt 2 using 1
          *定時/計數(shù)器T1-----void timer0(void) interrupt 3 using 1
          *串口中斷----------void serial0 interrupt 4 using 1
          P3口的代替功能
          寄存器地址B0H,位尋址B7H~B0H。
          引腳P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7
          代替功能RXDTXD/INT0/INT1T0T1/WR/RD

          TCON:定時器控制寄存器
          寄存器地址88H,位尋址8FH~88H。
          位地址8F8E8D8C8B8A8988
          位符號TF1TR1TF0TR0IE1IT1IE0IT0
          TF0(TF1)——計數(shù)溢出標志位,當計數(shù)器計數(shù)溢出時,該位置1。
          TR0(TR1)——定時器運行控制位
          當TR0(TR1)=0 停止定時器/計數(shù)器工作
          當TR0(TR1)=1 啟動定時器/計數(shù)器工作
          IE0(IE1)——外中斷請求標志位
          當CPU采樣到P3.2(P3.3)出現(xiàn)有效中斷請求時,此位由硬件置1。在中斷響應完成后轉向中斷服務時,再由硬件自動清0。
          IT0(IT1)——外中斷請求信號方式控制位
          當IT0(IT1)=1 脈沖方式(后沿負跳有效)
          當IT0(IT1)=0 電平方式(低電平有效)此位由軟件置1或清0。
          TF0(TF1)——計數(shù)溢出標志位
          當計數(shù)器產(chǎn)生計數(shù)溢出時,此位由硬件置1。當轉向中斷服務時,再有硬件自動清0。計數(shù)溢出的標志位的使用有兩種情況:采用中斷方式時,作中斷請求標志位來使用;采用查詢方式時,作查詢狀態(tài)位來使用。
          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();