第7次单片机原理与应用键盘与显示课件.ppt

上传人:石*** 文档编号:87121254 上传时间:2023-04-16 格式:PPT 页数:52 大小:3.53MB
返回 下载 相关 举报
第7次单片机原理与应用键盘与显示课件.ppt_第1页
第1页 / 共52页
第7次单片机原理与应用键盘与显示课件.ppt_第2页
第2页 / 共52页
点击查看更多>>
资源描述

《第7次单片机原理与应用键盘与显示课件.ppt》由会员分享,可在线阅读,更多相关《第7次单片机原理与应用键盘与显示课件.ppt(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第7次单片机原理与应用键盘与显示第1页,此课件共52页哦可编程通用并行接口芯片可编程通用并行接口芯片82558255结构与引脚结构与引脚82558255用于扩展单片机并行用于扩展单片机并行I/I/O接口。接口。一、结构:一、结构:1.31.3个个8 8位并行位并行I/I/O接口接口PAPA、PBPB和和PCPC:包含包含I/OI/O数据锁存器,控制寄存器和状态寄数据锁存器,控制寄存器和状态寄存器。存器。2.22.2组控制:组控制:A A组:组:PAPA和和PCPC0 03 3;B B组:组:PBPB和和PCPC4 47 7:第2页,此课件共52页哦8255A的内部结构图的内部结构图第3页,此课

2、件共52页哦3.33.3种工作方式:种工作方式:方式方式0 0(基本(基本I/I/O方式)方式):A A口、口、B B口、口、C C口均为数据口均为数据I/OI/O。输出锁存,输入三态,。输出锁存,输入三态,不用联络信号。不用联络信号。适用于无条件或查询方式的数据传送。适用于无条件或查询方式的数据传送。方式方式1 1(选通(选通I/I/O方式):方式):A A口和口和B B口用于数据口用于数据I/OI/O,输入,输入/输出均锁存,输出均锁存,C C口用于口用于传送联络信号,读传送联络信号,读C C口可了解外设当前状态。口可了解外设当前状态。适用于查询或中断方式的数据适用于查询或中断方式的数据I

3、/OI/O。方式方式2 2(双向数据传送方式):(双向数据传送方式):A A口为数据口为数据I/I/O,B B口只能为方式口只能为方式0 0,C C口用作口用作A A口双向传口双向传送的联络信号线。送的联络信号线。适用于查询或中断方式的数据适用于查询或中断方式的数据I/OI/O。第4页,此课件共52页哦二、二、8255A的芯片引脚信号的芯片引脚信号4040脚脚第5页,此课件共52页哦引脚(引脚(4040脚):脚):1.1.数据线:数据线:D D0 07 7:传送计算机与传送计算机与82558255之间的数据、控制字和状态字。之间的数据、控制字和状态字。PAPA0 07 7 PB PB 0 07

4、 7 PC PC0 07 7:传送传送82558255与外设之间的数据和联络与外设之间的数据和联络 信息,信息,PCPC0 07 7可用作数据线或联络线。可用作数据线或联络线。2.2.地址线:地址线:CSCS:片选线片选线A A1 1、A A0 0:口选线,寻址口选线,寻址 PAPA、PBPB、PCPC数据口和控制口。数据口和控制口。3.3.读写控制线:读写控制线:RDRD、WRWR控制计算机与控制计算机与82558255之间的信息传送和流向。之间的信息传送和流向。4.4.复位线:复位线:RESETRESET高电平复位,使内部寄存器全部清零。高电平复位,使内部寄存器全部清零。第6页,此课件共5

5、2页哦三、例题:三、例题:例:例:求求82558255口地址:口地址:解:解:A A口口(7F00H)(7F00H);B B口口(7F01H)(7F01H);C C口口(7F02H)(7F02H);控制口控制口(7F03H)(7F03H)。P0 P2.780C51A0A1CS8255373Q0Q1ABABi i:15 14 1315 14 13 12 11 10 9 8 7 6 5 4 3 2 1 012 11 10 9 8 7 6 5 4 3 2 1 0A A口:口:0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0

6、 7F00H7F00HB B口:口:0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 7F01H7F01HB B口:口:0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 7F02H7F02H控制口:控制口:0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 7F03H7F03H第7页,此课件共52页哦82558255编程规定编程规定方式选择控制字:方式选择控制字:D

7、 D7 7=1=1C C口置位口置位/复位控制字:复位控制字:D D7 7=0=082558255初始化编程:初始化编程:往控制口写入控制字,确定往控制口写入控制字,确定82558255工作方式。工作方式。第8页,此课件共52页哦方式选择控制字方式选择控制字8255A方式选择注意:方式选择注意:有三种基本工作方式:有三种基本工作方式:方式方式0基本的输入输出方式基本的输入输出方式 方式方式1选通的输入输出方式选通的输入输出方式 方式方式2双向传输方式双向传输方式 只有端口只有端口A能工作在方式能工作在方式2;同一组的两端口可分别工作在输入和输出方式。同一组的两端口可分别工作在输入和输出方式。第

8、9页,此课件共52页哦例:例:8255PA 8255PA口方式口方式0 0输出单片机片内输出单片机片内RAMRAM数据,数据,PBPB口方式口方式1 1输入输入。PIOS:M MOV V DPTR DPTR,#7F03H#7F03H;控制口地址;控制口地址 M MOV V A A,#86H#86H ;写控制字;写控制字 M MOVX DPTRVX DPTR,A A ;设工作方式;设工作方式 M MOV V DPTR DPTR,#7F00H#7F00H ;PAPA数据口地址数据口地址 M MOV V A A,R0R0 ;取;取RAMRAM的数据的数据 M MOVX DPTRVX DPTR,A A

9、 ;由;由PAPA口输出口输出第10页,此课件共52页哦键盘接口技术键盘接口技术抖动时间抖动时间10ms开关动作时间开关动作时间100ms“1”“0”10ms前沿抖动前沿抖动后沿抖动后沿抖动I/O接接口口+5v+5v消除抖动电路消除抖动电路开关开关单单片片机机2.2.键译码:键译码:键号为键盘位置码,根据键号查键号为键盘位置码,根据键号查表得出被按键的键值。表得出被按键的键值。键值:数字键键值:数字键0 09 9;字符键字符键0AH0AH0FH0FH;功能键功能键10H10H 。键码键码键码键码=行首键号行首键号行首键号行首键号+列号列号列号列号(键号必须依次是从左至右书写)(键号必须依次是从

10、左至右书写)(键号必须依次是从左至右书写)(键号必须依次是从左至右书写)或键码或键码或键码或键码=列首键号列首键号列首键号列首键号+行号行号行号行号(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)一、键盘处理程序任务:一、键盘处理程序任务:1.键输入:键输入:检查键盘是否有键被按下,消除按键抖动。确定被按键检查键盘是否有键被按下,消除按键抖动。确定被按键的键号,获取键号。的键号,获取键号。硬件电路消除抖动或软件消除抖动。硬件电路消除抖动或软件消除抖动。第11页,此课件共52页哦3.3.键处理:键处理:根据键值转移到不同程序

11、段。根据键值转移到不同程序段。若键值属于数字、字符键,则调用显示数字和字若键值属于数字、字符键,则调用显示数字和字符的子程序。符的子程序。若键值属于功能键,则进行多分支转移,执行各个若键值属于功能键,则进行多分支转移,执行各个功能程序段。功能程序段。延时等待延时等待10ms 仍有按键信号?仍有按键信号?Y 有按键信号?有按键信号?NYN键盘处理键盘处理 按键释放?按键释放?NY二、键盘接口方法:二、键盘接口方法:1 1、利用单片机本身的并行口;、利用单片机本身的并行口;2 2、利用单片机本身的串行口;、利用单片机本身的串行口;3 3、利用通用接口芯片、利用通用接口芯片81558155、8255

12、8255等;等;4 4、利用专用接口芯片、利用专用接口芯片82798279等。等。三、键盘接口的控制方式:三、键盘接口的控制方式:1 1、随机方式:每当、随机方式:每当CPUCPU空闲时执行键盘扫描程序。空闲时执行键盘扫描程序。2 2、中断方式:键的按下引起中断后,单片机对键盘进行扫描。、中断方式:键的按下引起中断后,单片机对键盘进行扫描。3 3、定时方式:单片机定时地对键盘进行扫描。、定时方式:单片机定时地对键盘进行扫描。第12页,此课件共52页哦(1 1 1 1)独立式键盘电路:)独立式键盘电路:)独立式键盘电路:)独立式键盘电路:(2 2)矩阵式键盘:)矩阵式键盘:0 1+5v C0 C

