《典型外围扩展技术课件》由会员分享,可在线阅读,更多相关《典型外围扩展技术课件(29页珍藏版)》请在金锄头文库上搜索。
1、第六章第六章单片机的典型外围扩展技术单片机的典型外围扩展技术本讲重点:本讲重点:键盘接口键盘接口(键盘种类(键盘种类, ,矩阵键盘的行扫描与矩阵键盘的行扫描与 线反转法的电路、原理与编程)线反转法的电路、原理与编程); ;LEDLED显示接口显示接口(动态与静态,硬件译码与(动态与静态,硬件译码与 软件译码,电路与编程应用)软件译码,电路与编程应用) 第一节第一节键盘接口键盘接口键盘键盘 单片机系统中完成控制参数输入及修改的单片机系统中完成控制参数输入及修改的基本输基本输入设备入设备,是人工干预系统的重要手段。,是人工干预系统的重要手段。单片机与计算机在键盘规模单片机与计算机在键盘规模/ /键
2、符设置等方面差别键符设置等方面差别很大。很大。键盘分类键盘分类 按键值按键值编码方式编码方式分分 ( (硬件硬件) )编码键盘编码键盘与与非非( (硬件硬件) )编码键盘编码键盘。 按键组按键组连接方式连接方式分分 独立连接键盘独立连接键盘与与矩阵连接键盘矩阵连接键盘。编码键盘编码键盘: : 采用专用的编码采用专用的编码/ /译码译码器件器件, ,被按下的键被按下的键由该器件译码输出相应的由该器件译码输出相应的键码键码/ /键值键值。特点:特点:增加了硬件开销,编码因选用器件而异,编增加了硬件开销,编码因选用器件而异,编码固定,但编程简单。适用于规模大的键盘。码固定,但编程简单。适用于规模大的
3、键盘。非编码键盘非编码键盘: : 单片机系统多采用此类键盘单片机系统多采用此类键盘 采用采用软件软件编编/ /译码的方式译码的方式, ,通过扫描,对每个被按下通过扫描,对每个被按下的键判别输出相应的键码的键判别输出相应的键码/ /键值。键值。特点:特点:不增加硬件开销,编码灵活,适用于小规模不增加硬件开销,编码灵活,适用于小规模的键盘,特别是单片机系统。但的键盘,特别是单片机系统。但编程较复杂编程较复杂, ,占占CPUCPU时间,还须软件时间,还须软件“消颤消颤”。按键值编码方式按键值编码方式: :编码键盘编码键盘与与非编码键盘非编码键盘按键组连接方式按键组连接方式: :独立连接键盘独立连接键
4、盘与与矩阵连接键盘矩阵连接键盘独立连接键盘独立连接键盘: : 每键相互独立,各自与一条每键相互独立,各自与一条I/OI/O线相线相连,连,CPUCPU可直接读取该可直接读取该I/OI/O线的高线的高/ /低电平状态。低电平状态。特点:特点:占占I/OI/O口线多,但判键速度快,多用于设置控口线多,但判键速度快,多用于设置控制键、功能键。适用于键数少的场合。制键、功能键。适用于键数少的场合。矩阵连接键盘矩阵连接键盘: : 键按矩阵排列键按矩阵排列, ,各键处于矩阵行各键处于矩阵行/ /列列的的结点结点处处,CPU,CPU通过对连在通过对连在行行( (列列) )的的I/OI/O线送已知电平线送已知
5、电平的信号的信号, ,然后读取然后读取列列( (行行) )线的状态信息。逐线扫描线的状态信息。逐线扫描, ,得出键码。得出键码。特点:特点:键多时键多时占用占用I/OI/O口线少口线少, ,但判键速度慢但判键速度慢, ,多用于多用于设置数字键。适用于键数多的场合。设置数字键。适用于键数多的场合。抖动时间抖动时间20ms开关动作时间开关动作时间100ms“ 1 ”“ 0 ”20ms延时等待延时等待10ms 仍有按键信号?仍有按键信号?Y 有按键信号?有按键信号?NYN键盘处理键盘处理 按键释放?按键释放?NY抖动及消除抖动及消除软件消除抖动软件消除抖动I/O接接口口+5v+5v开关开关单单片片机
6、机抖动时间抖动时间20ms开关动作时间开关动作时间100ms“ 1 ”“ 0 ”20ms抖动及消除抖动及消除硬件消除抖动硬件消除抖动独立连接式键盘独立连接式键盘例例1 1:特点:特点:此子程序需此子程序需不断不断( (或或定时定时) )调用调用,否则可能,否则可能漏判。漏判。4 4个键的优先级由指令顺序决定。个键的优先级由指令顺序决定。P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3KEY: JNB P1.0,FUNC1 KEY: JNB P1.0,FUNC1 ; ;逐键判别逐键判别 JNB P1.1,FUNC2 JNB P1.1,FUNC2 JNB P1.2,FUNC3 JN
7、B P1.2,FUNC3 JNB P1.3,FUNC4JNB P1.3,FUNC4 RET RET ; ;无任何键按下由此返回无任何键按下由此返回FUNC1: FUNC1: ; ;做做P1.0P1.0要求的要求的“功能功能1”1” RET RETFUNC2: FUNC2: ; ;做做P1.1P1.1要求的要求的“功能功能2”2” RET RETFUNC3: FUNC3: ; ;做做P1.2P1.2要求的要求的“功能功能3”3” RET RETFUNC4: FUNC4: ; ;做做P1.3P1.3要求的要求的“功能功能4”4” RET RETAT89C51独立连接式键盘独立连接式键盘独立连接式键
8、盘独立连接式键盘例例例例2 2 2 2 特点:特点:此子程序采用此子程序采用中断中断查询查询不会漏判不会漏判, ,省时。省时。键的优先级由指令键的优先级由指令顺序决定。顺序决定。为防止一次按键多为防止一次按键多次中断,在功能子程次中断,在功能子程序里应安排序里应安排“关关/ /开中开中断指令断指令”并并“延时延时”。P1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3 ORG 0003H ORG 0003H LJMP KEY LJMP KEY KEY: JNB P1.0,FUNC1 KEY: JNB P1.0,FUNC1 ; ;逐键判别逐键判别 JNB P1.1,FUNC2 JNB
9、 P1.1,FUNC2 JNB P1.2,FUNC3 JNB P1.2,FUNC3 JNB P1.3,FUNC4JNB P1.3,FUNC4 RETI RETI ; ;无任何键按下由此返回无任何键按下由此返回FUNC1: FUNC1: ; ;做做P1.0P1.0要求的要求的“功能功能1”1” RETI RETIFUNC2: FUNC2: ; ;做做P1.1P1.1要求的要求的“功能功能2”2” RETI RETIFUNC3: FUNC3: ; ;做做P1.2P1.2要求的要求的“功能功能3”3” RETI RETIFUNC4: FUNC4: ; ;做做P1.3P1.3要求的要求的“功能功能4”
10、4” RETI RETIINT0INT0&(上拉上拉)AT89C51AT89C51AT89C5181558155P0P0ALEALECECERESETRESETAD0-7AD0-7EAEARESETRESETRDRDWRWRWRWRRDRDPA7PA7PA6PA6PA5PA5PA4PA4PA3PA3PA2PA2PA1PA1PA0PA0PC0PC0PC1PC1PC2PC2PC3PC3P2.7P2.7ALEALE+5v+5v行线行线列列线线0行行7行行0列列3列列P2.0P2.0IO/MIO/M8155 控制寄存器:控制寄存器:7F00H 8155 A口地址:口地址: 7F01H 8155 C口地
11、址:口地址: 7F03H A口为输出口为输出 C口为输入口口为输入口矩阵式键盘矩阵式键盘 0 1 2 3 4 5 6 70 1 2 3 4 5 6 7 8 9 10 11 12 13 14 158 9 10 11 12 13 14 1516 17 18 19 20 21 22 2316 17 18 19 20 21 22 2324 25 26 27 28 29 30 3124 25 26 27 28 29 30 310 0行行 1 1行行 2 2行行 3 3行行 4 4行行 5 5行行 6 6行行 7 7行行行线行线(PA0PA7)列列 线线 PC 0-3 0列列3列列 0 1 2 3 4 5
12、 6 70 1 2 3 4 5 6 7 8 9 10 11 12 13 14 158 9 10 11 12 13 14 1516 17 18 19 20 21 22 2316 17 18 19 20 21 22 2324 25 26 27 28 29 30 3124 25 26 27 28 29 30 311列列2列列第二节第二节显示接口显示接口第二节第二节 LED显示接口技术显示接口技术l l一、一、LED显示器的结构及工作原理显示器的结构及工作原理l lLED结构:结构:共阳极、共阴极共阳极、共阴极l l二、二、LED显示器的译码方式显示器的译码方式l l硬件译码、软件译码硬件译码、软件译
13、码l l三、三、 LED显示器的显示方式显示器的显示方式l l静态显示、动态显示静态显示、动态显示一、一、LEDLED显示器的结构及工作原理显示器的结构及工作原理LEDLED数码管的数码管的结构结构:共阳与共阴共阳与共阴 共阳数码管每个段笔画是用低电平共阳数码管每个段笔画是用低电平(“0”)(“0”)点亮点亮, , 共阴数码管段笔画是用高电平共阴数码管段笔画是用高电平(“1”)(“1”)点亮点亮 公共公共阳阳极极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共公共阴阴极极h g f e d c b ah g f e d c b a
14、a ab bc cd dg ge ef fh hh g f ah g f a高电平点亮高电平点亮低电平点亮低电平点亮接高电平接高电平接地接地l l一般,发红光的一般,发红光的LED每段流过每段流过5mA的的平均电流,就可以有比较满意的亮度,平均电流,就可以有比较满意的亮度,7mA会更亮些,会更亮些,10mA以上也不会亮以上也不会亮多少。多少。l l长期运行长期运行10mA以上会缩短其寿命以上会缩短其寿命l l一个数码八段一个数码八段,若每段平均电流若每段平均电流10mA, 则一个字电流最大为则一个字电流最大为8*10 = 80mAl l小尺寸的小尺寸的LED显示器,每段只有一个显示器,每段只有
15、一个发光二极管,其发光二极管,其正向压降约正向压降约0.7V,大,大尺寸的尺寸的LED其压降要增大些其压降要增大些l l要显示某个字形,就应使此字形的要显示某个字形,就应使此字形的相相应断码的二极管点亮应断码的二极管点亮,实际就是送一,实际就是送一个用不同电平组合代表的数据字(显个用不同电平组合代表的数据字(显示码)来控制示码)来控制LED的显示,此数据称的显示,此数据称为字符的为字符的段码段码或或字形码字形码。l l共阴极和共阳极共阴极和共阳极LED显示器段码不同显示器段码不同。共阳共阳LEDLED数码管数码管公共端公共端( (字位字位) ) 接高电平,接高电平,笔划笔划( (字段字段) )
16、 置为低电平置为低电平就被点亮了就被点亮了比如要显示比如要显示“0 0” 须令须令a b c d e f a b c d e f 为为“0”“0” 电平,电平,g hg h为为“1”“1”电平。电平。再再比如要显示比如要显示“3 3” 须令须令a b c d g a b c d g 为为“0”“0” 电平,电平,e f he f h为为“1”“1”电平。电平。共阳极共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f e d c b ah g f e d c b a累加器累加器 A1 1 0 0 0 0 0 01 1 0
17、0 0 0 0 00C0H = “0”0C0H = “0”1 0 1 1 0 0 0 01 0 1 1 0 0 0 00B0H = “3”0B0H = “3”单片机原理与应用技术教学课件单片机原理与应用技术教学课件LEDLED数码管常用字符的段码表数码管常用字符的段码表公共阳极公共阳极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh h公共阴极公共阴极h g f e d c b ah g f e d c b aa ab bc cd dg ge ef fh hh g f ah g f a高电平点亮高电平点亮低电平点亮低电平点亮接高电平接高电
18、平接地接地字形字形0 01 12 23 34 45 56 67 78 89 9黑黑共阳共阳0C00C00F90F90A40A40B00B09999929282820F80F8808090900FF0FF共阴共阴3F3F06065B5B4F4F66666D6D7D7D07077F7F6F6F0000硬件译码特点硬件译码特点: :采用专用的译码采用专用的译码/ /驱动器件驱动器件, ,占用接口占用接口资源少资源少; ;软件软件编程简单编程简单; ;缺点是缺点是字型固定字型固定( (通常只可显通常只可显示示0 09 9数字)。数字)。共阴共阴LEDa ab bc cd dg ge ef fh hg
19、gf fe ed dc cb b a aD DC CB BA AP1.3P1.3P1.2P1.2P1.1P1.1P1.0P1.0CD4511CD4511AT89C51AT89C5174LS48/CD451174LS48/CD4511是是“BCDBCD码码七段七段共阴共阴译码译码/ /驱动驱动”IC; ”IC; 74LS4774LS47是是“BCDBCD码码七段七段共阳共阳译码译码/ /驱动驱动”IC”IC二、二、LEDLED显示器的译码方式显示器的译码方式1 1、硬件译码硬件译码 2 2、软件译码软件译码软件译码特点软件译码特点: : 显示字形较多显示字形较多缺点是:缺点是:占用单片机接口资源
20、较多(字形口需要占用单片机接口资源较多(字形口需要8 8根口线),且一般需要驱动,如根口线),且一般需要驱动,如74067406、74077407、74LS24474LS244等。软件等。软件编程较复杂编程较复杂;共阳共阳LEDa ab bc cd dg ge ef fh hP1.0P1.0P1.1P1.1P1.2P1.2P1.3P1.3P1.4P1.4P1.5P1.5P1.6P1.6P1.7P1.7+5V+5VAT89C51AT89C51三、三、LEDLED显示器的显示器的显示方式显示方式 LEDLED数码管的数码管的显示方式显示方式:静态与动态静态与动态静态显示静态显示: : 各数码管在显
21、示过程中各数码管在显示过程中持续持续得到送显信号,得到送显信号,与各数码管接口的与各数码管接口的I/OI/O口线口线是是专用专用的。的。动态显示动态显示: : 各数码管在显示过程中各数码管在显示过程中轮流轮流得到送显信号,得到送显信号,与各数码管接口的与各数码管接口的I/OI/O口线口线是是共用共用的。的。静态显示特点静态显示特点: : 无闪烁无闪烁,用,用元器件多元器件多,占占I/OI/O线多线多,无须扫描无须扫描,节省节省CPUCPU时间时间,编程简单。编程简单。1 1、静态显示、静态显示: : 要求每位要求每位LEDLED显示器的显示器的公共端(公共端(COMCOM)必须必须接地接地(共
22、阴极),或(共阴极),或接高电平接高电平(共阳极)。(共阳极)。 而每位而每位LEDLED显示器都由一个具有显示器都由一个具有锁存功能锁存功能的的8 8位端口控制位端口控制。 这里的端口可以指这里的端口可以指P0P0P3P3口,也可以是口,也可以是8255A8255A的的A A、B B、C C口或扩展的串行输入,口或扩展的串行输入,并行并行输出移位寄存器(输出移位寄存器(74LS16474LS164)LEDLED数码管数码管静态静态显示举例显示举例( (学习串行口已见过学习串行口已见过) )有几个有几个LEDLED就要几个就要几个74LS16474LS164,但只要数据不变,但只要数据不变,送
23、一次就保持住了,且不闪烁,编程十分简单。送一次就保持住了,且不闪烁,编程十分简单。A AB BCLKCLKh g f e d c b ah g f e d c b aCLRCLRA AB BCLKCLKCLRCLRA AB BCLKCLKCLRCLR+5V+5V74LS16474LS16474LS164h g f e d c b ah g f e d c b ah g f e d c b ah g f e d c b a+5V+5V共阳共阳LED LED 数码管数码管VCCVCCTxDTxDRxDRxD51单片机单片机要求:要求:根据上图编写通过串行口和根据上图编写通过串行口和74LS1647
24、4LS164驱动驱动共共 阳阳LEDLED数码管数码管查表显示的子程序。查表显示的子程序。条件:条件:系统有系统有6 6个个LEDLED数码管数码管, ,待显数据待显数据(00H09H)(00H09H)已放在已放在35H30H35H30H单元中单元中( (分别对应分别对应十万位十万位个位个位) ),DSPLYDSPLY:MOV DPTR, #TABLE :MOV DPTR, #TABLE ; ;共阳共阳LEDLED数码管译码数码管译码表首址表首址 MOV R0 MOV R0,#30H #30H ; ;待显数据缓冲区的待显数据缓冲区的个位个位地址地址REDOREDO:MOV AMOV A, R0
25、 R0 ; ;通过通过R0R0实现寄存器实现寄存器间接寻址间接寻址 MOVC A, MOVC A, A+DPTR A+DPTR ; ;查表查表 MOV SBUF, A MOV SBUF, A ; ;经串行口经串行口发送发送到到74LS16474LS164 JNB TI, $ JNB TI, $ ; ;查询查询送完一个字节的第送完一个字节的第8 8位?位? CLR TI CLR TI ; ;为下一字节发送为下一字节发送作准备作准备 INC R0 INC R0 ;R0;R0指向下一个指向下一个数据缓冲单元数据缓冲单元 CJNE R0 CJNE R0,#36H#36H,REDO REDO ; ;判断
26、判断是否发完是否发完6 6个数?个数? RET RET ; ;发完发完6 6个数就个数就返回返回TABLETABLE:DB 0C0H,0F9H,0A4H,0B0H,99H DB 0C0H,0F9H,0A4H,0B0H,99H ; ;共阳共阳LEDLED译码表译码表 DB 92H, 82H, 0F8H, 80H,90H DB 92H, 82H, 0F8H, 80H,90H动态显示特点动态显示特点: : 有闪烁有闪烁,用,用元器件少元器件少,占占I/OI/O线少线少,必须扫描必须扫描,花费花费CPUCPU时间时间,编程复杂。编程复杂。( (有多个有多个LEDLED时尤为时尤为突出)突出)2 2、动
27、态显示、动态显示各数码管在显示过程中各数码管在显示过程中轮流轮流得到送显信号,得到送显信号,与各数码管接口的与各数码管接口的I/OI/O口线口线是是共用共用的。即:的。即: 所有显示器的同名字段互相连接在一起,所有显示器的同名字段互相连接在一起,并把他们接到字形口上。并把他们接到字形口上。 每个显示器的公共端(每个显示器的公共端(COMCOM)受另外一组)受另外一组信号的控制,接到字位口(位选端)。信号的控制,接到字位口(位选端)。l l ORG 0 ORG 0l l LJMP MAIN LJMP MAINl l ORG 0030H ORG 0030Hl lMAIN:MOV R0,#2HMAI
28、N:MOV R0,#2Hl l MOV R1,#1H MOV R1,#1Hl l MOV DPTR,#DSEG1 MOV DPTR,#DSEG1l lAA: MOV A,R0AA: MOV A,R0l l MOVC A,A+DPTR MOVC A,A+DPTRl l MOV P0,A MOV P0,Al l MOV P2,R1 MOV P2,R1l l LCALL DL1 LCALL DL1l l INC R0 INC R0l l MOV A,R1 MOV A,R1l l RL A RL Al l MOV R1,A MOV R1,Al l JNB ACC.4,AA JNB ACC.4,AAl l AJMP MAIN AJMP MAINl lDL1: MOVDL1: MOVR7,#05HR7,#05Hl lDL:DL: MOV MOVR6,#0FFHR6,#0FFHl lDL6: DJNZDL6: DJNZR6,$R6,$l l DJNZ DJNZR7,DLR7,DLl l RET RET