久久久久久久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)
 

關閉窗口

相關文章

主站蜘蛛池模板: 欧美成人激情 | 日韩精品福利 | 99视频在线免费观看 | 一区二区精品视频 | 九九热在线观看 | 日韩三级在线 | 久久精品这里 | 性国产丰满麻豆videosex | 亚洲1区| 国产91视频播放 | 日韩欧美三级在线 | 成人免费视频 | www.天天操 | 国产日韩一区二区三免费高清 | 精品1区2区3区4区 | 国产第一区二区 | 99久久久久| 国产一在线 | 欧美精品一区二区三区在线播放 | 日韩中文字幕久久 | 亚洲福利一区二区 | 欧美成人精品激情在线观看 | 亚洲免费精品 | 一区二区成人 | 国产亚洲www | 日韩国产欧美视频 | h视频在线观看免费 | 日韩一区二区在线视频 | 九九99九九精彩46 | 国产精品天堂 | 国产精品高潮呻吟久久av黑人 | 国产欧美一区二区三区久久 | 国产日韩精品在线 | 在线观看av网站永久 | 日韩影院在线 | 精品久久一区 | 日韩小视频在线 | 色一情一乱一伦一区二区三区 | 欧美一级片在线看 | 粉嫩国产精品一区二区在线观看 | 国产成人免费观看 |