13、1 R0 R1键盘键盘I/O接口接口(2 2)矩阵式键盘电路:)矩阵式键盘电路:1 1)扫描法:)扫描法:列线输出,行线输入。列线输出,行线输入。列线逐列输出列线逐列输出0 0,某行有按键,行线输入就为,某行有按键,行线输入就为0 0;若无按键,行线输入全部为若无按键,行线输入全部为1 1。2 2)反转法:)反转法:行列线交换输入、输出,两步获取按键键号。行列线交换输入、输出,两步获取按键键号。(1)独立式键盘电路:每个按键单独占有一根)独立式键盘电路:每个按键单独占有一根I/O接口引线。接口引线。四、键盘接口形式:四、键盘接口形式:P1.0P1.1P1.7+5v第13页,此课件共52页哦按键

14、处理程序:按键处理程序:按键处理程序:按键处理程序:延时消抖延时消抖键扫描求键号键扫描求键号延时等待延时等待键译码求键值键译码求键值修改显示缓冲区修改显示缓冲区跳转各功能程序跳转各功能程序有按键输入?有按键输入?确有按键?确有按键?按键释放?按键释放?是数字键?是数字键?YYYNNNYN第14页,此课件共52页哦1、使用、使用8155作键盘接口:作键盘接口:接口应用:接口应用:P2.7=0,P2.0=1:A口地址为:口地址为:0101H;C口地址为:口地址为:0103H。扫描法:列线输出,行线输入。扫描法:列线输出,行线输入。列线逐列输出列线逐列输出0 0,某行有按键,行线,某行有按键,行线输

