找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4108|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

標(biāo)題:C51常用頭文件

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:79121 發(fā)表于 2015-5-6 20:46 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
標(biāo)題:C51常用頭文件

在KEIL 中,對(duì)于單片機(jī)所使用的頭文件,除了reg51 reg52以外,還有一些從各芯片制商的官網(wǎng)下載與reg51,reg52功能類似的頭文件,需了解透外,還要對(duì)各類型單片機(jī)均可通用且相當(dāng)有用的的頭文件,做相應(yīng)的了解。因?yàn),?nèi)部所包含的函數(shù)與宏定義,可以及大的方便我們編寫應(yīng)用程序1字符函數(shù)  ctype.h
   
   1  extern bit isalpha(char);
        功能:檢查參數(shù)字符是否為英文字母,是則返回1
2 extern bit isalnum(char)
     功能:檢查字符是否為英文字母或數(shù)字字符,是則返回1
3 extern bit iscntrl(char)
            功能:檢查參數(shù)值是否在0x00~0x1f 之間或等于0x7f,是則返回1
4   extern bit isdigit(char)
     功能: 檢查參數(shù)是否為數(shù)字字符,是則返回1
5  extern bit isgraph(char)
            功能: 檢查參數(shù)值是否為可打印字符,是則返回1,可打印字符為0x21~0x7e
6 extern bit isprint(char)
     功能:除了與isgraph相同之外,還接受空格符0x20
7 extern bit ispunct(char)
  功能:不做介紹。
8 extern bit islower(char)
     功能:檢查參數(shù)字符的值是否為小寫英文字母,是則返回1
9 extern bit isupper(char)
            功能:檢查參數(shù)字符的值是否為大寫英文字母,是則返回1
10 extern bit isspace(char)
     功能:檢查字符是否為下列之一,空格,制表符,回車,換行,垂直制表符和送紙。如果為真則返回1
11 extern bit isxdigit(char)
            功能:檢查參數(shù)字符是否為16進(jìn)制數(shù)字字符,是則返回1
12 extern char toint(char)
     功能:將ASCII字符0~9  a~f(大小寫無關(guān))轉(zhuǎn)換成對(duì)應(yīng)的16進(jìn)制數(shù)字,
返回值00H~0FH
13 extern char tolower(char)
            功能:將大寫字符轉(zhuǎn)換成小寫形式,如字符變量不在A~Z之間,則不作轉(zhuǎn)換而直接返回該字符
14 extern char toupper(char)
     功能:將小寫字符轉(zhuǎn)換成大寫形式,如字符變量不在a~z之間,則不作轉(zhuǎn)換而直接返回該字符
15 define toascii(c)  ((c)&0x7f)
功能:該宏將任何整形數(shù)值縮小到有效的ASCII范圍之內(nèi),它將變量和0x7f相與從而去掉第7位以上的所有數(shù)位
16 #define tolower(c)  (c-‘A’+’a’)
功能:該宏將字符與常數(shù)0x20 逐位相或
17 #define toupper(c)  ((c)-‘a(chǎn)’+’A’)
功能:該宏將字符與常數(shù)0xdf 逐位相與
2數(shù)學(xué)函數(shù) math.h
extern int    abs  (int   val);
extern char  cabs  (char  val);
extern long  labs  (long  val);
extern float  fabs  (float  val);
功能:返回絕對(duì)值。上面四個(gè)函數(shù),除了形參和返回值不一樣之外,
其它功能完全相同。
extern float exp    (float val);
extern float log    (float val);
extern float log10  (float val);
  功能: exp   返回eval
         log   返回 val 的自然對(duì)數(shù)
         log10 返回 以10為底,val的對(duì)數(shù)
         
extern float sqrt  (float val);
   功能:      返回val的正平方根
      extern int rand();
      extern void srand(int n);
         功能:  rand返回一個(gè)0到32767之間的偽隨機(jī)數(shù),srand用來將隨機(jī)數(shù)發(fā)生器初始化成一個(gè)已知的(期望)值。
        Keil uVision3中的math.h庫中,不包含此函數(shù)。
       extern float sin   (float val);
