新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 牛人業(yè)話 > 51單片機(jī)教程第4講_寄存器

        51單片機(jī)教程第4講_寄存器

        作者: 時(shí)間:2016-12-13 來(lái)源:網(wǎng)絡(luò) 收藏

          任何單片機(jī),內(nèi)部都有,用來(lái)存儲(chǔ)數(shù)據(jù)和控制器件。單片機(jī)的是8位的,用二進(jìn)制表示就是00000000到11111111之間的數(shù)據(jù)。我們?cè)趯W(xué)習(xí)單片機(jī),本質(zhì)上就是在學(xué)習(xí)它的。單片機(jī)的寄存器被放到內(nèi)部特定的地址空間,并被命名,這個(gè)命名文件就叫做單片機(jī)的頭文件,例如reg.h文件內(nèi)容如下所示:

        本文引用地址: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單片機(jī)內(nèi)部一共有63個(gè)寄存器。以上寄存器在寫(xiě)程序的時(shí)候,直接用名字即可。例如:P1=0XFF; //把P1口的8個(gè)引腳全部置高。具體的寄存器的作用,我們?cè)谝院髮?xiě)程序的時(shí)候繼續(xù)學(xué)習(xí)。

          在STC51單片機(jī)當(dāng)中,除了這些基本的寄存器,還增加了一些功能寄存器,比如PWM、ADC相關(guān)的,基本的51一共有2個(gè)定時(shí)器,STC51有些單片機(jī)內(nèi)部還增加了幾個(gè)定時(shí)器,每個(gè)定時(shí)器都有對(duì)應(yīng)的控制寄存器和數(shù)據(jù)寄存器。

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

          unsigned char xxx;

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



        關(guān)鍵詞: 51 寄存器

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 勐海县| 伊宁县| 花莲县| 太仓市| 河东区| 曲阜市| 社旗县| 高邑县| 贵定县| 垫江县| 康保县| 新竹市| 四子王旗| 辽源市| 黑龙江省| 稷山县| 射洪县| 云安县| 巴林右旗| 南部县| 郑州市| 如东县| 永靖县| 湘阴县| 台安县| 榕江县| 桃源县| 历史| 天等县| 兰溪市| 雷州市| 曲沃县| 隆回县| 柯坪县| 新巴尔虎右旗| 义乌市| 扶绥县| 泸西县| 治多县| 平泉县| 格尔木市|