15、入就为输入就为0 0;若无按键,行线输入全部为若无按键,行线输入全部为1 1。01678914 15键码键码键码键码=行首键号行首键号行首键号行首键号+列号列号列号列号(键号必须依次是从左至右书写)(键号必须依次是从左至右书写)(键号必须依次是从左至右书写)(键号必须依次是从左至右书写)或键码或键码或键码或键码=列首键号列首键号列首键号列首键号+行号行号行号行号(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)第15页,此课件共52页哦判定有无键闭合的子程序:判定有无键闭合的子程序:MOVDPTR,#0101HMOVA,#0

16、0H;A口送口送00HMOVXDPTR,AINCDPTRINCDPTR;建立;建立C口地址口地址MOVXA,DPTR;读;读C口口CPLA;A取反,无键按下则全取反,无键按下则全“0”ANLA,#0FH;屏蔽;屏蔽A高半字节(高半字节(C口只口只4位)位)RET执行执行KS1子程序的结果是:有闭合键则(子程序的结果是:有闭合键则(A)0;无闭合键则(无闭合键则(A)0。CPL A;负逻辑不直观,常采取行列线加反相器或;负逻辑不直观,常采取行列线加反相器或 软件求反的方法把键盘改成正逻辑。软件求反的方法把键盘改成正逻辑。KS1:第16页,此课件共52页哦 键盘扫描子程序如下:(键盘扫描子程序如下

