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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機編程心得

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年12月01日   【字體:

 

一、延時程序的處理:
  1、對于可以設置系統時鐘的單片機,延時程序統一先把系統時鐘設頻率置為最低,然后按這個最低時鐘頻率寫延時
     函數,這樣的好處:第一,統一了不同系統時鐘下的延時;第二,降低功耗
  2、對于單片機系統,不同的外部時鐘,延時程序對應的時間不同,為了方便使用,加入預編譯指令#ifdef/#else/
     #endif  這樣如果預定義了一個系統時鐘,則選擇相應的延時參數進行編譯,而延時程序主體不變,只是里面有
     一個延時參數,根據預定義選擇相應參數。

二、for循環的處理:
   用for(i=XX,i&gt;0,i--) 而不用for(i=0;i<XX,i++)  速度快
   對于兩層或多層for循環,頻繁的循環放在內層,減少循環間跳轉花費的時間

三、對外設的操作:可以把外設作為一個文件來操作,比如液晶,就可以把液晶看作一個文件,往液晶打印字符串或
   者數據,就可以用fprintf()來做,(51的C標準庫不支持,但是可以自己寫一個文件操作的庫)。只要是輸入輸出
   設備,都試著用文件操作的方法去操作。


四、標準庫函數的使用:
  1、標準輸入輸出庫(stdio.h):
   字符串夾雜變量數字(比如:發送完nihao字符串,然后發送變量i的值)往液晶顯示或往串口發送的時候,往串口發
   送可以使用格式輸出函數printf("nihao%d",i);但是往LCD顯示就不好做了,通常是寫一個數字轉字符串的函數,然
   后先送原來的字符串,再送數字轉換后的字符串,太麻煩,可以使用標準輸入輸出庫里的sprintf()函數來完成,它
   的原型為:sprintf(char *buffer, const char *format, …),*buffer是要把字符串和變量寫入的緩沖區,可以使
   用數組或者指針,后面的格式和printf()函數一樣;    與之對應的還有sscanf()函數,從緩沖區讀一個字符串把它
   轉成相應的類型后賦給指定的變量。
   比如:
    #include &lt;stdio.h>
    void PrintToLcd(unsigned char *str)
    {
        ...
    }
    void main()
    {
        unsigned char *p;
        unsigned char i = 50;
        sprintf(p,"nihao%d",i);
        PrintToLcd(p);
    }
  2、字符串庫(string.h)
    字符串連接(相加)  char *strcat(char *dest,const char *stc)
   把src連接到dest字符串后面,返回指向dest的指針
    字符串比較  int strcmp(char *str1,char *str2)
   返回值:小于0: str1<str2,等于0: str1=str2,大于0: str1>str2
    字符串拷貝1  char *strcpy(char *dest,const char *src)
   結果把src的內容拷進dest,兩個字符串內容相同,返回指向dest的指針
    字符串拷貝2  char *strdup(const char *src)
   src:待拷貝的源字符串,返回值:指向拷貝后的字符串的指針
    字符串倒序  char *strrev(char *s);
   返回指向倒序后字符串的指針
  3、類型轉換(math.h; stdlib.h)
   字符串轉雙精度(類似C++Builder里的StrToDouble)  double atof(char *str)
   字符串轉整數(類似StrToInt)  int atoi(char *str)
   字符串轉長整型  long atol(char *str)
   浮點數轉字符串  char *ecvt(double value,int ndigit,int*dec,int *sign)
                   char *fcvt(double value,int ndigit,int*dec,int *sign)
    輸入參數:value: 待轉換浮點數,ndigit: 轉換后的字符串長度
    輸出參數:dec: 小數點位置,sign: 符號
    返回轉換后的字符串指針
   整型轉字符串  char *itoa(int value,char *string,int radix)
    輸入參數:value: 要轉換的數,radix: 轉換的進制
    輸出參數:string: 轉換后的字符串
    返回指向string的指針
   長整型轉字符串  char *ltoa(long value,char *string,int radix)
 

關閉窗口

相關文章

主站蜘蛛池模板: 欧美成人精品在线 | 精品福利在线 | 精彩视频一区二区三区 | 91九色视频在线 | 国产精品久久久久久久久久久久 | 久草精品视频 | a免费视频 | 在线免费观看一区二区 | 国产精品一二三区 | 欧美啪啪网站 | 狠狠视频 | 亚洲人免费视频 | 午夜精品久久久久久不卡欧美一级 | 国产一区二区视频在线 | 精品视频在线观看 | 国产精品福利视频 | 欧美一级欧美三级在线观看 | 日韩精品视频在线 | 黄网站免费在线观看 | 一区二区三区精品 | 亚洲精品一区二区冲田杏梨 | 精品91久久久 | 羞羞网站免费 | 欧美成人h版在线观看 | 夜夜骑天天干 | 99精品久久99久久久久 | 精品国产乱码久久久久久a丨 | 国产中文视频 | 国产成人精品久久二区二区 | 一区二区三区四区毛片 | 亚洲影视在线 | 久久久精品久久久 | 久久久精品在线 | 日日草夜夜草 | 国产精品精品视频一区二区三区 | 精品亚洲国产成av人片传媒 | 91久久精品国产免费一区 | 久久三区 | 日本久草 | 久久久久久久久久久久久9999 | 国产欧美在线 |