- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6 编程
东南大学机电控制教研室 MCS-51单片机编程 From Asm51 to C 汇编语言程序设计 模块化编程 提高效率、代码重用、简化调试 汇编语言程序的组成 指令、伪指令、控制 伪指令 应用举例 模块化编程 汇编语言程序的组成 机器指令(machine instruction) 单片机全体指令的集合,形成可执行机器码 伪指令(assembler directives) 定义程序结构、符号(变量、地址),非执行语句 控制( assembler controls) 控制汇编模式、汇编流程(代码生成) 如 IF … ELSEIF … 汇编语言程序的层次结构 段—— 代码块或数据块(存储器区) 绝对段——无名、不可重定位 相对段——命名、可重定位、同名子段连接时合并 模块 若干段构成,文本文件,独立汇编形成目标码 程序 连接所有的段,定位,生成映象文件和机器码 MCS-51存储器映象 存储结构与段属性 编写程序 语句格式及注解 [label:] mnemonic [operand][,operand][,operand] [;comment] 变量及标号、立即数、保留字限制 预定义变量的例子 NUMBER_FIVE EQU 5 程序标号 CHK_Here: DJNZ R0, CHK_Here 表达式(+,-,*,/,MOD 等) 例:MOV R0,#(NUMBER_FIVE + 1) 常用伪指令 SEGMENT SegName SEGMENT Class [reloctype] [alloctype] Class DATA, BIT, IDATA,XDATA RSEG 将已定义段说明为相对段,例 (1) MYPROG SEGMENT CODE RSEG MYPROG (2) STACK SEGMENT IDATA RSEG STACK DS 10h 设置堆栈的语句 MOV SP, #STACK-1 AT 定义绝对段的起始地址,例如 CSEG AT 0 BSEG CSEG DSEG ISEG XSEG 定义绝对段 变量定义 EQU SET 例 NUM_OF_CNT EQU 12 例 TMP SET 7 BIT CODE DATA IDATA XDATA 存储器初始化 DB DW 保留存储(段)空间 DBIT DS 例 mybits: DBIT 3 ; 保留三位 例 mybits: DS 4 ; 保留四个字节 连接控制 PUBLIC EXTRN NAME 例 PUBLIC v1,v2,func1,func2 EXTRN class:Type(v1,v2,func1,func2) NAME 指定模块名,缺省的模块名即源文件名 地址控制 ORG 代码起点地址,可多处使用 例 ORG 1000 USING 选寄存器组 0-3 例 USIG 1 PUSH PSW MOV PSW,#(2 SHL 3) … POP PSW 其它 END 应用举例——排序 为什么使用C C51编程 存储模式 SMALL 所有变量在内部RAM; COMPACK 变量可扩展到ERAM的一页内;MOVX A,@Ri LARGE 64K 的 ERAM; 数据类型与存储区域 从ANSI 标准C的基础上,通过在变量的说明中加补充字段,定位存储区域;增加位变量支持,充分发挥MCS-51的特色; 从ASM51角度看,增加了数据类型:signed / unsigned, long ,float等; C51数据类型及应用举例 C51数据类型及取值范围 位变量(sbit)说明 特殊功能寄存器 C51的保留字 C51函数的参数传递与返回值 中断函数的定义及说明 * *
文档评论(0)