17、:(8155的的A口、口、B口、口、C口和控制口地址口和控制口地址分别为分别为7F00H、7F01H、7F02H、7F03H,设,设8155A已已在主程序中初始化。已设定为在主程序中初始化。已设定为A口方式口方式0输出,输出,C口的低口的低4位方位方式式0输入。)输入。)KEY1:ACALL KS1 ;调用判断有无键按下子程序;调用判断有无键按下子程序 JNZ LK1 ;有键按下时,(;有键按下时,(A)0转消抖延时转消抖延时KEY2:ACALL TM6ms AJMP KEY1 ;无键按下返回;无键按下返回LK1:ACALL TM12ms ;调;调12 ms延时子程序延时子程序 ACALL K

18、S1 ;查有无键按下,若有则真有键按下;查有无键按下,若有则真有键按下 JNZ LK2 ;键;键(A)0逐列扫描逐列扫描 AJMP KEY2 ;不是真有键按下,返回;不是真有键按下,返回LK2:MOV R2,#0FEH ;初始列扫描字(;初始列扫描字(0列)送入列)送入R2 MOV R4,#00H ;初始列(;初始列(0列)号送入列)号送入R4LK4:MOV DPTR,#7F00H;DPTR指向指向8155PA口口 MOV A,R2 ;列扫描字送至;列扫描字送至8155PA口口 MOVX DPTR,A INC DPTR ;DPTR指向指向8155PC口口 INC DPTR 第17页,此课件共5

19、2页哦 MOVX A,DPTR ;从;从8155 PC口读入行状态口读入行状态 JB ACC.0,LONE ;查第;查第0行无键按下,转查第行无键按下,转查第1行行 MOV A,#00H ;第;第0行有键按下,行首键码行有键按下,行首键码#00HA AJMP LKP ;转求键码;转求键码LONE:JB ACC.1,LTWO ;查第;查第1行无键按下,转查第行无键按下,转查第2行行 MOV A,#08H ;第;第1行有键按下,行首键码行有键按下,行首键码#08HA AJMP LKP ;转求键码;转求键码LTWO:JB ACC.2,LTHR ;查第;查第2行无键按下,转查第行无键按下,转查第3行行

20、 MOV A,#10H;第;第2行有键按下,行首键码行有键按下,行首键码#10HA AJMP LKP ;转求键码;转求键码LTHR:JB ACC.3,NEXT ;查第;查第3行无键按下,转该查下一列行无键按下,转该查下一列 MOV A,#18H;第;第3行有键按下,行首键码行有键按下,行首键码#18HALKP:ADD A,R4 ;求键码,键码;求键码,键码=行首键码行首键码+列号列号 PUSH ACC ;键码进栈保护;键码进栈保护LK3:ACALL KS1 ;等待键释放;等待键释放JNZ LK3 ;键未释放,等待;键未释放,等待POP ACC ;键释放,键码;键释放,键码ARET ;键扫描结束

21、,出口状态;键扫描结束,出口状态(A)=键码键码第18页,此课件共52页哦NEXT:INC R4 ;准备扫描下一列,列号加;准备扫描下一列,列号加1 MOV A,R2 ;取列扫描字送累加器;取列扫描字送累加器A JNB ACC.7,KEND;判断;判断8列扫描否?扫描完返回列扫描否?扫描完返回 RL A ;扫描字左移一位,变为下一列扫描字;扫描字左移一位,变为下一列扫描字 MOV R2,A ;扫描字送入;扫描字送入R2保存保存 AJMP LK4 ;转下一列扫描;转下一列扫描KEND:AJMP KEY1 KS1:MOV DPTR,#7F00H;DPTR指向指向8155PA口口 MOV A,#00

22、H ;全扫描字;全扫描字A MOVX DPTR,A ;全扫描字送往;全扫描字送往8155PA口口 INC DPTR ;DPTR指向指向8155PC口口 INC DPTR MOVX A,DPTR;读入;读入PC口行状态口行状态 CPL A ;变正逻辑,以高电平表示有键按下;变正逻辑,以高电平表示有键按下 ANL A,#0FH;屏蔽高;屏蔽高4位,只保留低位,只保留低4位行线值位行线值 RET ;出口状态:;出口状态:(A)0时有键按下时有键按下第19页,此课件共52页哦TM12ms:MOV R7,#18H;延时;延时12 ms子程序子程序TM:MOV R6,#0FFHTM6:DJNZ R6,TM

23、6 DJNZ R7,TM RETTM6ms:MOV R7,#0CH;延时;延时6 ms子程序子程序TM2:MOV R6,#0FFHTM62:DJNZ R6,TM6 DJNZ R7,TM RET第20页,此课件共52页哦2、使用、使用8279作键盘接口:作键盘接口:P2.7=0时:时:A0=P2.0=1:命令口地址为:命令口地址为:7FFFH;A0=P2.0=0:数据口地址为:数据口地址为:7EFFH。(程序略)(程序略)键码键码键码键码=行首键号行首键号行首键号行首键号+列号列号列号列号(键号必须依次是从左至右书写)(键号必须依次是从左至右书写)(键号必须依次是从左至右书写)(键号必须依次是从

24、左至右书写)0134567874LS15674LS156为双为双为双为双2-42-4译码器译码器译码器译码器/分配器分配器分配器分配器第21页,此课件共52页哦3、使用中断方式作键盘接口:、使用中断方式作键盘接口:当有键按下时,当有键按下时,INT1为低,向为低,向CPU发出中断申请,在中断服务发出中断申请,在中断服务程序中除完成键识别、键功能处理外,仍须有清除键抖动等功能。程序中除完成键识别、键功能处理外,仍须有清除键抖动等功能。0481215913键码键码键码键码=列首键号列首键号列首键号列首键号+行号行号行号行号(键号必须依次是从上至下书写)(键号必须依次是从上至下书写)(键号必须依次是

25、从上至下书写)(键号必须依次是从上至下书写)第22页,此课件共52页哦显示器接口技术显示器接口技术 LED LED显示器用于显示工业控显示器用于显示工业控制参数、过程状态。制参数、过程状态。一一、LEDLED显示原理:显示原理:共阴极共阴极LEDLED和共阳极和共阳极LEDLED。当当LEDLED字段引线与数据线连字段引线与数据线连接,每个显示字形对应一个字形接,每个显示字形对应一个字形码。码。LEDLED(Light Emiting Diode)Light Emiting Diode)COM P1.01.7 MCS-51a f b g e c d habh代码位代码位D7D6D5D4D3D2

