




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章可编程接口芯片及其应用 10 1模 数和数 模转换接口当计算机用于数据采集和过程控制的时候 采集对象往往是连续变化的物理量 如温度 压力 声波等 但计算机处理的是离散的数字量 因此需要对连续变化的物理量 模拟量 进行采样 保持 再把模拟量转换为数字量 量化 交给计算机处理 保存等 计算机中的数字量有时需要转换为模拟量输出去控制某些执行元件 模 数转换器 AnalogyDigitalConverter 简称ADC 与数 模转换器 DAC 用于连接计算机与模拟电路 一个典型的计算机自动控制系统如下图所示 在下图中 A D转换器和D A转换器是模拟量输入和模拟量输出通路中的核心部件 在实际控制系统中 各种非电物理量需要由各种传感器把它们转换成模拟电流或电压信号后 才能加到A D转换器转换成数字量 10 1 1典型模 数转换器 ADC 芯片1 主要性能参数1 分辨率 Resolution 2 量化误差 QuantizingError 3 转换时间 ConversionTime 4 转换精度5 相对精度 2 ADC0809模 数转换器1 ADC0809的内部结构与引脚图 1 通道选择开关 2 通道地址锁存和译码 3 逐次逼近A D转换器 4 8位锁存器和三态门3 ADC0809与CPU的连接 例10 1编写图10 4中的A D转换程序 具体要求如下 1 顺序采样IN0 IN78个输入通道的模拟信号 2 结果依次保存在ADBUF开始的8个内存单元中 上述采样每隔100ms循环一次 设DELAY是一延时100ms子程序 分析 1 模拟输入通道IN0 IN7由A0 A2决定其端口地址 分别为300H 307H 与相配合 可启动ADC0809进行转换 2 查询端口和读A D转换结果寄存器的地址分别为 308H和300H 相应的采集程序如下 AD MOVCX 0008H 通道计数单元CX赋初值MOVDI OFFSETADBUF 寻址数据区 结果保存在ADBUF存储区START MOVDX 300H 取IN0启动地址LOOP1 OUTDX AL 启动A D转换 AL可为任意值PUSHDX 保存通道地址MOVDX 308H 取查询EOC状态的端口地址WAIT1 INAL DX 读EOC状态TESTAL 80H 测试A D转换是否结束JZWAIT1 未结束 则跳到WAIT1处MOVDX 300H 取读A D转换结果寄存器的端口地址INAL DX 读A D转换结果MOV DI AL 保存转换结果INCDI 指向下一保存单元POPDX 恢复通道地址INCDX 指向下一个模拟通道LOOPLOOP1 未完 转入下一通道采样CALLDELAY 延时100msJMPAD 进行下一次循环采样 跳至AD处 10 1 2典型数 模转换器 DAC 芯片1 主要性能参数1 分辨率 Resolution 2 线性误差 LinearityError 3 建立时间 SettingTime 4 温度灵敏度5 输出电平 2 DAC0832数 模转换器DAC0832为电流输出型D A转换器 采用CMOS工艺生产 它将一个8位的二进制数转换成模拟电压 可产生256种不同的电压值 DAC0832具有以下主要技术指标 满足TTL电平规范的逻辑输入 建立时间为1us 功耗20mW 单电源供电 1 DAC0832的内部结构与引脚图2 DAC0832的工作模式 1 输出直通方式 2 单缓冲方式 3 双缓冲方式 3 DAC0832与CPU的连接由于DAC0832内部含有数据锁存器 在与CPU相连时 使其可直接挂在数据总线上 DAC0832采用单缓冲方式与CPU的连接如图10 7所示 下面举例说明如何编写D A转换程序 例10 2编写图10 7中DAC0832输出三角波的汇编程序 要求三角波的最低电压为0V 最高电压为2 5V 分析 三角波电压范围为0 2 5V 对应的数字量为00H 7FH 三角波的下降部分 从7FH减1 直到数字量降为00H 上升部分则从00H加1 直到7FH 相应的程序如下 MOVAL 7FH 设2 5V初值DOWN OUT20H AL 输出模拟信号到端口20H 三角波下降段DECAL 输出值减1CMPAL 00H 输出值到达0V JNZDOWN 输出值未达到0V 则跳到DOWNUP OUT20H AL 输出模拟量到端口20H 三角波上升段INCAL 输出值加1CMPAL 7FH 判别输出值是否到达2 5VJNZUP 输出值未达到2 5V则跳到UPJMPDOWN 输出值达到2 5V则跳到DOWN循环 10 1 3A D与D A应用举例例10 3使用ADC0809和DAC0832来捕获和重放语音信号 图10 9给出了相应的电路 本例要求ADC0809采样大约1秒钟语音信号并保存到相应存储单元 D A将此语音信号经扬声器重放10次 然后循环进行上述采样和重放 直到系统关闭 分析 1 DAC0832的I O端口地址由译码器产生的地址是2F7H ADC0809的EOC状态查询地址为2F6H 读ADC0809转换结果端口地址为2F5H 启动A D转换端口地址为2F0H 这四个地址实际上是译码器将地址线A9 A0分别与 译码得到 片选 控制信号 故它们可以直接连接到DAC0832和ADC0809的相应的引脚上 2 该程序读大约1秒钟语音信号 然后重放10次 重复此进程直到系统被关闭 语音信号被采样存储在VOICE存储区中 采样频率为每秒钟采样2048次 设DELAY是延时1 2048秒的子程序 且数据段中已申请2048个单元给VOICE 相应的程序 略 10 2并行I O接口10 2 1可编程并行I O接口芯片8255A1 8255A的基本功能和内部结构8255A由以下几部分组成 1 3个并行输入 输出端口 端口A 端口B 端口C 2 A组和B组控制部件3 数据总线缓冲器4 读 写控制部件 2 8255A的控制字及其工作方式8255A各端口共有3种基本工作方式 方式0 基本输入 输出方式 方式1 选通输入 输出方式 方式2 双向传送方式 端口A可处于3种工作方式 方式0 方式1或方式2 端口B只可处于两种方式 方式0或方式1 端口C常常被分成高4位和低4位两部分 可分别用来传送数据或控制信息 1 控制字 1 工作方式控制字工作方式控制字的格式如图10 12所示 通过定义工作方式控制字可将3个端口定义为各种不同方式的组合 2 置位 复位控制字置位 复位控制字只对端口C有效 端口C的任何一位 都可用这个控制字来置位或复位 而其他位不变 使用格式如下图所示 2 工作方式 1 工作方式0这是8255A中各端口的基本输入 输出方式 它只完成简单的并行输入 输出操作 CPU可从指定端口输入信息 也可向指定端口输出信息 2 工作方式1被称作选通输入 输出方式 在这种工作方式下 数据输入 输出操作要在选通信号控制下完成 3 工作方式2被称作带选通的双向传送方式 8255A中只允许端口A处于工作方式2 可用来连接双向I O设备或用于在两台处理机之间实现双向并行通信等 其有关的控制信号由端口C提供 并可向CPU发出中断请求信号 10 2 28255A的应用1 8255A与打印机接口例10 4利用8255A的A口方式0与微型打印机相连 将内存缓冲区BUFF中的字符打印输出 试完成相应的软硬件设计 假设打印机接口采用Centronics标准 首先我们分析一下打印机的工作 微型打印机和主机之间的接口采用并行接口 它的工作流程 时序图如图10 17所示 为 主机将要打印的数据送上数据线 然后发选通信号 打印机将数据读入 同时使BUSY线为高电平 通知主机停止送数 这时 打印机内部对读入的数据进行处理 处理完以后使ACK有效 同时使BUSY失效 通知主机可以发下一个数据 图10 17打印机数据传输时序 8255A与打印机硬件连线如图10 18所示 图10 188255A与打印机接口电路 则8255A的控制字为10001000B 88H 即A口工作于方式0 输出 C口高4位方式0输入 低4位方式0输出 其中PC0置位字00000001B 01H PC0复位字00000000B 00H 假设8255A的4个口地址分别为 00H 01H 02H和03H 编制程序如下 DADASEGMENTBUFFDB Thisisaprintprogram DATAENDSCODESEGMENTASSUMECS CODE DS DATASTART MOVAX DATAMOVDS AXMOVSI OFFSETBUFFMOVAL 88H 8255A初始化 A口方式0 输出OUT03H AL C口高位方式0输入 低位方式0输出MOVAL 01H OUT03H AL 使PC0置位 即使选通无效WAIT1 INAL 02HTESTAL 80H 检测PC7是否为1即是否忙JNZWAIT1 为忙则等待 MOVAL SI CMPAL 是否结束符JZDONE 是则输出回车OUT00H AL 不是结束符 则从A口输出MOVAL 00HOUT03H ALMOVAL 01HOUT03H AL 产生选通信号INCSI 修改指针 指向下一个字符JMPWAITDONE MOVAL 0DHOUT00H AL 输出回车符MOVAL 00HOUT03H ALMOVAL 01HOUT03H AL 产生选通WAIT2 INAL 02HTESTAL 80H 检测PC7是否为1即是否忙JNZWAIT2 为忙则等待MOVAL 0AHOUT00H AL 输出换行符MOVAL 00HOUT03H ALMOVAL 01HOUT03H AL 产生选通MOVAH 4CHINT21HCODEENDSENDSTART 例10 5将上例中8255A的工作方式改为方式1 采用中断方式将BUFF开始的缓冲区中的100个字符从打印机输出 假设打印机接口仍采用Centronics标准 分析 仍用PC0作为打印机的选通信号 打印机的应答信号接至8255A的PC6 8255A的PC3作为中断请求信号接至系统中断控制器8259A的IR3 其它他硬件连线同上例 如图10 19所示 8255A的控制字为1010XXX0B 可取0A0H 即A口工作于方式1输出 PC0置位字为00000001B 01H PC0复位字为00000000B 00H PC6置位字为00001101B 0DH 允许8255A的A口输出中断 由硬件连线可以分析出 8255A的4个口地址分别为 00H 01H 02H和03H 假设8259A初始化时送ICW2为08H 则8255AA口的中断类型码是0BH 此中断类型码对应的中断向量应放到中断向量表从2CH开始的4个单元中 主程序 MAIN MOVAL 0A0HOUT03H AL 设置8255A的控制字MOVAL 01H 使选通无效OUT03H ALXORAX AXMOVDS AXMOVAX OFFSETROUTINTRMOVWORDPTR 002CH AX 送中断类型号0BH的中断向量MOVAX SEGROUTINTRMOVWORDPTR 002EH AXMOVAL 0DH PC6置 1 OUT03H AL 使8255AA口输出允许中断MOVDI OFFSETBUFF 设置地址指针MOVCX 99 设置计数器初值MOVAL DI OUT00H AL 输出一个字符INCDIMOVAL 00HOUT03H AL 产生选通INCALOUT03H AL 撤消选通STI 开中断NEXT HLT 等待中断LOOPNEXT 修改计数器值 指向下一个输出字符HLT 中断服务子程序如下 ROUTINTR MOVAL DI OUT00H AL 从A口输出一个字符MOVAL 00HOUT03H AL 产生选通INCALMOV03H AL 撤消选通INCDI 修改地址指针IRET 中断返回 2 8255A与键盘接口键盘是微机系统中最常用的外部设备 数据 内存地址 命令及指令地址等都可以通过键盘输入到系统中 1 键盘的工作原理 2 键的识别 1 行扫描法 2 行反转法 3 抖动和重键问题 3 8255A与LED数码管接口1 LED数码管的工作原理 a 数码管外型 b 共阳极结构 c 共阴极结构 d 与8255A的连接 2 多位显示 10 3定时 计数技术10 3 1定时与计数定时与计数技术在计算机中具有极为重要的作用 在微机控制系统中 常常要按一定的采样周期对处理对象进行采样或定时检测某些参数等 1 软件定时2 不可编程的硬件定时3 可编程的硬件定时 10 3 2Intel8253可编程定时 计数器1 8253的特点 1 有3个独立的16位计数器 每个计数器均以减法计数 最大计数范围为0 65535 2 每个计数器都可按二进制或十进制 BCD码 数计数 3 每个计数器都可有程序设置6种工作方式 4 每个计数器的计数速度可达2 6MHz 5 所有输入和输出都与TTL兼容 2 8253的内部结构 3 8253的引脚信号 4 8253的工作方式1 方式0 计数结束时中断方式2 方式1 可编程单稳态触发器3 方式2 速率发生器 分频器4 方式3 方波发生器5 方式4 软件触发选通方式6 方式5 硬件触发选通方式7 8253工作方式小结 5 8253的控制字与初始化编程1 8253的控制字 2 8253的初始化编程对8253芯片进行初始化编程时 需按下列步骤进行 1 写入控制字 2 写入计数初值例如 在某微机系统中 8253的3个计数器的端口地址分别为3F0H 3F2H和3F4H 控制字寄存器的端口地址为3F6H 要求8253的通道0工作于方式3 BCD计数 并已知对它写入的计数初值n 1234 十进制数 则初始化程序为 MOVAL 00110111B 控制字 选择通道0 先读 写低字节 后高字节 方式3 BCD计数MOVDX 3F6H 指向控制口OUTDX AL 送控制字MOVAL 34H 计数值低字节 代表00110100BCDMOVDX 3F0H 指向计数器0端口OUTDX AL 先写入低字节MOVAL 12H 计数值高字节 代表0001010BCDOUTDX AL 后写入高字节 6 8253应用举例1 8253定时功能的应用例10 6设某应用系统中 系统提供一个频率为10kHz的时钟信号 要求每隔100ms采集一次数据 在系统中 采用8253定时器的通道0来实现这一要求 将8253芯片的CLK0接到系统的10kHz时钟上 OUT0输出接到CPU的中断请求线上 8253的端口地址为10H 13H 如图10 35所示 1 选择工作方式由于系统每隔100ms定时中断一次 则采样频率为10Hz 可选用方式2来实现 2 确定计数初值已知fCLK0 10kHz 则TCLK0 0 1ms 所以 计数初值N TOUT0 TCLK0 100ms 0 1ms 1000 03E8H 3 初始化编程根据以上要求 可确定8253通道0的方式控制字为00110100B 即34H 初始化程序段如下 MOVAL 34H 通道0 16位计数 方式2 二进制计数OUT13H AL 写入方式控制字到控制字寄存器MOVAL 0E8H 计数初值低8位OUT10H AL 写入计数初值低8位到通道0MOVAL 03H 计数初值高8位OUT10H AL 写入计数初值高8位到通道0 2 8253计数功能的应用例10 7通过PC的系统总线在外部扩展一个8253 利用其通道0记录外部事件的发生次数 每输入一个高脉冲表示事件发生1次 当事件发生100次后就向CPU提出中断请求 边沿触发 假设8253片选信号的I O地址范围为200H 203H 如图10 36所示 根据要求 可以选择方式0来实现 计数初值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学科技创新培训
- 肺结核合并心力衰竭的护理
- 语音厅新人培训:从零开始到主播之路
- 幼儿健康领域安全教育
- 整体护理查房标准化操作流程
- 造口护理查房
- 肿瘤住院患者的心理护理
- 中风病人发烧护理常规
- 销售业绩培训
- 职业健康体检质量管理
- 《心血管病介入治疗新技术》课件
- 风力发电运维值班员(技师)职业技能鉴定考试题(附答案)
- 物业管理定价策略与实施路径
- 基于机器学习的网络攻击行为模式识别-洞察阐释
- 出国培训考试题库及答案
- 《肾动脉解剖》课件
- 2024年湖南益阳事业单位招聘考试真题答案解析
- 国家开放大学《公共部门人力资源管理》形考任务1-4答案
- 宁德市霞浦县2025年六年级下学期小升初数学考前押题卷含解析
- 汽车电泳工艺培训
- 2024年陕西省中职高考对口升学财经商贸大类真题卷附参考答案
评论
0/150
提交评论