第五讲 接口与系统扩展(2) 本讲重点: 键盘接口(键盘种类矩阵键盘的行扫描与 线反转法的电路、原理与编程); D/A转换接囗(DAC0832产生各种波形) A/D转换接口(ADc0809三种读取方式电路 及单路采集与多路采集编程应用)
第五讲: 接口与系统扩展(2) 本讲重点: 键盘接口(键盘种类,矩阵键盘的行扫描与 线反转法的电路、原理与编程); D/A转换接口(DAC0832产生各种波形); A/D转换接口(ADC0809三种读取方式,电路 及单路采集与多路采集编程应用)
扩展键盘接口
扩展键盘接口
四、鍵盘接口 P.194 键盘 单片机系统中完成控制参数输入及修改的基本输 入设备,是人工干预系统的重要手段 单片机与计算机在键盘规模/键符设置等方面差别 很大。 键盘分类 @按键值编码方式分 (硬件)编码键盘与韭(碩件)编码键盘。 @按键组连接方式分 独立连接键盘与矩阵连接键盘
四、键盘接口 P.194 键盘 单片机系统中完成控制参数输入及修改的基本输 入设备,是人工干预系统的重要手段。 单片机与计算机在键盘规模/键符设置等方面差别 很大。 键盘分类 @ 按键值编码方式分 (硬件)编码键盘与非(硬件)编码键盘。 @ 按键组连接方式分 独立连接键盘与矩阵连接键盘
按键值编码方式:编码键盘与非编码键盘 ←编码键盘:采用专用的编码/译码器件被按下的键由 该器件译码输出相应的键码/键值。 特点:增加了硬件开销,编码因选用器件而异,编 码固定,但编程简单。适用于规模大的键盘。 非编码键盘:单片机系统多采用此类键盘 采用软件编/译码的方式通过扫描,对毎个被按下 的键判别输出相应的键码/键值。 特点:不增加硬件开销,编码灵活,适用于小规模 的键盘,特别是单片机系统。但编程较复杂,占CPU 时间,还须软件“消颤
编码键盘: 采用专用的编码/译码器件,被按下的键由 该器件译码输出相应的键码/键值。 特点:增加了硬件开销,编码因选用器件而异,编 码固定,但编程简单。适用于规模大的键盘。 非编码键盘: 单片机系统多采用此类键盘 采用软件编/译码的方式,通过扫描,对每个被按下 的键判别输出相应的键码/键值。 特点:不增加硬件开销,编码灵活,适用于小规模 的键盘,特别是单片机系统。但编程较复杂,占CPU 时间,还须软件“消颤” 。 按键值编码方式:编码键盘与非编码键盘
按键组连接方式:独立连接键盘与矩阵连接键盘 独立连接键盘:每键相互独立,各自与一条O线相 连,CPU可直接读取该功o线的高/低电平状态。 特点:占Ⅳo口线多,但判键速度快,多用于设置控 制键、功能键。适用于键数少的场合。 矩阵连接键盘:、键按矩阵排列各键处于矩阵行/列的 结点处CPU通过对连在行列)的IO线送已知电平 的信号然后读取列(行)线的状态信息。逐线扫描得 出键码。 特点:键多时占用I/O口线少但判键速度慢多用于 设置数字键。适用于键数多的场合
按键组连接方式:独立连接键盘与矩阵连接键盘 独立连接键盘: 每键相互独立,各自与一条I/O线相 连,CPU可直接读取该I/O线的高/低电平状态。 特点:占I/O口线多,但判键速度快,多用于设置控 制键、功能键。适用于键数少的场合。 矩阵连接键盘: 键按矩阵排列,各键处于矩阵行/列的 结点处,CPU通过对连在行(列)的I/O线送已知电平 的信号,然后读取列(行)线的状态信息。逐线扫描,得 出键码。 特点:键多时占用I/O口线少,但判键速度慢,多用于 设置数字键。适用于键数多的场合
独立连接式键盘例1: KEV:JNBP1.0,FUNc1;逐键判别 JNB P1.1FUNC2 JNB P1.2 FUNC3 /11.0 P1.1 JNB P1.3FUNC4 P1.2 RET;无任何键按下由此返回 P1.3 FUNc1::做P1.0要求的“功能1 RET AT89C51 FUNc2::做P1.1要求的“功能2” RET FUNC3:…:做P12要求的“功能3” RET FUNc4:做P13要求的“功能4” RET 特点:此子程序需不断完时调用,否则可能 漏判。4个键的优先级由指令顺序决定
独立连接式键盘例1: 特点:此子程序需不断(或定时)调用,否则可能 漏判。4个键的优先级由指令顺序决定。 P1.0 P1.1 P1.2 P1.3 KEY: JNB P1.0,FUNC1 ;逐键判别 JNB P1.1,FUNC2 JNB P1.2,FUNC3 JNB P1.3,FUNC4 RET ;无任何键按下由此返回 FUNC1: …… ;做P1.0要求的“功能1” RET FUNC2: …… ;做P1.1要求的“功能2” RET FUNC3: …… ;做P1.2要求的“功能3” RET FUNC4: …… ;做P1.3要求的“功能4” RET AT89C51
独立连接式键盘例2 上拉) P1.0 ORG 0003H P1.1 LMP KEY P1.2 P1.3 KEY:JNBP10FUNc1;逐键判别士 & At89C51 JNB P11 FUNC2 INTO UNB P1.2. FUNC3 JNB P13 FUNC4 特点: RETI;无任何键按下由此返回 @此子程序采用中断 RE∴…;做P10要求的“功能1”查询不会漏判省时。 FUNC1 @键的优先级由指令 FUNC2∷……:做P11要求的“功能2”顺序决定。 RETI @为防止一次按键多 FUNc3:∷…:做P12要求的“功能3”次中断,在功能子程 RETI 序里应安排“关/开中 FUNC4:…:P13要求的“功能4”断指令”并“延时”。 RETI
独立连接式键盘例2 特点: @此子程序采用中断 查询不会漏判,省时。 @键的优先级由指令 顺序决定。 @为防止一次按键多 次中断,在功能子程 序里应安排“关/开中 断指令”并“延时” 。 P1.0 P1.1 P1.2 P1.3 ORG 0003H LJMP KEY ………… KEY: JNB P1.0,FUNC1 ;逐键判别 JNB P1.1,FUNC2 JNB P1.2,FUNC3 JNB P1.3,FUNC4 RETI ;无任何键按下由此返回 FUNC1: …… ;做P1.0要求的“功能1” RETI FUNC2: …… ;做P1.1要求的“功能2” RETI FUNC3: …… ;做P1.2要求的“功能3” RETI FUNC4: …… ;做P1.3要求的“功能4” RETI INT0 & (上拉) AT89C51
矩阵式键盘 P.198例 PA7 AT89C51 8155 PA6 PO AD0-7 PA5 ALE ALE PA4 P2.7 CE PA3 P2.0 IO/M PA2 WR WR PAl RD PAO 5v RESET RESET 0481216202428 EA PCO 1317212529 0列 +5v 列 PCI 6101418222630 线]PC2 8155控制寄存器:0100H u115 8155A口地址:0101H PC3 3列 8155C口地址:0103H A口为输出C口为输入口 0行 行线 行 此图参照P198图6-26画的但按照书上给的程序键值标错了
矩阵式键盘 P.198例 AT89C51 8155 P0 ALE CE RESET AD0-7 EA RESET RD WR WR RD PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 PC0 PC1 PC2 PC3 P2.7 ALE +5v +5v 行线 列 线 0行 7行 0列 3列 0 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 26 31 此图参照P198图6-26画的,但按照书上给的程序,键值标错了。 P2.0 IO/M 8155 控制寄存器:0100H 8155 A口地址: 0101H 8155 C口地址: 0103H A口为输出 C口为输入口
P.198图的标注 P.198图的正确标注 行线(PA0-PA7) 行线(PA0-PA7) 0行1行2行3行4行5行6行7行 0行1行2行3行4行5行6行7行 6 216202428 0列 列\1列+16171819202223线1列 8910112131415 0列 列 1317212529 线 6101418222630 PC 2列 PC 2526272829 列 0-3 111519232631 3列← 列
P.198图的标注 0行 1行 2行 3行 4行 5行 6行 7行 行线(PA0-PA7) 列 线 PC 0-3 0列 3列 0 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 26 31 1列 2列 0行 1行 2行 3行 4行 5行 6行 7行 行线(PA0-PA7) 列 线 PC 0-3 0列 3列 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1列 2列 P.198图的正确标注
P.198图的正确标注 列线PC0-3 0123 行线(PA0-PA7) 0行 456 1行 0行1行2行3行4行5行6行7行 2行 891011 行线 3行 1213141 PAO 0481216202428 4行 61718 20212223 PA7 列 591317212529 5行 线」1列·2601418226|a0 6行 4252627 2列 0-3 111519232631 7行 28293031 列 列 左右两图是一样的 列 2列 习惯说“横行竖列 3列
0 行 1 行 2 行 3 行 4 行 5 行 6 行 7 行 行线(PA0 -PA7) 列线 PC 0-3 0 列 3 列 0 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 26 31 1 列 2 列 P.198图的正确标注 0 行 1 行 2 行 3 行 4 行 5 行 6 行 7 行 0 列 1 列 2 列 3 列 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 列线PC0 - 3 行线 PA0 | PA7 左右两图是一样的 习惯说 “横行竖列