×

单片机Keil混合编程的详细资料和实例说明

消耗积分:1 | 格式:pdf | 大小:0.14 MB | 2019-04-23

分享资料个

  我挑了proteus里的点阵显示器、字符lcd显示器和图形lcd显示器。点阵实验没做,认为就是多个led灯,也许我低估它了。其次简单的是字符显示器,我先花了点时间看proteus里的帮助文档,主要是液晶控制器44780的datasheet,然后就想自己写lcd的驱动程序。这才发觉我从来没写过驱动,我挑的字符lcd还只有一个串行输入,我根本不知道要传什么东西到那个输入,也没有相关的文档。无奈之下上网找别人写的单片机lcd驱动程序,挑了一个然后按照上面的步骤摆了器件,写了代码。很幸运的,程序成功的运行起来了。可是让我不太满意的是,所有的代码都在一个文件里,而驱动应该是要独立出来的,还有像delay的函数几乎每个实验里都要用,完全可以单独出来做成一个库。基于这些代码结构上的要求,也为了以后写复杂的实验代码便于维护,多文件编译,甚至是混合编译就很必要了。一共有三种不同格式的语言可能需要混合编译:C语言,内嵌汇编语言,汇编语言 。内嵌汇编用的也是汇编的语法,但和纯汇编还是有点区别的。总共有九种情况需要推敲:

  1. C函数调用C函数这个是基础,会C语言的都知道的,就不举例了。

  2. C函数 调用 汇编函数或变量

  2.1 调用汇编函数

  2.1.1 没有参数见 CInvokeAsmFunc1方法

  2.1.2 带参数

  2.1.2.1 使用寄存器存储参数请参考Cx51编译器手册第六章“高级编程技巧”中第四节“C到汇编的接口” 。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !