国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

我們?cè)谟?a href="http://www.womende.cn/zhuanti/LWf9SG" style="color:#4595e6;" target="_blank">c語(yǔ)言編程是往往第一行就是reg51.h或者其他的自定義頭文件,我們?cè)趺礃觼?lái)理解呢?

1)“文件包含”處理。

程序的第一行是一個(gè)“文件包含”處理。

所謂“文件包含”是指一個(gè)文件將另外一個(gè)文件的內(nèi)容全部包含進(jìn)來(lái)。程序中包含REG51.h

文件的目的是為了要使用P1 (還有其他更多的符號(hào))這個(gè)符號(hào),即通知C 編譯器,程序中所寫(xiě)的P1 是指80C51單片機(jī)的P1 端口而不是其它變量。這是如何做到的呢?

打開(kāi)reg51.h 可以看到這樣的一些內(nèi)容:

(此文件一般在C:\KEIL\C51\INC下 ,INC文件夾根目錄里有不少頭文件,并且里面還有很多以公司分類(lèi)的文件夾,里面也都是相關(guān)產(chǎn)品的頭文件。如果我們要使用自己寫(xiě)的頭文件,使用的時(shí)候只需把對(duì)應(yīng)頭文件拷貝到INC文件夾里就可以了。)

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

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;

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


熟悉80C51 內(nèi)部結(jié)構(gòu)的讀者不難看出,這里都是一些符號(hào)的定義,即規(guī)定符號(hào)名與地

址的對(duì)應(yīng)關(guān)系。注意其中有

sfr P1 = 0x90;

這樣的一行,即定義P1 與地址0x90 對(duì)應(yīng),P1 口的地址就是0x90

(0x90 是C 語(yǔ)言中十六進(jìn)制數(shù)的寫(xiě)法,相當(dāng)于匯編語(yǔ)言中寫(xiě)90H)。

從這里還可以看到一個(gè)頻繁出現(xiàn)的詞:sfr

sfr 并非標(biāo)準(zhǔn)C 語(yǔ)言的關(guān)鍵字,而是Keil 為能直接訪問(wèn)80C51 中的SFR 而提供了一個(gè)新

的關(guān)鍵詞,其用法是:

sfrt 變量名=地址值。


2)符號(hào)P1_0 來(lái)表示P1.0 引腳。

在C 語(yǔ)言里,如果直接寫(xiě)P1.0,C 編譯器并不能識(shí)別,而且P1.0 也不是一個(gè)合法的C

語(yǔ)言變量名,所以得給它另起一個(gè)名字,這里起的名為P1_0,可是P1_0 是不是就是P1.0

呢?你這么認(rèn)為,C 編譯器可不這么認(rèn)為,所以必須給它們建立聯(lián)系,這里使用了Keil C

的關(guān)鍵字sbit 來(lái)定義,sbit 的用法有三種:

第一種方法:sbit 位變量名=地址值

第二種方法:sbit 位變量名=SFR 名稱(chēng)^變量位地址值

第三種方法:sbit 位變量名=SFR 地址值^變量位地址值

如定義PSW 中的OV 可以用以下三種方法:

sbit OV=0xd2 (1)說(shuō)明:0xd2 是OV 的位地址值

sbit OV=PSW^2 (2)說(shuō)明:其中PSW 必須先用sfr 定義好

sbit OV=0xD0^2 (3)說(shuō)明:0xD0 就是PSW 的地址值

因此這里用sfr P1_0=P1^0;就是定義用符號(hào)P1_0 來(lái)表示P1.0 引腳,如果你愿意也可以

起P10 一類(lèi)的名字,只要下面程序中也隨之更改就行了。



下面再附上reg52.h的頭文件內(nèi)容:

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

REG52.H


Header file for generic 80C52 and 80C32 microcontroller.

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

All rights reserved.

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


#ifndef __REG52_H__

#define __REG52_H__


/* BYTE Registers */

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;


