《单片机测控技术》PPT课件.ppt_第1页
《单片机测控技术》PPT课件.ppt_第2页
《单片机测控技术》PPT课件.ppt_第3页
《单片机测控技术》PPT课件.ppt_第4页
《单片机测控技术》PPT课件.ppt_第5页
已阅读5页,还剩200页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机测控技术 第一章单片微型计算机概述单片微型计算机 简称单片机 作为微型计算机的一个重要的分支 自70年代问世以来 以及其高的性价比 受到人们的重视和关注 应用很广 发展也很快 单片机体积小 重量轻 抗干扰能力强 环境要求不高 价格低廉 可靠性高 灵活性好 开发较为容易 正因为如此 在我国 单片机已广泛地应用在智能仪器仪表 机电设备过程控制 自动检测 家用电器和数据处理等各个方面 1 1单片机的历史及发展概况单片机的发展历史可划分为四个阶段 第一阶段 1974 1976年 单片机初级阶段 因工艺限制 单片机采用双片的形式而且功能比较简单 第二阶段 1976 1978年 低性能单片机阶段 以Intel公司制造的MCS 48为代表 这种单片机片内集成有8位CPU 并行I O口 8位定时器 计数器RAM和ROM等 但是不足之处是无串行口 中断处理比较简单 片内RAM和ROM容量较小且寻址范围不大于4K 第三阶段 1978 至今 高性能单片机阶段 这个阶段推出的单片 机普遍带有串行I O口 多级中断系统 16位定时器 计数器 片内ROM RAM容量大 且寻址范围可达64K字节 有的片外还带有A D转换器 这类单片机的典型代表是 Intel公司的MCS 51系列 Mortorrola公司的6801和Zilog公司的Z8等 由于这类单片机的性价比高 所以 仍被广泛应用 是目前应用数量较多的单片机 第四阶段 1982 至今 8位单片机巩固发展及16位单片机 32位单片机推出阶段 16位单片机的主要代表是Intel公司的MCS 96系列单片机 而32位单片机除了具有更高的集成度外 其主振以达20MHz 这使32位单片机的数据处理速度比16位增快许多 性能比8位 16位单片机更加优越 80年代以来 单片机的发展非常迅速 就通用单片机而言 世界上一些著名的计算机厂家已投放市场的产品就有50多个系列 四百多个品种 单片机的产品已占整个微机产品的80 以上 其中8位单片机的产量又占整个单片机产量的60 以上 这说明8位单片机将在最近若干年仍是工业检测 控制应用的主角 1 2单片机的特点1 小巧灵活 成本低 易于产品化 它能方便地组装成各种智能式测 控设备及各种智能仪器仪表 2 可靠性好 适应温度范围宽 单片机芯片本身是按工业测控环境要求设计的 能适应各种恶劣的环境 这是其它机种无法比拟的 3 易扩展 很容易构成各种规模的应用系统 控制功能强 单片机 的逻辑控制功能很强 指令系统有各种控制功能用指令 4 可以很方便到实现多机和分布式控制 1 3单片机的应用范围1 工业方面 各种测控系统 数据采集系统 工业机器人 智能化仪器 机电一体化产品等 2 智能仪器仪表方面 单片机应用在智能仪器仪表方面 不仅可以使传统的仪器仪表发生根本的变革 也给传统的仪器仪表行业改造带来了曙光 3 通讯方面 调制解调器 程控交换技术等 4 民用方面 电子玩具 录象机 激光唱机等 5 导弹与控制方面 导弹控制 鱼雷制导控制 智能武器装备 航天飞机导航系统等 6 各种计算机外部设备及电器方面 打印机 硬盘驱动器 复印机 磁带机等 7 多机分布式系统 可用单片机构成分布式测控系统 它使单片机应用进入了一个新的水平 第二章80C51单片机的结构 2 180C51单片机的结构Intel公司生产的80C51单片机的典型产品有80C51 80C31和87C51 80C51是ROM型单片机 内部有4KBROM 80C31无片内ROM 87C51片内有4KBEPROM 除此以外 三者的内部结构及引脚完全相同 2 1 180C51单片机的组成及结构80C51主要由以下8部分组成 1 中央处理器 CPU 中央处理器是单片机的大脑和心脏 主要完成运算和控制功能 2 内部数据存储器 内部RAM 80C51共有256个RAM单元 但其中能作为寄存器供用户使用的仅有前面128个 后128个被专用寄存器占用 3 内部程序存储器 内部ROM 80C51共4KB掩膜ROM 用于存放程序 原始数据等 4 定时器 计数器 80C51共有2个16位的定时器 计数器 可以实现定时和计数功能 5 并行I O口 80C51共有4个8位I O口 可实现数据的并行输入输出 6 串行口 80C51有一个全双工的可编程串行口 以实现单片机和 其它设备之间的串行数据传送 7 时钟电路 80C51单片内部有时钟电路 但晶振和微调电容需要外接 时钟电路为单片机产生示时钟脉冲序列 8 中断系统 80C51的中断系统功能较强 可以满足一般控制应用的需要 它共有5个中断源 2个外部中断源 3个内部中断源 即2个定时 计数中断 1个串性口中断 2 1 280C51单片机的引脚定义及功能 1 主电源引脚VSS和VCCVSS接地 VCC主电源 5V2 时钟电路引脚XTAL1和XTAL2XTAL1 接外部晶体一端XTAL2 接外部晶体另一端3 控制信号引脚RST ALE PROG PSEN EA VPPRST 单片机刚接上电源时 其内部各寄存器处于随机状态 在该脚输入24个时钟周期宽度以上的高电平将单片机复位 ALE PROG 访问片外存储器时 ALE作锁存扩展地址低位字节的控制信号 称允许锁存地址 平时不访问片外存储器时 该端也以1 6的时钟振荡频率固定输出脉冲 供定时或其它需要使用 PSEN 在访问片外程序存储器时 此端输出负脉冲作为存储器读选通信号 EA VPP 当EA端输入高电平时 CPU从片内程序存储器地址0000H单元开始执行程序 当地址超过4KB时 将自动执行片外程序存储器的程序 当EAS接低电平时 CPU仅访问片外程序存储器 4 输入 输出引脚 P0 P1 P2和P3 P0 0 P0 7 P0口是一个8位漏极开路型双向I O端口 在访问片外存储器时 它分时提供8位双向数据 故这些I O线有地址线 数据线之称 简写为AD0 AD7 P1 0 P1 7 P1是一个带内部上拉电阻的8位双向I O端口 P2 0 P2 7 P2是一个带内部上拉电阻的8位双向I O端口 在访问片外存储器时 它输出高8位地址 即A8 A15 P3 0 P3 7 P3是一个带内部上拉电阻的8位双向I O端口 在整个系统中 这8个引脚还具有专门的第二功能 P3 0 RXD 串行口输入 P3 1 TXD 串行口输出 P3 2 INT0 外部中断0输入 P3 3 INT1 外部中断1输入 P3 4 T0 定时器 计数器0的外部输入 P3 5 T1 定时器 计数器1的外部输入 P3 6 WR 片外数据存储器写选通控制输出 P3 7 RD 片外数据存储器读选通控制输出 2 280C51的存储器2 2 1程序存储器程序存储器用于存放编好的程序和表格常数 80C51片内有4KBROM 片外16位地址线最多可扩展64KBROM 两者是统一编址的 如果EA端保持电平 80C51的程序计数器PC在0000H 0FFFH范围内 即前4KB地址 是执行片内ROM的程序 当寻址范围在1000H FFFFH时 则从片外程序存储器取指令 当EA为低电平 则始终从片外程序存储器取指令 这时片外存储器可以从0000H开始编址 在程序存储器中 以下6个单元具有特殊功能 0000H 复位后 PC 0000H 即程序从0000H开始执行0003H 外部中断0入口000BH 定时器0溢出中断入口0013H 外部中断0入口001BH 定时器1溢出中断入口0023H 串行口中断入口 2 2 2数据存储器数据存储器用于存放中间运算结果 数据暂存 标志位等 80C51片内有256BRAM 片外最多可扩充64KBRAM 构成两个地址空间 片内高128B地址区域 即00H 7FH 为专用寄存器区 只能采用直接寻址方式 在低128BRAM区中 00H 1FH地址为通用工作寄存器区 分为4组 每组由8个工作寄存器 R0 R7 组成 共占32个单元 工作区后16B可以进行位寻址 这128位的位地址为00H 7FH 2 2 3专用寄存器SFR80C51有21个专用寄存器 亦称特殊功能寄存器 它们离散地分布在片内数据存储器的高128位地址中 访问这些专用寄存器仅允许使用直接寻址的方式 专用寄存器并未占满80H FFH整个地址空间 对空闲地址的操作是无意义的 若访问到空闲地址 则读出的是随机数 这些专用寄存器是 ACC 累加器AB B寄存器PSW 程序状态字SP 堆栈指针IP 中断优先级IE 中断允许TMOD 定时器 计数器方式TCON 定时器 计数器控制SCON 串行控制 DPTR 数据指针 由DPL DPH组成 SUBF 串行数据缓冲器PCON 电源控制TH0 TL0 定时器 计数器0的高 低字节TH1 TL1 定时器 计数器1的高 低字节P0 P3 端口0 3 第三章80C51的指令系统 3 1寻址方式指令的一个重要组成部分是操作数 它指出了参与操作的数或数所在的地址 寻址方式是指在指令代码中用以表示操作数地址的各种规定 80C51共有7种寻址方式 下面将以指令为例逐一介绍 3 1 1立即寻址在这种寻址方式中 指令多是双字节指令 一般第一个字节是操作码 第二个字节是操作数 该操作数直接参与操作 所以称立即数 用 号表示 立即数就是存放在程序存储器中的常数 例 指令MOVA 3AH指令代码为74H 3AH 是双字节指令 这条指令的功能是把立即数3AH送入累加器A中 在80C51的指令系统中 仅有一条指令的操作数是16位的立即数 其功能是向地址指针DPTR传送16位的地址 即把立即数的高8位送入DPH 低8位送入DPL 3 1 2直接寻址在这种寻址方式中 操作数项给出的是参加运算的操作数的地址 在 80C51单片机中 直接地址只能用来表示特殊功能寄存器 内部数据存储器以及位地址空间 其中 特殊功能寄存器和位地址空间只能用直接寻址方式来访问 例 指令MOVA 3H指令代码E5H 3AH 是双字节指令 该指令是把3AH单元存放的数据送到累加器A中 3 1 3寄存器寻址寄存器寻址是对选定的工作寄存器R0 R7 累加器A 通用寄存器B 地址寄存器DPTR和进位CY中的数进行操作 工作寄存器组的选择由状态标志寄存器PSW中的RS1和RS0确定 例 指令MOVA R2该指令将R2中的数据传送到A中 3 1 4寄存器间接寻址在这种寻址方式中 操作数所指定的寄存器中存放的不是操作数本身 而是操作数的地址 这种寻址方式用于访问片内数据存储器或片外数据存储器 当访问片内RAM低128B或片外RAM低256B时 可采用当前工作寄存器中的R1或R2作间接地址寄存器 用 表示 即由R0或R1间接给出操作数所在的地址 这样 R0或R1为存放操作数单元的地址指针 例 指令MOVA R0将R0存放的地址对应的单元中的数据传送给A 3 1 5变址寻址 基址寄存器 变址寄存器间接寻址 这种寻址方式以DPTR或PC为基址寄存器 累加器A为变址寄存器 变址时 把两者的内容相加 所得到的结果作为操作数的地址 这种方式常用于查表操作 例 指令MOVCA A DPTR该指令将DPTR和A中存放的数值相加得到一个地址值 将这个地址所对应的单元中的数据传送到累加器A中 3 1 6相对寻址相对寻址是将程序计数器PC中的当前内容与指令第二个字节所给出的数相加 其结果作为跳转指令的转移地址 转移地址也称为转移目的地址 PC中的当前内容称为基地址 它实际是本指令之后的字节地址 指令第二个字节给出的数据称为偏移量 偏移量为带符号的数 其表示的范围为 128 127 目的地址是相对于PC的基地址而言 所以这种寻址方式主要用于跳转指令 例 指令JC03H指令表示若进位C 0 则程序顺序进行 若C 1 则以PC当前内容与偏移量03H相加得到一个地址量 程序从该地址量处开始运行 3 1 7位寻址位寻址是指对片内RAM的位寻址和某些可以进行位寻址的特殊功能寄存器中的任一二进制位进行操作时的寻址方式 在进行位操作时 借助于进位位C作为操作累加器 操作数直接给出该位的地址 然后根据操作码的性质对其进行位操作 位地址与字节直接寻址中的字节地址形式完全不一样 主要由操作码来区分 使用时需予以注意 例 指令SETB3DH该指令将3DH这一位置 1 3 2数据传送指令数据传送指令是最常用 最基本的一类指令 共有29条 这类指令操作一般是把源操作数传送到目的操作数 传送指令一般不影响标志位 只有堆栈操作可以直接修改程序状态字PSW 另外 对于传送目的操作数为ACC的指令将影响奇偶标志P 3 2 1内部RAM传送指令单片机内部的数据传送指令最多 包括寄存器 累加器 RAM单元及专用寄存器之间的数据相互传送 下面分类介绍 1 累加器为目的操作数的指令MOVA Rn A Rn MOVA direct direct AMOVA Ri Ri AMOVA data data A这组指令的功能是将源操作数所指定的内容送入累加器A 源操作数可以采用寄存器 直接 寄存器间接和立即寻址4种方式 2 以寄存器Rn为目的操作数的指令MOVRn A A RnMOVRn direct direct RnMOVRn data data Rn 3 以直接地址为目的操作数的指令MOVdirect A A direct MOVdirect Rn Rn direct MOVdirect direct direct direct MOVdirect Ri Ri direct MOVdirect data data direct 4 以直接地址为目的操作数的指令 MOV Ri A A Ri MOV Ri direct direct Ri MOV Ri data data Ri 5 16位数据传送指令 MOVDPTR data16 dataH DPH dataL DPL3 2 2外部数据传送指令累加器A与片外数据存储器之间的数据传送是通过P0口和P2口进行的 片外数据存储器的地址总线低8位和高8位分别由P0口和P2口送出 数据总线也是通过P0口与低8位地址总线分时传送 在80C51中 CPU对片外RAM的访问只能用寄存器间接寻址方式 且仅有4条指令 MOVXA DPTR DPTR AMOVX DPTR A A DPTR MOVXA Ri Ri AMOVX Ri A A Ri 前两条指令以DPTR为片外数据存储器16位地址指针 寻址范围达64KB 其功能是在DPTR所指定的片外数据存储器与累加器A之间传送数据 后两条指令是用R0或R1作低8位地址指针 由P0口送出 寻址范围是256B 此时 P2口仍可用做通用I O口 这两条指令完成以R0或R1为地址指针的片外数据存储器与累加器A之间的数据传送 3 2 3查表指令在80C51指令系统中 有两条极有用的查表指令 其数据表格放在程序存储器中 MOVCA A PC PC 1 PC A PC AMOVCA A DPTR A DPTR ACPU读取前一条单字节指令后 PC的内容自动加1 其功能为将新PC的内容与累加器A内的8位无符号数相加形成地址 取出该地址单元中的内容送累加器A 这种查表只能查找所在地址以后256B范围内的代码或常数 后一条指令以DPTR为基址寄存器进行查表 使用前 先给DPTR赋予某指定查表地址 其范围可达整个程序存储器64KB空间 3 2 4堆栈操作指令PUSHdirect SP 1 SP direcr SP POPdirect SP direct SP 1 SP前一条为入栈指令 后一条是出栈指令 使用堆栈指令时要注意留出足够的存储单元作栈区 3 2 5交换指令XCHA Rn A RnXCHA direct A direct XCHA Ri A Ri XCHDA Ri A 3 A 0 Ri 3 Ri 4 SWAPA A 3 A 0 A 7 A 4这组指令后两条为半字节交换指令 其中 XCHDA Ri 是将累加器A中低4位与Ri中的内容所指示片内RAM单元中的低4位数据相交换 SWAPA 指令是将A的高低两半字节交换 3 3算术运算类指令算术运算指令主要对8位无符号数据进行算术操作 共有24条 算术运算指令会影响程序状态标志寄存器PSW的有关位 3 3 1加法指令ADDA Rn A Rn AADDA direct A direct AADDA Ri A Ri AADDA data A data A 这组指令的功能是把源操作数所指出的内容加到A中 其结果存在A中 如果位7有进位 则进位位CY置 1 否则清 0 如果位3有进位 则半进位位AC置 1 否则清 0 若看作两个带符号数相加 还要判断溢出位OV 若OV置 1 表示和数溢出 3 3 2带进位加法指令ADDCA Rn A Rn CY AADDCA direct A direct CY AADDCA Ri A Ri CY AADDCA data A data CY A带进位加法多用于多字节数的加法运算 低位字节相加时可能产生进位 因此多位字节运算时 必须使用带进位的加法运算 3 3 3带借位减法指令SUBBA Rn A Rn CY ASUBBA direct A direct CY ASUBBA direct A Ri CY ASUBBA data A data CY A在多字节减法运算中 低字节被减数数有时会向高字节产生借位 所以在多字节减法运算时必须采用带借位的减法 3 3 4乘法指令MULAB A B BA这条指令的功能是把累加器A和寄存器B中两个无符号数相乘 所得的16位积低字节存放A中 高字节存放在B中 若乘积大于0FFH则OV置 1 否则清 0 3 3 5除法指令DIVAB A B的商 A 余数 B执行本指令后CY OV均复位 只有当除数为0时 A和B中的内容为不确定值 此时OV标志置 1 说明除法溢出 另外 此指令影响奇偶标志位P 3 3 6加1指令INCA A 1 AINCRn Rn 1 RnINCdirect direct 1 direct INC Ri Ri 1 Ri INCDPTR DPTR 1 DPTR最后一条指令在加1过程中 若低8位有进位 可直接向高8位进位 3 3 7减1指令DECA A 1 ADECRn Rn 1 RnDECdirect direct 1 direct DEC Ri Ri 1 Ri 这组指令除第一条P位外 其余都不影响PSW标志 3 3 8十进制调整指令DAA这条指令是在进行BCD码加法运算时 跟在ADD和ADDC指令之后 用于对BCD码的加法运算结果自动进行休正 使其仍BCD码表达形式 3 4逻辑操作类指令这类指令主要是用来对两个数按位进行逻辑操作 操作结果送到累加器A或直接寻址单元 这类指令共有24条 3 4 1逻辑 与 指令ANLA Rn A Rn AANLA direct A direct A ANLA Ri A Ri AANLA data A data AANLdirect A direct A direct ANLdirect data direct data direct 这组指令前四条执行结果影响奇偶P 后两条指令若直接地址为I O口 则为 读 改 写 操作 3 4 2逻辑 或 指令ORLA Rn A Rn AORLA direct A direct AORLA Ri A Ri AORLA data A data AORLdirect A direct A direct ORLdirect data direct data direct 这组指令前四条执行结果影响奇偶P 后两条指令若直接地址为I O口 则为 读 改 写 操作 3 4 3逻辑 异或 指令XRLA Rn A Rn AXRLA direct A direct AXRLA Ri A Ri AXRLA data A data AXRLdirect A direct A direct XRLdirect data direct data direct 3 4 4循环移位指令RLARRARLCARRCA前两条指令的功能分别是A中的内容循环左移或右移一位 执行后不影响PSW 后两条指令是分别A的内容与进位位CY一起循环左移或右移 执行后影响CY和P位 3 4 5取反指令CPLA 本指令将A的内容按位取反 3 4 6清 0 指令CLRA 0 A3 5控制转移类指令这类指令的功能是控制程序从原顺序执行地址跳转到其它指令地址 80C51共有17条这类指令 3 5 1无条件转移指令LJMPaddr16 addr16 PCAJMPaddr11 PC 2 PC addr11 PC 10 PC 0SJMPrel PC 2 rel PC第一条是长转移指令 执行结果是将16位地址addr16送到程序计数器PC中 第二条是绝对转移指令 指令中包含11位地址 转移的目标地址是在下一个指令开始的2KB范围内 它把PC的高5位与操作数的11位构成16位转移地址 第三条是无条件相对转移指令范围为 128 127 执行后PC PC 2 rel 3 5 2条件转移指令JZrel A 0 PC 2 rel PCA 0 PC 2 PCJNZrel A 0 PC 2 rel PCA 0 PC 2 PCCJNEA direct rel A direct PC 3 PC 0 CA direct PC 3 rel PC 0 CAdata PC 3 rel PC 0 CAdata PC 3 rel PC 0 CRn data PC 3 rel PC 1 C CJNE Ri data rel Ri data PC 3 PC 0 C Ri data PC 3 rel PC 0 C Ri data PC 3 rel PC 1 CDJNZRn rel Rn 1 Rn Rn 0 PC 2 rel PCRn 0 PC 2 PCDJNZdirect rel direct 1 Rn direct 0 PC 2 rel PC direct 0 PC 2 PC这类指令先测试某一条件是否满足 只有满足规定的条件时 程序才能转到指定转移地址 否则程序将继续执行下一条指令 条件是由条件转移指令本身提供 或规定 的 3 5 3间接转移指令JMP A DPTR A DPTR PC该指令也属于无条件转移指令 其转移地址由数据指针DPTR的16位数和A的8位无符号数相加形成 并直接送入PC 该指令具有散转功能 3 5 4调用子程序及返回LCALLaddr16 PC 3 PC SP 1 SP PC 7 PC 0 SP SP 1 SP PC 15 PC 8 SP addr16 CPACALLaddr11 PC 2 PC SP 1 SP PC 7 PC 0 SP SP 1 SP PC 15 PC 8 SP addr11 CP 10 PC 0RET SP PC 15 PC 8 SP 1 SP SP PC 7 PC 0 SP 1 SP RETI 除有RET的功能外 还可以清除优先级状态触发器3 5 5空操作指令NOP这条指令常用为产生一个机器周期的延时 3 6位操作类指令80C51的特色之一就是具有丰富的位处理功能 80C51共有17条位操作指令 3 6 1位数据传送指令MOVC bit bit CMOVbit C C bit3 6 2位修正指令CLRC 0 CCLRbit 0 bitCPLC C取反CPLbit bit取反SETBC 1 CSETBbit 1 bit3 6 3位逻辑运算指令ANLC bit C bit CANLC biT C bit取反 CORLC bit C bit CORLC biT C bit取反 C 3 6 4判位转移指令JCrel C 1 PC 2 rel PCC 0 PC 2 PCJNCrel C 0 PC 2 rel PCC 1 PC 2 PCJBbit rel bit 1 PC 2 rel PCbit 0 PC 2 PCJNBbit rel bit 0 PC 2 rel PCbit 1 PC 2 PCJBCbit rel bit 1 PC 2 rel PC 0 bitbit 0 PC 2 PC3 7汇编伪指令在用汇编程序对汇编语言编写的源程序进行汇编时 有一些控制汇编用的特殊指令 这些指令不属于指令系统 不产生机器代码 因此称为伪指令或汇编指令 1 ORGORGaddr16这是一条程序汇编起始地址定位伪指令 用来规定汇编语言程序进 行汇编时 目的程序在程序存储器中存放的起始地址 2 END汇编语言程序结束伪指令 用在程序结尾 表示程序已结束 汇编对END以后的指令不再汇编 3 EQU标号 字符名称 EQU数或汇编符号赋值伪指令 它的作用是把操作数段中的地址或数据赋值给标号地段中的标号 4 DBDB字节常数ASCII码字定义伪指令 它的功能是从指定单元开始定义 存储 若干个字节的数值或ASCII码字符 常用于定义数据常数表 5 DWDW字节常数ASCII码定义字伪指令 功能是从指定单元开始定义 或存储 若干个字的数据或ASCII码字符 6 BIT字符名称BIT位地址位地址符号伪指令 它的功能是把位地址赋予所规定的字符名称 7 DATA字符名称 DATA表达式定义标号数值伪指令 功能是给标号段中的标号赋予数值 第四章单片机实验 4 1AEDK5196ET实验系统简介AEDK5196ET单片机实验系统是新一代单片机实验开发系统 它采用模块化设计 外围芯片丰富 功能完善 可进行MCS 51和MCS 96系列单片机实验 板上自带CPU和监控 可与PC机串行通讯 也可独立运行调试作实验 具有较完善的仿真功能 可连接使用多种型号AEDK机电实验平台 支持高级语言调试环境 8279键盘显示 62256存储器 8251可编程通讯接口 138译码器 单片机P1口 开关量输入 8255可编程并口接口 简单并行口输出 简单并行口输入 单色LED灯 晶振和分频 双色LED灯 按键 8279 并行打印机接口 串 并转换器 0809A D转换器 电位机 继电器 喇叭驱动电路 脉冲滤波器 D A转换器 双极性驱动器 脉冲驱动电路 联接机电实验控制平台 复位电路 4 2实验一扩展存储器读写实验 4 2 1实验说明1 在用监控命令方式读写RAM时 可进入实验机调试工具对话窗口 在I状态下执行SX4100 55 再执行SX4100 屏幕上应显示55 执行SX4100 AA 再执行SX4100 屏幕上应显示AA 以上过程执行效果与通过编程执行效果完全相同 注 SX是实验机对外部数据空间读写命令 2 读写数据的选用 本例采用的是55 0101 0101 与AA 1010 1010 一般采用这两个数据的读写操作就可查出数据总线的短路 断路等 在实际调试用户电路时非常有效 3 在I状态下 执行MEM1程序 对实验机数据进行读写 若L1灯闪动说明RAM读写正常 4 2 2实验目的1 学习片外存储器扩展方法 2 学习数据存储器 不同的读写方法 4 2 3实验要求使用62256 作为数据空间0 7FFFH 对其进行读写 使用监控命令 和程序 4 2 4实验原理图 4 2 5实验元器件介绍62256 是较大容量的静态存储芯片 采用单一 5V供电 双列直 插式28引脚封装 单片机通过P2 7控制62256的片选端CE 单片机的读写信号分别与62256的输出允许OE和写允许WE连接 74LS373 是8D锁存器 输出允许控制端OE接地保持低电平有效状态 允许控制端接单片机ALE进行片选 74LS240 8反向缓冲器 线驱动器 线接收器4 2 6实验程序ORG0000HLJMPSTARTORG0040HSTART MOVSP 60HMOVDPTR 4100H 置外部RAM读写地址MOVA 55H 测试的数据一MOVB AMOVX DPTR A 写外部RAMMOVXA DPTR 读外部RAM XRLA B 比较读回的数据JNZERRORMOVA 0AAH 测试的数据二MOVB AMOVX DPTR AMOVXA DPTRXRLA BJZPASS 测试通过ERROR SETBP1 0 测试失败 点亮LEDSJMP PASS CPLP1 0 LED状态 亮 灭 转换MOVR1 00H 延时DELAY MOVR2 00HDJNZR2 DJNZR1 DELAY LJMPSTART 循环测试END 4 3实验二P1口输入 输出实验 4 3 1实验说明1 P1口是准双向口 它作为输出口时与一般的双向口使用方法相同 由准双向口结构可知当P1口作为输入口时 必须先对它置高电平使内部MOS管截止 因为内部上拉电阻阻值是20K 40K 故不会对外部输入产生影响 若不先对它置高 且原来是低电平 则MOS管导通 读入的数据是不正确的 2 延时子程序的延时计算问题对于程序DELAY MOVR0 00HDELAY1 MOVR1 0B3HDJNZR1 DJNZR0 DELAY1查指令表可知MOV DJNZ指令均需用两个机器周期 而一个机器周期时间长度为12 11 0592MHz 所以该段程序执行时间为 0B3 2 1 2 256 1 12 11059200 100 2789mS4 3 2实验目的1 学习P1口的使用方法 2 学习延时子程序的编写和使用 4 3 3实验要求1 P1口做输出口 接八只发光二极管 编写程序 使发光二极管循环点亮 2 P1口做输入口 接八个扭子开关 以实验机上74LS273做输出口 编写程序读取开关状态 将此状态 在发光二极管上显示出来 4 3 4实验原理图 4 3 5实验元器件介绍74LS138 3线 8线译码器 多路分配器74LS273 8D触发器4 3 6实验程序实验一 ORG0000HLJMPSTARTORG0040HSTART MOVSP 60HMOVA 01HROTATE MOVP1 A 点亮一个LEDRLA 循环右移LCALLDELAY 延时NOP SJMPROTATEDELAY 延时子程序 1秒 MOVR0 0AHDELAY1 MOVR1 00HDELAY2 MOVR2 0B2HDJNZR2 DJNZR1 DELAY2DJNZR0 DELAY1RETEND实验二 ORG0000HLJMPSTARTORG0040H START MOVDPTR 08300H 并行输出口地址READ MOVP1 0FFH 因P1口是准双向口 所以把P1口作为 输入口时 应先置高电平 MOVA P1 读开关状态MOVX DPTR A 把读入的数据输出AJMPREADEND 4 4实验三P3口输出控制继电器 4 4 1实验说明现代自动控制设备中 都存在一个电子电路与电气电路的互相连接问题 一方面要使电子电路的控制信号能够控制电气电路的执行元件 电动机 电磁铁 电灯等 另一方面又要为电子线路的电气电路提供良好的电隔离 以保护电子电路和人身的安全 电子继电器便能完成这一桥梁作用 本实验采用的继电器的型号是HG4098 其控制电压是6V 继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势 防止干扰 本电路的控制端为JD 当JD为高电平时 继电器不工作 当JD为低电平时 继电器工作 常开触点吸合 连触点的LED灯被点亮 执行时 对应的LED将随继电器的开关而亮灭 4 4 2实验目的掌握继电器控制的基本方法和经验 4 4 3实验要求利用P3 5输出高低 控制继电器的开合 实现对外部装置的控制 4 4 4实验原理图 4 4 5实验元器件介绍7407 6缓冲 驱动器4 4 6实验程序ORG0000HLJMPSTART ORG0040HSTART MOVSP 60HJD CPLP3 5 继电器状态 吸合 分开 切换LCALLDELAY 延时NOPSJMPJDDELAY 延时子程序 1秒 MOVR0 0AHDELAY1 MOVR1 00HDELAY2 MOVR2 0B2HDJNZR2 DJNZR1 DELAY2DJNZR0 DELAY1RETEND 4 5实验四简单I O实验 交通灯控制 4 5 1实验说明1 因为本实验是交通灯控制实验 所以要先了解实际交通灯的变化规律 假设一个十字路口为东西南北走向 初始状态0为东西红灯 南北红灯 然后转状态1南北绿灯通车 东西红灯 过一段时间转状态2 南北绿灯闪几次转亮黄灯 延时几秒 东西仍然红灯 再转状态3 东西绿灯通车 南北红灯 过一段时间转状态4 东西绿灯闪几次转亮黄灯 延时几秒 南北仍然红灯 最后循环至状态1 2 双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起 公用负端 当红色正端加高电平 绿色正端加低电平时 红灯亮 红色正端加低电平 绿色正端加高电平时 绿灯亮 两端都加高电平时 黄灯亮 4 5 2实验目的1 学习在单片机系统中扩展简单I O接口的方法 2 学习数据输出程序的设计方法 3 学习模拟交通灯控制的方法 4 学习双色灯的使用 4 5 3实验要求 以74LS273作为输出口 控制4个双色LED灯 可发红 绿 黄光 模拟交通灯管理 4 5 4实验原理图 4 5 5实验程序 系统晶振是11 0592MHzORG0000HLJMPSTARTORG0040HSTART MOVSP 60HLCALLSTATUS0 初始状态 都是红灯 CIRCLE LCALLSTATUS1 南北绿灯 东西红灯LCALLSTATUS2 南北绿灯闪转黄灯 东西红灯LCALLSTATUS3 南北红灯 东西绿灯LCALLSTATUS4 南北红灯 东西绿灯闪转黄灯LJMPCIRCLESTATUS0 南北红灯 东西红灯MOVDPTR 8300HMOVA 0FH MOVX DPTR AMOVR2 10 延时1秒LCALLDELAYRETSTATUS1 南北绿灯 东西红灯MOVDPTR 08300HMOVA 96H 南北绿灯 东西红灯MOVX DPTR AMOVR2 200 延时20秒LCALLDELAYRETSTATUS2 南北绿灯闪转黄灯 东西红灯MOVDPTR 8300HMOVR3 03H 绿灯闪3次FLASH MOVA 9FHMOVX DPTR A MOVR2 03HLCALLDELAYMOVA 96HMOVX DPTR AMOVR2 03HLCALLDELAYDJNZR3 FLASHMOVA 06H 南北黄灯 东西红灯MOVX DPTR AMOVR2 10 延时1秒LCALLDELAYRETSTATUS3 南北红灯 东西绿灯MOVDPTR 8300HMOVA 69HMOVX DPTR A MOVR2 200 延时20秒LCALLDELAYRETSTATUS4 南北红灯 东西绿灯闪转黄灯MOVDPTR 8300HMOVR3 03H 绿灯闪3次FLASH1 MOVA 6FHMOVX DPTR AMOVR2 03HLCALLDELAYMOVA 69HMOVX DPTR AMOVR2 03HLCALLDELAYDJNZR3 FLASH1MOVA 09H 南北红灯 东西黄灯 MOVX DPTR AMOVR2 10 延时1秒LCALLDELAYNOPRETDELAY 延时子程序PUSH2PUSH1PUSH0DELAY1 MOV1 00HDELAY2 MOV0 0B2HDJNZ0 DJNZ1 DELAY2 延时100mSDJNZ2 DELAY1POP0POP1 POP2RETEND 4 6实验五外部中断实验 4 6 1实验说明中断服务程序的关键是 1 保护进入中断时的状态 并在退出中断之前恢复进入时的状态 2 必须在中断程序中设定是否允许中断重入 即设置EX0位 本例中使用了INT0中断 一般中断程序进入时应保护PSW ACC以及中断程序使用但非其专用的寄存器 本例的INT0程序保护了PSW ACC 2等三个寄存器并且在退出前恢复了这三个寄存器 另外中断程序中涉及到关键数据的设置时应关中断 即设置时不允许重入 本例中没有涉及这种情况 实验开始时K8应在H 高电平 端 要产生中断时先拨向L 低电平 端再拨回H端 4 6 2实验目的1 学习外部中断技术的基本使用方法 2 学习中断处理程序的编程方法 4 6 3实验要求在实验四内容的基础上增加允许急救车优先通过的要求 有急救车到达时 两向交通信号为全红 以便让急救车通过 假定急救车通过路口时 间为10秒 急救车通过后 交通灯恢复中断前状态 本实验以按键为中断申请 表示有急救车通过 4 5 4实验原理图 4 5 5实验程序 系统晶振是11 0592MHzORG0000HLJMPSTARTORG0003H INT0中断入口地址LJMPINT0ORG0040HSTART MOVSP 60HSETBEX0 INT0中断有效SETBIT0SETBEALCALLSTATUS0 初始状态 都是红灯 CIRCLE LCALLSTATUS1 南北绿灯 东西红灯LCALLSTATUS2 南北绿灯闪转黄灯 东西红灯LCALLSTATUS3 南北红灯 东西绿灯 LCALLSTATUS4 南北红灯 东西绿灯闪转黄灯LJMPCIRCLEINT0 PUSHPSW 保护现场PUSH2PUSHACCMOVDPTR 8300HMOVA 0FH 南北 东西都亮红灯MOVX DPTR AMOVR2 100 延时10秒LCALLDELAYPOPACC 恢复现场MOVX DPTR APOP2POPPSWRETI STATUS0 南北红灯 东西红灯MOVDPTR 8300HMOVA 0FHMOVX DPTR AMOVR2 10 延时1秒LCALLDELAYRETSTATUS1 南北绿灯 东西红灯MOVDPTR 8300HMOVA 96H 南北绿灯 东西红灯MOVX DPTR AMOVR2 200 延时20秒LCALLDELAYRETSTATUS2 南北绿灯闪转黄灯 东西红灯MOVDPTR 8300H MOVR3 03H 绿灯闪3次FLASH MOVA 9FHMOVX DPTR AMOVR2 03HLCALLDELAYMOVA 96HMOVX DPTR AMOVR2 03HLCALLDELAYDJNZR3 FLASHMOVA 06H 南北黄灯 东西红灯MOVX DPTR AMOVR2 10 延时1秒LCALLDELAYRETSTATUS3 南北红灯 东西绿灯 MOVDPTR 8300HMOVA 69HMOVX DPTR AMOVR2 200 延时20秒LCALLDELAYRETSTATUS4 南北红灯 东西绿灯闪转黄灯MOVDPTR 8300HMOVR3 03H 绿灯闪3次FLASH1 MOVA 6FHMOVX DPTR AMOVR2 03HLCALLDELAYMOVA 69HMOVX DPTR AMOVR2 03H LCALLDELAYDJNZR3 FLASH1MOVA 09H 南北红灯 东西黄灯MOVX DPTR AMOVR2 10 延时1秒LCALLDELAYNOPRETDELAY 延时子程序PUSH2PUSH1PUSH0DELAY1 MOV1 00HDELAY2 MOV0 0B2HDJNZ0 DJNZ1 DELAY2 延时100mS DJNZ2 DELAY1POP0POP1POP2RETEND 4 7 1实验说明1 关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置 内部计数器在单片机中主要有定时器和计数器两个功能 本实验用的是定时器 有关计数器的说明请查阅实验七 2 内部计数器用作定时器时 是对机器周期计数 每个机器周期的长度是12个振荡器周期 因为实验系统的晶振是11 0592MHz 所以定时常数的设置可按以下方法计算 机器周期 12 11 0592MHz 1 0857 S 65536 定时常数 1 0857 S 50mS定时常数 4C00H3 定时器的有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON TMOD用于设置定时器 计数器的工作方式0 3 并确定用于定时还是用于计数 TCON主要功能是为定时器在溢出时设定标志位 并控制定时器的运行或停止等 4 在例程的中断服务程序中 因为中断定时常数的设置对中断程序的运行起到关键作用 所以在置数前要先关对应的中断 置数完之后再打开相应的中断 4 7实验六定时器实验 4 7 2实验目的1 学习8031内部计数器的使用和编程方法 2 进一步掌握中断处理程序的编程方法 4 7 3实验要求由8031内部定时器1 按方式1工作 即作为16位定时器使用每0 05秒钟T1溢出中断一次 P1口的P1 0 P1 7分别接八个发光二极管 要求编写程序模拟一时序控制装置 开机后第一秒钟L1 L3亮 第二秒钟L2 L4亮 第三秒钟L5 L7亮 第四秒钟L6 L8亮 第五秒L1 L3 L5 L7亮 第六秒钟L2 L4 L6 L8亮 第七秒钟八个二极管全亮 第八秒钟全灭 以后又从头开始 L1 L3亮 然后L2 L4亮 一直循环下去4 7 4实验原理图 4 7 5实验程序 系统晶振是11 0592MHzORG0000HAJMPSTARTORG001BH T1中断入口地址AJMPINT T1ORG0100HSTART MOVSP 60HMOVTMOD 10H 置T1为方式1MOVTL1 00H 延时50mS的时间常数MOVTH1 4CHMOVR0 00HMOVR1 20SETBTR1 SETBET1SETBEA 开中断SJMP INT T1 T1中断服务子程序PUSHACC 保护现场PUSHPSWPUSHDPLPUSHDPHCLRTR1 关中断MOVTL1 00H 延时50mS常数MOVTH1 4CHSETBTR1 开中断DJNZR1 EXITMOVR1 20 延时一秒的常数MOVDPTR DATA 置常数表基址 MOVA R0 置常数表偏移量MOVCA A DPTR 读常数表MOVP1 A 送P1口显示INCR0ANLR0 07HEXIT POPDPH 恢复现场POPDPLPOPPSWPOPACCRETI LED显示常数表DATA DB05H 0AH 50H 0A0H 55H 0AAH 0FFH 0HEND 4 8实验七计数器实验 4 8 1实验说明1 本实验中内部计数器起计数器的作用 外部事件计数脉冲由P3 4引入定时器T0 单片机在每个机器周期采样一次输入波形 因此单片机至少需要两个机器周期才能检测到一次跳变 这就要求被采样电平至少维持一个完整的机器周期 以保证电平在变化之前即被采样 同时这就决定了输入波形的频率不能超过机器周期频率 2 实验时P3 4对应的连线分别接频率发生器对应的Q13 Q16 不同频率对应的值会在LED上显示出来 4 8 2实验目的1 学习8031内部定时 计数器使用方法 2 进一步掌握中断处理编程方法 4 8 3实验要求8031内部定时计数器 按计数器模式和方式1工作 对P3 4 T0 引脚进行计数 使用8031的T1作定时器 50ms中断一次 看T0内每50ms来了多少脉冲 将其数值按二进制数在74LS273驱动LED灯上显示出来 5秒后再次测试 4 8 4实验原理图 4 8 5实验元器件介绍74LS393 双4位二进制计数器74LS32 四2输入或门74LS04 六反相器 4 8 6实验程序 系统晶振是11 0592MHzORG0000HAJMPSTARTORG000BH T0中断入口地址RETIORG001BH T1中断入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论