新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機頭文件reg51.h詳解

        51單片機頭文件reg51.h詳解

        作者: 時間:2016-12-01 來源:網絡 收藏

        下面附出頭文件的原文,并把注釋文件一并附后。

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


        /*--------------------------------------------------------------------------

        REG51.H

        Header file for generic 80C51 and 80C31 microcontroller.

        Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.

        All rights reserved.

        --------------------------------------------------------------------------*/

        #ifndef __REG51_H__

        #define __REG51_H__

        /*BYTE Register*/

        sfr P0= 0x80;//三態雙向IO口P0口 此句話的意思是:特殊功能寄存器 P0 地址為0x80 ,可位尋址,下同

        //低8位地址總線/數據總線(一般不用而只作普通I/O口,注意作I/O口用時,硬件上需接上接電阻)

        sfr P1= 0x90;//準雙向IO口P1口


        sfr P2= 0xA0;//準雙向IO口P2口

        //高8位地址總線,一般也作普通I/O用

        sfr P3= 0xB0;//雙功能

         //1.準雙向IO口P3口

          //2.P30RXD串行數據接受

          //P31TXD串行數據發送

         //P32外部中斷0信號申請

         //P33外部中斷1信號申請

        //P34定時/計數器T0外部計數脈沖輸入

        //P35定時/計數器T1外部計數脈沖輸入

        //P36WR片外RAM寫脈沖信號輸入

        //P37   RD片外ram讀脈沖信號輸入

        sfr PSW= 0xD0;//可以位尋址(C語言編程時可不考慮此寄存器)

        //程序狀態寄存器Program Status WORD(程序狀態信息)

        //psw.7(CY)進位標志

        //psw.6(AC)輔助進位標志位低四位向高四位進位或借位時AC=1

        //主要用于十進制調整

        //psw.5(F0)用戶可自定義的程序標志位

        //psw.4(RS1)

        //psw.3(RS0)

        //工作寄存器選擇位

        //任一時刻只有一組寄存器在工作

        //0 00區00H~07H

        //0 11區08H~0fH

        //1 02區10H~17H

        //1 13區18H~1FH

        //psw.2(OV)溢出標志位

        //psw.1()保留為,不可使用

        //psw.0(P)奇偶校驗位

        sfr ACC= 0xE0;//累加器A特殊功能寄存器可位尋址

        sfr B= 0xF0;//寄存器B主要用于乘除運算

        sfr SP= 0x81;//堆棧指針寄存器SP存放站定棧頂地址、

        sfr DPL= 0x82;//

        sfr DPH= 0x83;//數據指針寄存器DPTR、//對片外RAM及擴展IO進行存取用的地址指針

        sfr PCON = 0x87;//電源控制寄存器、不能位尋址

        //管理單片機的電源部分包括上電復位、掉電模式、空閑模式等

        //單片機復位時PCON被全部清0,編程時一般是用到SMOD位,其它的一般不用

        //D7SMOD該位與串口通信波特率有關

        //SMOD=0串口方式1 2 3波特率正常

        //SMOD=1串口方式1 2 3波特率加倍

        sfr TCON = 0x88;//定時器/計數器控制寄存器可以位尋址
                //D7 TF1定時器1溢出標志位

        //D6TR1定時器1運行控制位

        //D5TF0定時器0溢出標志位

        //D4TR0定時器0運行控制位

        //D3IE1外部中斷1請求標志

        //D2IT1外部中斷1觸發方式選擇位

        //D1IE0外部中斷0請求標志

        //D0IT0外部中斷0觸發方式選擇位

        sfr TMOD = 0x89;//定時器/計數器工作方式寄存器不能位尋址

        //確定工作方式和功能

        //D7GATE門控制位

        //GATE=0;定時器/計數器由TRX(x=0,1)來控制

        //GATE=1;定時器/計數器由TRX(x=0,1)

        //和外部中斷引腳(init0,1)來共同控制

        //D6C/T定時器、計數器選擇位

        //0選擇定時器模式

        //1選擇計數器模式

        //D5M1

        //D4M0

        //M1M0工作方式

        //00方式013位定時器/計數器

        //01方式116位定時器/計數器

        //10方式28位自動重裝定時器/計數器

        //11方式3僅適用T0分成兩個8位計數器,T1停止計數

        //D3GATE門控制位

        //GATE=0;定時器/計數器由TRX(x=0,1)來控制

        //GATE=1;定時器/計數器由TRX(x=0,1)

        //和外部中斷引腳(init0,1)來共同控制

        //D2C/T定時器、計數器選擇位

        //0選擇定時器模式

        //1選擇計數器模式

        //D1M1

        //D0M0

        //M1M0工作方式

        //00方式013位定時器/計數器

        //01方式116位定時器/計數器

        //10方式28位自動重裝定時器/計數器

        //11方式3僅適用T0分成兩個8位計數器,T1停止計數

        sfr TL0= 0x8A;//定時器/計數器0高8位容器 加1計數器

        sfr TL1= 0x8B;//定時器/計數器1高8位容器

        sfr TH0= 0x8C;//定時器/計數器0低8位容器

        sfr TH1= 0x8D;//定時器/計數器1低8位容器



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 隆尧县| 曲水县| 青岛市| 凤山县| 瑞安市| 白玉县| 南和县| 白山市| 霍邱县| 济阳县| 乌兰县| 德惠市| 开鲁县| 长白| 定西市| 永仁县| 孝昌县| 象山县| 牙克石市| 江阴市| 景洪市| 政和县| 城市| 柳州市| 山东省| 郎溪县| 绥江县| 朝阳市| 天峨县| 河津市| 厦门市| 贡嘎县| 繁峙县| 五大连池市| 镇沅| 镇宁| 墨江| 江川县| 叙永县| 澄江县| 平远县|