有输出也有输入)。见表2-6作为“I/0接口”;条件:“第二功能输出”=1。①作为“输出接口”时输出的数据来自内部总线”,借助“写锁存器”动作,数据信号从Q经“与非门”和场效应管T2到达P3.X。②作为“输入接口”时输入的数据来自引脚PO.X,单片机内部必须产生一系列动作先使Q=1(使场效应管T2处于“截止”状态),输入的数据通过“读引脚”动作经三态门进入“内部总线”。读锁存器同前。作为第二功能:当P3口用作第二功能时,必须使Q=1。由于其第二功能是P3的各个管脚分别作为各种控制信号,而这些控制信号有输出也有输入,因此我们分别进行论述。①作为第二功能输出输出的控制信号(在第二功能输出线上)就可以通过"与非们"和场效应管T2到达P3.X,TXD、/RD和/WR控制信号就是这样。②作为第二功能输入首先,作为第二功能输入的功能时,第二功能输出线必须为高电平。由于Q=1,使场效应管T2处于“截止”状态,这样RXD、/INTO、/INT1、TO、T1等控制信号就可以从P3.X经缓冲器(起到整形的作用)到达第二功能输入线上。“读锁存器”与“读引脚“的区别51单片机的读锁存器“与读引脚的区别注意:“读引脚”和“读锁存器”是有区别的。“读引脚”是读片外来的数据,使用数据传送类指令(MOV)。而“读锁存器”是读片内锁存器中保存的数据,用于运算类指令。传送类MOV,判位转移JB、JNB、这些都使用“读引脚”,经常用这些指令于外部通信,判断外部键盘等:而字节交换XCH、XCHD、算术及逻辑运算ORL、CPL、ANL、ADD、ADDC、SUBB、INC、Page 1.7 of90
Page 17 of 90 "读锁存器"与"读引脚"的区别 有输出也有输入)。见表 2-6 作为“I/O 接口”: 条件:“第二功能输出”=1。 ①作为“输出接口”时: 输出的数据来自“内部总线”,借助“写锁存器”动作,数据信号从 Q 经“与非门”和场效 应管 T2 到达 P3.X。 2 作为“输入接口”时: 输入的数据来自引脚 P0.X,单片机内部必须产生一系列动作先使 Q=1(使场效应管 T2 处于 “截止”状态),输入的数据通过“读引脚”动作经三态门进入“内部总线”。读锁存器同前。 作为第二功能: 当 P3 口用作第二功能时,必须使 Q=1。由于其第二功能是 P3 的各个管脚分别作为各种控制 信号,而这些控制信号有输出也有输入,因此我们分别进行论述。 1 作为第二功能输出 输出的控制信号(在第二功能输出线上)就可以通过“与非们”和场效应管 T2 到达 P3.X,TXD、 /RD 和/WR 控制信号就是这样。 2 作为第二功能输入 首先,作为第二功能输入的功能时,第二功能输出线必须为高电平。由于 Q=1,使场效应管 T2 处于“截止”状态,这样 RXD、/INT0、/INT1、T0、T1 等控制信号就可以从 P3.X 经缓冲器(起 到整形的作用)到达第二功能输入线上。 51 单片机的"读锁存器"与"读引脚"的区别 注意:“读引脚”和“读锁存器”是有区别的。“读引脚”是读片外来的数据,使用数据传送 类指令(MOV)。而“读锁存器”是读片内锁存器中保存的数据,用于运算类指令。 传送类 MOV,判位转移 JB、JNB、这些都使用“读引脚”,经常用这些指令于外部通信,判断 外部键盘等;而字节交换 XCH、XCHD、算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC
DEC控制转移CJNE、DJNZ都使用“读锁存器”。89C51单片机的PO~P3端口进行输入时为什么要设置为1?89C51单片机的PO~P3端口进行输入89C51单片机的PO~P3口不是标准意义的双向口,它只是准双向口。我们可以对照着PO口时为什么要设置为1?的结构图看这段话,“向端口写“1”,就是向锁存器写“1”,也就是让其口输出“FFH””,为什么?是这样的,给锁存器写“1”,那么锁存器的反向端(/Q)就输出0”,这样和它相接的MOS管也就在截止状态,即呈高阻态。如此PO.X线上的数据就会从“读引脚”的三态门上正确的输入,如果不写“1”,那么锁存器上次锁存的可能为“0”,则反向端(/Q)就有可能为“1”,这样和反向端相接的MOS管就“导通”,也就是直接拉到地,那么不管PO口线上输入什么信号都会拉成低电平,输入就将出错。双向口与准双向口的区别主要是:准双向口I/0口操作时做数据输入时需要对其置1,否则若前一位为低电平,后一位输入的电平为高则MOS管拉不起来导致出错。而双向口则不需要做此动作,因为双向口有悬浮态。准双向口只能有效的读取0,而对1则是采用读取非零的方式,就是读入的时候要先向接口上写1:然后再读。真正的双向口正如其名:就是真正的双向0不需要任何预操作可直接读入读出。详细讲解P39的例2.3(语言学完后练习)2.7面单的单片机应用系统设计8051单片机复位时P0-P3的状态?“读引脚”与“读锁存器”的区别?如何区别?741s240芯片:8路反相三态门,2个控制信号*/1G”和/2G”低电平有效。8051单片机复位时片内RAM的状态:特殊功能寄存器区,即80H-FFH单元:PO-P3均为FFH,SP=07H,其它特殊功能寄存器均为0OH程序计数器PC=0000H而00H-7FH单元(共128个)中的值均为00HPage 1 8 of90
Page 18 of 90 89C51 单片机的 P0~P3 端口进行输入 时为什么要设置为 1? 2.7 简单的单片机应用系统设计 DEC 控制转移 CJNE、DJNZ 都使用“读锁存器”。 89C51 单片机的 P0~P3 端口进行输入时为什么要设置为 1? 89C51 单片机的 P0~P3 口不是标准意义的双向口 ,它只是准双向口。我们可以对照着 P0 口 的结构图看这段话,“向端口写“1”,就是向锁存器写“1”,也就是让其口输出“FFH”, 为什么? 是这样的,给锁存器写“1”,那么锁存器的反向端(/Q)就输出“0”,这样和它相接的 MOS 管也就在截止状态,即呈高阻态。如此 P0.X 线上的数据就会从“读引脚”的三态门上正确的输 入,如果不写“1”,那么锁存器上次锁存的可能为“0”,则反向端(/Q)就有可能为“1”,这 样和反向端相接的 MOS 管就“导通”,也就是直接拉到地,那么不管 P0 口线上输入什么信号都 会拉成低电平,输入就将出错。 双向口与准双向口的区别主要是: 准双向口 I/O 口操作时做数据输入时需要对其置 1,否则若前一位为低电平,后一位输入的电 平为高则 MOS 管拉不起来导致出错。而双向口则不需要做此动作,因为双向口有悬浮态。 准双向口只能有效的读取 0,而对 1 则是采用读取非零的方式,就是读入的时候要先向接口 上写 1,然后再读。真正的双向口正如其名,就是真正的双向 io 不需要任何预操作可直接读入读 出。 详细讲解 P39 的例 2.3(语言学完后练习) 8051 单片机复位时 P0-P3 的状态? “读引脚”与“读锁存器”的区别?如何区别? 74ls240 芯片:8 路反相三态门,2 个控制信号“/1G”和“/2G”低电平有效。 8051 单片机复位时片内 RAM 的状态: 特殊功能寄存器区,即 80H-FFH 单元:P0-P3 均为 FFH, SP=07H,其它特殊功能寄存器均为 00H, 程序计数器 PC=0000H 而 00H-7FH 单元(共 128 个)中的值均为 00H
讲稿正文课次第五讲理论2学时授课方式及学时授课章节第四章:MCS-51系列单片机的指令与汇编语言程序设计学时安排:教学目标:掌握:单片机汇编语言的指令格式,操作数类型和寻址方式:单片机的指令系统之复习:5新授内容:数据传送类指令。1、单片机汇编语言的指令格式教学内容、难点、2、操作数类型和寻址方式重点及学时分配难点:寻址方式3、单片机的指令系统之数据传送类指令重点:单片机汇编语言的指令格式,操作数类型和寻址方式,单片机的指令系统之小结:3数据传送类指令。教学方法:讲授法、案例法作业3:预习:教学后记每条指令都要举例说明,还要举反例,例MOV#10,A,为什么是错误的?A是装操作数的容器,而#10是操作数,你如何把一个篮子中的鸡蛋放入一个某种规格的鸡蛋中呢?Page 1 9 of90
Page 19 of 90 讲 稿 正 文 课次 第五讲 授课方式及学时 理论 2 学时 授课章节 第四章:MCS-51 系列单片机的指令与汇编语言程序设计 教学内容、难点、 重点及学时分配 教学目标: 掌握:单片机汇编语言的指令格式,操作数类型和寻址方式;单片机的指令系统之 数据传送类指令。 学时安排: 复习:5’ 新授内容: 1、单片机汇编语言的指令格式 2、操作数类型和寻址方式 3、单片机的指令系统之数据传送类指令 小结:3’ 难点:寻址方式 重点:单片机汇编语言的指令格式,操作数类型和寻址方式,单片机的指令系统之 数据传送类指令。 教学方法: 讲授法、案例法 教学后记 作业 3: 预习: 每条指令都要举例说明,还要举反例,例 MOV #10,A,为什么是错误的?A 是装操作数的容器,而#10 是操作数, 你如何把一个篮子中的鸡蛋放入一个某种规格的鸡蛋中呢?
讲稿正文纲:详细:补充4.151系列单片机的指令系统概述计算机能够识别、完成预先设定功能的一组二进制代码。4.1.1指令概述一台计算机所有能够执行的指令的集合。与硬件相关。MCS-51指令系统共有111条指令。1、指令的定义二进制、十六进制、助记符2、指令系统的定义单字节(49条)、双字节(46条)和三字节(16条)3、指令的三种表示形式数据传送类(28条)、算术运算类(24条)、逻辑操作和移位类(25条)、控制转移类(17条)、4、MCS-51指令的长度位操作类(17条)5、MCS-51指令的分类详细介绍汇编语言指令格式中标号、操作码、操作数、注释的含义与作用(与高级语言进行比较)。4.1.2汇编语言指令格式指的是操作数所放的位置。立即操作数、寄存器操作数、存储器操作数。4.1.3操作数的类型寻址方式:寻找操作数所在位置或下一条要执行的指令的位置简单说明七种寻址方式4.2寻址方式分别举例介绍七种寻址方式:立即寻址、直接寻址、寄存器(直接)寻址、寄存器间接寻址、4.2.1述变址寻址、相对寻址(一定有参照物)、位寻址4.2.2寻址方式1、立即寻址计算机为什么要寻址?因为计算机最终要处理的是操作数,要处理操作数必须能够找到它,2、直接寻址即操作数存放在什么地方。3、寄存器(直接)寻址4、寄存器间接寻址5、变址寻址6、相对寻址7、位寻址Page 2 0 of90
Page 20 of 90 讲 稿 正 文 纲: 4.1 51 系列单片机的指令系统概述 4.1.1 指令概述 1、指令的定义 2、指令系统的定义 3、指令的三种表示形式 4、MCS-51 指令的长度 5、MCS-51 指令的分类 4.1.2 汇编语言指令格式 4.1.3 操作数的类型 4.2 寻址方式 4.2.1 概述 4.2.2 寻址方式 1、立即寻址 2、直接寻址 3、寄存器(直接)寻址 4、寄存器间接寻址 5、变址寻址 6、相对寻址 7、位寻址 详细: 计算机能够识别、完成预先设定功能的一组二进制代码。 一台计算机所有能够执行的指令的集合。与硬件相关。MCS-51 指令系统共有 111 条指令。 二进制、十六进制、助记符 单字节(49 条)、双字节(46 条)和三字节(16 条) 数据传送类(28 条)、算术运算类(24 条)、逻辑操作和移位类(25 条)、控制转移类(17 条)、 位操作类(17 条) 详细介绍汇编语言指令格式中标号、操作码、操作数、注释的含义与作用(与高级语言进行 比较)。 指的是操作数所放的位置。 立即操作数、寄存器操作数、存储器操作数。 寻址方式:寻找操作数所在位置或下一条要执行的指令的位置 简单说明七种寻址方式 分别举例介绍七种寻址方式:立即寻址、直接寻址、寄存器(直接)寻址、寄存器间接寻址、 变址寻址、相对寻址(一定有参照物)、位寻址 计算机为什么要寻址?因为计算机最终要处理的是操作数,要处理操作数必须能够找到它, 即操作数存放在什么地方。 补充
4.351系列单片机的指令系统4.3.1描述指令常用的符号Rn:工作寄存器,n=0~7Ri:工作寄存器,i=0或1#data:8位立即数,无符号数值域:00H~FFH,有符号数值域:-128~+127#data16:16位立即数,无符号数值域:0000HFFFFH,有符号数值域:-32768~+32767direct:片内RAM单元地址,值域:00HFFHDPTR:数据指针,@为间接地址符,eDPTR表示对外部ROM/RAM的间接寻址(解释),@Ri呢?addr11:11位目的地址addr16:16位目的地址rel:以补码表示的8位偏移量,-128~+127bit:片内RAM位寻址区的位地址为OOH~7FH(说明)$:当前指令的地址():X寄存器中的内容,或X为地址的存储单元中的内容((x)):X为寄存器为地址,或单元内容为地址的存储单元的内容注意:别忘了对操作码的助记符进行说明同时,要对指令中操作码与操作数之间的“空格”,操作数之间的“,”和指令最后的“,”进行说明。4.3.2数据传送类指令(28条)通用格式:MOV<dest>,<src>,操作码MOV是MOVE的缩写1、内部数据传送指令(16条)①立即寻址型指令(5条):注意:箭头左边为容器,籁头右边为数值(片内数据的传送)Data和direct可以用十进制或十六MOV A,#data:A#data,即A=#data,举例说明进制书写MOv Rn, #data:Rn+#data即Rn=#data,举例说明MOVv eRi, #data:即(Ri)=#data,举例说明(Ri)-#dataMovdirect,#data:direct+-#data即(direct)=#data,举例说明Page 2 1 of90
Page 21 of 90 4.3 51 系列单片机的指令系统 4.3.1 描述指令常用的符号 4.3.2 数据传送类指令(28 条) 1、内部数据传送指令(16 条) (片内数据的传送) Data 和 direct 可以用十进制或十六 进制书写 Rn:工作寄存器,n=0~7 Ri:工作寄存器,i=0 或 1 #data:8 位立即数,无符号数值域:00H~FFH,有符号数值域:-128~+127 #data16:16 位立即数,无符号数值域:0000H~FFFFH,有符号数值域:-32768~+32767 direct:片内 RAM 单元地址,值域:00H~FFH DPTR:数据指针,@为间接地址符,@DPTR 表示对外部 ROM/RAM 的间接寻址(解释),@Ri 呢? addr11:11 位目的地址 addr16:16 位目的地址 rel:以补码表示的 8 位偏移量,-128~+127 bit:片内 RAM 位寻址区的位地址为 00H~7FH(说明) $:当前指令的地址 (x):X 寄存器中的内容,或 X 为地址的存储单元中的内容 ((x)):X 为寄存器为地址,或单元内容为地址的存储单元的内容 注意:别忘了对操作码的助记符进行说明 同时,要对指令中操作码与操作数之间的“空格”, 操作数之间的“,”和指令最后的“;”进行 说明。 通用格式:MOV <dest>,<src>;操作码 MOV 是 MOVE 的缩写 1 立即寻址型指令(5 条): 注意:箭头左边为容器,箭头右边为数值 MOV A,#data; A←#data, 即 A=#data,举例说明 MOV Rn,#data; Rn←#data 即 Rn=#data,举例说明 MOV @Ri,#data; (Ri)←#data 即(Ri)=#data,举例说明 MOV direct,#data; direct←#data 即(direct)=#data,举例说明