《单片机原理及应用》项目三-MCS–51程序设计-交通信号灯模拟系统设计课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《单片机原理及应用》项目三-MCS–51程序设计-交通信号灯模拟系统设计课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用 单片机 原理 应用 项目 MCS 51 程序设计 交通 信号灯 模拟 系统 设计 课件
- 资源描述:
-
1、单片机原理及应用技术MCS51程序设计交通信号灯模拟系统设计Project3 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门任务1MCS-51指令系统入门4 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门指令系统概述one由于单片机的硬件只能识别二进制数,因此最初的指令采用二进制表示,后来用八进制和十六进制表示,这些都称为。为了便于阅读和书写,一些厂商根据指令功能和操作对象的不同,给出不同指令的英文缩写符号,称为。用助记符表示的指令称为汇编语言指令。我们将要学习的就是这种指令,需要注意的是,。指令是,一个称为这个单片机的指令系
2、统。单片机的指令系统由其生产厂商定义,因此,不同的单片机具有不同的指令系统。5 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门指令格式two一条指令通常由和两部分组成。,。指令格式如下:操作码 操作数1,操作数2,操作数3。操作码一般使用表示,如JC,MOV,SUBB等。在不同的指令中,操作数的数量从03个不同。它可以是一个数据,也可以是一个地址或寄存器符号。6 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门指令格式two在MCS-51系统中采用,对于不同类型的指令,或者相同指令的操作数类型不同,其长度是可变的,因此,。大部分
3、指令的长度为13个字节。对于双操作数指令来说,一般操作数1是目的操作数,操作数2是源操作数。采用RISC的单片机,每条指令的长度相同,如ARM芯片全部指令都是32位的。7 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门指令中常用符号three符号含义A累加器ACCB寄存器BRi寄存器间接寻址的寄存器(i=0或1)Rn当前工作寄存器R0R7的一个bit具有位寻址功能的位地址rel用补码形式表示的偏移量,范围为 128+127#data指令中的8位立即数,即00HFFH#data16指令中的16位立即数,即0000HFFFFHaddr1111位的目的地址,只限于A
4、CALL和AJMP中使用addr1616位的目的地址,只限于LCALL和LJMP中使用direct8位片内RAM的00H7FH地址范围和SFRMCS-51系列单片机指令中常用助记符及含义8 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门符号含义(X)X的内容(X)以X的内容为地址的内容/加在位地址之前,表示对该位取反#立即数前缀间址寄存器前缀程序计数器PC的当前值箭头右面的数据传送到箭头左面逻辑与运算逻辑或运算逻辑异或运算DPTR16位片外数据指针,范围为0000HFFFFH续上表9 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统
5、入门指令分类four共有111条指令,可分为以下5大类。数据传送类指令(29条)算数运算类指令(24条)逻辑运算类指令与位移指令(24条)控制转移类指令(17条)位操作指令(17条)10 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门寻址方式five大部分指令都需要使用操作数,在执行指令过程中,去何处取得操作数是需要解决的问题,就称为寻址方式。源操作数和目的操作数都存在寻址问题。在MCS-51系列单片机中设有7种寻址方式,即、和。寻址方式越丰富,。11 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门寻址方式相应寻址空间立即寻址
6、程序存储器ROM直接寻址片内RAM寄存器寻址R0R7、A、B、DPTR等寄存器间接寻址片内RAM中00H7FH区间及片外RAM变址寻址程序存储器ROM相对寻址以当前PC值为基址,偏移范围128+127字节的ROM位寻址片内RAM位寻址区202FH及部分SFR寻址方式的设定与有关,MCS-51单片机不同寻址方式对应不同的寻址空间,如表所示。MCS-51系列单片机寻址方式所对应寻址空间12 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门1)立即寻址立即寻址是指。这种形式的操作数称为。为了与直接寻址指令中的直接地址相区别,立即数前面要加“”标志。【例3-1】编号汇编
7、语言指令机器语言指令功能aMOV A,#40H7440H(A)40HbMOV DPTR,#4000H904000H(DPTR)4000H立即寻址方式如表所示:MCS-51指令表中可以查到指令a的机器码为74H data,指令b的机器码为90H data。13 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门项目三寻址方式的例子中均假设PC初值为40H,如图所示:A4074ROMPC 40HDPTR0040ROM90DPHDPLPC 40H立即数是指令的一部分,存放在程序存储器ROM中。在8051单片机的指令系统中,仅有一条指令MOV DPTR,#X的操作数是16
8、位的立即数。(a)MOV A,#40H(b)MOV DPTR,#4000H14 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门2 直接寻址直接寻址是指的寻址方式。指令中出现的是操作数的地址(指令表中以“”标识),此单元地址中的内容才是实际参与运算或操作的操作数。在8051系列单片机中,。【例3-2】编号编号汇编语言指令汇编语言指令机器语言机器语言指令功能指令功能aMOV A,60HE560H(A)(60H)bMOV A,88HE588H(A)(88H)cMOV A,TCONE588H(A)(88H)编号汇编语言指令机器语言指令功能直接寻址方式如表所示:15 项
9、目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门在项目二中,我们知道定时器控制字TCON的地址是88H单元。所以编号b和编号c两条指令的表述是等价的,翻译为机器指令后是相同的。自然,。XX片内RAM60H41HAPC 40HROM60E5 88H TCONSFR41HPC 40HROM88E5A(a)MOV A,60H(b)MOV A,88H/MOV A,CON直接寻址方式具体操作如图所示:对于SFR,可以采用16进制的地址形式表示,也可以用它们各自的名称符号来表示,以增强程序的可读性。16 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令
10、系统入门3 寄存器寻址寄存器寻址是指的寻址方式。指令中用寄存器的名字来表示实际参与运算或操作的操作数的地址。这些寄存器有等。【例3-3】寄存器寻址方式如表所示:编号编号汇编语言指令汇编语言指令机器语言机器语言指令功能指令功能aMOV A,R011101000(E8H)(A)(R0)bINC R300001011(0BH)(R3)(R3)+117 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门指令a(MOV A,R0)中,目的操作数与源操作数均采用寄存器寻址方式,;。指令a的具体操作如图所示,指令b的原理相同:XXPC 40HROM11101000AR1 001
11、R0 000R7 111寄存器寻址示意图18 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门4 寄存器间寻址寄存器间接寻址是指的寻址方式。寄存器中存放的不是操作数本身,而是。寄存器Ri(i=0或1)和DPTR用于寄存器间接寻址。采用寄存器间址寻址方式时,在寄存器前加“”符号,以便区分于寄存器寻址方式。对片内RAM的低128个字节(007FH)进行访问时,通常。通过项目一的学习我们知道,寻址范围可以。对片外RAM的64K存储空间进行访问时,应该使用DPTR作为间址寄存器。DPTR是一个16位寄存器,寻址范围可以达到64K。19 项目三 MCS51程序设计交通信号
12、灯模拟系统设计任务一 MCS-51指令系统入门【例3-4】编号编号汇编语言指令汇编语言指令机器语言机器语言指令功能指令功能aMOV A,R111100111(E7H)(A)(R1)bMOVX A,DPTR11100000(E0H)(A)(DPTR)寄存器间址寻址方式如表所示:两条指令寻址过程类似,这里只以其中一条为例。假设R1中内容为60H,指令a的具体操作如图所示:寄存器间接寻址示意图PC 40HROM1110011160R1A60H片内RAMXX不能通过寄存器间接寻址方式访问特殊功能寄存器SFR。20 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门5 变址
13、寻址变址寻址方式是指后,才能得到真正的操作数地址的寻址方式。在MCS-51系列单片机中,数据指针DPTR和程序计数器PC作为基址寄存器,累加器A用来存放地址偏移量。【例3-5】变址寻址方式如表所示:编号编号汇编语言指令汇编语言指令机器语言机器语言指令功能指令功能aMOVC A,A+PC83H(A)(A)+(PC)bMOVXC A,A+DPTR93H(A)(A)+(DPTR)cJMP A+DPTR73H(PC)(A)+(DPTR)在MCS-51系统中变址寻址的指令只有上表中的3条,只用来对ROM寻址。前2条指令主要用于查表操作,第3条是无条件转移指令。PC的值是随程序的执行情况自动改变的,我们不
14、可以随便地给PC赋值,累加器A是一个8位的寄存器,因此指令a的寻址范围是在当前指令下的256个地址单元。21 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门当前PC的内容为40H,CPU到40H单元取出指令83H后,将PC中的内容0040H与A中内容20H送ALU相加(同时PC指向下一条将要执行的指令),相加得到的结果60H即为我们所要寻找的操作数的地址。随后,60H地址单元的内容被送往累加器A,整条指令完成。我们假设累加器A的内容为20H,指令a的具体操作如图所示:寄存器寻址示意图XX 60H83HPCA0040H 40HROM20HALU22 项目三 MC
15、S51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门6 相对寻址相对寻址是指以当前PC内容加上指令中给出的相对偏移量形成程序转移的目的地址的寻址方式。这种寻址方式专为实现程序的跳转功能而设计。指令的操作数部分给出的是地址的相对偏移量,在MCS-51系列单片机中常以“rel”表示。它是一个带符号的8位二进制补码数,可正可负,范围是128+127,向地址小的方向转移时为负,向地址大的方向转移时为正。【例3-6】编号汇编语言指令机器语言指令功能aSJMP 04H8004H(PC)(PC)+2+04HbJZ rel60 rel若A0时,(PC)(PC)+2若A=0时,(PC)(PC)+
16、2+rel相对寻址方式如表所示:23 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门在指令a中,我们可以看到,。需要注意的是,这里所说的PC的当前值是指执行完本条转移指令后的PC值,即PC值加上该指令字节数2。指令b是一条,以累加器A的内容是否为0作为判断条件。为了方便区分,这里将PC的源地址记作PC源,取出本条指令后PC的值记为PC当前,最后形成的目的地址记为PC目的。指令a的具体操作如图所示:相对寻址示意图我们人工计算目的地址时,会采用公式PC目的=PC源+指令所占字节数+rel。从图3-6中可知,实际上CPU在取出2个字节的指令码后,PC指针已经指向了P
17、C当前的位置,因此,在机器运算中PC目的是由PC当前和rel直接相加得到的。rel=04HPC当前=0042HPC目的 0046HPC当前 0042H0041HPC源 0040H0480ROMALU24 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门7 位寻址位寻址是指,指令表中以“bit”表示。在进行位操作处理时,一般借助进位位Cy作为位操作累加器C。MCS-51系列芯片中有以下两个位寻址区。分布在RAM的80FFH地址单元,它们的地址单元均能被8整除。具体分布情况参见表2-4。地址范围是202FH,共128位,每一位都可以作为独立操作数。具体分布情况参见表
18、2-3。25 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门(1)直接用物理地址00HFFH来表示中有以下四种位地址表示方式:【例3-7】MOV C,2BH指令含义是。2BH是位地址的物理形式,表示片内RAM25H单元的D3位。位寻址方式是位操作指令专用的,不必担心位地址会与直接寻址中的地址混淆。26 项目三 MCS51程序设计交通信号灯模拟系统设计任务一 MCS-51指令系统入门(2)采用地址单元加位数的表示方法。上面的指令可以改写为:MOV C,2BH.3(3)对于SFR可以采用寄存器名加位数的表示方法。(4)采用伪指令定义方式。详见任务三汇编语言程序设计
19、基础中的伪指令部分。【例3-8】MOV C,P3.4,指令含义是将并行接口P3口的D4位内容送Cy。27 项目三 MCS51程序设计交通信号灯模拟系统设计任务二 指令系统任务2指令系统28 项目三 MCS51程序设计交通信号灯模拟系统设计任务二 指令系统数据传送类指令one根据这些指令作用的不同,将其分为内部、和5类。“”是指将源地址单元内容送到目的单元中去,数据传送后,源地址单元内容保持不变;“”是指将源地址单元内容和目的地址单元内容互换。数据传送类指令中,。其他情况不影响标志位。数据传送类指令是编程时使用最多的指令。MCS-51系列单片机数据传送指令共有29条,用到的助记符有和共8种。29
20、 项目三 MCS51程序设计交通信号灯模拟系统设计任务二 指令系统1 内部数据传送指令内部数据传送指令共16条,助记符均为“MOV”,英文为“Move”。(1)以累加器A为目的操作数的传送指令编号编号指令格式指令格式机器语言机器语言指令功能指令功能字节数字节数指令周期数指令周期数aMOV A,RnE8EF(A)(Rn)11bMOV A,directE5 direct(A)(direct)21cMOV A,RiE6E7(A)(Ri)11dMOV A,#data74 data(A)data2130 项目三 MCS51程序设计交通信号灯模拟系统设计任务二 指令系统和源操作数分别采用和方式。由指令的机
21、器语言形式可以看出,这两条指令占用字节数较少,都为1字节;和分别采用和方式,两条指令都占2个字节数。指令a中,n=07,机器语言E8EF分别对应源操作数为R0R7的指令;指令c中,i=0或1,机器语言E6E7对应源操作数为R0和R1的指令。31 项目三 MCS51程序设计交通信号灯模拟系统设计任务二 指令系统【例3-9】以累加器A为目的操作数的传送指令示例;将工作寄存器R3内容送A,A中内容保持不变MOVA,R3;将30H地址单元的内容送A,30H地址单元的内容保持不变MOVA,40H;以R0的内容为地址,将找到的地址单元中的内容送A。该地址单元的内容及R0的内容均保持不变MOVA,R0;将立
22、即数66H送A,本条指令执行完成后,A中内容为66HMOVA,#66H32 项目三 MCS51程序设计交通信号灯模拟系统设计任务二 指令系统(2)以寄存器Rn和DPTR为目的操作数的传送指令编号编号指令格式指令格式机器语言机器语言指令功能指令功能字节数字节数指令周期数指令周期数aMOV Rn,#data787F data(Rn)data21bMOV Rn,directA8AF direct(Rn)(direct)22cMOV Rn,AF8FF(Rn)(A)11dMOV DPTR,#data1690 dataH dataL(DPH)dataH(DPL)dataL32以寄存器Rn为目的操作数的传送
23、指令共3条,以操作数为DPTR的指令有1条。4条指令如表所示。33 项目三 MCS51程序设计交通信号灯模拟系统设计任务二 指令系统、和中源操作数分别采用、和方式。这3条指令的功能是将最终获得的8位数据送当前工作寄存器Rn。【例3-10】以寄存器Rn为目的操作数的传送指令示例;将立即数68H送R0,指令执行完成后,R0中内容为68HMOV R0,#68H;将40H地址单元的内容送R1,40H地址单元的内容保持不变MOVR1,40H;将累加器A中内容送R2,A中内容保持不变MOVR2,A工作寄存器Rn之间不能直接传送数据,如“MOV Rn,Rn”和“MOV Rn,Rn”都是错误的。要在工作寄存器
24、之间传递数据,可以由累加器A作为中介。34 项目三 MCS51程序设计交通信号灯模拟系统设计任务二 指令系统。它的功能是将16位的立即数#data16送数据指针DPTR,其中高8位dataH送DPH,低8位dataL送DPL。【例3-11】三字节双周期指令示例MOVDPTR,#2046H;将16位的立即数送DPTR。MOVDPH,#20H;数据的高8位20H送DPH。MOVDPL,#46H;数据的低8位46H送DPL。实际上,本条指令的执行过程相当于执行以下两条8位数据传送指令。35 项目三 MCS51程序设计交通信号灯模拟系统设计任务二 指令系统(3)以直接地址direct为目的操作数的传送
25、指令编号编号指令格式指令格式机器语言机器语言指令功能指令功能字节数字节数指令周期数指令周期数aMOV direct,#data75 direct data(direct)data32bMOV direct,AF5 direct(direct)(A)21cMOV direct,Rn888F direct(direct)(Rn)22dMOV direct,Ri8687 direct(direct)(Ri)22eMOV direct1,direct285 direct1,direct2(direct1)(direct2)32以直接地址direct为目的操作数的传送指令共5条,这里需要注意的是。5条指
展开阅读全文