新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 自制51單片機常用頭文件(中斷)

        自制51單片機常用頭文件(中斷)

        作者: 時間:2016-11-10 來源:網絡 收藏
        #ifndef __CONFIG_H__

        #define __CONFIG_H__

        本文引用地址:http://www.104case.com/article/201611/317356.htm


        /********************************/
        /* "以下為系統配置" */
        /********************************/
        #include
        #include
        #include

        /*****************************************************
        函 數 名:void Clearmen(void)
        功 能:系統初始化
        說 明:對系統引腳變量及中斷進行初始化
        入口參數:無
        返 回 值:無
        *****************************************************/
        void Clearmen(void)
        {
        //***************** 中斷初始化 *****************

        // 中斷允許寄存器IE
        /*----------------------------------------------------
        | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
        - - - - - - - - - - - - - - - - - - - - - - - -
        | EA | | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
        -----------------------------------------------------*/
        IE = 0x00; // "清除中斷"
        EX0 = 0; // 0"外部中斷0允許"
        ET0 = 1; // 1"定時器0中斷允許"
        EX1 = 0; // 2"外部中斷1允許"
        ET1 = 0; // 3"定時器1中斷允許"
        ES = 0; // 4"串行中斷允許"
        ET2 = 0; // 5"定時器2中斷允許"-52才有
        EA = 1; // "中斷總允許"

        // 中斷優先級管理寄存器IP
        /*----------------------------------------------------
        | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
        - - - - - - - - - - - - - - - - - - - - - - - -
        | | | PT2 | PS | PT1 | PX1 | PT0 | PX0 |
        -----------------------------------------------------*/
        IP = 0x00; // "清除中斷優先級"
        PS = 0; // "串行中斷優先"
        PX0 = 0; // "外部中斷0"
        PT0 = 1; // "定時器中斷0"
        PX1 = 0; // "外部中斷1"
        PT1 = 0; // "定時器中斷1"

        // 定時器控制寄存器TCON
        /*----------------------------------------------------
        | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
        - - - - - - - - - - - - - - - - - - - - - - - -
        | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
        - - - - - - - - - - - - - - - - - - - - - - - -
        | 用于定時器 | 用于外中斷 |
        -----------------------------------------------------*/
        TCON = 0x00;
        IT0 = 0; // "外部中斷0觸發方式 0=電平 1=邊沿"
        IE0 = 0; // "外部中斷0申請標志"
        IT1 = 0; // "外部中斷1觸發方式 0=電平 1=邊沿"
        IE1 = 0; // "外部中斷1申請標志"
        TR0 = 0; // "T0運行控制"
        TF0 = 0; // "T0溢出標志"
        TR1 = 0; // "T1運行控制"
        TF1 = 0; // "T1溢出標志"

        // 定時器模式控制寄存器TMOD
        /*----------------------------------------------------
        | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
        - - - - - - - - - - - - - - - - - - - - - - - -
        |GATE| C/T| M0 | M1 |GATE | C/T | M0 | M1 |
        - - - - - - - - - - - - - - - - - - - - - - - -
        | 高4位用于T1 | 低4位用于T0" |
        -----------------------------------------------------*/
        TMOD=0x01; // 定時器T0、T1為16位定時模式1

        TH0=0x3C;TL0=0xB0; // 定時器0賦初值
        }

        #endif



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 甘德县| 桃园县| 千阳县| 上高县| 丹东市| 富顺县| 策勒县| 寻乌县| 龙门县| 兴隆县| 兴安盟| 北安市| 瑞安市| 江源县| 奉化市| 武义县| 凌源市| 永嘉县| 镇宁| 且末县| 绥阳县| 祁阳县| 灯塔市| 昭通市| 内黄县| 安新县| 河源市| 昌江| 荥经县| 航空| 永安市| 文昌市| 琼中| 乌拉特前旗| 周口市| 遵义市| 临夏县| 武威市| 建昌县| 濮阳县| 隆安县|