extern float cos   (float val);
extern float tan   (float val);
   功能:   返回val的正弦,余弦,正切值。val為弧度  fabs(var) <=65535
extern float asin  (float val);
extern float acos  (float val);
extern float atan  (float val);
extern float atan2 (float y, float x);
  功能: asin 返回val的反正弦值。acos 返回val的反余弦值。
         atan 返回val的反正切值。
         asin atan acos的值域均為  -π/2~+π/2
        atan2返回x/y,的反正切值,其值域?yàn)?π~+π
extern float sinh  (float val);
extern float cosh  (float val);
extern float tanh  (float val);
  功能:cosh返回var的雙曲余弦值,sinh返回var的雙曲正弦值,
        tanh返回var的雙曲正切值。
extern float ceil  (float val);
  功能:  向上取整,返回一個(gè)大于val的最小整數(shù)。
extern float floor (float val);
  功能:  向下取整,返回一個(gè)小于val的最大整數(shù)。
extern float pow   (float x, float y);
  功能: 計(jì)算計(jì)算xy的值。當(dāng)(x=0,y<=0)或(x<0.y不是整數(shù))時(shí)會(huì)發(fā)生錯(cuò)誤。
extern void fpsave(struct FPBUF *p)
extern void fprestore(struct FPBUF *p)
  功能:fpsave 保存浮點(diǎn)了程序的狀態(tài),fprestore恢復(fù)浮點(diǎn)子程序的原始狀態(tài),當(dāng)中斷程序中需要執(zhí)行浮點(diǎn)運(yùn)算時(shí),這兩個(gè)函數(shù)是很有用的。
      注:   Keil uVision3中的math.h庫中,不包含此函數(shù)。
3絕對(duì)地址訪問 absacc.h
#define CBYTE ((unsigned char volatile code  *) 0)
#define DBYTE ((unsigned char volatile data  *) 0)
#define PBYTE ((unsigned char volatile pdata *) 0)
#define XBYTE ((unsigned char volatile xdata *) 0)
  功能:CBYTE  尋址    CODE區(qū)
        DBYTE  尋址    DATA區(qū)
        PBYTE  尋址    XDATA(低256)區(qū)
        XBYTE  尋址    XDATA區(qū)
   例: 如下指令在對(duì)外部存儲(chǔ)器區(qū)域訪問地址0x1000
       xvar=XBYTE[0x1000];
       XBYTE[0x1000]=20;
#define CWORD ((unsigned int volatile code  *) 0)
#define DWORD ((unsigned int volatile data  *) 0)
#define PWORD ((unsigned int volatile pdata *) 0)
#define XWORD ((unsigned int volatile xdata *) 0)
   功能:與前面的一個(gè)宏相似,只是它們指定的數(shù)據(jù)類型為unsigned int .。
         通過靈活運(yùn)用不同的數(shù)據(jù)類型,所有的8051地址空間都是可以進(jìn)行訪問。

DWORD[0x0004]=0x12F8;
即內(nèi)部數(shù)據(jù)存儲(chǔ)器中(0x08)=0x12; (0x09)=0xF8
4 內(nèi)部函數(shù) intrins.h
extern unsigned char _cror_    (unsigned char  var, unsigned char  n);
extern unsigned int  _iror_    (unsigned int    var, unsigned char  n);
extern unsigned long _lror_    (unsigned long  var, unsigned char  n);
  功能:將變量var 循環(huán)右移 n 位。
上三個(gè)函數(shù)的區(qū)別在于,參數(shù)及返回值的類型不同
extern unsigned char _crol_    (unsigned char  var, unsigned char  n);
extern unsigned int  _irol_    (unsigned int    var, unsigned char  n);
extern unsigned long _lrol_    (unsigned long  var, unsigned char  n);
  功能:將變量var 循環(huán)左移 n 位。
上三個(gè)函數(shù)的區(qū)別在于,參數(shù)及返回值的類型不同
   例如:
     #include<intrins.h>
      void main()
        {
          unsigned int y;
          y=0x0ff0;
          y=_irol_(y,4);    //y=0xff00
          y=_iror_(y,4);    //y=0x0ff0
}
void  _nop_(void);

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的積分獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表