网站大量收购闲置独家精品文档,联系QQ:2885784924

《单片机和嵌入式系统》C语言编程.ppt

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

C 语言编程 清华大学电子工程系 2005年4月 C 语言编程 特点:相对于汇编程序来讲 结构化语言 自动管理变量,支持复杂数据类型 可读性与移植性好 具有丰富的库函数 执行时间稍长 趋势:使用C语言与汇编语言混合编程来开发单片机应用程序 C 程序若干问题—— (1) 内存的分配 M30624FGFP的内存分RAM与ROM两个区。 每个区定义了若干个SECTION。 RAM - DATA - data bss stack heap ROM - CODE - program ROMDATA - rom vector fvector M30624FGFP 的内存配置 NC编译器对Section的处理 Section的属性 C程序中所有的section列表 C 程序若干问题—— (2) C程序结构 可能包括多个asm文件, C文件 Startup文件 sect30.inc ncrt0.a30 汇编源文件 C源文件 如何安排project的结构? Startup文件 sect30.inc文件 …… ; fixed vector section .org 0fffdcH …… …… NMI: .lword dummy_int RESET: .lword start .end Startup文件 ncrt0.a30文件 …… .glb start .section interrupt start: ;------------------------------------------------------------------- ; after reset,this program will start ;------------------------------------------------------------------- ldc #istack_top, isp ;set istack pointer …… 初始化程序的更改 注释掉不存在的段 最重要的三个段的位置设定 .section data_SE, DATA .org 400H .section rom_FE, ROMDATA .org 0C0000H .section vector, ROMDATA .org VECTOR_ADR VECTOR_ADR .equ 0FA000H 其他的段就交给编译器来处理 例子:一个Section分配的结果 C 程序启动过程 ncrt0.a30 设定单片机工作模式 RAM 清0 变量初值设定 堆初始化 调用全局init子程序 调用全局main子程序 exit循环 Project 层次框架 一个 project 的层次图 C 程序若干问题—— (3) 特殊的操作 SFR寄存器的操作 ? 方法1: 使用 # pragma ADDRESS # pragma ADDRESS TA0 0386h # pragma ADDRESS port4 03e8h …… 建议将所有SFR地址声明放在一个文件里 # include “mcu16c62.h” 定义类型(根据其所占的内存大小) char TA0MR, TA0IC, TABSR; unsigned int TA0; 一个访问端口的例子 使用指针访问绝对地址 ? 方法2:直接定义指针,并对该指针赋初值 char ?ptr; ptr = (char ?) 0x03e8; ?ptr = 0xef; 后两句也可合成一句 ? (char ?) 0x03e8 = 0xef; 或使用宏定义 #define port (? (char ?)0x03e8 ) port = 0xef;

您可能关注的文档

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档