汽车单片机原理及应用---第五章 程序设计.pptVIP

汽车单片机原理及应用---第五章 程序设计.ppt

  1. 1、本文档共54页,可阅读全部内容。
  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文档。上传文档
查看更多
汽车单片机原理及应用---第五章 程序设计

第五讲 程序设计 键值消抖子程序 名称:Keychat, 功能:按键消抖, 入口参数: ①M_keycode_new : 新键值; ②M_keycode_old : 旧键值,内部参数:M_keychat : 键消抖计数器, 出口参数: ①F_keychat_end : chat 完; ②F_key_valid : 键有效 键按下时间计时处理子程序 名称:Timer_key_proc, 功能:键时间处理(10ms调用), 入口参数: M_keypress_timer : 键按下时间计时器, 出口参数: F_keypress_2s : 键按下2秒标志 键值译码子程序 名称:Key_decode, 功能:键值译码(将键盘键值1-16转换成对应遥控键码), 入口参数: A = 键盘键值, 出口参数: A = 遥控键值 C程序设计概述 与标准C兼容。但涉及标准C语言的相关内容在此不作具体介绍。这里只介绍一些NEC 78K0系列扩展C的相关内容。 NEC 78K0系列微处理器可以使用CC78K0(C 编译器)进行C程序的编译。CC78K0是一个通用、可移植的C编译器,它能有效的减少开发时间和降低开发费用。除了支持标准的C语言规范以外,CC78K0还支持78K0系列产品特有的规范。这不仅增加了它的可用性,也拓宽了在C语言中的应用。 C语言程序设计 * * 主要内容: 汇编语言程序设计 C语言程序设计 汇编程序基本结构 78K系列微处理器使用RA78K0(汇编包)将源程序转换为机器语言 RA78K0包括7个程序:结构化汇编预处理程序、汇编程序、连接程序、目标代码转换程序、库、列表转换程序和项目管理器PMplus 项目管理器PM plus执行一系列操作:编辑、编译/装配、连接和调试等 基于模块的设计方法通常将一个源程序分为多个模块,每个源程序模块应该按照有关格式编写,才可以传送给汇编程序,汇编成目标代码 模块头(可以省略) 模块体 模块尾 汇编语言程序设计 模块头:可以使用的控制语句如下表 汇编语言程序设计 模块体:可以使用所有其他的伪指令、控制命令及指令系统中的所有指令。模块体必须用段来描述,可以使用下列4 种段描述模块体: 代码段必须用CSEG 定义 数据段必须用DSEG 定义 位段必须用BSEG 定义 绝对段用ORG 定义,或者用AT 指令重定位使用CSEG, DSEG, 或BSEG 定义的段 数据段必须在代码段之前定义 模块尾:使用END 伪指令描述模块的结束 汇编语句的格式 符号和助记符之间必须根据助记符的种类选用冒号、1 个或几个空格或制表符隔开 助记符和操作数之间必须用1 或几个空格或制表符隔开,有些指令没有操作数 注释必须用分号隔开,注释可有可无 每行必须用[CR]定界 汇编语言程序设计 符号的类型 CODE01 CSEG ; “CODE01”是一个段名 VAR01 EQU 10H ; “VAR01” 是一个(常量的)名字 LAB01: DW 0 ; “LAB01” 是一个标号 NAME SAMPLE ; “SAMPLE” 是一个模块名 MAC1 MACRO ; “MAC1”是一个宏名 汇编语言程序设计 助记符 助记符:可以是指令、伪指令或宏引用 操作数 操作数是指令、伪指令或宏引用操作的数据 根据不同的指令、伪指令或宏引用,操作数区可以有1 个或2 个操作数,也可以没有操作数,如果有两个操作数时,用逗号隔开 操作数主要类型 常数(数据和字符串常数)、 字符串、 寄存器名、 特殊字符($, #, !, and [ ])、段定义伪指令的重定位属性名、符号、表达式和位操作类型的操作数 汇编语言程序设计 二进制(后缀B或Y)、八进制(后缀O或Q)、十进制(后缀D或T,或没有后缀)、十六进制(后缀H )、ASCII 码 (使用一对单引号,例如‘a’代表65H) 特殊字符 $ :表示指令的地址(多字节指令时代表这个地址的第一个字节); 是一个分支指令的相对寻址模式 ! :表示一个分支指令的绝对寻址模式 # :表示立即数 [ ] :表示间接寻址 表达式和运算符 HIGH 运算符:返回该数据的高8位数值 LOW 运算符:返回该数据的低8位数值 MOV A,#HIGH 1234H = MOV A,#12H 汇编语言程序设计 DATAPOS 运算符:返回一个位符号的地址部分(字节地址) SYM EQU 0FE68H.6 ;用EQU定义“SYM”=0FE68H.6 MOV A,!DATAPOS SYM = MOV A, !0FE68H BITPOS 运算符:返回一个位符号的位部分(位位置) SYM EQU 0FE68H.6 CLR1 [HL].BITPOS SYM = CLR1 [H

文档评论(0)

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

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

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档