第九章应用系统配置及接口技术_第1页
第九章应用系统配置及接口技术_第2页
第九章应用系统配置及接口技术_第3页
第九章应用系统配置及接口技术_第4页
第九章应用系统配置及接口技术_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1、1G,2G为H时,Y为高阻;1G,2G为L 时,Y=A输入输入输出输出PC3PC5出出工作控制工作控制抖动时间抖动时间10ms开关动作时间开关动作时间100ms“ 1 ”“ 0 ”10ms前沿抖动前沿抖动后沿抖动后沿抖动I/O接接口口+5v+5v消除抖动电路消除抖动电路开关开关单单片片机机键盘接口形式:键盘接口形式:P1.0P1.1P1.7+5v 0 1+5v C0 C1 R0 R1键盘键盘I/O接口接口 2) 线反转法线反转法 线反转法也是识别闭合键的一种常用方法线反转法也是识别闭合键的一种常用方法, 该法比行扫描该法比行扫描速度快速度快, 但在硬件上要求行线与列线外接上拉电阻。但在硬件上要

2、求行线与列线外接上拉电阻。 先将行线作为输出线先将行线作为输出线, 列线作为输入线列线作为输入线, 行线输出全行线输出全“0”信信号号, 读入列线的值读入列线的值, 然后将行线和列线的输入输出关系互换然后将行线和列线的输入输出关系互换, 并并且将刚才读到的列线值从列线所接的端口输出且将刚才读到的列线值从列线所接的端口输出, 再读取行线的再读取行线的输入值。那么在闭合键所在的行线上值必为输入值。那么在闭合键所在的行线上值必为 0。这样。这样, 当一个键当一个键被按下时被按下时, 必定可读到一对唯一的行列值。必定可读到一对唯一的行列值。 延时等待延时等待10ms 仍有按键信号?仍有按键信号?Y 有

3、按键信号?有按键信号?NYN键盘处理键盘处理 按键释放?按键释放?NY延时消抖延时消抖键扫描求键号键扫描求键号延时等待延时等待键译码求键值键译码求键值修改显示缓冲区修改显示缓冲区跳转各功能程序跳转各功能程序有按键输入?有按键输入?确有按键?确有按键?按键释放?按键释放?是数字键?是数字键?YYYNNNYNP2.7=0,P2.0=1:A口地址为:口地址为:7F01H;C口地址为:口地址为:7F03H。A AL LE ER RD DW WR RP P0 08 80 0C C5 51 1A AL LE ER RD DW WR RR RE ES SE ET T8 81 15 55 5I IO O/ /