26、D1D0显示段显示段hgfedcbaa b hCOM共阴极共阴极第23页,此课件共52页哦共阴极和共阳极的字段码互为反码共阴极和共阳极的字段码互为反码。显显示字符示字符共阴极共阴极字段字段码码共阳极共阳极字段字段码码显显示字符示字符共阴极共阴极字段字段码码共阳极共阳极字段字段码码03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8HY6EH91H87FH80HL38HC7H96FH90H8FFH00HA77H88H“灭灭”00FFHB7CH

27、83H第24页,此课件共52页哦二、显示程序任务:二、显示程序任务:1、设设置置显显示示缓缓冲冲区区,存存放放待待显显示数据和字符(位置码)。示数据和字符(位置码)。2 2、显显示示译译码码:程程序序存存储储器器中中建建立立字字形形码码常常数数表表,查查表表得得出出对对应应数数据和字符的字形码。据和字符的字形码。3 3、输输出出显显示示:输输出出字字形形码码到到显显示示端口。端口。例:例:MOV DPTR,#WTAB;指向字形码表首地址;指向字形码表首地址MOV A,R0 ;取显示缓冲区中数据;取显示缓冲区中数据MOVC A,A+DPTR ;查表显示译码;查表显示译码MOV P1,A ;输出显

28、示;输出显示WTAB:DB3FH,06H,5BH;字形代码表(共阴);字形代码表(共阴)COM P1.01.7 MCS-51a f b g e c d habh第25页,此课件共52页哦三、三、LEDLED接口电路:接口电路:显示多位数据的两种电路:显示多位数据的两种电路:静态显示和动态显示。静态显示和动态显示。对应字位线:对应字位线:D0 D1 D2 D3 D4 D5特点:显示亮度大,硬件和软特点:显示亮度大,硬件和软特点:显示亮度大,硬件和软特点:显示亮度大,硬件和软件都较简单,应用广泛。件都较简单,应用广泛。件都较简单,应用广泛。件都较简单,应用广泛。1 1静态显示:静态显示:多位多位L

29、EDLED共用一个共用一个8 8位字段口位字段口(共阴极或共阳极),(共阴极或共阳极),各位各位LEDLED公公共端用字位口控制,扫描输出共端用字位口控制,扫描输出显示不同字形。显示不同字形。显示缓冲区与多位显示缓冲区与多位LED对应关系:对应关系:每个每个LEDLED需要一个需要一个8 8位位并行口。并行口。a b hCOM a b hCOM a b hCOMa f b g e c d h 段控和位控段控和位控第26页,此课件共52页哦例:例:例:例:显示显示80C51片内片内RAM中以中以30H为首地址的为首地址的8位位字形数的程序:字形数的程序:静态显示电路静态显示电路“0”第27页,此

