欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    指令系统及开发语言.ppt

    • 资源ID:5736182       资源大小:202.50KB        全文页数:40页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    指令系统及开发语言.ppt

    第二讲 指令系统及开发语言,主要内容:一、概述 二、指令系统 三、汇编语言程序设计举例 四、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)direct 8位直接字节地址(片内RAM和SFR空间)#data 8位立即数。#data1616位立即数。addr1616位地址值。Addr1111位地址值。rel8位带符号地址偏移量(128127)bit片内RAM和SFR中的可直接寻址位 间接寻址寄存器或基址寄存器的前缀()表示括号中的内容()表示间址寻址的内容,2、数据传送指令(1),MOVA,RnMOVA,directMOVA,RiMOVA,#dataMOVRn,AMOVRn,directMOVRn,#data,2、数据传送指令(2),MOV direct,AMOVdirect,RnMOVdirect,directMOVdirect,RiMOV direct,#dataMOV Ri,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、控制转移指令,ACALLaddr11LCALL addr16RETRETIAJMPaddr11LJMPaddr16SJMPrelJMPA+DPTR,JZrelJNZrelCJNEA,direct,relCJNEA,#data,relCJNERi,#data,relDJNZRn,relDJNZdirect,relNOP,6、位操作类指令,CLR CCLR bitSETBCSETBbitCPL CCPL bitANLC,bitANLC,/bit,ORL C,bitORL C,/bitMOV C,bitMOV bit,CJC relJNC relJB bit,relJNB bit,relJBC bit,rel,三、汇编语言程序设计举例,举例1:设计一个报警程序,要求当报警按键按下后,蜂鸣器发出报警声。设P1.0口驱动蜂鸣器 P1.1口作为报警按键输入 P1.2口驱动发光报警 接口电路设计见右图,ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HLOOP1:JBP1.1,$JNBP1.1,$LCALL SOUNDSJMPLOOP1,SOUND:MOVR7,#5SOUND1:CLRP1.0MOVR0,#20LCALL DELAYSETBP1.0MOVR0,#10LCALL DELAYDJNZR7,SOUND1RET,DELAY:MOV R1,#100;100msDELAY1:MOV R2,#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:字节寻址 比如 sfr P0=0 x80;为PO口地址为80H sfr16:字寻址,如sfr16 T2=0 xcc;指定Timer2口地址T2L=0 xcc T2H=0 xCD;sbit:位寻址,如sbit EA=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说明 例:data uar1;char code array“hello!”;unsigned char xdata arr104;,d)变量类型声明,C51提供以下几种扩展数据类型:bit:位变量值为0或1sbit:从字节中定义的位变量 0或1sfr:sfr字节地址 0255sfr16:sfr字地址 065535其余数据类型如:char,enum,short,int,long,float等与ANSI C(标准C)相同。,e)位变量与位寻址,位变量定义用bit,存储于内部RAM的20H2FH可位寻址区说明:可作如下定义:int bdata i;unsigned char bdata arr3,然后:sbit bit0i0;sbit bit15=i15;sbit arr07=arr07;sbit arr17=arr17;,f)特殊功能寄存器g)C51指针一般指针的声明与标准C的相同,不过同时还可以说明指针的类型,如:char*xdata ptr;ptr为一个指向char数据的指针,而ptr本身放于外部RAM区,以上的long,char等指针指向的数据可存放于任何存储器中。存储器指针基于存储器的指针说明时即指定了存贮类型,如:char data*str;str指向data区中char型数据int xdata*pow;pow指向外部RAM的int型整数。,h)函数属性,C51中函数的声明:普通函数的声明:uint RecOder(uchar a)uint:函数返回的值类型为uintRecOder:函数名(uchar a):括号中为对传递变量的声明中断函数的声明:void SerialISR()interrupt 4 using 1SerialISR:中断函数名interrupt 4:中断类型号,4为串口中断using 1:指定存储工作区,可缺省,由编译器指定,3、Keil C51开发软件介绍,Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,Keil C51生成的目标代码效率相当高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。,KEIL软件开发基本步骤:a)新建工程;b)选择单片机型号;c)新建工程文件,即代码,并将其添加到工程中;d)编译修改编译编译通过;e)软件调试;f)硬件调试。,4、Keil中C语言的书写风格,好的程序应该是简洁、易懂的,除了从程序的逻辑性出发,还应该形成良好的书写风格。主要有以下几个方面:1)缩进格式;2)大符号的位置,如;3)变量的命名;4)函数的命名;5)程序的分块,尽量使函数功能单一;6)添加注释。,5、C51程序示例,举例一:include sbit Led=P12;/P要大写,否则和头文件sbit Bell=P10;/中的定义不相符,编译sbit Sw1=P11;/出错void main()if(Sw1=0)/如果有按键Led=0;/亮LedBell=0;/蜂鸣器响else Led=1;/灭LedBell=1;/蜂鸣器关,举例二:将示例一中查询按键的程序放入定时中断中,每隔一定的时间都会对按键进行查询。void SysIni()TMOD=0 x02;/定时器0,工作方式2TCON=0 x00;TL0=0 x80;/定时器0装载初值TH0=0 x80;ET0=1;/开定时器中断0EA=1;/开中断TR0=1;/启动定时器0void KeyScan()interrupt 1 using 1if(Sw1=0)/如果有按键Led=0;/亮LedBell=0;/蜂鸣器响else Led=1;/灭Led Bell=1;/蜂鸣器关,

    注意事项

    本文(指令系统及开发语言.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开