已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二讲指令系统及开发语言,主要内容:一、概述二、指令系统三、汇编语言程序设计举例四、C51程序设计举例,一、指令系统概述,1、指令分类MCS-51系列单片机共有111条指令按功能可分成5类指令:数据传送指令(29条)算术运算指令(24条)逻辑运算指令(24条)控制转移指令(17条)位操作类指令(17条),1)指令执行时间快单周期指令65条(1us,12MHz晶振)双周期指令44条(2us,12MHz晶振)四周期指令2条(4us,12MHz晶振)2)指令短单字节指令49条双字节指令46条三字节指令16条3)单指令实现字节相乘或相除运算4)具有丰富的位操作类指令,2、指令特点,3、寻址方式,7种寻址方式:立即寻址直接寻址寄存器寻址寄存器间接寻址相对寻址变址寻址位寻址,二、51单片机指令系统介绍,1、指令中常用符号说明2、数据传送指令3、算术运算指令4、逻辑运算指令5、控制转移指令6、位操作类指令,1、指令中常用符号说明,Rn当前寄存器区的RoR7(其中n07)Ri当前寄存器区中的R0和R1(其中i0,1)direct8位直接字节地址(片内RAM和SFR空间)#data8位立即数。#data1616位立即数。addr1616位地址值。Addr1111位地址值。rel8位带符号地址偏移量(128127)bit片内RAM和SFR中的可直接寻址位间接寻址寄存器或基址寄存器的前缀()表示括号中的内容()表示间址寻址的内容,2、数据传送指令(1),MOVA,RnMOVA,directMOVA,RiMOVA,#dataMOVRn,AMOVRn,directMOVRn,#data,2、数据传送指令(2),MOVdirect,AMOVdirect,RnMOVdirect,directMOVdirect,RiMOVdirect,#dataMOVRi,AMOVRi,direct,MOVDPTR,#data16MOVCA,A+DPTRMOVCA,A+PCMOVXA,RiMOVXA,DPTRMOVXRi,AMOVXDPTR,A,2、数据传送指令(3),PUSHdirectPOPdirectXCHA,RnXCHA,directXCHA,RiXCHDA,RiSWAPA,2、数据传送指令(4),3、算术运算指令,ADDA,RnADDA,directADDA,RiADDA,#dataADDCA,RnADDCA,direct,ADDCA,RiADDCA,#dataSUBBA,RnSUBBA,directSUBBA,RiSUBBA,#data,INCAINCRnINCRiDECADECRn,DECdirectDECRiINCDPTRMULABDIVABDAA,4、逻辑运算指令,ANLA,RnANLA,directANLA,RiANLA,#dataANLdirect,AANLdirect,#data,ORLA,RnORLA,directORLA,RiORLA,#dataORLdirect,AORLdirect,#data,XRLA,RnXRLA,RiXRLA,#dataXRLdirect,AXRLdirect,#data,CLRACPLARLARLCARRARRCA,5、控制转移指令,ACALLaddr11LCALLaddr16RETRETIAJMPaddr11LJMPaddr16SJMPrelJMPA+DPTR,JZrelJNZrelCJNEA,direct,relCJNEA,#data,relCJNERi,#data,relDJNZRn,relDJNZdirect,relNOP,6、位操作类指令,CLRCCLRbitSETBCSETBbitCPLCCPLbitANLC,bitANLC,/bit,ORLC,bitORLC,/bitMOVC,bitMOVbit,CJCrelJNCrelJBbit,relJNBbit,relJBCbit,rel,三、汇编语言程序设计举例,举例1:设计一个报警程序,要求当报警按键按下后,蜂鸣器发出报警声。设P1.0口驱动蜂鸣器P1.1口作为报警按键输入P1.2口驱动发光报警接口电路设计见右图,ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HLOOP1:JBP1.1,$JNBP1.1,$LCALLSOUNDSJMPLOOP1,SOUND:MOVR7,#5SOUND1:CLRP1.0MOVR0,#20LCALLDELAYSETBP1.0MOVR0,#10LCALLDELAYDJNZR7,SOUND1RET,DELAY:MOVR1,#100;100msDELAY1:MOVR2,#200;1msDELAY2:NOPNOPNOPDJNZR2,DELAY2DJNZR1,DELAY1DJNZR0,DELAYRET,四、C51程序设计举例,1、C51是专用于51单片机硬件开发的C语言。2、C51与标准C的区别,大致可分为8类:a)8051存储类型及存储区域;b)存储模式;c)存储器类型声明;d)变量类型声明;e)位变量与位寻址;f)特殊功能寄存器;g)C51指针;h)函数属性。,a)存储类型及存储区域code:程序存储区内部数据存储区:data:直接寻址区,内部RAM低128位(00H7FH)idata:间接寻址区,整个内部RAM(00HFFH)bdata:可位寻址区(20H2FH)外部数据存储区:xdata:可指定64K外部RAM(0000H0FFFFH)pdata:能访问1页(256Byte)的外部RAM特殊功能寄存器:sfr:字节寻址比如sfrP0=0 x80;为PO口地址为80Hsfr16:字寻址,如sfr16T2=0 xcc;指定Timer2口地址T2L=0 xccT2H=0 xCD;sbit:位寻址,如sbitEA=0 xAF,b)存储模式,存储模式决定了没有明确指定存储类型的变量,函数参数等的缺省存储区域,共三种(在C51编译器选项中选择):Small模式所有缺省变量参数均装入内部RAM,优点是访问速度快,缺点是空间有限,只适用于小程序。Compact模式所有缺省变量均位于外部RAM区的一页(256Bytes),具体哪一页可由P2口指定,在STARTUP.A51文件中说明,也可用pdata指定,优点是空间较Small宽裕,速度较Small慢,较large要快,是一种中间状态。Large模式所有缺省变量可放在多达64KB的外部RAM区,优点是空间大,可存变量多,缺点是速度较慢。,C)存储器类型声明,变量或参数的存储类型可由存储模式指定缺省类型,也可由关键字直接声明指定。各类型分别用:code,data,idata,xdata,pdata说明例:datauar1;charcodearray“hello!”;unsignedcharxdataarr104;,d)变量类型声明,C51提供以下几种扩展数据类型:bit:位变量值为0或1sbit:从字节中定义的位变量0或1sfr:sfr字节地址0255sfr16:sfr字地址065535其余数据类型如:char,enum,short,int,long,float等与ANSIC(标准C)相同。,e)位变量与位寻址,位变量定义用bit,存储于内部RAM的20H2FH可位寻址区说明:可作如下定义:intbdatai;unsignedcharbdataarr3,然后:sbitbit0i0;sbitbit15=i15;sbitarr07=arr07;sbitarr17=arr17;,f)特殊功能寄存器g)C51指针一般指针的声明与标准C的相同,不过同时还可以说明指针的类型,如:char*xdataptr;ptr为一个指向char数据的指针,而ptr本身放于外部RAM区,以上的long,char等指针指向的数据可存放于任何存储器中。存储器指针基于存储器的指针说明时即指定了存贮类型,如:chardata*str;str指向data区中char型数据intxdata*pow;pow指向外部RAM的int型整数。,h)函数属性,C51中函数的声明:普通函数的声明:uintRecOder(uchara)uint:函数返回的值类型为uintRecOder:函数名(uchara):括号中为对传递变量的声明中断函数的声明:voidSerialISR()interrupt4using1SerialISR:中断函数名interrupt4:中断类型号,4为串口中断using1:指定存储工作区,可缺省,由编译器指定,3、KeilC51开发软件介绍,KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM语言和C语言的程序设计,界面友好,易学易用。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,KeilC51生成的目标代码效率相当高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。,KEIL软件开发基本步骤:a)新建工程;b)选择单片机型号;c)新建工程文件,即代码,并将其添加到工程中;d)编译修改编译编译通过;e)软件调试;f)硬件调试。,4、Keil中C语言的书写风格,好的程序应该是简洁、易懂的,除了从程序的逻辑性出发,还应该形成良好的书写风格。主要有以下几个方面:1)缩进格式;2)大符号的位置,如;3)变量的命名;4)函数的命名;5)程序的分块,尽量使函数功能单一;6)添加注释。,5、C51程序示例,举例一:includesbitLed=P12;/P要大写,否则和头文件sbitBell=P10;/中的定义不相符,编译sbitSw1=P11;/出错voidmain()if(Sw1=0)/如果有按键Led=0;/亮LedBell=0;/蜂鸣器响elseLed=1;/灭LedBell=1;/蜂鸣器关,举例二:将示例一中查询按键的程序放入定时中断中,每
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东省乐陵市高三数学下册期末考试模拟测试卷附参考答案(夺分金卷)
- 2026年江苏省溧阳市高三数学下册期末考试模拟检测卷带答案(综合卷)
- 2026年山东省栖霞市高三数学下册期末考试模拟测试卷附答案【轻巧夺冠】
- 2026年湖南省汨罗市高三数学下册期末考试模拟考试卷【含答案】
- 2026年云南省泸水市高三数学下册期末考试模拟卷带答案
- 2026年浙江省奉化市高三数学下册期末考试模拟试卷附答案(能力提升)
- 2026年湖北省汉川市高三数学下册期末考试模拟卷附参考答案【考试直接用】
- 化妆品研发部美妆产品研发与质量管控绩效考评表
- 通信公司5G研发工程师技术创新能力KPI考核表
- 文化娱乐公司项目负责人绩效评定表
- 红色管理课件
- 装配钳工试题题库及答案
- GB/T 45602-2025船舶与海洋技术可调式滚轮闸刀掣链器
- 2025年康复治疗师职业资格考试试题及答案
- 2025水土保持监测技术规范
- 2.2.1不等式及其性质 高一数学(人教B版2019必修第一册)
- 双峰驼血浆外泌体的分离鉴定及其差异miRNA生物信息学分析
- 中建龙门吊安拆专项施工方案
- DB15T3644-2024 国有企业阳光采购规范
- 大型健康科普活动方案设计
- 低压带电作业安全措施工作注意事项
评论
0/150
提交评论