![c51单片机教程副本市公开课一等奖省赛课获奖课件_第1页](http://file4.renrendoc.com/view/3627c012d9bce792031bdd26da3b8800/3627c012d9bce792031bdd26da3b88001.gif)
![c51单片机教程副本市公开课一等奖省赛课获奖课件_第2页](http://file4.renrendoc.com/view/3627c012d9bce792031bdd26da3b8800/3627c012d9bce792031bdd26da3b88002.gif)
![c51单片机教程副本市公开课一等奖省赛课获奖课件_第3页](http://file4.renrendoc.com/view/3627c012d9bce792031bdd26da3b8800/3627c012d9bce792031bdd26da3b88003.gif)
![c51单片机教程副本市公开课一等奖省赛课获奖课件_第4页](http://file4.renrendoc.com/view/3627c012d9bce792031bdd26da3b8800/3627c012d9bce792031bdd26da3b88004.gif)
![c51单片机教程副本市公开课一等奖省赛课获奖课件_第5页](http://file4.renrendoc.com/view/3627c012d9bce792031bdd26da3b8800/3627c012d9bce792031bdd26da3b88005.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章基本I/O口应用7.1P1口应用7.2P0口扩展7.3矩阵式LED显示器扩展7.4矩阵式键盘扩展7.58255A应用7.68155应用7.78279可编程键盘/显示器接口控制试验c51单片机教程副本第1页1.实训目标熟悉单片机基本I/O口控制及应用掌握P1口输入输出功效及编程方法2.功效设计依据P1口低4位输入开关量状态,控制P1口高4位外接发光二极管亮与灭。7.1P1口应用c51单片机教程副本第2页3.背景知识P1口是一个8位准双向I/O接口,作为输入接口时,要先向锁存器中置“1”。可直接进行位操作,内部带有上拉电阻,每一位输出可驱动4个LS型TTL负载。4.硬件原理硬件电路如图7-1所表示。c51单片机教程副本第3页图7-1P1口输入输出控制电路c51单片机教程副本第4页5.参考程序 ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV A,#0FH :主程序开始,设置输入 为读引脚 MOV P1,A ;数据送P1口 MOV A,P1 ;读4位键值 SWAP A ;P1口低4位数据与高4位 数据交换 MOV P1,A ;送显示 LCALLLOOP1 ;调延时程序 LCALLLOOP1c51单片机教程副本第5页 LJMP MAIN ;程序循环执行LOOP1: MOV R3,#0FFH ;延时子程序 DJNZ R3,$ RET ENDc51单片机教程副本第6页6.总结与提升经过编程训练,读者能够掌握P1口用作通用I/O口时使用方法。本训练中用开关量作输入,用发光二极管做输出。实际应用中,输入信号需要经过对应调理电路调理后输入到P1口。当P1口做输出口时,应注意其带负载能力,需要时可进行功率扩展。c51单片机教程副本第7页1.实训目标了解单片机基本I/O口控制及应用掌握用数据口扩展I/O基本方法2.功效设计用P0口扩展两片74LS273锁存器,控制两位LED数码管显示,采取静态扫描方式。详细要求:两位LED依次显示0、1、2、3、4、5、6、7、8、9。7.2P0口扩展c51单片机教程副本第8页3.背景知识(1)LED显示器是由发光二极管显示字段显示器件,分为共阳极和共阴极两种型式。图7-2(a)和(b)分别为共阳极和共阴极LED数码管原理电路图。c51单片机教程副本第9页7-2LED数码管内部电路c51单片机教程副本第10页①共阳极LED将全部发光二极管阳极接在一起作为公共端COM。当公共端接高电平,某一段发光二极管阴极接低电平时,对应字段就被点亮。②共阴极LED将全部发光二极管阴极接在一起作为公共端COM。当公共端接低电平,某一段阳极为高电平时,对应字段就被点亮。c51单片机教程副本第11页(2)LED显示器扫描方式①动态扫描显示方式:多位LED显示时,通常将全部位段选线并联在一起,由一个8位I/O口控制,而位选则由一个I/O口线控制,实现各位分时选通。每一位LED选通时间为1~2ms,假如导通时间太短,发光太弱,人眼无法看清,假如导通时间太长,占用CPU时间太长。因为人眼有视觉暂留现象,所以只要每位显示时间足够短,就能够造成多位同时亮假象,每一位显示时间间隔不能超出20ms,若时间间隔太长,就会造成闪烁现象。c51单片机教程副本第12页②静态扫描方式:多位LED显示时,全部位段选线都是独立,只要将位选线接地或高电平即可,段码只要不改变,LED就保持原来状态。采取静态扫描方式,使LED亮度强,编程简单,但功耗较大。③尤其注意:应用数码管作为显示部件时,应在数码管每一段加有限流电阻。(3)LED数码管字型段码见表7-1。(见书128页)c51单片机教程副本第13页4.硬件原理在如图7-3所表示硬件电路中,采取P0口扩展2片锁存器74LS273,用来锁存2位共阴极LED段码,采取静态扫描方式。P2.7、P2.6为位选线。c51单片机教程副本第14页图7-3P0口扩展LED显示电路c51单片机教程副本第15页5.参考程序 ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV R2,#00H ;主程序开始,显示“0”KE1: MOV A,R2 MOV DPTR,#TAB ;送LED显示软件译 码表首址 MOVCA,@A+DPTR ;查表求出键值显示 段码 MOV DPTR,#7FFFH ;选通第一片273 MOVX@DPTR,A ;数据送锁存器 INC R2 ;显示下一个数c51单片机教程副本第16页 MOV A,R2 MOV DPTR,#TAB ;送LED显示软件译 码表首址 MOVCA,@A+DPTR ;查表求出键值显示 段码 MOV DPTR,#0BFFFH ;选通第二片273 MOVX@DPTR,A ;数据送锁存器 LCALLLOOP1 ;调延时程序 INC R2 ;显示下一个数 CJNE R2,#0AH,KE1 ;判断显示完否 AJMP MAINLOOP1: MOV R3,#0FFH ;延时子程序LOOP: MOV R4,#0FFHc51单片机教程副本第17页 DJNZ R4,$ DJNZ R3,LOOP RETTAB: DB 3FH,06H,5BH,4FH,66H, DB 6DH,7DH,07H,7FH,6FH ;数字0~9段码表 ENDc51单片机教程副本第18页6.总结与提升经过训练,读者能够熟悉LED数码管显示器原理,掌握静态扫描方式硬件扩展方法。读者可尝试使用P0口扩展8位LED静态显示器。思索硬件电路怎样设计?怎样编程?c51单片机教程副本第19页1.实训目标熟悉用单片机基本I/O口扩展矩阵式LED显示器基本原理掌握基本I/O口功效及编程方法2.功效设计用P1口扩展矩阵式LED显示器行线,用P2口控制矩阵式LED显示器列线。详细要求:用8×8矩阵式共阴极LED显示器循环显示字母“P”。7.3矩阵式LED显示器扩展c51单片机教程副本第20页3.背景知识矩阵式LED显示器有共阴极和共阳极两种型式。图7-4(a)和(b)为共阴极和共阳极4×4矩阵式LED显示器内部结构图,图7-4(c)为8×8矩阵式LED显示器显示字母“P”字型图。c51单片机教程副本第21页图7-4矩阵式LED显示器原理图c51单片机教程副本第22页显示一个完整字母“P”,需要进行8次扫描(相当于多位7段LED动态扫描),每一次扫描数据格式如图7-5所表示。
c51单片机教程副本第23页图7-5矩阵式LED显示字母P扫描数据格式c51单片机教程副本第24页4.硬件原理与资源分配硬件电路如图7-6所表示,因为LED显示器需要电流较大,所以在行线和列线上都要加驱动器。本电路行线上采取74LS273锁存器进行驱动,列线上采取达林顿反向驱动器进行驱动。资源分配:R1为字符偏移值,R3为扫描列数,R2为列扫描信号值,R4、R5为软件延时参数。c51单片机教程副本第25页图7-6矩阵式LED显示电路c51单片机教程副本第26页5.参考程序 ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV R1,#00H ;R1为字符偏移值 MOV R3,#08H ;R3为扫描列数 MOV R2,#01H ;R2为扫描信号值, 取反后为0FEHGN1: ANL P2,#00H MOV DPTR,#LAB ;送字符表首址 MOV A,R1 ;取偏移值 MOVCA,@A+DPTR ;取字符表数据c51单片机教程副本第27页 MOV P1,A ;送显示 INC R1 ;下一字符偏移值 MOV A,R2 ;选通第一列 MOV P2,A LCALLLOOP1 ;调延时程序 RL A ;准备进行第二列扫 描 MOV R2,ANEXT: DJNZ R3,GN1 ;判断8次扫描完否 LJMP MAIN ;返回主程序起始处LOOP1: MOV R4,#14H ;延时子程序LOOP: MOV R5,#18H DJNZ R5,$c51单片机教程副本第28页 DJNZ R4,LOOP RETLAB: DB 00H,81H,0FFH,91H,11H,11H, 0EH,00H ENDc51单片机教程副本第29页6.总结与提升经过编程训练,读者能够掌握矩阵式LED显示器编程方法及硬件扩展方法。c51单片机教程副本第30页1.实训目标熟悉矩阵式键盘扫描基本原理学习使用单片机基本I/O口扩展矩阵式键盘电路设计及编程方法7.4矩阵式键盘扩展c51单片机教程副本第31页2.功效设计用P1口扩展4×4矩阵式键盘,键值分别为0~15,将P1口读入键值(二进制)送入P2.0~P2.3中显示出来。详细要求:4位发光二极管分别代表4位二进制数,“1”代表亮,“0”代表灭。比如,若1号键按下,则发光二极管L1亮,L2~L4灭(0001K);若5号键按下,则发光二极管L1和L3亮,L2和L4灭(0101B),余类推。c51单片机教程副本第32页3.背景知识矩阵式键盘也称为行列式键盘。行线经过上拉电阻接到+5V电源上,列线上逐列给低电平,假如有键按下,相对应行线就能够接收到低电平,据此就能够判断出对应键值。采取矩阵式键盘,能够节约系统I/O口线。c51单片机教程副本第33页4.硬件原理与资源分配硬件电路如图7-7所表示。资源分配:R1为输入按键位置列号,R2为输入按键位置行号,R7为总扫描列数,R5为列扫描数据,R6为按键总行数,R3和R4为延时参数。c51单片机教程副本第34页图7-7矩阵式键盘电路c51单片机教程副本第35页5.参考程序 ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV R1,#00H ;R1为输入按键位置 列号 MOV R2,#00H ;R2为输入按键位置 行号GN1: MOV R7,#04H ;R7为总扫描列数 MOV R5,#11111110B ;设置第一列为低电 平 MOV A,R5GN2: MOV P1,A;送扫描数据c51单片机教程副本第36页 MOV A,P1 ;读行线上信号 LCALLLOOP1 ;调延时程序 MOV R6,#04H ;检验一列中各行 按键 SETB C MOV R2,#00HGN3: RLC A JNC DIS INC R2 DJNZ R6,GN3 MOV A,R5 ;R5为输入按键位置 列号 RL Ac51单片机教程副本第37页 MOV R5,A INC R1 DJNZ R7,GN2DIS: MOV A,R1 ;计算键值 MOV B,#04H MUL AB ;键值=(列号×4) +行号 ADD A,R2 CPL A MOV P2,A ;送显示 LJMP MAINLOOP1: MOV R3,#0C8H ;延时子程序LOOP: MOV R4,#0A0Hc51单片机教程副本第38页 DJNZ R4,$ DJNZ R3,LOOP RET ENDc51单片机教程副本第39页6.总结与提升经过编程训练,读者能够掌握矩阵式键盘编程方法。c51单片机教程副本第40页1.实训目标掌握单片机扩展并行I/O口方法学习可编程接口芯片8255A功效及使用方法2.功效设计用8255APB口扩展8位发光二极管,PC口扩展8个独立式按键。详细要求:将8255APC口作为输入口,PB口作为输出口。将PC口开关量送入PB口显示出来,即某个按键按下,对应LED点亮。7.58255A应用c51单片机教程副本第41页3.背景知识8255A芯片能够扩展三个8位I/O接口,有3种工作方式,使用起来灵活方便,通用性强,可作为单片机与各种外围设备中间接口电路。其引脚图及内部结构如图7-8所表示。c51单片机教程副本第42页图7-88255A引脚图及内部结构c51单片机教程副本第43页(1)引脚说明VCC +5V电源GND 地线PA0~PA7 A口输入输出线PB0~PB7 B口输入输出线PC0~PC7 C口输入输出线D0~D7 三态双向数据线,与单片机数据总线连 接
CS 片选信号线,低电平有效
RD 读出信号线,低电平有效,控制数据 读出
c51单片机教程副本第44页WR 写入信号线,低电平有效,控制数据 写入RESET 复位信号A0、A1 地址线,用来选通8255A内部各个端口c51单片机教程副本第45页(2)内部结构端口A、B和C。A口:含有一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器B口:含有一个8位数据输出锁存器/缓冲器和一个8位数据输入缓冲器C口:含有一个8位数据输出锁存器/缓冲器和一个8位数据输入缓冲器通常A口和B口作为数据输入输出口;C口除了作为输入输出口外,还能够作为A口和B口选通方式工作时状态控制信号,此时C口可分为两个4位口使用。分别与A口和B口配合使用,作为控制信号输出或信息状态输入端口。c51单片机教程副本第46页工作方式控制电路:分为A组控制电路和B组控制电路。A组为A口和C口上半部分(PC7~PC4),B组为B口和C口下半部分(PC3~PC0)。总线数据缓冲器:三态双向8位缓冲器,作为8255与系统总信之间接口,用来传送数据、命令以及状态信息。读/写控制逻辑:用于管理全部数据、控制字或状态字传送。它接收来自CPU地址信号及一些控制信号,从而控制各个端口工作状态。8255A工作状态由端口选择信号来控制,其功效见表7-2。(见书135页)c51单片机教程副本第47页(3)工作方式8255A有3种工作方式,如图7-9所表示。c51单片机教程副本第48页图7-98255A工作方式c51单片机教程副本第49页方式0为基本输入输出方式,不需要任何选通信号。A口、B口及C口高4位和低4位都能够设定为输入输出。作为输出口时,输出数据被锁存;作为输入口时,输入数据不锁存。c51单片机教程副本第50页方式1为选通输入输出方式,这种方式下A、B和C3个口分为两组。A组包含A口和C口高4位,A口可由编程设定为输入口或输出口,C口高4位用来作为输入输出操作控制和同时信号。B组包含B口和C口低4位,B口一样可由编程设定为输入口或输出口,C口低4位用来作为输入输出操作控制和同时信号。A口和B口输入数据或输出数据都被锁存。c51单片机教程副本第51页方式2为双向总线方式,在这种工作方式下,A口为8位双向总线口,C口PC3~PC7用来作为输入输出同时控制信号。在这种情况下,B口和PC0~PC2只能在方式0或方式1下工作。端口C在方式1和方式2时,8255A内部要求联络信号见表7-3。(见书137页)c51单片机教程副本第52页8255A用于输入联络信号有:IBF 高电平有效,表示数据己装入锁存器, 可作为送出状态信号。STB 选通脉冲输入,低电平有效。当外设有信号输入时,输入数据装入8255A锁存器。c51单片机教程副本第53页INTR 中止请求信号,高电平有效。在IBF为高、STB为高时才有效,用来向CPU申请中止服务。当外设数据准备好后,STB为低电平,输入数据装入8255A锁存器,装满后使IBF变为高电平,CPU能够查询这个状态信息,用来决定是否接收8255A数据。或者,当STB重新变为高时,INTR有效,向CPU发出中止请求。CPU在中止服务程序中接收8255A数据,并使INTR为低电平。c51单片机教程副本第54页8255A用于输出联络信号有:ACK 响应信号输入,低电平有效。当外设取走并处理完8255A数据后发出响应信号。OBF 输出缓冲器满信号,低电平有效。当CPU把数据送入8255A锁存器后有效,这个输出低电平用来通知外设开始接收数据。INTR 中止请求信号,高电平有效。在外设处理完一组数据后,ACK变为低电平,而且当OBF变为高电平,然后在ACK又变高后使INTR有效时,申请中止进入下一次输出过程。使用时能够经过软件对C口对应位进行置位/复位来控制8255A开中止或关中止。c51单片机教程副本第55页(4)8255A控制字8255A有两个控制字,即工作方式控制字和控制C口各位置位/复位控制字。两种控制字写入控制存放器方式相同,只是用D7位来区分详细是哪一位控制字。D7=1为工作方式控制字;D7=0为C口置位/复位控制字。8255A控制字格式如图7-10所表示。c51单片机教程副本第56页图7-108255A控制字格式c51单片机教程副本第57页4.硬件原理与资源分配硬件电路如图7-11所表示,利用PB口扩展了8个发光二极管,PC口扩展了8个独立式按键。资源分配:7FFFH为8255H控制端口地址,7EFF为C口地址,7DFF为B口地址,7CFFH为A口地址,R3和R4为延时参数。c51单片机教程副本第58页图7-118255A控制LED显示电路c51单片机教程副本第59页5.参考程序 ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV DPTR,#7FFFH ;指向控制口地址 MOV A,#10011001B ;控制字,PB口为输 出口,PC口为输入口 MOVX@DPTR,A ;写控制字 MOV DPTR,#7EFFH ;指向C口地址 MOVXA,@DPTR ;读C口键值 MOV DPTR,#7DFFH ;指向B口地址 MOVX@DPTR,A ;将C口接收数据 送入B口输出c51单片机教程副本第60页 LCALLLOOP1 ;调延时程序 LJMP MAIN ;程序循环执行LOOP1: MOV R3,#0C0H ;延时子程序LOOP: MOV R4,#0F0H DJNZ R4,$ DJNZ R3,LOOP RET ENDc51单片机教程副本第61页6.总结与提升本例用8255APC口扩展独立式键盘,用PB口扩展LED显示器,在实际应用中可利用8255A扩展键盘和显示器。c51单片机教程副本第62页1.实训目标了解单片机I/O口扩展方法掌握可编程I/O芯片8155功效及使用方法。7.68155应用c51单片机教程副本第63页2.功效设计用8155PB口和PC口扩展6个共阴极LED显示器,利用PA口扩展8个独立式按键。详细要求:(1)按0号键,6位LED显示全“0”,按7号键,6位LED显示全“7”(2)8155TIMEROUT端输出连续方波c51单片机教程副本第64页3.背景知识8155芯片内包含有256BRAM,两个可编程8位并行口PA和PB,一个可编程6位并行口PC,以及一个14位减法定时器/计数器。其引脚图如图7-12所表示。c51单片机教程副本第65页图7-128155引脚图c51单片机教程副本第66页(1)引脚说明RST 复位信号输入端,高电平有效。复位后,3个I/O口均为输入方式。AD0~AD7 三态地址/数据线。RD 读信号,低电平有效。WR 写信号,低电平有效。CE 片选信号线,低电平有效。由单片机ALE下降沿锁存到8155内部锁存器。IO/M 8155RAM存放器与I/O口选择线。当IO/M=0时,AD0~AD7为8155RAM单元地址;当IO/M=1时,AD0~AD7为8155I/O口地址。c51单片机教程副本第67页ALE 地址锁存允许端。控制信号ALE下降沿可将地址以及CE、IO/M状态锁存到8155内部存放器中。PA0~PA7 A口输入输出线。PB0~PB7 B口输入输出线。PC0~PC5 有两个作用,既可作为C口输入输出线,也可作为PA口和PB口控制信号线。经过对命令存放器进行编程可使PC口作为控制线使用。当PC0~PC5用作控制信号时,其作用见表7-4。(见书141页)c51单片机教程副本第68页TIMERIN 定时器/计数器时钟输入端。TIMEROUT 定时器/计数器输出端。计数器工作方式。VCC +5V电源。c51单片机教程副本第69页(2)CPU对8155RAM单元和I/O口寻址IO/M=0时,CPU对8155256BRAM寻址。IO/M=1时,选中8155片内3个I/O接口及命令/状态存放器和定时/计数器,见表7-5。(见书141页)(3)8155命令字和状态字以及I/O工作方式。8155内部命令存放器和状态存放器使用同一个端口地址。命令存放器只能写入不能读出,状态存放器只能读出不能写入。8155I/O口工作方式由CPU写入命令存放器控制命令字决定。命令字格式如图7-13所表示。c51单片机教程副本第70页图7-138155命令字格式c51单片机教程副本第71页状态字8155状态存放器用于锁存8155I/O口和定时器/计数器当前状态,供CPU查询。状态存放器只能读出,不能写入,而且和命令存放器共用一个口地址。CPU对该地址写入是命令字,读出是状态。状态存放器格式如图7-14所表示。c51单片机教程副本第72页图7-148155状态字格式c51单片机教程副本第73页(4)8155定时器/计数器①8155定时器/计数器为14位减法计数器,可用来定时或对输入脉冲进行减法计数,定时器由两个字节组成,其格式如表7-6所表示。(见书142页)定时器有4种输出方式,由M2和M1定义,每一个方式输出波形如图7-15所表示。c51单片机教程副本第74页图7-158155定时器/计数器输出波形定义c51单片机教程副本第75页②编程时,首先把计数长度和定时器方式装入定时器两个对应单元。长度为2~3FFFH之间任意值。③命令存放器最高两位(TM2、TM1)控制计数器开启和停顿计数。00 空操作,不影响计数器操作。01 停顿定时器操作。10 若计数器正在计数,计数长度减为0时停顿计数。11 当计数器不在计数状态时,装入计数长度和方式后马上开始计数。当计数器正在计数时,在计数器溢出以后重新装入计数长度和计数方式。c51单片机教程副本第76页④任何时候都能够置定时器长度和工作方式,不过必须将开启命令字写入命令存放器。假如定时器正在计数,那么只有在写入开启命令之后,定时器才接收新计数长度并按新工作方式计数。当定时器溢出时,在TIMEROUT端输出一个矩形脉冲或方波。若写入定时器初值为奇数,则输出方波是不对称。c51单片机教程副本第77页⑤8155复位后并不预置定时器方式和长度,不过会停顿计数器计数。⑥8155定时器在计数过程中,计数器若作为外部事件计数,由计数器状态求输入脉冲方法有:停顿计数器计数、分别读出计数器两个字节、取低14位计数值以及若为偶数,右移一位即得输入脉冲数;若为奇数,则右移一位加上计数初值二分之一整数部分后得到是输入脉冲数。c51单片机教程副本第78页4.硬件原理与资源分配硬件电路如图7-16所表示。利用8155A口扩展了8个独立式按键,利用PB口、PA口扩展了6个LED显示器,PB口送段选码,PC口送位选码。资源分配:7F00H为8155命令字端口地址,7F01H为A口地址,7F02H为B口地址,7F03H为C口地址,R3为LED显示个数,R2为选通数据,R1为键值,R4、R5为延时参数。c51单片机教程副本第79页图7-168155应用电路图c51单片机教程副本第80页5.参考程序
程序1:8155控制键盘显示 ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV DPTR,#7F00H ;指向命令字端口地 址 MOV A,#06H ;设置A口为输入,B 口、C口为输出 MOVX@DPTR,A ;送命令字 MOV DPTR,#7F01H ;指向A口地址 MOVXA,@DPTR ;读入A口开关数 据c51单片机教程副本第81页 JNB ACC.0,KE0 ;判断是否“0”号键 JNB ACC.1,KE1 ;判断是否“1”号键 JNB ACC.2,KE2 ;判断是否“2”号键 JNB ACC.3,KE3 ;判断是否“3”号键 JNB ACC.4,KE4 ;判断是否“4”号键 JNB ACC.5,KE5 ;判断是否“5”号键 JNB ACC.6,KE6 ;判断是否“6”号键 JNB ACC.7,KE7 ;判断是否“7”号键 AJMP MAINGN: MOV R3,#06H ;设置6个LED显示 MOV R2,#3EH ;选通第一位LED数 据GN1: MOV DPTR,#7F03H ;指向C口地址c51单片机教程副本第82页 MOV A,R2 ;位选通数据送R2中 保留 MOVX@DPTR,A ;送C口 RL A ;选通下一位 MOV R2,A ;位选通数据送R2中 保留 MOV A,R1 ;取键值 MOV DPTR,#TAB ;送LED显示软件译 码表首址 MOVCA,@A+DPTR ;查表求出键值显示 段码 MOV DPTR,#7F02H ;指向B口地址 MOVX@DPTR,A ;段码送显示c51单片机教程副本第83页 LCALLLOOP1 ;调延时子程序 DJNZ R3,GN1 ;循环显示6个LED LJMP MAIN ;返回主程序起始处LOOP1: MOV R4,#08H ;延时子程序LOOP: MOV R5,#0A0H DJNZ R5,$ DJNZ R4,LOOP RETKE0: MOV R1,#00H ;用R1保留输入“0” 号键键值 LJMP GNKE1: MOV R1,#01H ;用R1保留输入“1” 号键键值c51单片机教程副本第84页 LJMP GNKE2: MOV R1,#02H ;用R1保留输入“2” 号键键值 LJMP GNKE3: MOV R1,#03H ;用R1保留输入“3” 号键键值 LJMP GNKE4: MOV R1,#04H ;用R1保留输入“4” 号键键值 LJMP GNKE5: MOV R1,#05H ;用R1保留输入“5” 号键键值 LJMP GNc51单片机教程副本第85页KE6: MOV R1,#06H ;用R1保留输入“6” 号键键值 LJMP GNKE7: MOV R1,#07H ;用R1保留输入“7” 号键键值 LJMP GNTAB: DB 0C0H,0F9H,0A4H,0B0H,99H, 92H,82H,0F8H,80H ENDc51单片机教程副本第86页程序2:用8155产生一个方波信号 ORG 0000H AJMP MAIN ORG 0030HMAI: MOV DPTR,#7F04H ;定时器低8位 MOV A,#0AH ;定时器10分频 MOVX@DPTR,A MOV DPTR,#7F05H ;定时器高8位 MOV A,#40H MOVX@DPTR,A MOV DPTR,#7F00H ;指向命令字端口地 址c51单片机教程副本第87页 MOV A,#0C2H ;设置计数初值并启 动 MOVX@DPTR,A SJMP $ ENDc51单片机教程副本第88页6.总结与提升经过试验,读者能够掌握利用8155扩展I/O口方法,并掌握8155定时器/计数器使用方法。c51单片机教程副本第89页1.实训目标熟悉可编程专用键盘/显示器接口芯片8279原理及功效掌握8279芯片编程方法2.功效设计用8279芯片扩展2×8矩阵键盘和8个共阴极LED数码管显示器,16个按键键值分别为0~F。编程实现功效为:当有键按下时,用左边第一个LED显示按键键值,当再有键按下时,显示键值依次右移。7.78279可编程键盘/显示器接口控制试验c51单片机教程副本第90页3.背景知识8279是Intel企业生产通用可编程键盘/显示器接口芯片。8279可实现对键盘/显示器自动扫描,并识别键盘上闭合键键号。这么不但可节约CPU对键盘/显示器操作时间,而且显示稳定,程序简单,不会出现误动作。(1)8279引脚8279引脚如图7-17所表示,引脚功效以下:c51单片机教程副本第91页图7-178279引脚图c51单片机教程副本第92页D0~D7 数据总线(双向、三态)。CLK 系统时钟信号。CS 片选信号。RESET 复位引脚,高电平有效。8279复位状态为:16位字符显示,左边输入,编码扫描键盘为双键锁定,分频系数为31。A0 数据选择引脚。当A0=1时,CPU写入字节为命令字,读出字节是状态字。当A0=0时,读出及写入字节均为数据。RD 读数据引脚,低电平有效。WR 写数据引脚,低电平有效。c51单片机教程副本第93页IRQ 中止申请信号,高电平有效。当FIFO/RAM存入数据时,IRQ变为高电平,向CPU申请中止。每次CPU从RAM中读出一个数据时,IRQ变为低电平,假如RAM中数据没读完,IRQ则恢复为高电平。在传感器方式下,每次检测到传感器状态改变时IRQ则变为高电平。RL0~RL7 键盘矩阵或传感器矩阵列(或行)扫描输入线。SL0~SL3 扫描输出线,用于键盘及显示器扫描。可用软件设定为编码输出(16选1)或译码输出(4选1)方式。c51单片机教程副本第94页SHIFT 通惯用来扩展键开关控制功效,可用作键盘上、下档功效键,此引脚在传感器方式和选通工作方式下无效。CNTL/STB 控制/选通输入信号,高电平有效。可作为控制功效键。在选通工作方式下,该引脚输入信号上升沿可把来自RL0~RL7数据存入FIFO/RAM中,在传感器方式下该信号无效。OUTA0~OUTA3 A组显示输出信号,与SL0~SL3扫描信号同时。OUTB0~OUTB3 B组显示输出信号,与SL0~SL3扫描信号同时。BD 显示消隐信号引脚,低电平有效。该信号在数字切换显示或使用消隐命令时将显示熄灭。c51单片机教程副本第95页(2)8279内部结构8279内部结构如图7-18所表示,主要包含键盘输入和显示输出两部分,以及对应存放器和控制电路。c51单片机教程副本第96页图7-188279结构框图c51单片机教程副本第97页①I/O控制与数据缓冲器 I/O控制线包含RD、WR、CS、A0等,其作用在引脚中已做了介绍。双向数据缓冲器,连接内外部线,用于传送CPU和8279之间命令/状态或数据。②控制逻辑与定时控制控制与定时存放器用于存放键盘及显示器工作方式、锁存操作命令并经过译码产生对应控制信号,使8279各个部件完成一定控制功效。定时控制内部有一个可编程5位计数器,对外部输入时钟信号进行分频,产生100kHz内部定时信号。外部时钟输入信号周期大于500ns。c51单片机教程副本第98页③扫描计数器扫描计数器有两种输出方式:一是编码方式,计数器以二进制计数,4位计数16个状态从扫描线SL0~SL3输出,经外部译码器译出16位扫描线;二是译码方式,SL0~SL3输出4选1译码信号,输出4位扫描线。④按键输入控制这部分作用是对键盘进行自动扫描,锁存RL0~RL7键入信息,搜索闭合键,消除键抖动,并将键输入数据写入内部先进先出(FIFO)存放器RAM。c51单片机教程副本第99页⑤FIFO/RAM和显示缓冲RAM8个先进先出键输入缓冲RAM单元,用以存放输入键值。16B显示缓冲RAM。8279将段码写入显示缓冲RAM,并自动对显示器扫描,将其内部显示缓冲RAM中数据在显示器上显示出来。c51单片机教程副本第100页⑥回复缓冲器、键盘消抖及控制来自RL0~RL7回复信号,由回复缓冲器缓冲并锁存。键盘工作方式,回复线作为行列式键盘行列输入线。当某一键闭合时,消抖电路被置位,延时10ms后,再检验该键是否继续闭合。键盘数据格式以下:D7D6D5D4D3D2D1D0CNTLSHIFT扫描回复c51单片机教程副本第101页(3)8279操作命令字 CPU经过对8279写入命令字来选择不一样工作方式。A0置“1”时,写入是命令,读出是状态。8个操作命令字简述以下:①键盘/显示器方式设置命令字命令字格式为:D7D6D5D4D3D2D1D0000DDKKKc51单片机教程副本第102页D7D6D5=000是该命令特征位,D4D3(DD)用来设置显示方式,其定义见表7-7。(见书148页)c51单片机教程副本第103页8279最多可用来控制16位LED显示器。显示器每一位对应一个8位显示缓冲RAM单元。CPU将显示数据写入缓冲器时有左边输入和右边输入两种方式。左边输入方式地址为0~15,显示缓冲RAM单元分别对应于显示器0~15(由左至右)位。CPU依次从0地址或某一个地址开始将段码写入显示缓冲RAM。当16个显示缓冲RAM都已写满时(从0地址开始写,写了16次),第17次再从0地址开始写入。右边输入方式是移位输入方式,输入数据总是写入右边显示缓冲RAM。数据写入显示缓冲RAM后,原来缓冲器内容左移一个字节,原最左边显示缓冲RAM内容被移出。c51单片机教程副本第104页当选择编码扫描方式时,内部计数器作二进制计数。4位二进制计数器状态从扫描线SL0~SL3输出,最多可为键盘显示器提供16根扫描线。当选择译码扫描方式时,由SL0~SL3输出译码信号,此时SL0~SL3只能有一位为低电平,这时8279只能扩展4个显示器和4×8键盘。D2D1D0(KKK)用来设置键盘工作方式,其定义见表7-8。(见书149)c51单片机教程副本第105页双键锁定就是当键盘中同时有两个或两个以上键被按下时,任何一个键编码信息均不能进入FIFO/RAM中,直至仅剩下一个键保持闭合时,该键编码信息方能进入。这种工作方式能够防止将误操作信号输入计算机。N键轮回就是当有N个键被按下时,在键盘消抖期间,检验该键是否仍被按下。假如仍被按下,则按照键盘扫描过程发觉它们次序进行识别,并送入FIFO/RAM中。c51单片机教程副本第106页②时钟命令字。8279内部定时信号由外部输入时钟经过分频后产生,分频系数由时钟编码命令字确定。D7D6D5D4D3D2D1D0001PPPPPc51单片机教程副本第107页D7D6D5=001为时钟编码命令字特征位。PPPPP(D4~D0)用来设定对外部输入端CLK时钟进行分频分频系数N,取值范围在2~31之间。假如外部时钟频率为1MHz,设PPPPP=01010B,命令字为2AH,则对外部时钟进行10分频,取得8279内部要求100kHz基本频率。c51单片机教程副本第108页③读FIFO/RAM命令字命令字格式为:D7D6D5D4D3D2D1D0010AI×AAAc51单片机教程副本第109页D7D6D5=010为该命令字特征位,D2~D0(AAA)为FIFO/RAM地址,D4(AI)为地址自动增1标志。在传感器方式及选通方式下,AAA为RAM地址。若AI=1,CPU从起始地址为AAA单元开始依次读出,每次读出后,地址自动加1;AI=0时,CPU仅读出AAA单元内容。在键扫描方式中,AI、AAA均被忽略,CPU读键输入数据时,总是按先进先出规律读出,直至全部读出为止。c51单片机教程副本第110页④读显示缓冲RAM命令字命令字格式为:D7D6D5D4D3D2D1D0011AIAAAAc51单片机教程副本第111页D7D6D5=011是该命令字特征位。在CPU读显示数据之前必须先输出读缓冲RAM命令。D4(AI)为自动增1标志。若AI=1,则CPU每次读出后,地址自动加l。D3D2D1D0=AAAA为显示缓冲RAM存放单元地址。c51单片机教程副本第112页⑤写显示缓冲RAM命令字。命令字格式为:D7D6D5D4D3D2D1D0100AIAAAAc51单片机教程副本第113页D7D6D5=100为该命令字特征位,该命令给出了显示缓冲RAM地址。D4(AI)为自动增1标志。D3D2D1D0=AAAA用来寻址显示缓冲RAM16个存放单元。执行写显示缓冲RAM时,首先用该命令字给出要写入显示缓冲RAM地址,即AAAA表示4位二进制代码。c51单片机教程副本第114页⑥显示器蔽消隐命令字命令字格式为:D7D6D5D4D3D2D1D0101×IWAIWBBLABLBc51单片机教程副本第115页D7D6D5=101为该命令字特征位。IWA和IWB分别用来屏蔽A组和B组缓冲RAM。在双4位显示器使用时,可改写显示缓冲RAM中低半字节而不影响高半字节状态,反之也可改写高半字节而不影响低半字节。BLA和BLB分别是A组和B组消隐特征位,若BLA或BLB位=1时,则对应组显示消隐,当BLA或BLB位=0时则恢复正常显示。c51单片机教程副本第116页⑦去除命令字命令字格式为:D7D6D5D4D3D2D1D0110CDCDCDCFCAc51单片机教程副本第117页D7D6D5=110为该命令字特征位。该命令字用来去除FIFO/RAM和显示缓冲RAM。D4D3D2用来设定消除显示缓冲RAM方式,其定义见表7-9。CF位用来去除FIFO/RAM。当CF=1时,执行去除命令后,FIFO/RAM被清空,使中止输出线IRQ复位,同时传感器RAM读出地址也被清0。CA是总去除特征位,它兼有CD和CF联合效用。当CA=1时,对显示RAM去除方式由D3D2确定。去除显示缓冲RAM大约需l00μs时间,在此期间CPU不能向显示器RAM写入数据。c51单片机教程副本第118页⑧结束中止/犯错方式设置命令字命令字格式为:D7D6D5D4D3D2D1D0111E××××c51单片机教程副本第119页D7D6D5=111为结束中止/犯错方式命令特征位。在传感器工作方式中,此命令用来结束传感器RAM中止请求,允许再次对RAM写入。N在键轮回方式中,E=1,则8279可工作在特殊犯错方式。c51单片机教程副本第120页(4)8279状态字 8279状态字用于键盘输入和选通输入,以显示FIFO/RAM中字符个数是否犯错。状态字格式以下:D7D6D5D4D3D2D1D0DUS/EOUFNNNc51单片机教程副本第121页D2~D0 表示FIFO/RAM中数据个数。在F=1时,D3表示FIFO/RAM中数据已满(存有8个键入数据)。在FIFO/RAM中没有数据时,若CPU仍对FIFO/RAM进行读出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四年级数学三位数除以两位数水平测验训练题带答案
- 二年级数学100以内三数加减法混合运算题过关测验题大全附答案
- bt 公路 合同范本
- 2025年企业销售培训合同示例
- 建筑幕墙维修改造工程合同
- 海运出口代理服务合同协议范本
- 租赁合同附加协议模板
- 度建筑防水维修承包合同样本
- 2025年度房地产投资信托基金抵押反担保合同范本
- 临时司机服务合同简版
- mysql课件第五章数据查询
- 超滤培训课件
- 热线电话管理制度
- AutoCAD 2020中文版从入门到精通(标准版)
- 《海峡两岸经济合作框架协议》全文
- 纺丝原液制造工(中级)理论考试复习题库(含答案)
- ArcGIS软件入门培训教程演示文稿
- 大梅沙河道河道流量水位
- 紧固件常用标准件汇总图
- 人教版初二英语八年级上册全册英语单词表
- 《红色经典》校本课程
评论
0/150
提交评论