新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机的一些开发实用技巧

单片机的一些开发实用技巧

作者: 时间:2016-12-02 来源:网络 收藏

  /*------------程序名test5.c------------*/
  #include P 晶振频率12.000MHz<>
  /****************/
  void delay(unsigned int k); //延时函数声明
  /***************/
  void main (void)//主函数,其功能使P1.0交替输出高、低电平的方波
  {
  while(1)
  {P1_0=!P1_0;
  delay(500);}
  }

本文引用地址://m.amcfsurvey.com/article/201612/324992.htm

  图8

  2.用汇编语言编制一段延时程序ttest5.asm并添加到工程中(图9)。由于有参数传递,函数名前必须加下划线“_”。
  UDELAY SEGMENT CODE
  RSEG UDELAY
  PUBLIC _DELAY
  _DELAY:
  DJNZ R6,$
  DJNZ R7,$
  RET
  END

  图9

  3.点击Rebuild target(重建所有目标文件)可得到正确的编译结果(图10)。

  还有一种方法,利用编译器自动完成段的安排,这样实现C语言与汇编语言的混合编程也很方便。过程为:
  1.用C51分别编写主程序test.c及延时子程序的外壳delay.c(等待嵌入汇编语言)。在主程序中应将延时子程序声明为外部函数:extern void delay(delay)。
  2.点击delay.c源程序后再右击,在弹出的下拉菜单中选中Options for File ‘test.c’,勾选Generate Assembler SRC File(生成汇编SRC文件)及Assembler SRC File(封装汇编文件)使其有效。
  3.根据项目的编译模式加载封装库文件,通常在Small模式时为C51S.LIB(该文件在C:KeilC51LibC51S.LIB)。
  4.点击Rebuild target(重建所有目标文件)可得到一个delay.SRC的文件。
  5. 将delay.SRC改名为delay.A51。
  6.将delay.A51加载到工程项目组中,同时移除delay.c、C51S.LIB。
  7.再次点击Rebuild target可得到delay.A51汇编语句的主体。
  8. 将通过其它试验所得的精确汇编延时子程序放入delay.A51的主体中,保存后加载到Source Group 1项目组中,再点击Rebuild target即可得到正确的编译结果。

上一页 1 2 3 4 5 6 下一页

评论


技术专区

关闭