- 1、本文档共71页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2006-01-20 如何用C 来完成SN8系列芯片的程序设计 Review SN8 C studio 的安装与使用 数据类型与运算 程序流程控制 函数 结构体、联合在SN8 C程序中的应用 中断 位操作 内嵌汇编 程序结构 SN8 C studio 的安装与使用 SN8 C studio 的安装 SN8 C studio应用实例 数据类型与运算 专有数据类型 常量的定义 先来看看汇编的常量定义: door_service_c equ #80 ;80ms去门抖动 t0int_c equ #224 ;t0中断时间 segment_c equ #3 ;最多3段烹调 注:上面数值前的#号,是SN8ASM的符号,用于提示后面的是立即数。 常量的定义 NOTE: 对习惯于写汇编的人来说,千万注意C对大小写敏感!并从变量定义就要开始注意! 数值列表 汇编的表: disp_automenu: ;显示菜单用第二数字表格 dw 0000h dw 0ae1fh ;A-1 dw 0ae2fh ; dw 0ae3fh ; dw 0ae4fh ; dw 0ae5fh ; dw 0ae6fh ; dw 0ae7fh ; 变量定义与限制 __RAM与__ROM关键字的使用: Unsigned int __RAM ramVeriable; __RAM unsigned int ramVeriable2; Unsigned int __ROM romVeriable; __ROM unsigned int romVeriable2; 常量数值列表定义 C定义的数值列表: unsigned long __ROM disp_automenu[]= { 0x0000,0x0ae1f,0x0ae2f,0x0ae3f, 0x0ae4f,0x0ae5f,0x0ae6f,0x0ae7f }; 变量的定义 汇编的定义变量的方法: .DATA org 0h temp1 ds 1 temp2 ds 1 led_dp ds 1 step ds 1 Job_mode ds 2 Pow_mode ds 4 变量的定义 用C定义变量: unsigned int temp1; unsigned int temp2; unsigned int led_dp; unsigned int step; unsigned long job_mode; unsigned long power_mode1; float powerValue; int temp1_1; long temp2_2; 变量定义的对比 变量类型的选择 在选择数据类型的时候,在能够顺利完成功能的情况下,请尽量选择占空间少的数据类型,这样不管是在RAM空间使用上还是在产生代码效率上都有很多的好处! 能使用无符号数的都使用无符号数,以免处理出错,因为芯片内部是以无符号数处理的。 数据的存储 SN8芯片的数据存储区 系统寄存器 系统寄存器表 .H档中对系统寄存器定义 程序流程控制 顺序结构 判断分支结构 串行分支结构 并行分支结构 循环结构 顺序结构 顺序结构流程 顺序结构的实现对比 判断分支结构 判断分支结构的流程 判断分支结构的实现对比 串行分支结构 串行分支结构流程 串行分支结构实现对比 并行分支结构 并行分支结构流程 并行分支结构实现对比 循环结构1——While While循环流程 While循环实现对比 循环结构2——do…while循环 Do…while循环流程 Do…while循环实现对比 函数 函数的定义 函数参数的传递 函数参数与全局变量 函数的定义 SN8 C 函数声明方式: 返回值类型 函数名(形参1数据类型,形参2数据类型,……); 函数的定义方式 函数定义方式: 返回值类型 函数名(参数列表) 参数类型表; { 函数体; } 函数参数传递与返回 函数传递的内部实现 假设于caller函数内调用callee函式. callee 的参数名称为: _callee_arg ? ; ? 为参数个数。 函数参数传递实现对比 返回值的存放 全局变量与函数参数 构造数据类型 结构体 联合体 结构体的定义 结构体定义的形式: Struct 结构体类型名{ 成员1数据类型 成员1名称; 成员2数据类型 成员2名称; …… }; 结构体存储形式 结构体存储 用结构体定义位域 位域的定义形式: Struct 结构体名称{ Unsign
文档评论(0)