新聞中心

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

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

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

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

        TMOD的高4位是控制T1的字段(T1--P3.5定時器/計數器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,用作計數器;

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

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

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

        EA(IE.7):總開關,如果它等于0,則所有中斷都不允許;
        ES(IE.4):串行口中斷允許;
        ET1:定時器1中斷允許;
        EX1:外中斷1中斷允許;
        ET0:定時器0中斷允許;
        EX0;外中斷0中斷允許;
        4、5個中斷源的優先級
        單片機的中斷服務入口地址如下,它們的自然優先級由高到低排列。
        外中斷0:0003H;
        定時器0:000BH;
        外中斷1:0013H;
        定時器1:001BH;
        串口:0023H;
        采用c51的編程語言,該語言中斷服務函數的完整語法如下:
        返回值 函數名稱(【參數】)【模式】【重入】interrupt n 【using n】
        interrupt對應的是中斷源的編號,而【using】決定了使用寄存器的組號。這里,需要對
        寄存器的組號進行簡單的解釋。51系統中有4個寄存器組,具體的位置取決于psw(程序狀態字)
        的兩位RS0、RS1的設置。當運行一個中斷任務時,采用不同的寄存器組。在c51
        中,寄存器組的選擇就取決于using后的變量的指定,變量位0~3的整數。
        在這里給出不同中斷服務程序的c51程序寫法:
        *外中斷INT0--------void intsvr0(void) interrupt 0 using 1
        *定時/計數器T0-----void timer0(void) interrupt 1 using 1
        *外中斷INT1--------void intsvr0(void) interrupt 2 using 1
        *定時/計數器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)——計數溢出標志位,當計數器計數溢出時,該位置1。
        TR0(TR1)——定時器運行控制位
        當TR0(TR1)=0 停止定時器/計數器工作
        當TR0(TR1)=1 啟動定時器/計數器工作
        IE0(IE1)——外中斷請求標志位
        當CPU采樣到P3.2(P3.3)出現有效中斷請求時,此位由硬件置1。在中斷響應完成后轉向中斷服務時,再由硬件自動清0。
        IT0(IT1)——外中斷請求信號方式控制位
        當IT0(IT1)=1 脈沖方式(后沿負跳有效)
        當IT0(IT1)=0 電平方式(低電平有效)此位由軟件置1或清0。
        TF0(TF1)——計數溢出標志位
        當計數器產生計數溢出時,此位由硬件置1。當轉向中斷服務時,再有硬件自動清0。計數溢出的標志位的使用有兩種情況:采用中斷方式時,作中斷請求標志位來使用;采用查詢方式時,作查詢狀態位來使用。
        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 淮北市| 鲁山县| 锡林郭勒盟| 五大连池市| 永嘉县| 融水| 永宁县| 上饶县| 辰溪县| 普定县| 北川| 武乡县| 莫力| 太仓市| 沁水县| 文水县| 丰台区| 台中市| 永登县| 夏邑县| 武义县| 论坛| 昌吉市| 仁寿县| 菏泽市| 怀柔区| 思南县| 遂昌县| 达孜县| 高邮市| 谢通门县| 广丰县| 武宣县| 太谷县| 霞浦县| 泰安市| 双峰县| 惠来县| 上林县| 得荣县| 思茅市|