ACALL SUBsubtotal是什么意思思

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
单片机原理及应用期末考试题
下载积分:500
内容提示:单片机原理及应用期末考试题
文档格式:DOC|
浏览次数:13|
上传日期: 12:36:23|
文档星级:
全文阅读已结束,如果下载本文需要使用
 500 积分
下载此文档
该用户还上传了这些文档
单片机原理及应用期末考试题
官方公共微信单片微机原理及应用教学课件[08机电]-共享资料网
单片微机原理及应用教学课件[08机电]
单片微机原理及应用 教学课件任课教师:屈莉莉 主要参考书? 1、胡汉才. 单片机原理及其接口技术.清华大学出版社 ? 2、张友德,赵志英, 涂时亮.单片微型 机原理应用与实验.复旦大学出版社 ? 3、徐淑华,程退安,姚万生.单片微型机 原理及应用.哈尔滨工业大学出版社 单片微机原理及应用? 微型计算机的基本概念 ? MCS-51系列单片机的硬件结构 ? MCS-51系列单片机的指令系统和汇编语言 程序示例 ? MCS-51系列单片机的扩展 ? MCS-51系列单片机的接口与应用 ? 单片机应用系统的开发 微型计算机的基本概念? 概述? 微处理器? 存储器? 输入输出接口电路【返回】 概 述?电子计算机的特点及应用?单片机的特点及应用?计算机的基本结构?微型计算机结构 ?微型计算机软件 ?计算机中的数【返回】 ?电子计算机的特点及应用? 特点: ? 运算速度快 ? 精确度高 一台计算机所用的二进制 代码位数为字长,表示计算机的计算精 度。 巨型机或大型机字长32―64位, 微型机字长一般4―16位,也有32位。 通常计算机能进行双倍字长或多倍字长 运算。 ?具有记忆能力存贮容量,以字长或字节 为单位,约定以8位二进制数为一字节。 1K字节=1024个字节 ?具有逻辑判断能力 ?高度自动化:程序控制的自动化操作 ?高可靠性 ?通用性强?应用科学计算、数据处理、实时控制、计 算机辅助设计、仪器仪表智能化等。 ?单片机的特点及应用? 特点:?体积小、重量轻、价格便宜、耗电 少。 ? 可靠性高,抗干扰性能优于采用一 般的CPU。 ?控制功能强,运行速度快。 ?片内存储器的容量不大;I/O引脚少。 但存储器和I/O接口都易于扩展。 ? 应用:? 家用电器领域:国内各种家用电器已普遍 采用单片微机控制取代传统的控制电路, 做成单片微机控制系统,如洗衣机、电 冰箱、空调机、微波炉、电饭堡、电视 机、录像机及其它视频音像设备的控制 器. ? 办公自动化领域比如一台PC机可能嵌入了10个单片微机, 如控制键盘、鼠标、显示器、CD-ROM、 声卡、打印机、软/硬盘驱动器、 调制解调器等.现代办公室中所使用的大量通信、信息 产品,如绘图仪、复印机、电话、传真机 等,多数都采用了单片微机。 ? 工业自动化领域的在线应用 如工业过程控制、过程监测、工业控制器 及机电一体化控制系统等,许多都是以 单片微机为核心的单机或多机网络系统。 如工业机器人的控制系统是由中央控制 器、感觉系统、行走系统、擒拿系统等 节点构成的多机网络系统。而其中 每一个小系统都是由单片微机进行控制的。?智能仪器仪表与集成智能传感器领域 应用单片微机来对传统的仪器仪表行业的 产品进行“ 更新换代” ,提供了非常理想的 的条件。目前各种变送器、电气测量仪表普遍 采用单片微机应用系统替代传统的测量系统, 使测量系统具有各种智能化功能,如存储、数 据处理、查找、判断、联网和语音功能等。?汽车电子与航空航天电子系统比如一台RMW-7系列宝马轿车就用了63个单 片微机。 ?计算机的基本结构?硬件?主机CPU:运算器、控制器 主存储器(内存)?外设外存、输入设备、 输出设备等?软件 ?微型计算机结构?微型计算机 以微处理器为核心,加上中大规模 集成电路制作的存储器,输入/输出接 口电路,通过总线所组成的计算机称 为微型计算机。 ?微处理器芯片 ?存储器芯片 ?输入/输出接口电路 ?总线 ?微处理器芯片?运算部件ALU ?工作寄存器组 ?控制部件 ?存储器芯片?存储器由许多存储单元组成。?8位微机中,每个存储 单元存放8位 二进制代码,即一个字节。每个存储单 元地址唯一。?地址:二进制位数8,存储容量28=256字节。二进制位数16,存储容量16 ?输入/输出接口电路在CPU与外设之间起信 息转换与协调作用的电路。 保证信息和数据在外设与 CPU之间正常传送。 ?总线?在微型计算机各芯片之间或芯片内部 各部件之间传输信息的一组公共通信 线。 ?串行发送、并行接收 ?优点:①可以减少机器中信息传送线 的根数,从而提高机器的可靠性 ②可以方便地对存储器芯片 及I/O接口芯片进行扩展。 ?缓冲器?三总线结构:数据总线DB:传送数据信息 地址总线AB:传送地址信息控制总线CB:传送控制命令 ?小结?微处理器、微型计算机、微型计算机系统 三者关系。?单板机:将微处理器、存储器、I/O接口 电路及简单的输入/输出设备组装在一块印 制电路板上。?单片机:将微处理器、存储器和I/O接口 电路以及其他有关部件集成在一块芯片 上。【返回】 ?微型计算机软件?指令例 MOV A ,#29操作码 目的操作数 源操作数 ?程序29+38+63+56=? MOV A,#29ADD ADDADDA, A,A,#38#63 #56 ?机器语言、汇编语言、高级语言 汇编语言程序高级语言程序 汇编 (人工汇编 机器汇编)) 机器语言程序源程序目标程序 ?计算机中的数??进位计数制:标示符B、 H、 D二进制数特点: 数字0、 1; 逢二进一 B = 1×21 =2 B = 23 ×1+22 ×1+2 1 ×1+ 20 ×1+2-1×1+2-2 ×1+2-3 ×1 ?十六进制数 逢十六进一特点: 数字符号 0~9 , A~F;例:74H= 7×161 +4×160 = 116 ??不同进制数之间的转换二、十六进制数转换成十进制数方法:按权展开,然后相加。例:0F.8H= 0×161+15×160+8×16-1 = 15.5×27+1×26+1×25+1×24+1 × 23+1×22+1×21+1×20 = 255 ?二进制数转换成十六进制数方法: 4位二进制数用1位十六进制 数代替 例:
B = FFH . B = 3A.C8H ?十六进制数转换成二进制数:方法:1位十六进制数用4位二进 制数代替 例: FFH =
0100 B ?? 十进制数转换成二进制数、十六进制数。 2 25 余 1 低 25=11001 B 2 12 余 0 2 6 余0 2 3 余1 2 1 余1 高 0 16 25 余 9 16 1 余 1 0 25=19H 整数部分转换方法:十进制数连续被基数2(16) 所除,依次记下余数,直到商0位 止,第一个余数是转换后二进制 (十六进制数)的最低位,最后一 个数是最高位。 小数部分转换方法: 十进制数小数连续乘以基 数2(或16)依次记下积的整 数部分,直到积为0为止。第 一个数是二(十六)进制数 的最高位,最后一个整数是 最低位。 0.6875 × 2 1.0 × 2 0.7500 × 2 1.0 × 2 1.0000整数部分10 11 0.1 B ?带符号数的表示D7D6D5D4D3D2D1D0 符号位 数值位图1-10 8位微机中的带符号数 带符号数,最高位 0 正 1 负 无符号数:111111B0 255例: B 无符号数 255 带符号数 -127 ?原码 正数原码与原值同 负数原码符号位置1,数值 位不变。 例: [46]原=B [-46]原=位二进制原码表示的数的范围: -127―+127 ?反码 正数的反码与原码相同负数的反码由其绝对值按位 求反后得到。 例: [46]反=B [-46]反=B8位二进制反码表示的数的范围:-127―+127 ?补码: 正数补码与原码同 负数的补码为其反码加1? 8位二进制补码表示的数的范 围 : -128―+127 ? 对负数补码求反后加1,回复为 该数的绝对值。 ? ? [+0]补=[-0]补=B A-B=A+[-B]补 ?二进制编码的十进制数 ? 二 C十进制数:BCD码 一个十进制数用四个二进制 数表示 10=[]BCD ? 十进制调整指令 DA A若[(A0-3)&9]或[(AC)=1], 则(A0-3) (A0-3)+06H 若[(A4-7)&9]或[(CY)=1, 则(A4-7) (A4-7)+06H 例:48+69 48=[]BCD 69=[] BCD +
―――――― AC=1
――――――
117D ?ASCII码1000011 奇校验(奇数个1)
偶校验(偶数个1)
?定点数与浮点数?定点数 小数点位置固定不变的数符号位 数值位 小数点隐含在此处符号位 数值位 小数点隐含在此处小数点定于数值位之后小数点定于符号位与 数值位之间 ?浮点数N=2P?S例 101.11B=1000B ? 0.10111B=2+11B?0.10111B阶符 阶 码 尾符 尾 数PS 尾数S的特征:S为纯小数,当0.5? S ?1,称该浮点数 为规格化浮点数?? ? ?S是有符号数,数N的正或负由S来表示S用补码表示S所取的位数规定了有效数字的位数 阶码P的特征:?阶码可正可负,用补码表示?P的位数决定了数N可表示的范围 例1-20 某计算机字长16位,其中阶码用五位 二进制数表示,尾数用九位二进制数表示,阶符、 尾符各占一位数。试用浮点数形式表示十进制数117.75。-117.75=-B=-0.B ? 2+111B[000111B]补=000111B[-B]补=B其浮点数表示为:0 101001【返回】 第二节 微处理器?典型 8位微处理器结构:运算器、控制器、工作寄存器组 ?运算器 ?控制器 ?工作寄存器 ?程序计数器【返回】 ?运算器由ALU、 A、 TR、 F、 二、十进制 调整电路等组成。 ? A(Accumulator):存放操作数;运算 结果? TR(Temporary Register):暂存操作数, 并送入ALU进行计算。 ?分析指令 ADD A,#24H ADD A,R0 的执行过程 ?F (Flag Register)C AC FO RS1 RS0 OV ― PMcs-51中 PSW?二、十进制调整电路:调整二 ― 十进制运算的计算结果 ?控制器? 指令寄存器IR(Instruction Register)?指令译码器ID(Instruction Decoder)?控制电路 指令的执行阶段:取指令执行指令 ?工作寄存器提高计算机工作速度,简化指令的机器代码。?程序计数器PC(Program Counter)? ? ? ?专门用来控制指令执行顺序,字长16位上电(复位)时 PC自动装入0000H 一般单片机每取一次机器码,PC自动加1 PC的内容可用指令改写。 例:下列程序存放在64K×8位的EPROM中, (000FH) H MOV A, #08H(0011H)(0014H)MOV B,#76HADD A, A(0016H)(0018H)0ADD A, BLJMP 2000H(001BH)000CH 要求:1、指令执行过程(PC管理程序执行次序)2、写出每条指令首址(000FH开始) 3、该程序段共占用内存单元数。 4、执行ADD A ,A时,PC内容? 5、执行ADD A,B后, A,B,PC的内 容? 6、CPU取回指令LJMP 2000H并执行该 指令时,(PC)=? 执行后 (PC)=?【返回】 第三节 存储器――存放信息(程序、数据)?主要指标:存贮容量;存取速度?存储器分类?存储器结构?堆栈【返回】 ?存储器分类 ?RAM:又称读写存储器,数据存储器 特点:掉电后存放的信息将丢失。?ROM:又称程序存储器特点:掉电后存放的信息不会丢失。 ?典型RAM芯片2114(1KB× 4位)6116(2KB× 8位)6264(8KB× 8位)? 典型的EPROM芯片2716(2KB× 8位) 2732(4KB× 8位) 2764(8KB× 8位) 27128(16KB× 8位) ?存储器结构:由存储体、地址寄存器、 地址译码器、存储器输入/输 出控制电路等部分组成。 分析:若某存储器芯片有12根地 址线、8根数据线, 那么 1)该芯片有多少个存储单 元? 2)每个存储单元存放多少 位二进制数?3)用十六进制数写出它的 首地址和末地址。 ?堆栈?是RAM中的一个特殊的区域,是一组按照“先 进后出”的方式工作的,用于暂存信息的存储单 元。?设置堆栈的目的:保存断点地址和现场信息 例: H 0345H 断点地址:0125H 现场信息:A,工作寄存器及标志寄存器中的信息 ACALL SUB MOV A,@RO SUB: MOV R3,A ?堆栈操作方式进栈 PUSH X; (SP)((SP))(SP)+1( X)出栈 POPX ; (X)(SP)((SP))(SP)-1 ?MCS-51单片机堆栈的工作过程?堆栈指针SP:专用地址寄存器,指明栈 顶位置,管理堆栈。例: MOV SP, #60H; 建立堆栈 PUSH APUSH B MOV SP,#0E0H; 建立堆栈 E3H MOV A, #24H MOV B, #0F1H PUSH A PUSH B E2H E1H E0H?堆栈的工作过程【返回】 第四节 输入输出接口电路?输入输出接口电路的功能 ?计算机与外围设备间传送的信息 ?I/O电路的端口编址方法 ?数据传送方式【返回】 ?输入输出接口电路的功能 --------输入输出设备与 CPU的连接? 锁存(数据)作用? ? ? ?变换作用: 信息转换 、 电平转换 缓冲 地址译码 联络作用 ?计算机与外围设备间传送的信息? 数据信息? 状态信息? 控制信息 ?I/O电路的端口编址方法? MCS-51采用此编址方法? 存储器单元与接口电路端口统一编址。? 存储器单元与接口电路端口分别编址。 ?数据传送方式无条件传送方式:接口电路与外设 之间只传送数据信息。?最简单,所配置的硬件和软件最少 查询传送方式:交换数据、状态、 控制三种信息。?CPU利用受影响;不能处理掉电、 设备故障等突发事件。 ?直接数据通道传送方式利用硬件(DMA控制器),使数据 在高速的外设与内存之间直接进行 批量传 送,不通过CPU。 优点:传送速度快, 约1μs /字节 缺点:需DMA控制器,电路复杂,成本 高。?中断传送方式最常用的数据传送方式。 ?中断:是指当机器正在执行程序的过程中, 一旦遇到异常情况或特殊请求时,就暂时停 止正在执行的程序,而转入必要的处理(称 为中断处理或中断服务),并且在处理完毕 后,立即回到原来被停止程序的间断处(称 为断点)继续执行。 ?中断的用途:传送数据、实时控制、故障 自动处理、实现人机联系等。 ?中断的优越性:提高了CPU工作效率并且 使其可以同时为多个外设服务;实现实时控 制;可以处理设备故障、掉电等突发事件。 ?外设向CPU发出中断请求信号的条件: A、外设本身的工作已完成。 B、计算机系统允许该外设发中断请求信号。 ?CPU响应中断的条件:接口电路和 CPU处在允 许中断状态。 ?中断源和中断优先权中断源:能发出中断请示的各种来源。 ?中断优先权A、多个中断源同时申请中断时,CPU先响 应优先权高的。B、可以中断嵌套,即若有级别高的中断请 示则CPU暂时中断已在进行的级别低的中断服 务程序,响应高级别中断请求执行完后再返回 原低级别中断服务程序继续执行。 C、同或低级中断请求,CPU要在处理的中 断服务程序执行完毕返回主程序,并执行了主 程序一条指令后才响应。?中断服务程序流程图【返回】 数据输入设备 数据 输入指令运算器操 作 命 令数据存储器指 令 存 取 命 令输出设备控制器输出指令外围设备 接口CPU内存 主机图1-1计算机结构【返回】 地址总线微 处 理 器数据总线 控制总线存 储 器I/O 接 口外 设图1-2微型计算机结构【返回】 00 10 1001图1-3 存储器示意图. . . 缓冲器 芯 片 1缓冲器缓冲器 芯 片 N【返回】芯 片2 图1-4 8位总线
1 A BC12C2图1-6双向三态门【返回】 微型 计算 机系 统硬 件微型计 算机微处理器 存储器电源 外围设备 软件 图 1-7I/O接口电路 总线微形计算机系统【返回】 00 00 00 000010 01 00 100110 10 . . .00 00 第一条指令第二条指令 第三条指令第四条指令图1-8存储器中的程序【返回】 地址总线 数据总线PC缓冲器 缓冲锁存工作寄存器组 SPATRFALU内部控制线内部总线IR ID定时:与控制BCD调整图1-14控制总线 典型微处理器结构框图【返回】 内存储器 存储器RAMROM静态RAM 动态RAM 掩模式ROM PROM EPROM EEPROM外存储器磁带磁盘 图1-15 存储器分类【返回】 图1-16 存储器结构框图 【返回】 Q V5V3 V4 V1 V2Q V6V7V8【返回】Di Di 图1-17 6管静态1位存储电路 A6A11A0X 译 码 器X0 X1 000H 001HY Y0 Y1译码器Y63 FC0H FC1H 列选存储单元A5X63 行选FFFH图1-18存储矩阵【返回】 Q V3… … … …Q V4 V2V1C1C2DiX 行选Di图1-191位动态存储电路【返回】 VccV7 输出X1 V1 V2 V3 V4 V5 V6A0A1A2A3A4A5图1-20 地址译码电路【返回】 V3V4 V2+5VV1行选XV6列选Y V7 片选CS& &V8 1 3 管脚I/O1【返回】4 5去片内其他各位 2写允许WE图1-21 输入输出控制电路 W3 地03 02A1址 W2 译 W1A0码 W0 器0100 D3 D2 D1 D0【返回】图1-22 4x4位掩模ROM示意图 选择线WiFAMOS 位线Di 图1-23 EPROM1位存储电路 源极S氧化层浮置多晶硅栅漏极DP+P+N基片图1-24 FAMOS管结构【返回】 主程序子程序 执 行 子 程 序断点 继 续 执 行 主 程 序图1-25主程序与子程序 主程序 子程序1 子程序2 子程序3断点1断点2 断点3图1-26 子程序嵌套【返回】 64H 63H 62H 61H SP 60H64H 63H 62H SP 61H A的内容 60H64H 63H SP 62H B的内容 61H A的内容 60H图1-27堆栈【返回】 66H . . SP 60H 执行主程序时 SP 60H . 60H . . 55 66 33 44 11 22 .66H. . . SP 62H 60H 11 22 执行子程序1时 66H SP 64H 60H . . . 33 44 11 22执行子程序3时继续执行子程序2时 【返回】 图1-28 堆栈工作过程 AB12端口数据 状态信息 外设CPUMEMDB CB3 控制信息 I/O图1-29 计算机与外设之间传送的信息【返回】 AB输入接口 输出接口存 储 器A/D温度传感器键盘显示器DBCPU CB图1-30外部设备与接口电路【返回】 数据 外设 状态 控制输入状态信息去CPU I/O接口数据 准备好?输入数据 图1-31 用查询方式输入数据【返回】 主程序执 行 主 程 序中断请求 执 行 中 断 服 务 程 序断点 继 续 执 行 主 程 序图1-32 中断过程示意图【返回】 AB CPU 读信号 内部查询端CPU 中断允许“1” S地址 译码DB 8 写信号 1锁 存数据中断控 制寄存 DQ器 中断屏蔽 D 触发器 Q 2输入 设备READY& 2Q3R中断允许 触发器 CPU 中断屏蔽“0”&复位 INT& 1接口电路 图1-33+5V 中断请 R D 求发器 Q1状态中断请求逻辑【返回】 外设外设外设CPU INTI/O接口I/O接口I/O接口图1-34 多个外设接在同一中断请求引脚【返回】 中断服务程序入口 保护现场 中断服务 恢复现场 中断返回图1-35 中断服务程序流程图【返回】 MCS―51系列单片机的硬件结构? ? ? ? ? ? ? ? 总体概况 微处理器 存储器 定时器/计数器 并行输入/输出接口 串行输入/输出接口 中断系统 特殊工作方式【返回】 总体概况MCS―51系列: 51子系列 (、8751) 52子系列 () ?MCS―51系列主要功能部件 ?内部结构 ?外部引脚功能说明【返回】 MCS―51系列主要功能部件?8位CPU。?片内带振荡器(振荡器和时钟电路)振荡频率fosc的范围为1.2―12MHz;可有时钟输出。?128字节片内RAM(51子系列)。256字节片内RAM(52子系列)。?4K字节片内ROM(8031无) (51子系列)8K字节片内ROM( 8032无) (52子系列)?ROM寻址范围64KB字节。 ?片外RAM寻址范围64KB字节。323 ?21个字节专用寄存器。 ?4个8位并行I/O接口。 ?1个全双工串行I/O接口,可多机通信。 ?2个16位定时器 /计数器(51子系列)。3个16位定时器/ 计数器( 52子系列)。?5个中断源,可编程为两个优先级(列) ;51子系 6个中断源( 52子系列)。?111条指令,含乘法指令和除法指令。?有强的位寻址、位处理能力。?片内采用单总线结构 用单一+5v电源。323 内部结构结构:含运算器、控制器、片内存储器、4个 I/O接口、串行接口、定时器/计数器、中断系统、 振荡器等。注意几点:① 堆栈和工作寄存器区在片内RAM 中 ② PSW③ DPTR:数据指针寄存器16位DPH和DPL 外部引脚功能?主要电源引脚VCC:+5VVSS:地?输入输出引脚P0.0 ~P0.7:P0口的8个引脚,准双向输入/输出接口;低 8位地址总线和双向数据总线。P2.0 ~P2.7:P2口的8个引脚,一般可作为准双向I/O接 口;高8位地址总线。P3.0 ~P3.7:P3口的8个引脚,准双向I/O口;第二功能。P1.0 ~P1.7:P1口的8个引脚,作为准双向I/O使用。 ?控制线ALE / PROG :地址锁存有效信号输出端,片内含EPROM的机型,编 程时,PROG为编程脉冲输入端。 PSEN:片外程序存储器读选通信号输出端。 RST/VPD:RST―― 复位端;VPD―― VCC掉电时备用电源(+5V ± 0.5V)EA/VDD:片外程序存储器选用端。含EPROM时,VDD为编程电源21 V 输入端。 单片机对外三总线:地址总线―― P2、P0组成16位地址总线 数据总线 ――P0分时复用为数据总线 控制总线 ――ALE、PSEN、RST、EA与 P3口中的 INT0、INT1、T0、T1、WR、RD共10个引脚组成。外接晶体引脚:XTAL1:片内反相放大器输入端 XTAL2:片内反相放大器输出端和内部时钟发生器输入端 324 【返回】 微处理器? 运算器 ? 控制器 ? 振荡器和CPU时序【返回】 ?运算器?ALU在控制器所发内部控制信号控制下进行各 种算术操作和逻辑操作。MCS―51 ALU功能:带进位位加法、减 法、不带进位位加法、加1、减1,逻辑与、 或、异或、循环移位及数据传送、程序转 移、乘法、除法、交换、比较判跳、位操 作。?累加器A ?程序状态字PSW:8位寄存器、其重要特点是可以编程D7 D6 D5 D4 D3 D2 D1 D0CACF0RS1 RS0OV-PC(PSW.7): 进 位 标 志 位 , (位)处理中作位累加器用。在布尔A C(PSW.6):辅助进位标志 ,BCD 码运算调整时用。 F0(PSW.5):用户标志位 , 可由用户 通过软件定义(置位/清0)或检测。RS1 RS0工作寄存器组选择位。 RS1 RS0 寄存器组 对应RAM地址00010100H―07H08H―0FH11012310H―17H18H―1FH溢出标志OV(PSW.2):指示运算结果是否溢出 加(减)时:最高、次高二位之一有进(借) 位,OV被置位乘法MUL AB:积&255时 OV=1除法DIV AB:B中所放除数为0 OV=1奇偶标志位 P(PSW.0),A中1的个数奇 则 偶 则 P=0P=1, 例:分析执行指令后MOV A,#0C3HADD A,#0AAH C, AC, OV, P的内容?(进位) + 11AC=0 C=1 OV=1 执行第一条指令后:P=0 执行第二条指令后:P=1?控制器包括指令寄存器、指令译码器、定时 与控制电路等 部件。 ?振荡器: 任何情况下,振荡器始终驱动内部时钟发生器向主机提供时钟信号。?CPU时序:12MHZ晶振,一个振荡周期= 1/12MHz s; 机器周期:1个机器周期由12个振荡周期组成; 指令周期:CPU执行一条指令的时间; 单周期指令:1个机器周期双周期指令:2个机器周期2μS4μS【返回】乘除指令为4个周期指令:4个机器周期 存储器?MCS―51系列存储器编址图 ?程序存储器 ?数据存储器【返回】 程序存储器?PC 16位, ROM寻址范围64KB 0000H―FFFFH ?访问ROM用MOVC、程序转移类等指令 ?、8751若EA为1,先片内,当PC内 容 超 过 0 FFFH(51 子 系 列 ) 或 1 FFFH(52 子 系 列),自动转去片外;若EA为0 , 强令执行片外 程序存储器中程序, EA接低电平?程序存储器中有7个单元留作特殊用途。H 000BH BH BH(52子系列)【返回】 数据存储器?51子系列片内RAM 128字节( 00H―7FH )SFR 51子系列18个 占80H―FFH中的21个字节?片内RAM分为工作寄存器区(00H―1FH) 、 位 寻 址 区 ( 20H―2FH ) 、 数 据 缓 冲 区 ( 30H―7FH) 例1: CLR PSW.4 ; 选择工作寄存器1组 ; (R0)=28H SETB PSW.3 MOV R0,#28H例2: SETB 07H ?访问片内RAM用 MOV指令访问片内RAM位寻址区或SFR中可寻址位,可 用位操作指令。?DPTR 16位 64KB 片外数据存储器 0000H―FFFFH (00H―FFH) 访问片外RAM 用 MOVX指令 ?堆栈与堆栈指针1)复位后(SP)=07H,从08H单元开始堆放信息2)51子系列栈区不固定,可通过指令改变SP值 更动栈区。【返回】 定时器 / 计数器?主要特点? 可编程为定时器或计数器 ? 四种工作方式可用程序选择 ? 可用程序安排是否产生中断请求信号?定时 / 计数器 0、1的结构?定时 / 计数器0、1的四种工作方式【返回】 ?定时 / 计数器 0、1的结构 ?16位加法计数器 定时器 / 计数器 0 TH0:高8位TL0:低8位定时器 / 计数器 1 TH1:高8位TL1:低8位?作定时器工作方式时,每一个机器周期加法计数器加1,所以定时器也可看作是对内部机器周 期的计数器。?作计数器工作方式时,加法计数器对芯片引脚T0(P3.4)或T1(P3.5)上输入的脉冲计数。 ?定时器 / 计数器方式控制寄存器TMOD――――用于选择工作方式:低4位用于定时 器 / 计数器0;高4位用于定时器 / 计数器1 GATE C/T M1 M0 GATE C/T 定时器 / 计数器1 M1 M082定时器 / 计数器0? 工作方式选择位 M1、M0 ?功能选择位 C / T C / T=1 计数方式 C / T=0 定时器方式 ?门控位 GATE GATE=0 定时器 / 计数器工作与引脚INT0、 INT1无关; GATE=1 定时器 / 计数器0(1)工作受引脚 INT0(INT1)控制 一般GATE=0 M1 M0工作方式00 1 101 0 1方式0:13位定时器/计数器方式1:16位定时器/计数器 方式2:具有自动重装初值的8位定时 器/计数器 方式3:定时器/计数器0分为两个8位 定时器/计数器,定时器/计数器1在此 方式无实际意义。 例:定时器 / 计数器0设定为定时器工作方 式1 X X X X GATE C / T M1 M0 0 0 0 0 MOV 0 0 0 1 TMOD, #01H ?定时器 / 计数器控制寄存器TCONTF1 TR1 TF0 TR0 X X X XTF1:定时器/ 计数器 1 溢出中断(请求)标 志。当定时器 / 计数器 1 溢出时由硬件置1; 当主机响应中断转向中断服务程序时,由硬 件清零。也可由程序置位或清零。TR1:定时器/ 计数器1运行控制位。由软件 置位 /清零来开启或关闭定时器1。 TF0:定时器/ 计数器0溢出中断(请求) 标志。功能与TF1相仿。 TR0:定时器/ 计数器0运行控制位。与TR1相仿。例:启动定时器/ 计数器0SETB TR0 ?定时 / 计数器0、1的四种工作方式?工作方式0:13位定时器 / 计数器M1=0 M0=0TH1:高8位加法计数器TL1:低5位加法计数器13位 : 0~(213―1) 若 则 初值为 X 计数值N=8192―X 213=8192 若 fosc=12MHz则 Tcy= 1μs定时时间 T=(8192―X)Tcy 定时范围为 1~8192 μs 例1:已知 fosc=12MHZ , 要求定时器 / 计 数器0产生1ms定时, 试编写初始值化程序。 定时时间小于8192 μs 可选工作方式01)TH0、TL0初值计算T=(8192―X)Tcyfosc=12MHZ Tcy= 1μ s1ms=(8192―X) Tcy X=H TH0=1CH TL0=18H2) TMOD初值3) 初始化程序X X X X0 0 0 0(TMOD)=0 0 H START:MOV TMOD,#00H;定/计0置 工作方式0MOV TL0,MOV TH0,#18H;置初值#1CH;SETB TR0 ;启动定时器/计数器0 ?工作方式1:16位定时器/计数器M1=0 M0=1TH1(TH0):8位加法计数器N=216 ―X=65536―X计数范围: N= 1~65536定时时间 T=(65536―X)Tcy 若 fosc=12MHZ 则定时范围为 1~65536 μs 例:已知fosc=12MHZ ,要求定时器 / 计 数器0产生10ms定时,试编写初始值化程序。 10ms&8192 μs Tcy= 1μs T=(65536―X) Tcy =(65536―X) 1μs=10ms X=5H 选工作方式11)TH0、 TL0初值计算TH0=D8H TL0=F0H 2)方式寄存器TMOD初值X X X X 3)初始化程序 0 0 0 1(TMOD)=0 1 H START: MOV TMOD, #01HMOV TL0, MOV TH0, SETB TR0 #0F0H #0D8H ?工作方式2:自动重新装入初值的8位定时器/ 计数器M1=1 M0=0TL1:作为8位加法计数器使用TH1:作为初值寄存器使用。计数范围:N=1~256 定时时间 T=(256―X)Tcy 若fosc=12MHZ,则定时时间 1μs~256μs ?工作方式3:M1=1 M0=1 8位加法计数器 ? 只适用于定时器0。若置定/计1为方式 3,则它停止计数,相当于TR1=0?TL0占用定/计0全部控制位?TH0只能作非门控方式定时器用,借 用定/计1的控制位TR1、TF1。此时,定 /计1不能使用溢出标志和中断。 ?通常情况下不用定时方式3,只有当定时 器1作为串行口的波特率发生器且工作在方 式2时才用。波特率:数据传送速率,单位:位 / 秒【返回】 并行输入 / 输出接口?8051单片机四个8位并行I / O端口,可并 行输入或输出8位数据。?32根输入/输出线。在无片外扩展存贮器 的系统中,四个端口的每一位都可以作为 准双向通用I / O端口使用。在具有片外扩展 存储器系统中,P2口送出高8位地址,P0口 分时送出低8位地址和数据双向总线,每位 均有自己的锁存器、输出驱动器和输入缓 冲器。【返回】 P1口?结构:锁存器、输出驱动器、输入缓 冲器 ? 功能:通用输入输出接口?工作方式:?输出方式 例如: MOV P1, A或 MOV P1, #data ?输入方式 例如:MOV A ,P1当由输出方式改变为输入方式时,该位的锁 存器必须写入“1”,即 MOV P1, #0FFHMOV A ,P1 8051所有口锁存器复位时均置“1”,可 直接用于输入。?端口操作读锁存器, 读―修改―写指令 当目的操作数为一个口或口的一位时, 有些指令读锁存器,而不是读引脚。例如:ANL P1,#data ; (P1) (P1)∧dataORL P1,#data ; (P1) (P1)∨dataXRL P1, A ;(P1) (P1)(A)INC P1; (P1)(P1)+1?负载能力:输出时能驱动4个LSTTL负载。 P2口? 结构?功能:1)地址总线;2)通用I / O接口, 与P1口相同 P3口 ? 结构 ?功能:1)通用I / O接口 与P1口相同。输 出时第二功能端保持高电平 2)具有第二功能 此时锁存器Q端 必须为高电平。单片机复位时锁存器输出端 为高电平 P0口 结构功能:1)通用I / O接口 输出时能驱动8个 LSTTL负载,其它与P1口相同。2)地址/数据分时复用总线【返回】 串行输入/输出接口? 基本概念 ? MCS―51串行I / O 口控制与状态寄存器? 串行接口的工作方式? 多机通信【返回】 基本概念通信:计算机与外界的信息交换,方法有并行通 信和串行通信。并行通信:一个信息的各位数据被同时传送的通 信方法。由并行I / O口实现,速度快但传输线根 数多,只适用于近距离通信。串行通信:一条信息的各位数据被逐位顺序传 送的通信方式。通过串行接口实现,速度慢,但 传输线少,适宜长距离通信。有异步通信方式和 同步通信方式两种。 单 工:信息只能单方向传送 半双工:信息能双向传送但不能同时双向 传送全双 工:信息能同时双向传送 ?异步通信格式?第9位数据D8可以用作奇偶校验位,也可 以用作地址/数据帧标志。D8=1,地址标志; D8=0,数据标志。?波特率:数据传输速率。单位:位 / S Td:位传送时间。 例 若传送带奇偶校验的ASCII码、字符7 位,加上1个起始位0和1个停止位1,共计 10位。设串行口每秒传送200个字符,则波 特率为 10位/字符× 200字符/秒=2000位/秒?同步通信 格式 MCS-51串行I/O接口的工作过程 ?发送时:通过引脚TXD,将CPU 送来的并行数据转换成一定格式的 串行数据按规定的波特率逐位输出。 ?接收时:通过引脚RXD,将外围 设备送来的一定格式的串行数据转 换成并行数据,等待CPU读入。 MCS―51串行I / O 口控制与状态寄存器 SCON: SM0 SM1 SM2 REN TB8 RB8 TI RI字节地址98H? 串行口工作方式选择位SM0 SM1SM0 SM1 工作方式 0 0 1 1 0 1 0 1 方式0 方式1 方式2 方式3功能说明移位寄存器方式,用于并行I/O口扩展 8位通用异步接收器/发送器 9位通用异步接收器/发送器 9位通用异步接收器/发送器波特率 fosc / 12 可变fosc / 32或fosc / 64可变?SM0 、 SM1由软件置位或清零。 362 ?多机通信控制位SM2和接收中断标志位RISM2=1时:若接收到的第9位数D8为1且RI=0, 则硬件置RI为1;若接收到的第9位数D8为0,则RI 不置1且接收数据无效。SM2=0时:D8无论0或1,硬件置RI=1。RI由软 件清零。多 机 通 信 时 , SM2=1 ; 双 机 通 信 时 通 常 使 SM2=0 ; 方式0时SM2=0。SM2由软件置位或清零 ?发送中断标志位TI 发送完一帧信息,由硬件使TI=1。TI由软件清零 ?允许接收控制位RENREN=1 允许接收; REN=0 禁止接收 REN由软件置位或清零 ? 发送数据D8位TB8方式0、方式1不用;方式2、3中要发 送的第九位数据,事先用软件写入1或0? 接收数据D8位RB8 方式2、3中由硬件将接收到的第9位数 据存入RB8,方式1中停止 位存入RB8。 电源控制寄存器PCONSMOD X X X X X X X ? SMOD: 串行口波特率系数控制位 SMOD=1,波特率加倍 ?关于波特率的几点说明:? 工作方式0的波特率是固定的,为 fosc / 12 ?工作方式2的波特率由SMOD决定 ( 2 SMOD / 64 ) × fosc SMOD=1 SMOD=0 波特率为 fosc / 32 波特率为 fosc / 64?工作方式1、3的波特率取决于定 / 计1的溢 出速率及SMOD波特率= 2 SMOD × 定时 / 计数器1溢出 速率 / 32【返回】 例:设串行口工作于方式3,SMOD=0 , fosc=11.059MHz。定 / 计1 工作于定时器方 式2, TL1、TH1的初值为FDH,试计算波特 率.解 : 定 时 时 间 Tc=(256―253)× 12 / 11.059MHZ 溢出速率 1/Tc =波特率= 20 ×
/ 32 ≈9600位 / 秒。 串行接口的工作方式方式0:移位寄存器方式,用于并行I / O 口扩展? 发送 MOV SBUF,RXD 8031 1A ;启动发送过程14 74LS164 9 7 +5V28D1 D2TXDCLK3 4 5 6 10 11 12 13 b7 b6b5b4b3b2 b1 b0MCS―51外接移位寄存器输出?74LS164:串行输入并行输出寄存器 ?接收RI=0时,将REN 置1启动一次接收过程 4 5 6 RXD8031TXD74LS165CPMCS-51外接移位寄存器输入?74LS165:并行输入串行输出移位寄存器?方式0的时序 方式1 8位异步通信接口 ?发送 MOV SBUF,A时序从TXD输出,发送完一帧信息TI=1 ?接收 从RXD输入 当RI=1或SM2=1且第9位数据为0时接受的 一帧信息丢失。否则将8位数据装入接收缓冲 器,停止位装入RB8,并置RI=1,向CPU申请 中断。 方式2与方式39位异步通信口,但波特率不同 时序?发送 MOV SBUF,A从TXD输出, 发送完一帧信息TI=1?接收,从RXD输入当RI=1或SM2=1且第9位数据为0时接受的一帧 信息被丢失。 ?例:设计一发送程序,将50H―5FH的数据块 从串行口输出,现将串行口定义为工作方式2发 送,TB8作奇偶校验位,在数据写入发送缓冲器 前,先将数据的奇偶位写入TB8。 TRT: MOV SCON, #80HMOV PCON, #80HMOV R0, #50H;MOV R7, #10H LOOP: MOV A,@R0MOV C, P MOV TB8, C MOV SBUF, AWAIT:JBC TI, CONTSJMP WAITCONT: INC R0DJNZ R7, LOOPRET 多机通信?D8=1表示该帧信息传递的是地址D8=0表示该帧信息传递的是数据主机用TB8作为地址 / 数据识别位地址帧:TB8=1 数据帧:TB8=0?各从机SM2=1 ?通信前 , 先发地址。 SM2=1 , RB8=1 各从机接收的信息都有 效,置RI=1,各从机CPU响应中断后通过软件 判断主机送来的是否本从机地址,是SM2=0 ; 否 SM2=1 ?接着发送数据。由于RB8=0,只有SM2=0的从 机才能激活RI标志, 接收主机数据信息,其它 从机数据将丢失。【返回】 中断系统? 中断源? 中断控制? 中断响应 ? 中断请求的撤除【返回】 中断源?MCS-51的5个中断源? 外部中断0、1――――外部中断源从引脚INT0或INT1输入电平触发 IT0(IT1)=0时,INT0(INT1) 出现低电平时向CPU申请中断。CPU响应中断后 应采取措施撤消中断请求信号,使INT0(INT1) 恢复高电平。跳变触发(边沿触发) IT0(IT1)=1时, INT0(INT1)引脚出现负跳变时 ,使IE0(IE1) =1,向CPU申请中断。CPU响应中断后硬件自动 清除IE0(IE1) 中断源寄存器TCON:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0SCON: TI RIIE1:外部中断1跳变中断请求标志。IE0:外部中断0跳变中断请求标志。IT1:用软件置位 / 清0来选择外部中断1的跳变/ 电平触发中断请求。IT0:用软件置位 / 清0来选择外部中断0的跳变/ 电平触发中断请求。 ?定时器 / 计数器0、1溢出中断 溢出时,硬件分别置位TF0或TF1,向 CPU申请中断。CPU响应中断后,硬件清零 TF0、TF1。 ?串行接口中断 发送(接收)一帧信息后,硬件置 TI=0(RI=1),向CPU申请中断。CPU响应 中断后软件清零TI(RI) 小结除外部中断电平触发方式外,其它各 个中断是由标志位IE0、IE1、TF0、 TF1、TI、RI置位引起的。这些标志除 了由相应的硬件置位外,还可由软件置 位,若需要,可用程序安排产生中断。 中断控制? 中断允许控制中 断 屏 蔽 触 发 器 ( K1) 和 中 断 允 许 触 发 器 (K2)由中断允许寄存器IE控制工作.IE的格式为:: EA ― ET2 允许 允许 ES ET1 EX1 中断 ET0 允许 EX0 中断CPU 定/计2 串行 定/计1 外部 定/计0 外部中断 允许位位允许位 位允许位 位允许位?以上每 一位都 可以由 软件置 1 或清零(1 :允许 中 断 0:中断屏蔽) ?中断优先权选择? 每一个中断源都可以编程确定为高或低优先级 中断。 中断优先级由中断优先级寄存器IP控制。IP格式:- - PT2 PS PT1 口中 中断断优 优先PX1 断1中断PT0 中断优先PX0 断0中断 级选串行 定/计1 外中 定/计0 外中先级 级选选择 择位优先 级选 优先级选 择位位择位择位 ?IP中的每一位都可以由软件来置1或清零 1:高优先级 0:低优先级 ?同一优先驱级中的中断源优先权排队由中断系 统的硬件确定,用户无法自行安排。同级中断 优先权排列顺序为: 外部中断0 定 / 计0中断 外部中断1 定/计1中断 最高串行接口中断最低 例:某单片机系统用于定时测试压力, 温度,并用定/计0实现定时,如压力超 限和温度超限的报警信号分别由INT0、INT1输入,中断优先权排列顺序依次为压力超限 温度超限 定时检测。试确定专用寄存器 IE和IP的内容。 IE 1 ― 0 0 0 1 1 187H 压力超限中断允许中断屏蔽 定时检测中断允许温度超限中断允许IP ― ― X X X 1 0 105H 压力超限中断高优先级定时检测中断低优先级温度超限中断高优先级 ?MCS―51系列单片机的中断优先权三条原则:?正在进行的中断过程不能被某个同级或低优先级 的中断请求所中断,一直到该中断服务程序结束, 返回了主程序且执行了主程序中的一条指令后, CPU才响应某个的中断请求。?正在进行的低优先级中断服务程序能被高优先级 中断请求所中断,实现二级中断嵌套。 中断系统有两个用户不能使用的优先级状态触发 器,一个置1表示正在执行高优先级的中断服务程 序;另一个置1表示正在执行低优先级的中断服务 程序。 ?CPU同时接收到几个中断请求时,首先响应优先 权最高的中断请求。 中断响应?响应中断的条件:除下列三种情况外,CPU响应中断。?CPU正在处理同级或高优先级的中断; ? 现行的机器周期不是所执行指令的最后一个 机器周期;? 正在执行的指令是RETI或访问IE、IP的指令。 ?CPU响应中断后硬件自动完成的操作: ? 根据优先级高低,使相应的优先级状态触发器 置1; ? 保留断点,即把PC内容推入堆栈保存; ? 清相应的中断标志位IE0、IE1、TF0或TF1; ? 把被响应的中断服务程序的入口地址送入PC, 从而转入相应的中断服务程序。中断服务程序的 最后一条指令必须是RETI。 中断请求的撤除? 定 / 计0、1及跳变触发方式的外部中断0、1的中断请求,CPU响应中断后用硬件清除了相应的TF0、 TF1、IE0、IE1,即自动撤除了中断请求。 ?对串行接口及定 / 计2中断,CPU响应中断后必 须由用户编制的中断服务程序清除相应的中断标 志。 ?对于电平触发的外部中断,外接电路来撤除中断 请求信号。 ANL ORL P1,#0FEH P1,#01H【返回】 特殊工作方式?复位方式 ? 复位工作状态 ? (PC)=0000H ? (PSW)=00H 复位后单片机选择工作 寄存器0组 ? (SP)=07H 复位后堆栈在片内RAM 的08H单元处建立 ? TH1、TL1、TH0、TL0内容为00H 复 位后定时器/计数器的初值为0? (TMOD)=00H复位后定 / 计0、1选 择定时器工作方式0,非门控方式。 ?(TCON)=00H ?(SCON)=00H ?(IE)=00H ?(IP)=00H先级中断状态复位后定 / 计0、1停止 工作,外部中断0、1为电平触发 复位后串行口工作在移 位寄存器方式、且禁止串行移位接收 复位后中断系统禁止工作 复位后全部中断设置在低优? P0―P3口 FFH锁存器全1,说明复位后 这些并行接口可以作输入口 ?复位电路?MCS-51单片机系统有上电复位和操作复 位两种方法 ?复位靠外部电路实现?节电方式:减少单片机功耗的工作方 式?HMOS机型的掉电方式?片内RAM的供电方式?掉电操作的时序?掉电操作电路 ?CHMOS机型的节电方式:分等待(空闲)方 式和掉电(停机)方式 ?结构电源控制寄存器PCON的设定SMOD - - GF1 GF0 PD IDL?PD 、IDL同时为0,正常工作方式?PD=1,执行指令MOV PCON,#02H可进 入掉电工作方式 ?IDL=1,执行指令MOV PCON,#01H可 进入等待方式 ?复位时SMOD、PD、IDL、GF1、GF0均为 0,单片机处在正常工作方式。?等待方式:CPU进入等待状态 退出等待方式可采用中断退出或按钮复位 退出。?掉电方式:片内震荡器停止工作,单片机所 有的运行状态都停止,仅片内RAM的数据被 保存起来。退出等待方式只能采用按钮复位。【返回】 P0。0-P0。7 VCC VSS P0驱动器 RAM 地址 寄存器 RAMP2。0-P2。7 P2驱动器P0锁存器P2锁存器EPROM或ROM16位地址寄存器 A B寄存器 PSENALESP 暂存器1 ALU 中断系统 串行口 定时器/ 计数器缓冲器暂存器2PSWPC加1PC DPTREARST指 定时 令 及 寄 控制 存 器 振荡器P1锁存器 P1驱动器P3锁存器 P3驱动器XTAL1XTAL2P1。0-P1。7 P3。0-P3。7【返回】 P1.0 P1.11 240 39VCC P0.0 P0.1P1.6 P1.7 RST VPD RXD P3.0 TXD P3.1 INT0 INT1 T1 T0 WR RD P3.7 XTAL2 XTAL1 VSS10 1131 30P0.7 EA/VDD ALE/PROG PSEN P2.7 P2.62022 21P2.1 P2.0图2-2 MCS-51系列单片机芯片引脚图374【返回】 30pF C1 C2 30pFXTAL1 单 片 机 XTAL2图 2-4单片机外接晶体的接法【返回】 振荡器信号(XTAL2端)P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2S1S2S3S4S5S6S1ALE读操作码 读下一个操作码(丢掉)S1S2读操作码S3a)S4S5读第2字节S6S1S2S3b)S4S5S6图 2-5 单周期指令的时序a)单字节单周期指令,如INC A b)双字节单周期指令,例如ADD A ,#data【返回】 0000HH 00H片内ROM EA=10FFFH片外ROM EA=0片内RAM7FH 80H0FFFHFFHSFR片外RAM1000H片外ROMFFFFHFFFFH程序存储器数据存储器图 2-651子系列的存储器编址图 0000HH 00H片内ROM EA=11FFFH片外ROM EA=07FH 80H片内RAM80HSFRFFH1FFFHFFH片外RAM2000H片外ROMFFFFHFFFFH程序存储器数据存储器图 2-752子系列的存储器编址图【返回】 T1 TCYT0TH1内部 总线溢 出TL1溢 出TH0工作 方式 4TL04 工作方式启动 TCON 启动TMOD中断请求图2-9 定时器/计数器0、1的结构【返回】 振荡器÷12TCYC/T=0S2 TL1 5位 C/T=1 “1”闭合 & TH1 8位S1 T1引脚 TR1 GATE1 &1TF1中断AINT1引脚图2-10 定时器/计数器1工作方式0结构图【返回】 振荡器 T1引脚 TR1 GATE1÷12TCYC/T=0S2S1C/T=1 & &1 A“1”闭合TL1 8位TF1中断重装载信号TH1 8位INT1引脚 图2-11 定时器/计数器1工作方式2结构图【返回】 振荡器 TCY S1 T0引脚÷12TCY C/T=0S2TL0 8位C/T=1 “1”闭合&TF0中断TR0 GATE1 &1INT0引脚TCY TR1TH0 8位TF1中断图2-12 定时器/计数器0工作方式3结构图【返回】 读锁存器信号2内部总线 D 写锁存器信号 读信号 图2-15 QVcc上拉电阻P1.i引脚CLK Q1V1P1口1位结构原理图 【返回】 读锁存器信号3内部总线D 写锁存器信号 Q控制信号 地址 Vcc上拉电阻1 P2.i引脚CLK Q2读信号图2-16 P2口1位结构原理图【返回】 读锁存器信号 第二功能输出 Vcc 2 内部总线 D Q& 3 4 1&上拉电阻P3.i引脚 V1写锁存器信号读信号CLK Q1第二功能输入图2-17 P3口1位结构原理图【返回】 地址/数据输出 读锁存器信号 控制信号 & 2 3 内部总线 D Q 4 “1” 写锁存器 CLK Q & “0”Vcc V2V1 P0.i读信号1图2-18 P0口1位结构原理图【返回】 P1.7 单 片 机 P1.0 a)外 设RXD 单 片 TXD 机 b)外 设图2-19 并行通信与串行通信 a)并行通信 b)串行通信【返回】 第N个字符 D0 D1 D2 D3 D4 D5 D6 D7第N+1个字符 D0 D1 D2 0 10 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 起始位 数据 a) 停止位 空闲位第N个字符 D0 D1 D2 D3 D4 D5 D6 D7 D81第N+1个字符 D0 D1 D2 0 0 0 1 1 1 1 0 1 1 10 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 起始位 数据 b)停止位 空闲位图2-20 异步通信的格式 a) 8位数据 b) 9位数据【返回】 Td同步字符1 同步字符2 图2-21数据块同步通信的格式【返回】 写SBUF内部总线并入18 启 动串出 发送数据缓冲器 SBUF 内部位移脉冲 SEND 发送控制器串行口中断 1≤4 TI RI 接收控制器 RECV5&≥16 & TXD引脚时钟S6移 位 脉 冲装 载 SBUF内部位移脉冲 移位寄存器 2 并出启动 REN RXD引脚串入(数据)3 读SBUF接收数据缓冲器 SBUF 图2-22 串行接口方式0结构示意图【返回】 写入SBUFS6P2 SENDRXD (数据输出) TXD (同步移位脉冲) TI(中断标志) 置REN=1 RI(接收中断标志) RECV RXD(数据输入) TXD (同步移位脉冲)a)b)图2-23 串行接口方式0的时序 a) 发送 b) 接收【返回】 写SBUF内部总线8并入 1 启动发送数据缓冲器 SBUF 内部 移位脉冲 发送控制器串入 输出 TXD引脚 控制门波 特 率 发 生 器串行口 中断SEND DATA TI1?RIREN接收控制器 内部 移位脉冲 装 载 移位寄存器 并出 SBUF 串入 启动位检测器RXD引脚23读SBUF8 接收数据缓冲器 SBUF【返回1】 【返回2】图2-24 串行接口方式 1、2、3 结构示意图 写入SBUF SEND TXD TI a)起始位 起始位D0D1D2D3D4D5D6D7停止位RXD 位采样 789 RID0D1D2D3D4D5D6D7停止位b)图2-25 串行接口方式 1时序 a) 发送 b)接收【返回】 写入SBUF SEND TXD TI a)起始位 起始位D0D1D2D3D4D5D6D7停止位RXD 位采样 RID0D1D2D3D4D5D6D7停止位b)图2-26 串行接口方式 2、方式3 时序 a) 发送 b)接收【返回】 TXD RXD 8051 主机TXD RXD8051从机“0”TXD RXD8051从机“1”TXD RXD8051从机“2”图 2-27 多机通信方式【返回】 IT0INT0=01 IE0 1 IE1IE?1EAIP?查询硬件 查 询 高级中断 顺 请求 序 识 别 查 询 顺 序 中断入口 地址 低级中断 请求 中断入口 地址 【返回】=1 TF0 IT1 =0EX0PX0INT1 =1 TF1 TI RI TF2 EXF2ET0 ?1 EX1ET1PT0 ? PX1PT1???PS ES ? ?1 PT2 ET2 识 别 K1 K2 图 2-28 中断系统结构示意图?1 单 INT0 片 机 P1.0QD 外部中 断请求 信号S CLK图 2-29 撤除外部中断请求的电路【返回】 系统其他芯片+5V R 10k?C3 C1 + + C2 + 10?F 100pF 10?F1+5V VCC RSTMCS-51图 2-30 复位电路【返回】 RST/VPD复 位 施密特触发器电 路VCC内部RAM图 2-31 片内RAM的供电 【返回】 VCC INT0RST/VPD 正常操作 VPD供电 中断服务图 2-32 继续 复位 正常操作 【返回】掉电操作时序 ⑧ VDD ④ R(复位) R ⑤ 5k? CON +I TH ⑥ MCS-51 5k? ② ③ OUTRST/V PD +II TL C1 P1.0 ⑦ 5k? D + C T 地 555定时器 ① ①②③……为555的引脚号 图 2-33 掉电操作电路VCCV备【返回】 XTAL2IDL&CPUXTAL1振荡器 & PD 图 2-34时钟 发生 器中断系统 串行口 定时器/计数器等待与掉电方式控制电路 【返回】 MCS―51系列单片机的指令 系统和汇编语言程序示例? ? ? ? ? ? ? ? ? ? ? ? ? ? ?汇编语言与指令系统 寻址方式 数据传送类指令 算术操作类指令 逻辑操作类指令 程序转移类指令 位操作类指令 汇编语言源程序的格式和伪指令 算术逻辑处理程序 数制转换程序 多分支转移(散转)程序 延时程序 定时器/计数器应用程序 外部中断应用程序 串行接口应用程序【返回】 汇编语言与指令系统? 程序设计语言(Programming Language)? 汇编语言程序设计的重要性? MCS―51系列单片机的指令系统【返回】 程序设计语言?程序:完成某项特定任务的指令的集合 ?程序设计语言:用来编写程序的语言?汇编语言:是一种用助记符来表示的面向机器的程序设计语汇 人工汇编 言。 编 汇编程序 例: MOV R0,#40H(MCS―51)?机器语言:是一种用二进制代码“0”或“1”形式来表示,能够解释程序 编译程序 被计算机识别和执行的语言。例:7840H00000B?高级语言:可通用于各种不同的计算机,不依赖于具体计算机的结构和指令系统(适用于科学计算、数据 处理等)。如FORTRAN 、C 、BASIC语言等。 汇编语言程序设计的重要性 ?存储容量较小的计算机系统必须应用 汇编语言编程。?对于要求反应灵敏与控制及时的工控、 检测等实时控制系统及要求体积小、系 统小的许多“电脑化”产品,采用汇编 语言编程,优越性较明显。?学习微机原理课程通常都相伴着学习 汇编语言程序,本书讲述MCS―51系列 单片机,系统比较小,汇编语言程序的 重要性便更见突出。 MCS―51系列单片机的指令系统?汇编语言指令格式操作码助记符例: MOV目的操作数, 源操作数A, #29H? 机器语言指令格式单字节:操作码双字节:操作码 数据或寻址方式三字节:操作码 数据或寻址方式 数据或寻址方式 ? 汇编语言手译成机器语言(附录B)例: MOV A,#29H ; ?MCS―51有111条指令数据传送类指令 算术操作类指令 操作性质 逻辑操作类指令 程序转移类指令 位操作类指令 单字节 指令长度 双字节 三字节 指令周期74H29H12MHz晶振 单周期 双周期 四周期 1? s 2? s 4? s【返回】 寻址方式――指令给出参与运算的数据的方式称为寻址方式 ? 立即寻址 ? 寄存器寻址 ? 寄存器间接寻址 ? 直接寻址 ? 基址寄存器加变址寄存器间接寻址 ? 相对寻址【返回】 源操作数例:MOV A,#30H ; #30H立即数 MOV A,R0 ; R0寄存器 MOV A,@R0 ;MOV A,30H@R0; 30H直接地址 单元 ?立即寻址:由指令直接给出操作数来寻址。 MOV A,#29H ; MOV A,#30H ; 机器码 74H 29H 机器码 74H 30H?寄存器寻址:对由指令选定的寄存器进行读/写。其中寄存器包括(Ri,A,B,DPTR, CY)MOV A,Ri ;机器码 E8H~EFHADD A,R2 ;机器码 2AH ?寄存器间接寻址:将指令的寄存器(R0,R1, DPTR)内容为地址,由该地址所指定的单元内容 作为操作数。 MOV指令访问片内RAM 访问数据存储器 MOVX指令访问片外RAM例: MOV A,@Rj ;(A) ((Rj))若j=1 ,(R1)=40H , 片内RAM 40H单元内 容1AH, 则 ((R1)) (A),即 (40H) (A) 即 1AH (A) ?直接寻址:直接给出操作数所在的存储器地 址。可访问程序存储器,也可访问数据存储器?访问程序存储器LJMP addr16 AJMP addr11 LCALL addr16 ACALL addr11 ?访问数据存储器?访问片内RAM低128字节(00H~7FH) 例: MOV A,30H是访问专用寄存器的唯一方法。 SFR分布在 80H∽FFH之间??直接寻址指令不能访问片内RAM的高128个 单元,要访问这些单元只能用寄存器间址指令访问位地址空间 共221位(P49―P51)直接位 寻址?例: MOV C,P1.0 ?基址寄存器加变址寄存器间接寻址:用于访问程序 存 储器,以PC或DPTR为基址寄存器,以累加器A为变址 寄存器,这二者内容之和为有效地址。 MOVC A,@A+DPTR;(A) ((A)+(DPTR)) 若(A)=03H (DPTR)=0400HH H40H 79H 24H 30H则 (A)即 (A)(0403H)30HMOVC A,@A+PC; (PC) (PC)+1 (A) ((A)+(PC)) ?相对寻址:用于访问程序存储器。凡写有rel的指令都 属相对寻址方式。以PC当前值为基准值,加上指令中给出的相对偏移 量(rel)形成有效转移地址。例 0200H0203HCJNE A,#FFH, rel;(A)≠ FFH,程序将转移 到 PC的当前值+rel的地址执行, 否则顺序执行。设指令放在首址0200H ,(A)=00H,程序转移去0220H执行。则(PC+3)+rel=0220H,rel=1DH 机器码:B4 FF 1DH 寻址方式立即寻址 寄存器寻址 寄存器间接寻 址 直接寻址相应的存储器空间程序存储器立即数 R0~R7,A,B,C,DPTR 内部RAM(@R0,@R1,SP) 外部数据存储器(@R0,@R1,@ DPTR)内部RAM低128字节,程序存储器 特殊功能寄存器 内部RAM位寻址区的128个位或特殊功能寄存器中可寻 址的位基址寄存器加变 址寄存器间接寻 址程序存储器(@A+DPTR,@A+PC)程序存储器,以PC的当前值为基地址+指令中给出的偏 移量=有效转移地址。转移范围:PC当前值的+127~128字节相对寻址 问题 1、MCS―51系列单片机的寻址方式有哪几种?2、指出下列指令源操作数寻址方式:MOV A,40HMOV A,@R0MOV A,#40HMOV 74H,#78HMOV R0,AMOV P3,P1【返回】 数据传送类指令?一般传送指令 ?访问片外RAM的传送指令 ?基址寄存器加变址寄存器间址指令 ?交换指令 ?进栈出栈指令【返回】 ?一般传送指令 格式: MOV@Rj @Rj目的操作数, 源操作数directA ARi Ri#dataDPTR ?以A为目的操作数的指令MOV A,@RjMOV A,direct; (A) ((Rj)); (A) (direct)MOV A, RiMOV A, #data; (A); (A)(Ri)#data ?以Ri为目的操作数的指令MOV Ri,A MOV Ri,#data MOV Ri,direct ;(Ri) (A) ;(Ri) #data ; (Ri) (direct) ?以direct为目的操作数的指令MOV direct, A MOV direct, Ri; (direct) ; (direct)(A) (Ri) (direct) #dataMOV direct, direct ; (direct) MOV direct, @R MOV direct, # (direct )(direct) ((Rj )) ?以@Rj(间接地址)为目的操作数的指令 MOV @Rj, ((Rj)) MOV @Rj, A ;((Rj)) MOV @Rj, #((Rj)) (direct) (A) #data #data16?以DPTR为目的操作数的指令MOV DPTR, #data16;(DPTR) 例题: 1.指出下列指令的区别MOV A,4FH ; (A) (4FH) (A) 4FH MOV A,#4FH ;MOV 4FH,#4FH ; (4FH) 4FH 2.已知(30H)=40H(40H)=10H(P1)=0CAH 问依次执行下列指令后,(R0)=?, (R1)=?(A)=?, (B)=?, (P1)=? , (P2)=?程序: MOV R0,#30H ; (R0) 30H (R0)=30H MOV A,@R0 MOV R1,A MOV B,@R1 MOV P2,P1 ;(A) ((R0))(A) (30H)(A)= 40H; (R1) (A) (R1)= 40H ; (B) ((R1)) (B)=10H(P1) (40H)=0CAH((R1)) MOV @R1,P1 ;(P2) (P1)(P2)= 0CAH ; 3.请选用指令,分别达到下列操作(1)将累加器内容送寄存器R6。 (2)将累加器内容送片内RAM 的7BH。 解:(1) (2) MOV R6,A MOV 7BH,A ?访问片外RAM的传送指令格式: MOVX@Rj @Rj目的操作数, 源操作数A A @ DPTR @DPTRMOVX A ,@Rj,;某片外RAM单元(8位地址)内容送 AMOVX @Rj,A;A的内容送某片外RAM单元(8位地址)MOVX A,@DPTR ;某片外RAM单元(16位地址)内容送A MOVX @DPTR,A ;A的内容送某片外RAM单元(16 位地址) 例题:请选用指令,分别达到下列操作(1)将累加器内容送片外RAM的7BH单元(2)将累加器内容送片外RAM的007BH单元解: (1) MOV R0,#7BH MOVX @R0,A (2) MOV DPTR,#007BH MOVX @DPTR,A ?基址寄存器加变址寄存器间址指令 多用于查表程序 MOVC A,@A+DPTR ;(A) MOVC A,@A+PC ; (PC) (A)((A)+(DPTR)) (PC)+1 ((A)+(PC)) ?交换指令?字节交换指令:XCH A,RiXCH A,direct; (A); (A)(Ri)(direct)XCH A,@ Rj?半字节交换指令:; (A)((Ri)) ((Rj)0~3)(A4~7)XCHD A,@Rj ;(A0~3)SWAP A ;(A0~3) 例:1.(R0)=20H,(A)=3FH,(20H)=75H .执行XCH A,@R0 后的结果? (A)=(20H)=75H(20H)=(A)=3FH2 . 设 ( R0)=20H,(A)=36H=B, (20H)=75H,执行XCHD A,@R0后的结果? (A)=35H (20H)=76H 3.设(A)=C5H,执行SWAP A 指令后的结果?(A)=5CH ?进栈出栈指令 用于保存及恢复现场。 PUSH direct ;(SP) (SP)+1 ((SP)) (direct) POP direct ;(direct) ((SP)) (SP) (SP)-1 例: (SP)=30H 问执行(DPTR)=0123H ;(SP) ((SP)) ;(SP) ((SP)) 30H+1 (DPL) 31H+1 (DPH)PUSH DPL PUSH DPH后的结果?结果 (31H)=23H , (32H)=01H, (SP)=32H 再执行 POP A POP B 后的结果? 结果(A)=01H , (B)=23H , (SP)=30H【返回】 算术操作类指令?加法指令 ?减法指令 ?加1指令 ?减1指令 ?其它算术操作指令【返回】 ? 加法指令?不带进位位加法指令ADD A,Ri ADD A ,@Rj; (A) ; (A) (A)(A)+(Ri) (A)+((Rj)) (A)+(direct) (A)+#dataADD A,ADD A, # (A) ?带进位加法指令ADDC A,R (A) ADDC A,@R (A) ADDC A, (A) ADDC A, # (A)(A)+(Ri)+(C) (A)+((Rj))+(C) (A)+(direct)+(C) (A)+#data+(C) ? 加法指令将影响标志位C、AC、OV?最高位有进位,(C)=1,否则(C)=0 (无符号数相加,和的溢出与C置位统一) ?低4位向高4位进位 ,(AC)=1,否则 (AC)=0 (AC在做BCD码加法时有用) ?最高位和次高位不同时进位,(OV)=1, 否则(OV)=0。带符号数相加,(OV)=1 表示和&+127或&C128。(OV在做带符号加 法时有用) 例:累加器(A)=6AH,(R1)=43H. 执行指令ADD A,R1,问(A)= ? (C)=? (AC)=? (OV)= ? 解: B + B
B A D H (AC)=0 (C)=0 (OV)=1?分析(C)=0, (OV)=1: 1.若6AH,43H为无符号数,结果 ADH正确. 2.若6AH,43H为带符号数 +106、+67 , (OV)=1表示结果&+127或&-128,应以C 为符号位,整个字节为数读作+173 ?减法指令SUBB A,R(A) SUBB A, @R(A) SUBB A,(A) SUBB A,#(A) (A) - (Ri) - (C) (A) - ((Rj)) - (C) (A) - (direct) - (C) (A) -#data - (C) ?减法指令将影响标志位C、AC、OV?最高位有借位 ,(C)=1,否则(C)=0?低4位向高4位借位 ,(AC)=1,否则 (AC)=0 ?最高位和次高位不同时借位 ,(OV)=1, 否则(OV)=0。带符号数相减,(OV) =1表示差&+127或&C128 例: (A)=6AH (R1)=43H (C)=0 执行指令 SUBB A,R1 B C)100111B ( AC)=0 (C)=0 (OV)=0 (A)=27H 若 (A)=43H (R1)=6AH (C)=0 执行指令SUBB A,R1BC)1011001B 求反+1 为 B即 C27H(AC)=1 (C)=1 (OV)=0 ?加1指令:不影响标志位INC INC INC INC INC A Ri @Rj direct DPTR ;(A) (A)+1 ;(Ri) (Ri)+1 ;((Rj)) ((Rj))+1 ;(direct) (direct)+1 ;(DPTR) (DPTR)+1?P0、P1、P2、P3地址分别为80H、90H、A0H、 B0H,若 INC direct中直接地址为上面的其中一 个,指令对端口“读―修改―写” ?减1指令:不影响标志位DEC A;(A) DEC Ri;(Ri)(A)-1 (Ri)-1((Rj))-1 (direct)-1DEC @Rj ;((Rj)) DEC direct ;(direct) ?其他算术操作指令 MUL AB ;(B)(A) (A)×(B) 标志位:(C)=0 积&255时(OV)=1,否则(OV)=0 DIV AB ;(A)为商,(B)为余数 (A)/(B) 标志位: 一般(C)=0(OV)=0 除数为0时,(OV)=1 DA A;十进制调整指令,①低半字节值&9 或AC=1,低半字节加6②高半字节值&9或AC=1,高半字节加6 例: (A)=15D ADD A,#28D ; (A)=3DH DA A ; (A)=43 例:已知:(A)=68H,(R1)=68H,(B)=04H,C=1, 片内RAM(68H)=BBH,分别写出执行各条指令的结果(1)ADD A,@R1 ;(A) (68H)+(BBH (2)ADDC A,68H ;(A) (68H)+(A)+(C) (3)SUBB A,#66H ;(A) (A)C #66HC(C) (4)INC R1 ;(R1) (R1)+1 (5)DEC 68H ;(68H) (68H)C1 (6)MUL AB ;(B)(A) 68H×04H 例:试编程:两个4位BCD码数相加求和, 设被加数存于内部RAM的40H,41H单元, 加数存于30H,31H单元,和数存于50H, 51H(均前者为低二位,后者为高二位)。MOV A,40H ADD A,30H DA AMOV 50H,A DA A MOV A,41H ADDC A,31H MOV 51H,A【返回】 逻辑操作类指令? 与指令 ? 或指令? 异或指令? A操作指令【返回】 逻 辑 “ 与 ” 运 算 规 则 0 Λ 0=00Λ 1=1Λ 0=01Λ 1=1即全“1”才“1”,有“0”则“0”逻辑“或“运算规则 0V0=0 0V1=1V0=1 1V1=1即全“0”才“0”,有“1” 则“1”逻辑“异或”运算规则 0?0=00 ? 1=1 ? 0=1 1 ? 1=0 即按位加 0=1 1= 0 逻辑“非”运算规则例: ?与指令:用0使被修改数的相应位清零, 用1使被修改数的相应位保持原值。 ANL ANL ANL ANL ANL ANL A, R (A ) A, @R (A) A, (A) A,# (A) direct,A ;(direct) direct,#(direct) (A)Λ (Ri) (A)Λ ((Rj)) (A)Λ (direct) (A)Λ #data (direct) Λ (A) (direct) Λ #data 例:1. 清除累加器的高4位,不改变各 未涉及 位内容。 ANL A,#.清除A.3、A.4、A.5、A.6ANL A,#B3.使RS1、RS0清零。 ANL PSW,#B ?或指令:与1相或的位置1,与0相或的位保 持原值。 ORL A, R (A ) (A) V (Ri) ORL A,@R (A) (A) V ((Rj)) ORL A, (A) (A) V (direct) ORL A,# (A) (A) V #data ORL direct,A ;(direct) (direct) V (A) ORL direct,#(direct) (direct) V# data 例1:使累加器最低位置“1”,其它位不变。 ORL A,#B 例2:(A)=12H,(R0)=71H, (71H)=55H 执行指令 1)ORL A,R0后(A)=? (A)= 73H2)ORL A,@R0后(A)=?(A)= 57H 例3:根据累加器中位4~0的状态来修改P1端口 位4~0的状态。(或将累加器A的内容送P1口的 低5位,传送时要求绝对不影响P1口的高3位) 分析:要求P1变为 P1.7 P1.6 P1.5 A4 A3 A2 A1 A0 P1.7 P1.6 P1.5 0 0 0 0 0 A4 A3 A2 A1 A0 V) 0 0 0 P1.7 P1.6 P1.5 A4 A3 A2 A1 A0ANL A, #B ;将累加器A高3位屏蔽掉 ANL P1,#B ;将P1口锁存器内的低5位 屏蔽掉 ORL P1,A 或 ANL ORL ORL ANLA,#B P1,A A,#B P1,A ?异或指令:与1异或的位取反,与0异或的 位保持原值不变。 XRL A,Ri ; (A) (A) ?(Ri) XRL A,@Rj ; (A) (A) ?((Rj)) XRL A,direct ; (A) (A) ?(direct) XRL A,#data ; (A) (A) ?#data XRL direct,A ;(direct) (direct) ?(A) XRL direct,#data;(direct) (direct) ? #data例:将P1.5,P1.4,P1.0取反,其它各位不变。 XRL P1,#B ?A操作指令(单操作数逻辑运算指令) CPL A ;(A) (A ) CLR A ;(A) 0 RL A ; A7 C A7 A0 A7 A0 相当于原内容乘2 A0 相当于原内容除2RLC A ; RR A ;RRC A ;CA7A0 例: 设(A)=5AH C=1 则执行指令 CPL A 后 (A)=A5H CLR A 后 (A)=0 RL A 后 (A)=B4H RR A 后 (A)=2DH RLC A 后 (A)=B5H RRC A 后 (A)=ADH【返回】 程序转移类指令?无条件转移指令 ?条件转移指令 ?调子指令【返回】 ?无条件转移指令? 绝对转移指令 ? 长转移指令? 相对短转移指令? 相对长转移指令 ? 绝对转移指令AJMP addr11?指令执行的操作(PC) (PC)+2(PC10~0)addr11 (PC15~11)不变?寻址2KB范围,且在PC当前值所指的2KB 地址范围内 ?机器码:第一字节 a10 a9 a8 0 0001B 第二字节 a7 ~ a0 B 第一字节:a10 a9 a8 0 0 0 0 1 B机器码0 0 0 0 0 0 0 1B0 0 1 0 0 0 0 1B即 01H21H0 1 0 0 0 0 0 1B0 1 1 0 0 0 0 1B41H61H1 0 0 0 0 0 0 1B1 0 1 0 0 0 0 1B81HA1H1 1 0 0 0 0 0 1B1 1 1 0 0 0 0 1BC1HE1H只要a10 a9 a8相同第一字节机器码就相同。 ?用法:例 设标号“JMPADR”表示存储器的地 址为0123H,(PC)=0345H,执行指令 AJMP JMPADR 结果 (PC)=0123H 机器码: 01
即机器码为21H 23H 00011B a10 ~ a0 例:已知(A)=0,(R1)=40H,片内RAM(30H) =01H,FIRST=2000H,SECOND=2050H, 试分别写出指令的机器码及执行结果。 FIRST : AJMP SECOND 机器码:先把 2050H表示为01 0000B0 0 0 0 0 0 0 1B0 1 0 1 0 0 0 0B即 机器码为0150H 执行结果:转2050H执行 ? 长转移指令LJMP addr16 ?指令执行的操作 (PC) (PC)+3 (PC) addr16 ?寻址64KB范围?机器码:第一字节02H第二字节 a15 ~ a8B第三字节 a7 ~ a0B 例: FIRST=2000H SECOND=2050H 写出指令机 器码及执行结果。 机器码 结果FIRST: LJMP SECOND022050H转2050H ? 相对短转移指令SJMP rel ?指令执行的操作 (PC) (PC)+2 (PC) (PC)+ rel ?寻址范围:在PC当前值基础上的 -128~ +127B地址范围内转移 ?机器码:第一字节 80H 第二字节 rel 例:写出指令SJMP $的机器码,并分析执行 指令的结果。rel=$ -($+2)=C2 即 B 取反加1 为
FEH 机器码 80H FEH 结果:程序仍转移回此指令继续执行。?符号 $一般指“本指令所在的首址” ?相对长转移指令JMP @A+DPTR ?指令执行的操作 (PC) (A)+(DPTR) ?寻址范围:在全64K范围内无条件转移 ?机器码:73H 例:已知累加器A的内容为0,2,4,6,8五个偶数中的一个, 又标号TAB的真实地址为1800H,试剖析下列程序段的执行结果。MOV DPTR,#TABJMP @A+DPTR. .设(A)=0(PC)=0+1800H 执行结果:转LABEL0执行.1800H TAB:AJMP LABEL0 H 1806H AJMP LABEL1 AJMP LABEL2 AJMP LABEL3设(A)=4(PC)=4+1800H执行结果:转LABEL2执行1808HAJMP LABEL4 ?条件转移指令? 累加器内容为零转移指令? 累加器内容不为零转移指令 ? 比较转移指令 ? 减1不为零转移指令 ?累加器内容为零转移指令JZ rel ;(PC) (PC) +2 (A)=00H,(PC)=(PC)+rel(A)≠00H,程序顺序执行机器码: 第一字节 60H第二字节相对地址 ?累加器内容不为零转移指令JNZ rel ;(PC) (PC) +2 (A) ≠ 00H,(PC)=(PC)+rel(A)=00H,程序顺序执行机器码: 第一字节 70H第二字节相对地址 ?比较转移指令?格式:CJNE 目的字节,源字节,rel 不相等,则转移到(PC)原值 +3+rel, 若(目的字节)&(源字节), (C)置1 ,否则(C)清零。?功能:比较目的字节和源字节操作数,若 CJNE A,direct,relCJNE A,#data,relCJNE Ri,#data,relCJNE @Rj,#data,rel ?减1不为零转移指令DJNZ Ri,rel ;(PC)(Ri)(PC) (PC) +2 ,(Ri)-1, 若(Ri)≠0,(PC)+rel若(Ri)=0,顺序往下执行DJNZ direct,rel ; (PC)≠0, ( direct ) (PC)(PC)+3 , (direct)-1 ,若(direct)(PC)+rel若(direct)=0,顺序往下执行 例1.MOV A,#01H WAIT:CJNE A,P1,WAIT功能:只有当P1口输入为01H时程序才进行下去,否则计算机等待。例2.设(R5)=01H,(R6)=70H,(R7)=15H 执行 DJNZ R5,DL3 ;顺序执行 ;转去DL2 ;暂时不会执行DJNZ R6,DL2DJNZ R7,DL1 例3.实现三个机器周期MOV R7,#10LOOP:CPL P1.0 ;1周期DJNZ R7,LOOP ; 2周期 例4:编一段程序P2.7输出一个脉冲,要 求脉宽持续5个机器周期。CLR P2.7 NOP NOP NOP NOP SETB P2.7 ;空操作 ?调子指令? 绝对调子指令? 长调子指令 ? 返主指令 ? 中断返主指令 ?绝对调子指令(2KB地址内)ACALL addr11 ;(PC) (SP) (SP) (PC)+2 (SP)+1 (SP)+1((SP)) (PC7~0) ((SP)) (PC15~8) (PC10~0) addr11 第一字节:a10 a9 a8 1 0 0 0 1 B机器码0 0 0 1 0 0 0 1B0 0 1 1 0 0 0 1B即 11H31H0 1 0 1 0 0 0 1B0 1 1 1 0 0 0 1B51H71H1 0 0 1 0 0 0 1B1 0 1 1 0 0 0 1B91HB1H1 1 0 1 0 0 0 1B1 1 1 1 0 0 0 1B 第二字节: a7 ~ a0D1HF1H ?长调子指令(64KB地址内)LCALL addr16 ;(PC) (SP) (SP) (PC) (PC)+3 (SP)+1 (SP)+1((SP)) (PC7~0) ((SP)) (PC15~8) addr16机器码:12nn地高 nn地低 ?返主指令RET ; (PC15~8) ((SP)) (SP) (SP) 机器码:22H (SP)-1 ((SP)) (SP)-1 (PC7~0) ?中断返主指令RETI ;先清除“优先级激活”触发器 (PC15~8) ((SP)) (SP) (SP) 机器码:32H (SP)-1 ((SP)) (SP)-1 (PC7~0) 例 1 : ( SP)=30H, SUB 标 号 地 址 0345H,执行 ACALL SUB , 该指令 首址0123H,问结果及指令机器码。 结果:(SP)=32H (31H)=25H(32H)=01H机器码: 71H 45H(PC)=0345H 例2:问上例在该子程序最后,执行ET指令 的结果。结果:(PC)=0125H(SP)=30H【返回】 位操作类指令?位传送指令 ?位逻辑操作指令 ?位条件转移指令【返回】 ?位传送指令MOV C,bit ;(C) (bit) MOV bit,C ;(bit) (C) 例 将P1.0内容送入片内RAM20H单元的最低位 MOV C,P1.0 MOV 00H,C ?bit的表达方式:位地址(例F0为D5H);点表 示(PSW.5);位名称表示(F0);标号表示。 ?位逻辑操作指令CPL C CLR C SETB C ;(C) (C) ;(C) 0 ;(C) 1CPL bit CLR bit SETB bitANL ORL ANL ORL;(bit) ;(bit) ;(bit)(bit) 0 1(C)Λ (bit) (C)V(bit) (C)Λ (bit) (C)V(bit)C,bit ;(C) C,bit ;(C) C,/bit ;(C) C,/bit ;(C) 例:P1.0A.7 OVMOV ANL ANL MOV}P3.1C,P1.0 C,A.7 C,/OV P3.1,C ?位条件转移指令?进位位为1转移指令 JC rel ;(PC) (PC)+2 (C)=1时(PC) (PC)+rel 否则顺序执行 ?进位位不为1转移指令 JNC rel ;(PC) (PC)+2 (C)=0时(PC) (PC)+rel, 否则顺序执行 ?某直接寻址位为1转移指令 JB bit,rel ;(PC) (PC)+3 若(bit)=1,(PC) (PC)+rel, 否则顺序执行 ?某直接寻址位不为1转移指令JNB bit,rel ; (PC) (PC)+3 若(bit)≠1, (PC) (PC)+rel, 否则顺序执行?某直接寻址位为1转移,且该位清除为零指令JBC bit,rel ;(PC) (PC)+3 若(bit)=1则(bit) 0, (PC) (PC)+rel 否则顺序执行 例 1: 若(F0)=1, 执行指令JBC F0,ELSE后的结果? (F0) 0,转向ELSE执行?ELSE的真实地址在原PC值加3后的C128~+127范围内 例2 想鉴别R0中数据等于100吗?如不等于,是大 于,还是小于? CJNE R0,#100,NEQU;不等于100转NEQU, . 等于100顺序往下执行, . 计算机做相应的工作。 .NEQU:JC LESS . . LESS: . .;&100,转LESS ;&100,计算机做大于 时相应工作 ;&100,计算机做小于时 相应工作设(R0)=63H则转NEQU且使C置位,再转LESS【返回】 第八节 汇编语言源程序 的格式和伪指令?汇编语言源程序的格式 ?伪指令【返回】 ?汇编语言源程序的格式?汇编语言:用指令的助记符,符号地址,标 号等符号书写程序的语言。 ?格式 标号:操作码助记符 操作数 ;注释 ?标号:由英文字母数字串组成,一个标号最 多8个字母数字,指令助记符不能作为标号。 ?操作码助记符:规定指令的操作类型 ?操作数: ?例 START:MOV A,#40H;( A ) 40H ?伪指令?不使计算机作任何操作,没有对应的机器 码,不影响程序的执行。 ?ORG指令 格式: ORG 16位地址 _____用于定义数据块和程序段的起始地址 例: ORG 4000H (4000H) MOV A,#01H (4002H) MOV A,@A+PC (4003H) RET (4004H) DB 01H (4005H) DB 04H (4006H) DW 1234H ?END指令 格式:END或END标号 ______用于源程序的最后,表明程序的结束?DB指令 格式: 标号:DB项或项表 ______用于定义字节内容ORG 1000H FIRST:DB 73 ,01,01,90,38,00,01,00 SECOND:DB 02,00,34,10,32,96,00,00例: ?DW指令 格式 标号:DW项或项表 ――用于定义字的内容 ?DS指令 格式 标号:DS数字 ――用于定义应保留的存储单元数?bit指令 格式 标号:bit项 ――用于定义某特定位的标号 例 FLG bit F0【返回】 第九节 算术逻辑处理程序?例3-1.将一双字节数存入片内RAM(R2)(A ) 存入 (36H )( 35H)MOV R0,#35H MOV @R0,A INC R0 XCH A,R2 MOV @R0,A XCH A,R2【返回】 ?例3-2.多字节无符号数相加 设被加数与加数已分别放在以ADR1与ADR2为初址的 片内数据存储器区域中,自低字节起,由低到高依次 存放;它们的字节数为L;要求加得的和放回原被加 数的单元。被加数 ADR1+(L-1)高低加数ADR2+(L-1)高低和ADR1 ADR1+(L-1)ADR2高ADR1低 MOV R0,#ADR1MOV R1,#ADR2MOV R2,#L CLR C LOOP:MOV A,@R0 ADDC A,@R1 MOV @R0,A INC R0INC R1DJNZ R2,LOOPDONE: ?例3-3 多字节无符号位相减改动上例中 ADDC A,@R1为SUBB A,@R1 ?例3-6 多字节数取补设该多字节数由低字节到高字节依次存放 在片内RAM以30H为起始地址的区间,取补后 放回原处。MOV R2,#LH MOV R0,#30H MOV A,@R0 CPL A ADD A,#1 MOV @R0,ADEC R2 NEXT:INC R0MOV A,@R0 CPL AADDC A,#0MOV @R0,ADJNZ R2,NEXT MOV R2,#LHMOV R0,#30H SETB C NEXT:MOV A,@R0 CPL A ADDC A,#00H MOV @R0,AINC R0DJNZ R2,NEXTRET ?例3-8 统计自P1口输入的数串中的正数、负数、零的个数。设R0,R1,R2,三个工作寄存器分别为累计 正数、负数、零的个数的计数器。开始R0、R1、R2清零 自P1口输入一个数该数为0N 该数为负 NY(R2)(R2)+1Y(R1)(R1)+1 (R0)(R0)+1 CLR AMOV R0,AMOV R1,A MOV R2,A ENTER:MOV A,P1 JZ ZEROJB P1.7,NEGINC R0 SJMP ENTER ZERO:INC R2 SJMP ENTER NEG: INC R1 SJMP ENTER 【返回】 第十节 数制转换程序?例3-11.将某十六进制数转换为ASCII码。设该已在A中。 0~9的ASCII码 30~39H 十六进制数&10,加30HA~F的ASCII码 41~46H 十六进制数≥10,加37H【返回】 MOV R2,A ADD A,#F6H MOV A,R2 JNC AD30 ADD A,#07H AD30: ADD A,#30H DJNE:L ADD A,#90HDA AADDC A,#40HDA A ?ASCII码转换为十六进制数 CLR CSUBB A,#30HCJNE A,#0AH,NEQ AJMP BIG NEQ: BIG: JC CEND SUBB A,#07HCEND: RET 例3-12.将一串十六进制数转换为ASCII码设串首址为ADR1,转换后存到首址为 ADR2的内存区域中,串长为10。MOV R0,#ADR1MOV R1,#ADR2MOV R2,#05HLOOP: MOV A,@R0ANL A,#0FH ACALL SUB MOV A,@R0 ANL A,#F0H SWAP A ACALL SUBINC R0DJNZ R2,LOOP SUB:MOV R3,AADD A,#F6HMOV A,R3 JNC AD30 ADD A,#07H AD30: ADD A,#30HMOV @R1,AINC R1RET【返回】 多分支转移程序?散转程序(分支程序) ,它是根据某种输入 或运算的结果,分别转向各个处理程序。 例3-14.设计可多达128路分支出口的转移 程序。 设128个出口分别转向128段小程序,初址 依次为addr00、addr01、addr02、 addr03 、、、 、、、addr7F;要转移到某分支的 信息存放在R2中。【返回】 MOV DPTR,#TAB MOV A,R2 RL A JMP @A+DPTR TAB: AJMP addr00 AJMP addr01 AJMP addr02 . . . AJMP addr7F (R2)=0,转addr00(R2)=1,转addr01. . . (R2)=7FH, 转addr7F MOV DPTR,#TAB MOV A,R2 MOV B,#3 MUL AB XCH A,B ADD A,DPH MOV DPH,A XCH A, B JMP @A+DPTR TAB: LJMP addr00 LJMP addr01 LJMP addr02 ... LJMP addr7F 例3-15 设计有256路分支出口的转移程序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 TAB: DW DW DW addr 00 addr 01 addr 02 ...DW addr FF【返回】 延时程序例 50 ms延时程序 12MHz晶振,一个机器周期为1μ sDEL:MOV DEL1:MOV DEL2:DJNZ DJNZR7,#200 ;1周期 R6,#125 ;1周期 R6,DEL2;2周期 125×2=250μ s R7,DEL1;2周期 0.25ms×200=50ms( 延时时间: 1+ 1+125×2 +2 ) ×200=50.301ms【返回】 例3-16.设计一延时程序,延时时间1ms。DELAY1:MOV DL2:MOV DL1:NOP NOP DJNZ DJNZ RETR1,#0AH ;1 R2,#18H ;1 ;1 ;1 R2,DL1 ;2 R1,DL2 ;2 ;2延时时间:1+[1+(1+1+2)×24+2]×10+2=993机器周期若12MHz晶振 ,则延时时间为993μs 例3-17.设计一延时250ms的程序 DELAY2:MOV R3,#0FAHDL3:ACALL DELAY1DJNZ R3,DL3RET 延时时间为:1+(2+993+2)×250+2 =249253μs 习题3.2.27晶振12MHzDELAY:MOV R1,#63HDL1:NOP NOP DJNZ R1,DL1;1;1 ;1 ;2RET ;2 延时时间:1+(1+1+2)×99+2=399μs 3.2.29 晶振12MHz,延时10ms? 指令延时法:DEL:MOV R7,#40DEL1:MOV R6,#125DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 定时器定时: MOV TMOD,#01H MOV TH0, #0D8HMOV TL0, #0F0HSETB TR0【返回】 定时器/计数器应用程序复习:?定时器/计数器方式控制寄存器TMOD ?定/计0工作于方式1的定时器方式, 定/计1工作于方式1的计数器方式 MOV TMOD,#B【返回】 ?定/计0 工作方式1定时1ms1ms=(65536-X)×1μsX==FC18HMOV TH0,#0FCHMOV TL0,#18H ?定/计1 工作方式1计数60000次-XX=HMOV TH1,#15H MOV TL1,#0A0H ?定时器/计数器控制寄存器TCONSETB TR0 ;启动定时器/计数器0SETB TR1 ;启动定时器/计数器1 ?中断允许寄存器IECPU开中断 ,定/计1开中断MOV IE,#88H 例:3―18 要求利用单片机内部的定时器 /计数器,达到1分钟延时。 分析:1分钟=1ms×60000实现方法:定/计0每产生1ms的定时时, 定/计1计数一次,若设定定/计1的计数 次数为60000次,便可达到1分钟延时。 ORG 0000HLJMP 0030HORG 001BH SETB F0 RETI ORG 0030H ;主程序 ;中断服务程序START:... MOV TMOD,#51H;定/计0定时方式1,定/计1计数方式1REPEAT: MOV TH1,#15H;定时器/计数器1置数 MOV TL1,#A0H; MOV TH0,#FCH;定时器/计数器0置数 MOV TL0,#18H CLR P3.5 ;T1(定时器/计数器1计数脉冲输入端)清零MOV IE,#88H; 允许定时器/计数器1申请中断 SETB TR1 ;启动定时器/计数器1SETB TR0 ;启动定时器/计数器0 LOOP: . . . $ :JNB TF0,$ CLR TF0 JBC F0,ELSE SETB P3.5 MOV TH0,#FCH MOV TL0,#18HCLR P3.5SJMP LOOPELSE:...AJMP REPEAT【返回】 外部中断应用程序例3―20 某工业监控系统,具有温度、压 力、PH值等多路监控功能。对于PH值, 在PH &7时将向CPU申请中断,CPU响应 后令P3.0引脚输出高电平,经驱动,使加 碱管道电磁阀接通1S,以调整PH值。假定PH &7时P1.2置1,其中断服务程 序入口地址为INT02.【返回】 P3.2 即INT0 单 片 机温度1超限温度2超限Q D 压力超限 RCLKPH超限+5VP1.0 P1.1 P1.2 P1.3 P1.6图3-8 多个外部中断源共用INT0引脚的接法 ORG 0000HAJMP MAIN MAIN: . . ORG 0003H AJMP ADDR0 ADDR0: JB P1.0,INT00 JB P1.1,INT01 JB P1.2,INT02 JB P1.3,INT03 INT02:PHSH PSW PUSH A SETB PSW.3 SETB P3.0 CPL P3.0;保存现场;加碱1SACALL DELAY ANL P1,#0BFH ;撤除中断请求 ORL P1,#40H POP A POP PSW RETI;恢复现场 例3-21.利用外部中断实现各种程序间的 转换。6个共阴极LED数码管,数码笔划信息 由P1.0~P1.6给出,位选的选中信号从左 到右依次由P3.1、P3.3、P3.4、P3.5、 P3.6、P3.7提供。 +5VP1.0…a74LS 244 P1.6 单 片 机P3.1 P3.3 P3.7…b cdefg74LS07图3-9 例3-21的数码管连接图 显示数字 0 1 2 3 4 5 6 7 8 9 A B C D E F .编码 3F 06 5B 4F 66 6D 7D 07 7F 67 77 7C 39 5E 79 71 80afe dgbc h 00000003LJMP 0030HAJMP 320H0039MOV IE,#81H MOV P3,#E4HACALL DELAY0033 ROUTI:MOV P1,#06H003B003EMOV P1,#5BHMOV P3,#1EH 00410043ACALL DELAYJB F0,$+50046DSJMP ROUT1CLR F0 MOV P3,#ACH004A ROUT2: MOV P1,#06H 00500052ACALL DELAYMOV P1,#5BH0055MOV P3,#56H 0058005AACALL DELAYJB F0,$+5005D005F 0064SJMP ROUT2CLR F0 MOV P3,#E4H0061 ROUT3: MOV P1,#4FH 00670069ACALL DELAYMOV P1,#66H006CMOV P3,#1EH 006F0071ACALL DELAYJB F0,$+50074BSJMP ROUT3CLR F0 MOV P3,#ACH0078 ROUT4: MOV P1,#4FH 007E0080ACALL DELAYMOV P1,#66H0083MOV P3,#56H 00860088ACALL DELAYJB F0,$+5008B008DSJMP ROUT4CLR F0008F ROUT5: 00A6 ROUT6: 018C ROUT16:..... 01A325AJMP ROUT1SETB F0 JNB P3.2 , $ RETI【返回】 串行接口应用程序例3-22.由串行接口发送带偶校验位的ASSCII 码数据块。 拟发送位于片内RAM 30H~3FH单元的 ASCII码数据,12MHz晶振,串行接口工作 于方式1,定时器/计数器1用作波特率发生器, 电源控制专用寄存器PCON中的SMOD位为0, 发送的波特率要求为1200位/秒。【返回】 复习:?波特率= 速率 / 32 2SMOD ×定时 / 计数器1溢出TC=(2 8 -X)×12/12MHZ 定/计1溢出速率=1/Tc 故有:1200=2 ×1/320 × 1 / ( 2 5 6 - X)X=230=E6H?串行口控制寄存器SCON142 TSTART:MOV TMOD,#20H MOV TL1,#0E6H MOV TH1,#0E6HMOV SCON,#40HMOV R0,#30HMOV R7,#10HSETB TR1 LOOP:MOV A,@R0MOV C,P MOV A.7,C MOV SBUF,A WAIT:JNB TI,WAIT CLR TI INC R0 DJNZ R7,LOOP RET 例3-23.由串行接口接收带偶校验位的 ASSCII码数据块。 待接收的数据块共10H个字节,接收 后拟储于片内RAM 40H~4FH单元, 12MHz晶振,串行接口工作于方式1,定 时器/计数器1用作波特率发生器,电源控 制专用寄存器PCON中的SMOD位为0, 发送的波特率要求为1200位/秒。 TSTART:MOV TMOD,#20H MOV TL1,#0E6HMOV TH1,#0E6HMOV R0,#40H MOV R7,#10H SETB TR1 LOOP:WAIT:MOV SCON,#50HJNB RI,WAIT MOV A, SBUF MOV C,P JC ERROR ANL A,#7FH MOV @R0,A INC R0 DJNZ R7,LOOP RET【返回】 习题3.2.33AMOV R2,#0AHMOV R0,#50H0034H E40035H E6CLR ALOOP:MOV @R0,A7H DA FCINC R0INC ADJNZ R2,LOOPDONE: H=FFFCH MCS-51系列单片机的扩展? ??最小系统与程序存储器的扩展 数据存储器的扩展 输入/输出口的扩展【返回】 87 最小系统与程序存储器的扩展?复习?MCS-51系列单片机芯片引脚图147?MCS-51系列单片机进行系统扩展时的三总 线结构 ?最小系统 ?用EPROM的程序存储器的扩展【返回】 ?MCS-51系列单片机进行系统扩展时的三总线结构 8 A8~A15 P2 8 A0~A7 地址总线 地址锁存 P0 ~D7 数据总线ALE PSENRDWR INT0控制总线INT1T0 T1EARST ?最小系统? 8031的最小系统――8031本身、片外程序存储器与地址锁存器组成了一个真正可用的、 未曾扩展的最小系统。 ?8031芯片 ?EPROM芯片 ?地址锁存器 ?最小系统的工作时序 8031芯片?Vcc:+5V电源正 ?Vss:+5V电源地 ?P0.0~P0.7:扩展时,复用为数据/地址总线? P2.0~P2.7:接有片外存储器或扩展I/O口寻址范围超过256字节时,P2口用为高8位地址总线。?ALE:地址锁存有效信号输出端。?PSEN:片外程序存储器读选通信号输出端。 EPROM芯片? 2716( 2K×8位)24引脚:11根地址线;8根数据线; 3根电源线; 片选端CE(只用一片时CE接地); 输出允许端OE? 2732? 2764(4K×8位)(8K×8位)? 27128 (16K×8位)? 27256 (32K×8位)? 27512 (64K×8位) 地址锁存器 ? 常用的芯片 74LS373,74LS273,等。 ? 74LS373芯片的结构 ? 74LS373芯片的功能表 ? 74LS373芯片引脚图 ? 74LS373芯片与单片机的连接 最小系统的工作时序一个机器周期 S1 S2 S3 S4 S5 S6 ALE 一个机器周期 S1 S2 S3 S4 S5 S6PSENP2 PCH输出 PCH输出 PCH输出 PCH输出 PCH输出 PCH输出P0 指令 PCL输入 输出指令 PCL 输入 输出指令 PCL 输入 输出指令 PCL 输入 输出指令 PCL 输入 输出PCL输出有效 PCL输出有效 PCL输出有效 PCL输出有效 PCL输出有效图 4-5 最小系统的工作时序 ?用EPROM的程序存储器扩展?用单片EPROM的扩展电路 ?用多片EPROM的扩展电路 ? 总线驱动器 用单片EPROM的扩展电路 ?8051外扩一片16KB的EPROM+5V VCC VSS P2.0 P2.5 ALE6G 1D 74LS373 1Q 8Q 8D OE A0 O0 O7 OE+5VEA8 A76 A8 A138051P0 PSEN8827128CE ?8031外扩一片32KB的EPROM+5V VCC VSS P2.0 P2.6 ALE7G 1D 74LS373 1Q 8Q 8D OE A0 O0 O7 OEEA8 A77 A8 A148031P0PSEN8827256CE 用多片EPROM的扩展电路?片选方法 ? 线选法 ?优点:硬件少,接线简单。 ?缺点:占用I/O接口线多。 ?译码法 ?优点:占用I/O接口线少 ?缺点:硬件多 总线驱动器?常用的总线驱动器 单相:74LS244、 74LS240(带反相输出) 74LS 241 双向:74LS245 ?常用的总线驱动器的引脚图 ?总线驱动器的具体接法[返回] ?用EEPROM的扩展电路 ?常用的EEPROM芯片 ?用2816AEEPROM的扩展电路[返回] 8031的最小系统+5VVCC VSS P2.0 P2.2 ALE3G 1D 74LS373 1Q OE8DEA8QA0 O0 O7 OE8 A73 A8 A108031P0PSEN882716CE[返回] 引脚27512 62764276427128272562751 2引脚12 3 4 5 6 7 8 9 10 11A15 V PP VPP A12 A12 A12 A7 A7 A6 A6 A5 A5 A4 A4 A3 A3 A2 A2 A1 A1 A0 A0 O0 O0 A7 A6 A5 A4 A3 A2 A1 A0 O0VPPVCCVCC VCC VCC 28A12 A7 A6 A5 A4 A3 A2 A1 A0 O0 O1 O2GNDPGM PGM PGM A 27 14 A7 A6 A5 A4 A3 A2 A1 A0 O0 A0 O0 O O1 O 12GND 12 13A7124VCCVCC A8 A9 A11OE/ VPP未用 A8 A9 A11 OE未用 A13 A13 26 A8 A9 A11 OE A8 A9 A8 25 A9 24A8. . .A92716VPP OE A10 CE O7A11 A11 23 OE OE 22A10 CE O7 O6A10CE O7 O6 O5 O4 O3A10CE O7 O6 O5 O4 O3A10 A10 21CE CE 20 O7 O6 O5 O4 O3 O7 19 O6 18 O5 17 O4 16 O3 151213 14O1 O1O2 O2O1O2O1O2GND. . .O5O4 O3GND GND GNDO3图 4-6 常用EPROM芯片的引脚图[返回] 输出控制器输入81D1Q88输出?? ??? ?8D8Q8D锁存器三态门图 4-7 74LS373的结构示意图 使能端G:高电平时,1Q~8Q与1D~8D相同。 高电平返回低电平时,1D~8D的信息打入1Q~8Q 8位锁存器中。 输出控制端OE:低电平时三态门导通,1Q~8Q信息经三态门输出。[返回] 74LS373功能表OE 0G 1功能 直通(输出=输入)0 10 X保持(输出不变) 输出高阻[返回] OE 1Q 1D 2D 2Q 3Q 3D 4D 4Q GND12074LS3731011VCC CLR 1Q 8Q 8D 1D 2D 7D 2Q 7Q 6Q 3Q 6D 3D 5D 4D 5Q 4Q G GND12074LS27310 11VCC D0 1 20 8Q 8D 7D 7Q 6Q 6D 8282 5D D7 5Q OE 11 CLK GND 10VCC Q0?? ?a ) 74LS373?? ?图 4-8 常用地址锁存器芯片的引脚图 [返回]

我要回帖

更多关于 sub是什么意思 的文章

 

随机推荐