4、M MC CE E8 8P P2 2. .7 7P P2 2. .0 0A AD D7 70 0. . . .+ +5 5V VP PA A7 7P PA A6 6P PA A0 0P PA A1 1P PC C0 0P PC C1 1P PC C2 2P PC C3 301678914 152. 键盘接口电路键盘接口电路 图 采用8155的键盘接口电路 KS1:KEY1:ACALL KS1 ;调用判断有无键按下子程序;调用判断有无键按下子程序 JNZ LK1 ;有键按下时,(;有键按下时,(A)0转消抖延时转消抖延时KEY2:ACALL TM6ms AJMP KEY1 ;无键按下返回;无键按

5、下返回LK1: ACALL TM12ms ;调;调12 ms延时子程序延时子程序 ACALL KS1 ;查有无键按下,若有则真有键按下;查有无键按下,若有则真有键按下 JNZ LK2 ;键;键(A) 0逐列扫描逐列扫描 AJMP KEY2 ;不是真有键按下,返回;不是真有键按下,返回LK2:MOV R2,#0FEH ;初始列扫描字(;初始列扫描字(0列)送入列)送入R2 MOV R4,#00H ;初始列(;初始列(0列)号送入列)号送入R4LK4:MOV DPTR,#7F01H ;DPTR指向指向8155PA口口 MOV A,R2 ;列扫描字送至;列扫描字送至8155PA口口 MOVX DPT

6、R,A INC DPTR ;DPTR指向指向8155PC口口 INC DPTR P2.7=0时:时:A0=P2.0=1:命令口地址为:命令口地址为:7FFFH;A0=P2.0=0:数据口地址为:数据口地址为:7EFFH。 (程序略)(程序略)01345678 当有键按下时,当有键按下时,INT1为低,向为低,向CPU发出中断申请,在中断服务发出中断申请,在中断服务程序中除完成键识别、键功能处理外,仍须有清除键抖动等功能。程序中除完成键识别、键功能处理外,仍须有清除键抖动等功能。0481215913236710 1114 15 下面的程序是用行扫描法进行键扫描的程序, 其中KS1 为判键闭合的子

7、程序。 有键闭合时(A)=0。 DIR为数码显示器扫描显示子程序, 执行一遍的时间约6 ms。 程序执行后, 若键闭合, 键值存入A中, 键值的计算公式是: 键值=行号4+列号; 若无键闭合, 则A中存入标志FFH。 KEY1:LCALL KS1 ; 检查有无闭合键? JNZ LK1 ; (A)=0, 有键闭合则转 LJMP LK8 ; 无闭合键则返回 LK1: LCALL DIR ; 延时 12 ms LCALL DIR ; 清抖 LCALL KS1 ; 再检查有键闭合否? JNZ LK2 ; 有键闭合则转 LJMP LK8 ; 无键闭合则返回 LK2: MOV R3, 00H ; 行号初值

8、送R3 MOV R2, FEH ; 行扫描初值送R2LK3: MOV DPTR, 0101H ; 指向 8155 口A MOV A, R2 ; 行扫描值送A MOVX DOTR, A ; 扫描 1 行 INC DPTR INC DPTR ; 指向 8155 口C MOVX A, DPTR ; 读入列值 ANL A, 0FH ; 保留低 4 位 MOV R4, A ; 暂存列值 CJNZ A, 0FH, LK4 ; 列值非全“1”则转 MOV A, R2 ; 行扫描值送A JNB ACC.7, LK8 ; 扫至最后一行则转RL A ; 未扫完, 则移至下一行MOV R2, A ; 行值存入R2

9、中INC R3 ; 行号加 1SJMP LK3 ; 转至扫描下一行 LK4: MOV A, R3 ; 行号送入A ADD A, R3 ; 行号2 MOV R5, A ADD A, R5 ; 行号4 MOV R5, A ; 存入R5 中 MOV A, R4 ; 列值送A LK5: RRC A ; 右移一位 JNC LK6 ; 该位为 0 则转 INC R5 ; 列号加 1 SJMP LK5 ; 列号未判完则继续LK6: MOV 20H, R5; 存键值LK7: LCALL DIR ; 扫描一遍显示器 LCALL KS1 ; 发扫描信号 JNZ LK7 ; 键未释放等待 LCALL DIR ; 键

10、已释放 LCALL DIR ; 延时 12 ms, 清抖 MOV A, 20H ; 键值存入A中KND: RET LK8: MOV A, FFH ; 无键标志FFH存入A中 RET KS1: MOV DPTR, 0101H ; 判键子程序 MOV A, 00H ; 全扫描信号 MOVX DPTR, A ; 发全扫描信号 INC DPTR INC DPTR ; 指向8155口C MOVX A, DPTR ; 读入列值 ANL A, 0FH ; 保留低4位 ORL A, F0H ; 高4位取“1” CPL A ; 取反, 无键按下则全“0” RET 1. LED显示器结构与原理显示器结构与原理 图

11、 7段LED数码显示器 各段码位的对应关系如下: 表 十六进制数及空白与P的显示段码 2. LED显示器接口电路显示器接口电路图 6 位动态显示器接口 图 显示子程序流程图 程序清单如下:DIR: MOV R0, 79H ; 显示缓冲区首址送R0MOV R3, 01H ; 使显示器最右边位亮MOV A, R3LD0: MOV DPTR, 0101H ; 扫描值送PA口MOVX DPTR, AINC DPTR ; 指向PB口MOV A, R0 ; 取显示数据ADD A, 12H ; 加上偏移量MOVX A, A+PC ; 取出字形MOVX DPTR, A ; 送出显示 ACALL DL1; 延时

12、 INC R0; 缓冲区地址加 1 MOV A, R3; JB ACC.5, LD1; 扫到第 6 个显示位了吗? RL A ; 没有, R3 左环移一位, 扫描下一个显示位 MOV R3, A AJMP LD0LD1: RETDSEG: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH ; 显示段码表DSEG1: DB 7DH, 07H, 7FH, 6FH, 77H, 7CH DSEG2: DB 39H, 5EH, 79H, 71H, 73H, 3EHDSEG3: DB 31H, 61H, 1CH, 23H, 40H, 03HDSEG4: DB 18H, 00H, 00H, 0

13、0HDL1: MOV R7, 02HDW; 延时子程序DL: MOV R6, 0FFHDL6: DJNZ R6, DL6 DJNZ R7, DL RET 7.4.3 键盘显示器接口键盘显示器接口8279 1. 8279的组成及引脚的组成及引脚 8279 芯片有 40 条引脚, 由单一+5 V电源供电。 它主要由以下几部分组成: (1) I/O控制和数据缓冲器; (2) 控制和定时寄存器及定时控制部分; (3) 扫描计数器; (4) 回送缓冲器与键盘去抖动控制电路; (5) FIFO(先进后出)寄存器和状态电路; (6) 显示器地址寄存器及显示RAM。 图 8279的引脚图 2. 8279的接口

14、电路与应用的接口电路与应用 图 9.31 8031与 8279 接口连接框图 9.3 A/D转换器接口转换器接口 1. 概述概述 A/D转换器用以实现模拟量向数字量的转换。 按转换原理可分为 4 种: 计数式、 双积分式、逐次逼近式以及并行式A/D转换器。逐次逼近式A/D转换器是一种速度较快, 精度较高的转换器, 其转换时间大约在几微秒到几百微秒之间。常用的这种芯片有: (1) ADC0801ADC0805型 8 位MOS型A/D转换器; (2) ADC0808/0809 型 8 位MOS型A/D转换器; (3) ADC0816/0817 型 8 位MOS型A/D转换器; 量化间隔和量化误差是

15、A/D转换器的主要技术指标之一。 量化间隔由下式计算: 12 n满量程输入电压 其中n为A/D转换器的位数。 量化误差有两种表示方法: 一种是绝对量化误差; 另一种是相对量化误差。 绝对量化误差 22量化间隔121n相对量化误差2. 典型典型A/D转换器芯片转换器芯片ADC0809 简介简介 ADC0809 是采用CMOS 工艺制造的双列直插式单片8 位A/D 转换器。分辨率8 位,精度7 位,带8 个模拟量输入通道,有通道地址译码锁存器,输出带三态数据锁存器。 启动信号为脉冲启动方式,最大可调节误差为1LSB,ADC0809 内部没有时钟电路,故CLK 时钟需由外部输入,fclk 允许范围为

16、500kHz1MHz,典型值为640kHz。每通道的转换需6673 个时钟脉冲,大约100110s。 工作温度范围为-40+85。功耗为15mW,输入电压范围为05V,单一+5V 电源供电。它可以直接与Z80、8085、8080、8031 等CPU 相连,也可以独立使用。图 ADC0809的内部结构 图 9.33 ADC0809引脚图 表 9.9 地址码与输入通道的对应关系 图 9.34 ADC0809时序图 3. ADC0809与与8031 的的中断方式中断方式 接口电路接口电路图 9.36 ADC0809 中断方式硬件接口 这里将ADC0809 作为一个外部扩展的并行I/O口, 直接由80

17、31的P2.0和WR脉冲进行启动。因而其端口地址为 0FEFFH。用中断方式读取转换结果的数字量, 模拟量输入通道选择端ADD A、ADD B、ADD C分别与8031的P0.0、 P0.1、P0.2 直接相连, CLK由 8031 的ALE提供。启动数据转换:例如选中0通道 C、B、A为000, MOV DPTR, 0FEFFH ; 端口地址送DPTR MOV A, 00H ; 选择 0 通道输入 MOVX DPTR, A ; 启动输入 ORG 0000H AJMP INADC ORG 1000H INADC: SETB IT1 ; INT1设为边沿触发设为边沿触发 SETB EA ; 开中

18、断开中断INT1 SETB EX1 MOV DPTR, 0FEF8H ; 端口地址送 DPTRMOV A, 00H ; 选择 0 通道输入 MOVX DPTR, A ; 启动输入 HERE: SJMP HERE9.4 D/A转换器接口转换器接口 1. D/A转换器的性能指标转换器的性能指标 (1) 分辨率。分辨率是D/A转换器对输入量变化敏感程度的描述, 与输入数字量的位数有关。如果数字量的位数为n, 则D/A转换器的分辨率为 2-n。 (2) 建立时间。建立时间是描述 D/A转换速度的一个参数, 具体是指从输入数字量变化到输出达到终值误差1/2LSB(最低有效位)时所需的时间。通常以建立时间来表明转换速度。 (3) 接口形式。 D/A转换器有两类: 一类不带锁存器, 另一类则带锁存器。对于不带锁存器的D/A转换器, 为保存单片机的转换数据, 在接口处要加锁存器。 2. 典型典型D/A转换器转换器DAC0832简介简介 图 9.37 DAC0832内部结构框图 图 DAC0832的引脚图 3. DAC0832与与MCS - 51 的接口及应用的接口及应用 1) 单缓冲方式 图 DAC0832单缓冲方式接口电路 执行下面的几条指令就能

温馨提示

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

评论

0/150

提交评论