利用内嵌汇编实现STC单片机与51的无缝对接_KEIL C程序中内嵌汇编的实现方法图解.pdf

利用内嵌汇编实现STC单片机与51的无缝对接_KEIL C程序中内嵌汇编的实现方法图解.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用内嵌汇编实现STC单片机与51的无缝对接_KEIL C程序中内嵌汇编的实现方法图解

绍兴文理学院 工学院 沈红卫 2012 年4 月 http :///kc/dgdz 利用内嵌汇编实现STC 单片机与51 的无缝对接 ——KEIL C 程序中内嵌汇编的实现方法图解 绍兴文理学院 沈红卫 宏晶的STC 系列51 单片机,由于其功能强大、抗干扰能力高、价格低,与51 单片机 充分兼容,以及可以在线烧写(IAP )/在系统烧写(ISP )等众多优点,越来越被认可,得 到越来越多的关注和使用。 我在多年的教学中,一直推荐学生学习和使用这种单片机,并且开发了基于 STC 单片 机的学习平台 《单片机实验系统V2 》、《单片机实验系统V2 》、《单片机实验系统V3 》。这些 平台的共同特点 ,可以利用串口实现在系统烧写程序 (可以烧写 10 万次以上),方便地在 寝室、家里搭建自己的单片机实验室,为 《C 语言》、《单片机原理及应用》等课程的学习奠 定坚实的实践基础,也可大大激发学习的兴趣和动力。 烧写软件可到STC 的官方网站免费下载。通过串口与STC 系统连接,即可实现程序的 烧写。对于没有串口的电脑,可以采购USB-232 转接电缆或转接头,实现将USB 口转换为 串口使用。USB-232 转接电缆或转接头在淘宝上很多,价格从10-50 不等,一般都能使用。 但 ,很多同学在学习单片机原理的时候,因为老师通常以AT89C51 为范例讲述,因 此多接触的 普通51 单片机,而 STC 的单片机 1T 单片机,在运算速度上比普通 51 快 8-10 倍,因此,导致很多在普通51 单片机,例如AT89C52 上能运行的程序,在STC 单片 机上不能 常运行。究其原因,主要 STC 1T 单片机,速度快了,原来的程序中如果涉 及到比较严格的时序配合的,就不能照搬。必须进行少许改造,改造的重点就 调整延时函 数或者子程序。 改造的途径有几种,这里介 通过在C 语言程序中潜入汇编的形式。利用KEIL C 支持 内嵌汇编的特性,通过汇编来写延时函数,可以确保延时的精度,另外不至于改造源程序太 费劲 (只要延时的部分能确保延时时间一致就行)。 本文主要讨论内嵌汇编的实现问题。 在 KEIL 中嵌入汇编的方法很简单。在C 文件中要嵌入汇编的地方用#pragma asm 和 1 绍兴文理学院 工学院 沈红卫 2012 年4 月 http :///kc/dgdz #pragma endasm 分隔开来,这样编译时KEIL 就知道这中间的一段 汇编了。以下以具体实 例加以说明。 在KEIL 中建立以下工程文件。该程序包含汇编程序。 对加入汇编的源程序myinasm_c.c 要设置编译该文件时的选项。(通过在该文件上右击 鼠标左键,选中快捷菜单中的OPTIONS 选项得到) 激活Generate Assembler SRC File (生成汇编SRC 文件)、Assemble SRC File (封装汇 编文件)。如下图所示 (激活状态) 2 绍兴文理学院 工学院 沈红卫 2012 年4 月 http :///kc/dgdz 选上这两项就可以在 C 中嵌人汇编了,此后,设置后在文件图示中多了三个红色的小 方块。 为了能对汇编进行封装还要在项目中加入相应的封装库文件, 在笔者的项目中编译模 式 小模式所以选用C51S.LIB 。这也 最常用的。这些库文件 中KEIL 安装目录下的LIB 目录中。 加好后就可以顺利编译了。具体加法 :首先右键source files 文件夹,得到下图 界面。选择ADD FILES…选项。 3 绍兴文理学院 工学院 沈红卫 2012 年4 月 http :///kc/dgdz 然后根据你的程序的编译模式 (默认都市 SMALL 模式)。从KEIL 的系统文件下找到 C51S.LIB 加入即可

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档