新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)的一些開發(fā)實(shí)用技巧

        單片機(jī)的一些開發(fā)實(shí)用技巧

        作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏

          函數(shù)名的轉(zhuǎn)換規(guī)律
          主函數(shù)中的聲明 匯編符號(hào)名 說明
          Void func(void) FUNC 無參數(shù)傳遞
          Void func(char)_FUNC 帶寄存器參數(shù)傳遞
          Void func(void)reentrant_?FUNC 重入函數(shù)包含棧內(nèi)參數(shù)傳遞
          表1
          接收參數(shù)寄存器
          參數(shù)序號(hào)charintLong,float通用指針
          1R7R6、R7R4~R7R1~R3
          2R5R4、R5--
          3R3R2、R3--
          表2
          返回值類型與寄存器對(duì)照
          返回值類型寄存器說明
          BitC(標(biāo)志位)由具體標(biāo)志位返回
          Char/unsigned char/1_byte指針R7單字節(jié)由R7返回
          Int/ unsigned int/2_byte指針R6、R7雙字節(jié)由R6、R7返回,高位在R6中,低位在R7中
          Long/ unsigned longR4~R7四字節(jié)由R4~R7返回,高位在R4中,低位在R7中
          FloatR4~R732bit IEEE格式,指數(shù)和符號(hào)位在R7中
          通用指針R1~R3存儲(chǔ)類型在R3中,高位在R2,低位在R1
          表3
          下面通過兩個(gè)實(shí)例說明。
          例4(無參數(shù)傳遞):
          1.按照Keil的使用方法,建立工程文件并添加C51編寫的主程序test4.c(圖5)。
          /*------------程序名test4.c------------*/
          #include P 晶振頻率12.000MHz<>
          /****************/
          void delay(void);//延時(shí)函數(shù)聲明
          /***************/
          void main (void)//主函數(shù),其功能使P1.0交替輸出高、低電平的方波
          {
          while(1)
          {P1_0=!P1_0;
          delay();}
          }

          

        本文引用地址:http://www.104case.com/article/201612/324992.htm

          圖5

          2.用匯編語言編制一段205μS精確延時(shí)程序ttest4.asm并添加到工程中(圖6)。
          UDELAY SEGMENT CODE
          RSEG UDELAY
          PUBLICDELAY
          DELAY: MOV R0,#100
          LOOP:
          DJNZ R0,LOOP
          RET
          END

          

          圖6

          3.點(diǎn)擊Rebuild target(重建所有目標(biāo)文件)即可得到正確的編譯結(jié)果(圖7)。

          

          圖7

          例5(有參數(shù)傳遞):
          1.按照Keil的使用方法,建立工程文件并添加C51編寫的主程序test5.c(圖8)。


        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 萝北县| 卢氏县| 时尚| 太湖县| 石城县| 湘西| 准格尔旗| 马尔康县| 长阳| 漠河县| 建宁县| 阜南县| 洪江市| 鲁甸县| 杭州市| 漠河县| 东海县| 东明县| 政和县| 五寨县| 皮山县| 称多县| 青海省| 沙洋县| 调兵山市| 额尔古纳市| 安宁市| 吉安市| 黑龙江省| 景泰县| 曲阜市| 镇安县| 瑞昌市| 蒲江县| 赤城县| 朝阳县| 沭阳县| 缙云县| 连平县| 宜昌市| 娄底市|