/* 8052 Extensions */

sfr T2CON = 0xC8;

sfr RCAP2L = 0xCA;

sfr RCAP2H = 0xCB;

sfr TL2    = 0xCC;

sfr TH2    = 0xCD;



/* BIT Registers */

/* PSW */

sbit CY    = PSW^7;

sbit AC    = PSW^6;

sbit F0    = PSW^5;

sbit RS1   = PSW^4;

sbit RS0   = PSW^3;

sbit OV    = PSW^2;

sbit P     = PSW^0; //8052 only


/* TCON */

sbit TF1   = TCON


關(guān)鍵字:C51  程序設(shè)計(jì)  頭文件 引用地址:C51在程序設(shè)計(jì)中的頭文件用法

上一篇:C51程序設(shè)計(jì)中斷及寄存器使用方法
下一篇:I2C總線(xiàn)的工作原理與在51單片機(jī)中的應(yīng)用

推薦閱讀

1月3日上午,42歲的王先生因頸胸椎后縱韌帶骨化癥在安醫(yī)大一附院骨科順利接受手術(shù)。手術(shù)團(tuán)隊(duì)里,最新一代國(guó)產(chǎn)骨科手術(shù)機(jī)器人“天璣”大顯身手,它操作精度最高可達(dá)0.1毫米,具備人類(lèi)無(wú)法達(dá)到的高穩(wěn)定性的“手”和高精準(zhǔn)度的“眼”,是世界唯一能夠開(kāi)展四肢、骨盆骨折及脊柱全節(jié)段手術(shù)的骨科機(jī)器人系統(tǒng)。它的臨床使用,標(biāo)志著我省骨科手術(shù)邁入智能化、精準(zhǔn)...
咨詢(xún)機(jī)構(gòu)數(shù)據(jù)顯示,中國(guó)將是全球最大的機(jī)器人市場(chǎng),預(yù)計(jì)到2022年占全球總量的38%以上。在五年的預(yù)測(cè)期內(nèi),機(jī)器人將是機(jī)器人和兩大類(lèi)別中支出較高的,但無(wú)人機(jī)市場(chǎng)的增長(zhǎng)速度為61%,高于機(jī)器人市場(chǎng)的24.3%。2019年,我國(guó)機(jī)器人系統(tǒng)近一半的支出集中在離散制造業(yè),包括汽車(chē)、、金屬加工等,市場(chǎng)規(guī)模超過(guò)167億美元,其次是流程制造、醫(yī)療、零售業(yè)和消費(fèi)類(lèi)。...
寄生蟲(chóng)可以改變寄主的行為,以達(dá)到自身更好地繁殖生存的目的。人類(lèi)若受到一些寄生在腦部的寄生蟲(chóng),如終生寄生在腦部的弓形蟲(chóng)(Toxoplasmosis),反應(yīng)能力會(huì)降低。 于高度結(jié)構(gòu)化的環(huán)境中,遠(yuǎn)程遙控操作是一種有價(jià)值的,在這種環(huán)境中會(huì)遇到各種各樣的場(chǎng)景和對(duì)象。在這種情況下,機(jī)器人可以比完全自主的操縱更快,更輕松地依靠人類(lèi)的認(rèn)知來(lái)處理極端情況。...
繼vivoTWS之后,vivo再發(fā)新款的智能可穿戴設(shè)備——vivoWATCH,這是vivo旗下第二款智能可穿戴設(shè)備。eWisetech必須得拆解一臺(tái)才可以。vivoWATCH擁有46mm和42mm兩個(gè)版本,采用了Nappa真皮以及Fluoroelastomer氟橡膠兩種材質(zhì)的表帶,我們購(gòu)入拆解的是46mm,黑色氟橡膠版本。拆解前,自然是要小小的體驗(yàn)一番的。vivoWATCH46mm版本擁有一塊1.39英寸的AMLOED屏(4...

史海拾趣

小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved