单片机原理与实践指导 第2版教学参考.pdf

单片机原理与实践指导 第2版教学参考.pdf

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1 章 内部结构与系统结构 例1-1:P1 口用作控制口,某时刻需要将P1.0 和P1.6 设置为低电平(清0 ),P1.5 设置 为高电平(置1),其它引脚的电平不变,给出程序指令。 解:除了P1.0、P1.5、P1.6 这3 个引脚外,其它引脚电平保持不变,需要将端口的输出 读回CPU,然后将P1.0 和P1.6 两位清零,P1.5 置 1。将P1 口的读回值和二进制 (BEH )进行与运算,结果是二进制数x0xxxxx0 ,x 表示二进制“0”或“1”;再将x0xxxxx0 和二进制 (20H )进行或运算,结果是二进制数x01xxxx0 ;将x01xxxx0 重新传 送给P1 口,就实现了将P1.0 和P1.6 清零、P1.5 置1 的要求。汇编语言指令如下: MOV A,#0BEH ;将立即数0BEH 传送到累加器A 。 ANL A,P1 ;“ANL”是“与”指令,将P1 口锁存器的值与A 的值相“与” 。 ORL A,#20H ;“ORL”是“或”指令,将A 中的数据与立即数20H 相“或” 。 MOV P1,A ;将A 中的数传送给P1 口。 例1-2:在对两个操作数进行求和运算时,首先需要将被加数传送到A 中,这一操作使 用内部数据传送指令“MOV”来完成;求和运算使用不带进位位的加法指令“ADD” 。例如, 求单片机内部数据存储器(RAM )30H 单元中的操作数x 与31H 单元中的操作数y 之和, 汇编语言指令如下: MOV A,30H ;将30H 单元中的数x 送到累加器A 中 ADD A,31H ;指令ADD 求A 中的数与31H 单元中的数y 之和,结果存放在A 中 例1-3 :将累加器A 的第4 位置1,第8 位清0 。汇编指令如下: SETB ACC.3 ;将累加器A 中n=3 的位设置为“1” CLR ACC.7 ;将累加器A 的最高位ACC.7 清“0” 例1-4:CLR 与MOV 指令清0 寄存器。汇编指令如下: CLR A ;正确,清“0”累加器 MOV A,#0 ;正确,清“0”累加器 CLR P1 ;错误 MOV P1,#0 ;正确,清“0”P1 口 例1-5:求两个十进制数50 与100 之积。汇编指令如下: MOV A,#50 ;将立即数50 传送到A 中 MOV B,#100 ;将立即数 100 传送到B 中 MUL AB ;完成50 与100 之积。注意:AB 之间无空格 例1-6:求十进制数101 除以50 的商。汇编指令如下: MOV A,#101 ;将立即数 101 传送到A 中 MOV B,#50 ;将立即数50 传送到B 中 DIV AB ;A 中内容为2 ,B 中内容为1。注意:AB 之间无空格 例 1-7:单片机复位后,程序默认使用的工作寄存器组是组 0 。程序开始时使用工作寄 存器组0,某段程序要使用工作寄存器组3,执行完这段程序后需要继续使用工作寄存器组 0,则可使用下面的程序结构: …… ;使用工作寄存器组0 的程序段 SETB RS1 ;将RS1 置“1” 。 SETB RS0 ;将RS0 置“1”,以上两条指令选择了工作寄存器组3 MOV R0,#00H ;将立即数#00H 传送给工作寄存器组3 的R0 …… ;使用工作寄存器组3 的程序段 CLR RS0 ;将RS0 清“0” CLR RS1 ;将RS1 清“0”,以上两条指令选择了工作寄存器组0 …… ;使用工作寄存器组0 的程序段 MOV R0,#0FFH

文档评论(0)

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

知识共享

1亿VIP精品文档

相关文档