30、课件共52页哦程序:程序:DIRDIR:PUSHPUSHACCACC;保护现场;保护现场 PUSHPUSHDPHDPH PUSH PUSHDPLDPL MOV MOVR2R2,#08H#08H;显示;显示8 8个数个数 MOVMOVR0R0,#30H#30H;显示缓冲区地址送入;显示缓冲区地址送入R0R0DL0DL0:MOVMOVA A,R0R0;取要显示的数作查表偏移量;取要显示的数作查表偏移量 MOVMOVDPTRDPTR,#TAB#TAB;指向字形码表首;指向字形码表首 MOVCMOVCA A,A+DPTRA+DPTR;查表得字形码;查表得字形码 MOVMOVSBUFSBUF,A A;发

31、送显示;发送显示DL1DL1:JNBJNBTITI,DL1DL1;等待发送完一桢数据;等待发送完一桢数据 CLRCLRTITI;清标志,准备继续发送;清标志,准备继续发送 INCINCR0R0;更新显示单元;更新显示单元 DJNZDJNZR2R2,DL0DL0;重复显示所有数码管;重复显示所有数码管 POPPOPDPLDPL;恢复现场;恢复现场 POPPOPDPHDPH POP POPACCACC RET RETTABTAB:DBDB0C0H0C0H,0F9H0F9H,0A4H0A4H,0B0H0B0H,99H 99H ;0 0,1 1,2 2,3 3,4 4 DBDB92H92H,82H82

32、H,0F8H0F8H,80H80H,90H90H,88H 88H ;5 5,6 6,7 7,8 8,9 9,A A DBDB83H83H,0C6H0C6H,0A1H0A1H,86H86H,8EH 8EH ;B B,C C,D D,E E,F F共阳极共阳极共阳极共阳极第28页,此课件共52页哦2 2动态显示:动态显示:分时轮流选通分时轮流选通数码管数码管的公共端,使得各数码管的公共端,使得各数码管轮流导通,在选通相应轮流导通,在选通相应LED后,即在显示字段上后,即在显示字段上得到显示字形码。得到显示字形码。特点:提高数码管的发特点:提高数码管的发光效率,可简化硬件线路。光效率,可简化硬件线路

33、。举例见后:举例见后:COMhCOMD7D1D0D0D1D2hbbhCOMa f b g e c d haaba“位控位控”“段控段控”第29页,此课件共52页哦用用8279作作LED显示器接口:显示器接口:P2.7=0时:时:A0=P2.0=1:命令口地址为:命令口地址为:7FFFH;A0=P2.0=0:数据口地址为:数据口地址为:7EFFH。(程序略)(程序略)段码段码位码位码第30页,此课件共52页哦程序参考流程如右:第31页,此课件共52页哦读键输入子程序框图第32页,此课件共52页哦复习思考题复习思考题1 认真复习实验过程,弄清8段数码管动态显示原理。2 改写数码管动态显示实验程序实

34、现显示“HELLO”字符。3 改写键盘扫描显示实验程序,实现按键显示“123456”字符。第33页,此课件共52页哦一、实验目的二、实验说明三、实验仪器四、实验内容六、实验报告要求第七次实验第七次实验单片机键盘单片机键盘LED显示实验显示实验 五、思考题第34页,此课件共52页哦一、实验目的1、掌握键盘和、掌握键盘和LED显示器的接口方法和编程显示器的接口方法和编程方法。方法。2、掌握键盘扫描和、掌握键盘扫描和LED八段码显示器的工作八段码显示器的工作原理。原理。3、学习并口扩展的程序编写方法。、学习并口扩展的程序编写方法。第35页,此课件共52页哦二、实验说明 1、利用实验仪提供的键盘扫描电

