第3.4章 Embest简介加C语言程序设计基础补充和7段LED模块和键盘概述.pptVIP

第3.4章 Embest简介加C语言程序设计基础补充和7段LED模块和键盘概述.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3.4章 Embest简介加C语言程序设计基础补充和7段LED模块和键盘概述

开发流程 调试配置 控制程序执行 上次实验内容 1. 完成数学运算:   结果存入R10寄存器中。 要求:定义变量x=45,y=32,z=7 2. 完成将src:处的数据拷贝到dst:处。 src: .long 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4 dst: .long 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 实验3: C语言程序实验 实验内容 1. 编写7-led程序,完成7-led模块循环显示0-F的程序. 2. 要求在程序中设置断点,位置在显示’0’的程序之前。 3. 在软件仿真环境中存储器窗口中观察结果并记录 实验准备  掌握7段数码管的工作原理  知道数码管的地址空间  知道各位与各段的对应关系 第五章 基于ARM的嵌入式应用程序设计 5.3 嵌入式C语言程序设计基础    嵌入式C语言程序设计是利用基本的C语言知识,面向实际嵌入式工程应用进行程序设计。 5.3 嵌入式C语言程序设计基础    通过7段LED模块程序开发的实例介绍C语言的基本语法及知识点在嵌入式程序开发中的应用。 软件源文件的形式(功能) …… bl Main # jump to Main() …… 启动代码说明 应用程序文件 main.c main.c文件 main.c文件结构  头文件包含  函数声明  main主函数 包含的头文件 1、头文件包含伪指令 格式: #include 头文件名.h ;标准头文件 #include “头文件名.h” ;自定义头文件 头文件中包含的内容 包含了程序中所需的S3C44B0x芯片各模块中寄存器的宏定义 宏定义伪指令 格式: # define 宏标识符  宏体 如  #define ULONG unsigned long    程序中ULONG代表的意思是unsigned long,程序编译时,预处理器会将程序中所有的ULONG用unsigned long替换 分类: (1) 简单宏 (2) 参数宏    (3) 宏释放 (4) 条件宏 (1) 简单宏 #define rULCON0 \    (*(volatile unsigned *)0x1d00000) Volatile的使用 编译器优化 当读取一个变量或存储器内容时,为提高存取速度,编译器在优化程序时有时会先把变量或存储器内容读取到一个寄存器中,以后在取变量或存储器内容时,就直接从寄存器中取值; 但是当变量或存储器内容在本程序里改变时,会同时把新值copy到该寄存器中,以便保持一致; 但当变量或存储器内容在别的程序中改变时,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的当前值不一致。 Volatile的使用 告诉优化器在读该寄存器值时必须每次都小心地从实际地址空间中重新读取,而不能使用保存在寄存器里的备份。 (1) 简单宏 #define rULCON0 \    (*(volatile unsigned *)0x1d00000) (2) 参数宏 # define SQR(x,y) sqrt((x)*(x)+(y)*(y)) 源文件中有: z=SQR(a+b,a-b); /*替换为z=sqrt((a+b)*(a+b)+(a-b)*(a-b));*/   参数宏类似于函数的调用。事实上,许多库函数是用参数宏写的。 参数宏和函数的区别: 宏的形式参数表中没有类型说明符; 参数宏在时空开销上比函数都要小。 (3) 宏释放 作用:用于释放原先定义的宏标识符。 格式:#undef 宏标识符 #undef ULONG    左边是先测试是否已定义,右边是先测试是否未定义,这样根据测试决定如何处理,是为了避免重复定义。 extern “C”{}的作用就是说明这在{}范围之内的变量或函数要按C标准来编译。 对于C++写的变量或函数,如果C要调用,就必须在C++定义变量或函数时加以声明, 否则就不能调用. 头文件中包含的内容 包含了程序中所需的S3C44B0x芯片各模块中寄存器的宏定义 为什么要使用文件包含命令呢? 2 Main函数部分 数码管工作原理 数码管程序设计 7段数码管工作原理 数码管工作原理 ‘共阳极’数码管:7个发光二极管的阳极都连在一起的; ‘共阴极’数码管:7个发光二极管的阴极都连在一起的 分类及驱动方式 数码管工作原理(1) --各位与各段的对应关系: 对应规则: a-----D7 b-----

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档