久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 標題:C51常用頭文件 [打印本頁]

作者: 奇點終結    時間: 2015-5-6 20:46
標題: 標題:C51常用頭文件
標題:C51常用頭文件

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

DWORD[0x0004]=0x12F8;
即內部數據存儲器中(0x08)=0x12; (0x09)=0xF8
4 內部函數 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 循環右移 n 位。
上三個函數的區別在于,參數及返回值的類型不同
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 循環左移 n 位。
上三個函數的區別在于,參數及返回值的類型不同
   例如:
     #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);






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久最新| 中文字幕在线播放第一页 | 国产免费一区二区 | 成人av大全| 欧洲成人免费视频 | 一区视频| 久久久久久91 | 亚洲一区二区三区在线免费观看 | 国产一区二区久久久 | 男女激情网站免费 | 成人国产在线视频 | 久久久久久久国产精品 | 一区二区三区四区国产 | 久久久999成人 | 超碰日韩| 美日韩一区二区 | 一区二区在线看 | 日韩在线中文字幕 | 亚洲网址| 午夜影院在线观看免费 | 极品销魂美女一区二区 | 日日想夜夜操 | 精品亚洲一区二区三区四区五区 | 国产91av视频在线观看 | 国产精品视频999 | 久久国内精品 | 国产精品视频不卡 | 精品视频999| 91精品国产综合久久久久久蜜臀 | 二区亚洲 | 一级免费看片 | 免费v片在线观看 | 欧美一级免费片 | 亚洲三级在线观看 | 午夜天堂精品久久久久 | av大片在线 | 亚洲国产精品久久久久婷婷老年 | 天堂亚洲| 国产区视频在线观看 | 久草新在线 | 天天操天天操 |