35、路和显示电路、利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。实验程序可分成三个模块。实验程序可分成三个模块。键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。单元。显示模块:将显示单元的内容在显示器上动态显示。显示模块:将显示单元的内容在显示器上动态显示。主程序:调用键输入模块和显示模块。主程序:调用键输入模块和显示模块。第36页,此课件共52页哦三、实验仪器和条件计算机计算机伟福实验箱(伟福实验箱

36、(lab2000P)第37页,此课件共52页哦四、实验内容 1、本实验仪提供了一个64的小键盘,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的延时,防止键盘抖动。地址中的X是由KEY/LED CS 决定,参见地址译码。做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如将KEY/LED CS信号接CS0上,则列扫描地址为08002H,行码地址为08001H

37、。列扫描码还可以分时用作LED的位选通信号。第38页,此课件共52页哦 2、本实验仪提供了6 位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。3、本实验仪中 8位段码输出地址为0X004H,位码输出地址为 0X002H。此处X是由KEY/LED CS 决定,参见地址译码。做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS 接到CS0上,则段码地址为08004H,

38、位码地址为08002H。第39页,此课件共52页哦第40页,此课件共52页哦第41页,此课件共52页哦第42页,此课件共52页哦主程序参考流程:第43页,此课件共52页哦读键输入子程序框图第44页,此课件共52页哦显示子程序框图第45页,此课件共52页哦实验电路及连线 第46页,此课件共52页哦参考源程序1OUTBIT equ 08002h ;位控制口OUTSEG equ 08004h ;段控制口IN equ 08001h ;键盘读入口LEDBuf equ 60h ;显示缓冲 ljmp StartLEDMAP:;八段管显示码 db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h

39、 db 7fh,6fh,77h,7ch,39h,5eh,79h,71hDelay:;延时子程序 mov r7,#0DelayLoop:djnz r7,DelayLoop djnz r6,DelayLoop retDisplayLED:mov r0,#LEDBuf mov r1,#6 ;共6个八段管 mov r2,#00100000b ;从左边开始显示第47页,此课件共52页哦参考源程序2Loop:mov dptr,#OUTBIT mov a,#0 movx dptr,a ;关所有八段管 mov a,r0 mov dptr,#OUTSEG movx dptr,a mov dptr,#OUTBIT

40、 mov a,r2 movx dptr,a ;显示一位八段管 mov r6,#1 call Delay mov a,r2 ;显示下一位 rr a mov r2,a inc r0 djnz r1,Loop ret第48页,此课件共52页哦参考源程序3 TestKey:mov dptr,#OUTBIT mov a,#0 movx dptr,a ;输出线置为0 mov dptr,#IN movx a,dptr ;读入键状态 cpl a anl a,#0fh ;高四位不用 retKeyTable:;键码定义 db 16h,15h,14h,0ffh db 13h,12h,11h,10h db 0dh,0

41、ch,0bh,0ah db 0eh,03h,06h,09h db 0fh,02h,05h,08h db 00h,01h,04h,07hGetKey:mov dptr,#OUTBIT mov P2,dph mov r0,#Low(IN)mov r1,#00100000b mov r2,#6第49页,此课件共52页哦参考源程序4 KLoop:mov a,r1 ;找出键所在列找出键所在列 cpl a movx dptr,a cpl a rr a mov r1,a ;下一列下一列 movx a,r0 cpl a anl a,#0fh jnz Goon1 ;该列有键入该列有键入 djnz r2,KLoo

42、p mov r2,#0ffh ;没有键按下没有键按下,返回返回 0ffh sjmp Exit第50页,此课件共52页哦参考源程序5 Goon1:mov r1,a ;键值键值=列列 X 4+行行 mov a,r2 dec a rl a rl a mov r2,a ;r2=(r2-1)*4 mov a,r1 ;r1中为读入的行值中为读入的行值 mov r1,#4LoopC:rrc a ;移位找出所在行移位找出所在行 jc Exit inc r2 ;r2=r2+行值行值 djnz r1,LoopCExit:mov a,r2 ;取出键码取出键码 mov dptr,#KeyTable movc a,a+dptr mov r2,a第51页,此课件共52页哦参考源程序6 WaitRelease:mov dptr,#OUTBIT ;等键释放等键释放 clr a movx dptr,a mov r6,#10 call Delay call TestKey jnz WaitRelease mov a,r2 ret第52页,此课件共52页哦

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