


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十五课单片机指令(五)一位及位操作指令位操作指令也叫布尔操作指令。什么是布尔指令?它有什么用呢?这个问题稍微有点复杂,我只能给大家简单的介绍一下。在MCS-51 系列单片机中,有一个功能很强的布尔处理器,它实际上是一个独立的一位处理器,它有一套专门处理布尔变量(布尔变量也叫开关变量,就是以位作为单位的运算和操作)的指令子集,以完成对布尔变量的传送、运算、转移、控制等操作,这个子集的指令就是布尔操作指令。那么为什么要有这样的一套的指令系统?它是如何操作的呢?大家接着往下看:1位寻址的概念为什么要位寻址呢?单片机不是可以有多种寻址方式吗?大家是否还记得,我们第十三课做的那个流水灯实验,用的就是“位”操作,也就是对一盏灯的亮和灭进行控制,而之前我们学的指令却全都是用“字节”来介绍的:字节的移动、加减法、逻辑运算、移位等等,用字节来处理一些数学问题(比如控制空调的温度、电视机的音量等等)非常直观,可以直接用数值来表示;可是如果用它来控制一个开关的打开或者合上,灯的亮或者灭,就有些不直接了。比如我们前面课上的那个流水灯的实验,我们把数值送往P1 口之后并不能马上知道是哪个LED 灭了,而是要化成二进制后才能知道。在工业控制中有很多场合需要处理这类单个的开关输出,比如一个继电器的吸合或者释放、一个指示灯的亮或者灭,用字节来处理就显得有些麻烦了,所以在51 系列单片机中就特意引入了一个位处理机制。那么位处理器有多少地址空间?哪些特殊功能寄存器可以直接进行位寻址呢?2可位寻址的特殊功能寄存器在MCS-51 单片机中,位地址的范围在00H-FFH 之间,其中低128 位处于内部RAM 的20H-2FH 字节单元,其位地址从00H-7FH,看下面的表: 在物理实体上它们与原来的以字节寻址的RAM 及端口是完全一样的,换句话说这些RAM 单元及端口都可以有两种用法。除此之外,从80H 单元开始除了程序计数器PC 和4 个工作寄存器区外,每8 个字节还安排了21 个特殊功能寄存器(89C52 有26 个),这些SFR 都有一个共同的特点:就是其字节地址均可被8 整除,大家回到前面看一下第九课的表格。这些SFR 都是具有位寻址功能的,也就是说这些RAM 单元的每一个位都可以直接用这个地址来对其直接进行操作。了解了位操作的原理,再来看位操作的指令:4位操作指令(1)位传送指令AMOV C,bitBMOV bit,C指令说明:这两条指令的功能是实现进位位和其它位地址之间的数据传递(这里bit 就是位的意思)。例如:MOV P1.0,CY ;将CY 中的状态送到P1.0 引脚上去(如果是做算术运算,我们就可以通过观察知道现在CY 是多少了)。再如:MOV P1.0,CY;将P1.0 的状态送给CY。(2)位清零指令ACLR CBCLR bit指令说明:第1 条指令使CY=0 ;第2 条指令使指定的位地址等于“0”。例如:CLR P1.0 ,使P1.0 为“0”。(3)位置1 指令ASETB C BSETB bit指令说明:第1 条使CY=1 ;第2 条使指定的位地址等于“1”,例如:SETB P1.0 ,使P1.0 为“1”。(4)取反指令ACPL C BCPL bit指令说明:第1 条使CY 等于原来的相反的值,即由“1”变为“0”,由“0”变为“1”;第2 条使指定位的值等于原来相反的值,(相当于做“非”运算)。例如:CPL P1.0 ,以我们做过的实验为例,如果原来灯是亮的,则执行本指令后灯就灭了;反之就是灯亮。(5)位逻辑“与”指令AANL C,bit BANL C,/bit指令说明:第1 条CY 位与指定的位地址的值相“与”,结果送回CY;第2 条先将指定的位地址中的值取出后取反,再和CY 相“与”,结果送回CY,但需注意,指定的位地址中的值本身并不发生变化。例如:ANL C,/P1.0 设:执行本指令前,CY=1,P1.0 等于“1”(灯灭),则执行完本指令后CY=0,而P1.0 仍等于“1”。可用下列程序进行验证:START:MOV SP,#5FH ;MOV P1,#0FFH; SETB C ; ANL C,/P1.0 ;MOV P1.1,C;将做完的结果送P1.1, 结果应当是P1.1 上的灯亮,而P1.0 上的灯还是亮。(6)位逻辑“或”指令AORL C,bitBORL bit,C这两条指令的功能大家自行分析吧,然后对照上面的例程,自己编一个验证程序,看看自己想得对不对?(7)判CY 条件转移指令AJC relBJNC rel指令说明:这两条指令叫做判CY 转移指令,第1 条指令的功能是如果CY 等于“1”就转移;如果不等于“1”就顺序执行,那么转移到什么地方去呢?我们可以这样理解:JC 标号,即如果等于“1”就转到标号处执行;第2 条指令则和第1 条指令正好相反,即如果CY=0 就转移,不等于“0”则顺序执行,转移到什么地方,我们同样可以这样理解:JNC 标号。(8)判位变量转移指令AJB bit,relBJNB bit,rel指令说明:第1 条指令是如果指定的bit 位中的值是“1”,则转移;否则就顺序执行,转移到什么地方,同样我们可以这样理解:JB bit,标号;第2 条指令请大家自行分析一下。(9)判位变量转移并将该位清零:JBC bit,rel指令说明:这条指令同JB bit,rel 的区别在于判“1”转移的同时清除该位,为什么要这样做呢?后面我们会讲到。接下来我们做一个这方面的实验:把上面的程序下载到实验板上,看看有什么现象按下接在P3.4 上的按键,P1 口的灯全亮了,松开或再按,灯并不熄灭;然后按下接在P3.5 上的按键,灯就全灭了,这像什么?这不就是工业控制中经常用到的启动、停止功能吗?怎么做到的呢? 一开始,将0FFH 送入P3 口,这样,P3 口所有的引线都处于高电平然后执行L1,如果P3.4 是高电平(键没有按下),则顺序执行JNB P3.5,L3 语句同样,如果P3.5 是高电平(键没有按下),则顺序执行LJMP L1 语句,这样就不停地检测P3.4 和P3.5如果有一次P3.4 上的按键按下去了,则转移到L2(执行MOV P1,#00H),使灯全亮然后又转去L1,再次循环,直到检测到P3.5 为“0”就转去L3(执行MOV P1,#0FFH),使灯全灭再转去L1,如此不断地循环就可以了这里提一个问题,我们这个实验中控制的是一个字节(既整个P1 口),如何来实现一位(比如P1.0)的控制呢?其实很简单,只要把程序改一下就可以了。程序如下:ORG 000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 硫化工知识培训课件
- 夜场营销合同协议书模板
- 楼层板安装工程合同范本
- 买车合伙人合同协议书
- 万达与业主的合同协议书
- 产品物料变更协议书范本
- 夜宵店服务员劳务协议书
- 合同法扶贫工厂承包协议
- 药店专柜合作协议书模板
- 买卖租赁住房合同范本
- 中国医疗信息化行业市场现状分析及发展趋势与投资前景研究报告2025-2028版
- 批量创伤伤员急救程序
- 研发中心建设项目可行性研究方案报告
- 2024年天津市静海县教育局公开招聘试题含答案分析
- 《酒吧服务与管理(第3版)》教案教案(模块十二)
- 健康养生+情绪价值+中华文化茶饮品牌走出消费“双循环”之路
- 2025年民族宗教政策法规学习月知识竞赛试题库(含答案)
- T/ZHCA 007-2019染发化妆品眼刺激性试验体外测试方法牛角膜浑浊和渗透性试验
- 电梯砝码租凭合同协议书
- 基于人工智能的性传播疾病预防个性化方案研究-洞察阐释
- (高清版)DG∕TJ 08-2093-2019 电动汽车充电基础设施建设技术标准 含2021年局部修订
评论
0/150
提交评论