- 1、本文档共139页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C8051单片机原理及应用3
第3章 51单片机编程语言 3.1 单片机编程语言概述 3.2 汇编语言 3.3 C51语言 3.1 单片机编程语言概述 51单片机的编程语言可以是汇编语言,也可以是高级语言,如由C语言演变而成的C51语言等。 汇编语言产生的目标代码短,占用的存储空间小,执行速度快,能充分发挥单片机的硬件功能。但对于复杂的应用来讲使用汇编语言编程复杂,程序的可读性和可移植性不强。 高级语言产生的目标代码长,占用的存储空间大,执行速度慢。但这是相对于汇编语言来讲的,其实C语言在大多数情况下的机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,编程效率也大大高于汇编语言。 3.1 单片机编程语言概述 如果应用系统的存储空间比较小,且对实时性的要求很高,则应选用汇编语言。如果系统的存储空间比较大,且对实时性的要求不是很高,则应选用C51语言。如果系统中有部分模块对实时性的要求很高,而其它模块对实时性的要求不是很高,则可以将两种语言结合,程序的主体部分使用C51编程,对实时性的要求高的模块用汇编语言编程,然后将汇编语言程序模块嵌入到C51语言程序当中。 无论是高级语言还是汇编语言写的源程序都必须转换成目标程序,单片机才能执行。目前很多公司都将编辑器、汇编器、编译器、连接/定位器、符号转换程序做成了软件包,称为集成开发环境,如Keil uVision、Silicon Laboratories IDE等。 3.2 汇编语言 3.2.1 汇编语言的伪指令 用汇编语言写的源程序必须翻译成机器语言程序,计算机才能执行。这个翻译过程称为汇编。汇编有手工汇编和机器汇编两种方式。 当使用机器汇编时,必须为汇编程序提供一些信息,如哪些是指令,哪些是数据;数据是字节还是字;程序的起始点和结束点在哪里等等。这些控制汇编的指令称为伪指令,伪指令不是控制计算机执行操作的指令,仅仅是在机器汇编时为汇编程序提供必要的信息。因此,汇编时伪指令并不产生供机器直接执行的机器码。 3.2.1 汇编指令(1) ORG m m一般为十进制或十六进制数表示的16位地址,用来指定该伪指令后指令的汇编地址。 允许使用多条定位伪指令,但其值不应和前面生成的机器指令存放地址重叠。 例3.1 ORG 0000H START:SJMP MAIN … ORG 0030H MAIN: MOV SP,# 30H … 3.2.1 汇编指令(2) END 必须放在源程序末尾。汇编时遇到END就认为源程序已结束,对END后面的指令不再汇编。一个源程序只能有一个END。 标号:DB x1, x2, …, xn DB(Define Byte)将其右边的数据依次存放到标号为起始地址的存储单元中,xi为字节数据,位二、十、十六进制和ASCII码等多种表示形式。DB通常用于定义一个常数表。 例3.2 ORG 7F00H TAB: DB ,16H,45,‘8’,‘A’ 汇编后存贮单元内容为: (7F00H)= 72H、(7F01H)= 16H、(7F02H)= 2DH (7F03H)= 38H、(7F04H)= 41H 3.2.1 汇编指令(3) 标号:DW Y1,Y2,…,Yn 定义字伪指令DW(Define Word)的功能与DB类似,但DW定义的是一个字(2个字节),主要用于定义16位地址表(高8位在前,低8位在后)。 例3.3 ORG 6000H TAB: DW 1254H,32H,161 汇编后存贮单元内容为: (6000H)= 12H (6001H)= 54H (6002H)= 00H (6003H)= 32H (6004H)= 00H (6005H)= 0A1H 3.2.1 汇编指令(4) 标号:DS 数值表达式 从指定的地址开始,保留若干字节的内存空间作为备用。汇编后,将根据表达式的值决定从指定地址开始留出多少个字节空间,表达式也可以是一个指定的数值。 例3.4 ORG 0F00H DS 10H DB 20H,40H 汇编后,从0F00H开始,保留16个字节的内存单元,然后从0F10H开始,按照下一条DB伪指令给内存单元赋值,即(0F10H)= 20H,(0F11H)= 40H。 3.2.1 汇编指令(5) 字符名称 EQU 数据或汇编符 “字符名称”被赋值后,在程序中就可以作为一个8位或16位的数据或地址或汇编符来使用。通常等值伪指令放在源程序的开头。先定义后使用。 例3.5 ORG 8500H AA EQU R1 A10 EQU 10H DELAY EQU 87E6H MOV
您可能关注的文档
- 3 工程投招标.pptx
- 3-1《伟大的历史转折》课件2.ppt
- 26运用QC方法创建节能型工地.ppt
- 3.1 教科版五年级科学下册《时间在流逝》.ppt
- 3.2旅游规划.ppt
- 3.28高中化学培训.ppt
- 3.定时器计数器.ppt
- 3.2016年人教版语文一年级bpmf课件.ppt
- 3.第三章-企业法律制度.pptx
- 3.7家长会课件ppt.ppt
- 2022年规范公文的工作总结.doc
- 2022年大学统计学专业大学物理二期中考试试题-附答案.doc
- 池州项目可行性研究报告(项目申请模板) .pdf
- 江苏省扬州中学2023-2024学年高一上学期期中化学试题(含答案).pdf
- 沪科版八年级物理下册一课一练10.6合理利用机械能(,含答案解析.pdf
- 水泵大修工作总结报告(共10篇) .pdf
- 沪科版物理九年级上第十三章第四节热机效率和环境保护(教案).pdf
- 江西省高安市2023-2024学年七年级上学期期中数学试题(含答案解析).pdf
- 江西省宜春市2020-2021学年小升初数学试卷D卷 .pdf
- 江西省南昌市2020版九年级上学期化学期中考试试卷C卷 .pdf
文档评论(0)