新聞中心

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

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

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

  函數(shù)名的轉(zhuǎn)換規(guī)律
  主函數(shù)中的聲明 匯編符號名 說明
  Void func(void) FUNC 無參數(shù)傳遞
  Void func(char)_FUNC 帶寄存器參數(shù)傳遞
  Void func(void)reentrant_?FUNC 重入函數(shù)包含棧內(nèi)參數(shù)傳遞
  表1
  接收參數(shù)寄存器
  參數(shù)序號charintLong,float通用指針
  1R7R6、R7R4~R7R1~R3
  2R5R4、R5--
  3R3R2、R3--
  表2
  返回值類型與寄存器對照
  返回值類型寄存器說明
  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ù)和符號位在R7中
  通用指針R1~R3存儲類型在R3中,高位在R2,低位在R1
  表3
  下面通過兩個實例說明。
  例4(無參數(shù)傳遞):
  1.按照Keil的使用方法,建立工程文件并添加C51編寫的主程序test4.c(圖5)。
  /*------------程序名test4.c------------*/
  #include P 晶振頻率12.000MHz<>
  /****************/
  void delay(void);//延時函數(shù)聲明
  /***************/
  void main (void)//主函數(shù),其功能使P1.0交替輸出高、低電平的方波
  {
  while(1)
  {P1_0=!P1_0;
  delay();}
  }

  

本文引用地址:http://butianyuan.cn/article/201612/324992.htm

  圖5

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

  

  圖6

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

  

  圖7

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


評論


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

關(guān)閉