首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 学习园地
C语言在51单片机编程中的应用技巧
来源:本站整理  作者:佚名  2010-07-13 09:52:04



    三、C51与汇编语言的混合编程
    在混合编程中,关键是参数的传递和函数的返回值。它们必须有完整的约定,否则数据的交换就可能出错。

  C语言调用汇编语言程序一般有两种方法,一种是对汇编函数智等的定义来使用C语言,但是在函数的内部是通过#pragma asm和#pragma endasm关键字来写入汇编程序;另一种方式是将所有与函数有关的代码都用汇编来实现,这些汇编代码存储为单独的文件,以。A51和。ASM为文件后缀名,并将其添加到项目中,然后在要调用这些汇编程序的C文件中使用exter关键字来定义函数原型,这样就可以直接对其进行调用了。这里通过一个简单的例子介绍一下第一种调用方法。

  例:在主程序中调用一个简单的汇编语言延时子程序。

  #pragma SRC //这个语句加在程序开头。

  main() {…… //C语言主程序delay();…… //C语言主程序}

  void delay (void) {//汇编语言子程序#pragma asm//这条语句加在程序被调用汇编开头……  //汇编语言编写的程序#pragma endasm//这条语句加在程序被调用汇编末尾}

  四、C51编程的几个注意事项
    1.关于设置指针SP的问题编译器在把所有变量和缓冲区赋予地址后,自动把最后一个字节开始的地方作为SP的开始位置,体现了C51的优越性,很多事情在编译时就完成了。

  2.data、idata、xdata、pdata的区别data:内部RAM的128个字节,可以用aCC直接读写,速度最快,生成的代码也最小。

  idata:内部RAM的256个字节,其中前128和data的128完全相同,只是寻址方式不同。

  xdata:外部扩展RAM,64k,用DPTR访问。

  pdata:分页寻址外部扩展RAM,高8位在P2口中。

  3.startup.a51的作用和汇编一样,在C5l中定义的变量和数组的初始化就在startup.a51中进行,如果在定义全局变量时带有数值,如unsigned char data xxx=100,那startup.a5l中就会有相关的赋值。如果没有xxx=100,startup.a5l就会把它清O。初始化完毕后,还会设置SP指针。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:48,664.06000 毫秒