新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > 51單片機教程第4講_寄存器

        51單片機教程第4講_寄存器

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

          任何單片機,內部都有,用來存儲數據和控制器件。單片機的是8位的,用二進制表示就是00000000到11111111之間的數據。我們在學習單片機,本質上就是在學習它的。單片機的寄存器被放到內部特定的地址空間,并被命名,這個命名文件就叫做單片機的頭文件,例如reg.h文件內容如下所示:

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

          #ifndef __REG51_H__

          #define __REG51_H__

          /* BYTE Register */

          sfr P0 = 0x80;

          sfr P1 = 0x90;

          sfr P2 = 0xA0;

          sfr P3 = 0xB0;

          sfr PSW = 0xD0;

          sfr ACC = 0xE0;

          sfr B = 0xF0;

          sfr SP = 0x81;

          sfr DPL = 0x82;

          sfr DPH = 0x83;

          sfr PCON = 0x87;

          sfr TCON = 0x88;

          sfr TMOD = 0x89;

          sfr TL0 = 0x8A;

          sfr TL1 = 0x8B;

          sfr TH0 = 0x8C;

          sfr TH1 = 0x8D;

          sfr IE = 0xA8;

          sfr IP = 0xB8;

          sfr SCON = 0x98;

          sfr SBUF = 0x99;

          /* BIT Register */

          /* PSW */

          sbit CY = 0xD7;

          sbit AC = 0xD6;

          sbit F0 = 0xD5;

          sbit RS1 = 0xD4;

          sbit RS0 = 0xD3;

          sbit OV = 0xD2;

          sbit P = 0xD0;

          /* TCON */

          sbit TF1 = 0x8F;

          sbit TR1 = 0x8E;

          sbit TF0 = 0x8D;

          sbit TR0 = 0x8C;

          sbit IE1 = 0x8B;

          sbit IT1 = 0x8A;

          sbit IE0 = 0x89;

          sbit IT0 = 0x88;

          /* IE */

          sbit EA = 0xAF;

          sbit ES = 0xAC;

          sbit ET1 = 0xAB;

          sbit EX1 = 0xAA;

          sbit ET0 = 0xA9;

          sbit EX0 = 0xA8;

          /* IP */

          sbit PS = 0xBC;

          sbit PT1 = 0xBB;

          sbit PX1 = 0xBA;

          sbit PT0 = 0xB9;

          sbit PX0 = 0xB8;

          /* P3 */

          sbit RD = 0xB7;

          sbit WR = 0xB6;

          sbit T1 = 0xB5;

          sbit T0 = 0xB4;

          sbit INT1 = 0xB3;

          sbit INT0 = 0xB2;

          sbit TXD = 0xB1;

          sbit RXD = 0xB0;

          /* SCON */

          sbit SM0 = 0x9F;

          sbit SM1 = 0x9E;

          sbit SM2 = 0x9D;

          sbit REN = 0x9C;

          sbit TB8 = 0x9B;

          sbit RB8 = 0x9A;

          sbit TI = 0x99;

          sbit RI = 0x98;

          #endif

          由上可知,普通的51單片機內部一共有63個寄存器。以上寄存器在寫程序的時候,直接用名字即可。例如:P1=0XFF; //把P1口的8個引腳全部置高。具體的寄存器的作用,我們在以后寫程序的時候繼續學習。

          在STC51單片機當中,除了這些基本的寄存器,還增加了一些功能寄存器,比如PWM、ADC相關的,基本的51一共有2個定時器,STC51有些單片機內部還增加了幾個定時器,每個定時器都有對應的控制寄存器和數據寄存器。

          如果想獲取寄存器的值,只需要先定義一個變量,然后再把寄存器的值賦予給變量即可。例如:

          unsigned char xxx;

          xxx = P1;//獲取P1引腳的電平



        關鍵詞: 51 寄存器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 房山区| 建昌县| 新津县| 东海县| 阜康市| 临沂市| 朝阳区| 淮南市| 和静县| 苍南县| 高雄县| 新干县| 铜川市| 寻乌县| 南澳县| 沙河市| 赤峰市| 石台县| 光泽县| 和平县| 浦江县| 广德县| 宁武县| 镇安县| 通江县| 绥棱县| 康马县| 台山市| 灯塔市| 墨竹工卡县| 乌兰县| 祥云县| 景德镇市| 临泽县| 桐城市| 永兴县| 宜川县| 涟水县| 太康县| 烟台市| 周口市|