C3 MCS-51系列单片机的指令系统和汇编语言程序示例.ppt

C3 MCS-51系列单片机的指令系统和汇编语言程序示例.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C3 MCS-51系列单片机的指令系统和汇编语言程序示例

* 例3-16 设计有256路分支出口的转移地址,要转移到某分支的信息存放在R2中。 ORG 30H JUMP: MOV DPTR, #TAB MOV A, R2 CLR C RLC A JNC LOW INC DPH LOW:MOV R3,A MOVC A, @A+DPTR PUSH A MOV A, R3 INC A MOVC A, @A+DPTR PUSH A RET DW ADR00, ADR01, ADR02, …, ADR0FFH TAB: * 3.12 延时程序 设计一延时子程序,延时时间为1ms。(设晶振为12MHZ) DELAY1:MOV R1,#0AH ;1 DL2: MOV R2,#18H ;1 DL1: NOP ;1 NOP ;1 DJNZ R2,DL1 ;2 DJNZ R1,DL2 ;2 RET 延时时间={1+[1+(1+1+2)?24+2]?10+2} ?1?s = 993 ?s =0.993ms * 3.13 定时器/计数器应用程序 例3-9 要求利用单片机内部的定时器/计数器,达到1min延时。(12MHz系统晶振) 分析:1min(60×106μs)延时,显然用一个定时器/计数器(65536μs)不行,因用T0作定时(定时1ms)不发生中断, T1计数60000次(60000×1ms=1min)发生中断,因此要对T0 、T1相应的SFR进行设置。 * 方式控制字(TMOD) T0不用门控,方式1定时;T1不用门控,方式1计数,则(TMOD) 16位计数器的初值确定 T1 = 216-x2 = 65536 -x2 = 60000 x1=64536=FC18H, x2=5536=15A0H TH0=0FCH, TL0=18H TH1=15H, TL1=0A0H * 确定控制寄存器TCON TR0=1 TR1=1 中断允许控制寄存器IE EA=1 ET1=1 即 IE=88H 中断入口地址:001BH * 3.14 外部中断应用程序 例 3-21 某工业监控系统,具有温度、压力、PH值等多路监控功能。在PH7时将向CPU申请中断,CPU响应后令P3.0引脚输出高电平,经驱动,使加碱管道电磁阀接通1s,以调整PH值。(0003H是 INT0的中断入口地址) * * 温度1超限? 压力超限? PH超限? 温度2超限? 中断返回 中断子程序散转框图 转温超1服务程序 转温超2服务程序 转压超服务程序 转PH超服务程序 PH超限服务程序框图 保护现场 中断返回 加碱1s 撤除中断 恢复现场 * 习题 请写出例3-3的程序流程框图,并简述程序执行过程。 如果系统的晶振频率为6MHz, 求子程序DELAY的延时时间。 DELAY: MOV R2,#0FAH MOV R3,#0FAH L2: DJNZ R3,L2 DJNZ R2,L2 RET * 习题 如何用一条指令实现下面的功能。 MOV DPTR, #1234H PUSH DPL PUSH DPH RET 画出例3-19的程序流程框图及中断服务子程序框图。 * * 作业 P9:1 END 基本地址寄存器:PC DPTR 变址寄存器:A * * 例3.20 编制程序段,将片内RAM中30H、31H、32H中的3个无符号数相加,并将和送入40H单元。设和不超过FFH。 MOV R2, #3 MOV R0, #30H CLR A LOOP: ADD A, @R0 INC R0 DJNZ R2, LOOP MOV 40H, A * 3.子程序调用及返回指令 (1)子程序调用指令 绝对调子指令 ACALL addr11 ;(PC)←(PC)+2 ;(SP)←(SP)+1, ((SP))←(PC7~0) ;(SP)←(SP)+1, ((SP))←(PC15~8) ;(PC10~0)←addr11 寻址范围:2KB * 例3.21 指令ACALL M1在程序存储器中

文档评论(0)

asd522513656 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档