第4讲接口与系统扩展1_第1页
第4讲接口与系统扩展1_第2页
第4讲接口与系统扩展1_第3页
第4讲接口与系统扩展1_第4页
第4讲接口与系统扩展1_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、第四讲:接口与系统扩展(1)本讲重点:本讲重点: 片外片外ramram与片外与片外romrom扩展(参考范例应用)扩展(参考范例应用); ; 简单简单i/oi/o扩展扩展 (选用锁存器与驱动器)(选用锁存器与驱动器); ; 扩展扩展8255,8155 8255,8155 (初始化(初始化, ,电路及应用)电路及应用); ; led led显示接口(动态与静态,硬件译码与显示接口(动态与静态,硬件译码与 软件译码,电路与编程应用)软件译码,电路与编程应用). . ram,rom存储器扩展单片机本身资源不足以满足应用需求的情况下单片机本身资源不足以满足应用需求的情况下, ,必须借助外部器件对系统进

2、行扩展必须借助外部器件对系统进行扩展主要介绍主要介绍: : 并口、并口、ramram、romrom、键盘、键盘、ledled、dacdac、adc adc 等等接口的扩展与应用接口的扩展与应用, ,其中涉及到其中涉及到 62646264( (标准标准ram)ram)、2764(2764(标准标准eprom)eprom)、74ls373(8d74ls373(8d锁存器)、锁存器)、74ls24474ls244、74ls245(74ls245(总线总线驱动器)、驱动器)、82558255(可编程并行(可编程并行i/oi/o接口)、接口)、81558155(可编程(可编程ram/io/ctcram/

3、io/ctc接口)、接口)、 dac0832 dac0832 、adc0809 adc0809 等芯片。等芯片。第七章第七章 接口芯片与系统扩展接口芯片与系统扩展以以at89c51/52at89c51/52应用为例进行介绍应用为例进行介绍at89c51/52 at89c51/52 与与 mcs-51mcs-51系列的系列的8031/80328031/8032在在性能性能、引脚引脚、指令指令等方面完全兼容等方面完全兼容, ,此此 外,内部还集外,内部还集成了成了4k/8k 4k/8k 的的flash romflash rom。程序存储器程序存储器 eprom eprom 的扩展:的扩展:单片机单

4、片机内部没有内部没有rom,rom,或虽有或虽有romrom但但容量太小容量太小时时, ,必须扩展外部程序存储器方能工作。最常用的必须扩展外部程序存储器方能工作。最常用的romrom器件是器件是epromeprom。 如如: 2764: 2764(8k)(8k)/27128/27128(16k) (16k) /27256/27256(32k)(32k)/27040/27040(512k)(512k)一、一、存储器的扩展存储器的扩展(eprom) p.140(eprom) p.140vpp vccvpp vcca12 a12 pgmpgma7 a7 ncnca6 a8a6 a8a5 a9a5 a

5、9a4 a11 a4 a11 a3 a3 oeoea2 a10a2 a10a1 a1 cecea0 d7a0 d7d0 d6d0 d6d1 d5d1 d5d2 d4d2 d4gnd d3gnd d32764vpp vccvpp vcca12 a12 pgmpgma7 a7 a13a13a6 a8a6 a8a5 a9a5 a9a4 a11 a4 a11 a3 a3 oeoea2 a10a2 a10a1 a1 cecea0 d7a0 d7d0 d6d0 d6d1 d5d1 d5d2 d4d2 d4gnd d3gnd d327128vpp vccvpp vcca12 a12 a14a14a7 a7

6、a13a13a6 a8a6 a8a5 a9a5 a9a4 a11 a4 a11 a3 a3 oeoea2 a10a2 a10a1 a1 cecea0 d7a0 d7d0 d6d0 d6d1 d5d1 d5d2 d4d2 d4gnd d3gnd d327256程序存储器程序存储器 2764 2764 的扩展:的扩展:单片机单片机eprom 2764eprom 2764锁存器锁存器74ls37374ls373p0.0-p0.7alepsenp2.0-p2.48d8qoea8-a12a0-a7d0-d7geaoece5151单片机能提供单片机能提供1616条地址线,可扩展条地址线,可扩展64k64k

7、字节的字节的romrom。可以用一片。可以用一片epromeprom,也可以用多片,也可以用多片eprom eprom ( (如书上如书上p115p115116116图所示图所示) )。2764与单片机的连接图与单片机的连接图 引脚引脚工作方式工作方式 ce oe pgm vppvcc d0-d7 读读出出 vil vil vih vccvcc dout 维持维持 vih x x vccvcc 高高阻阻 编程编程 vil vih 编程脉冲编程脉冲 vippvcc din 程序检验程序检验 vil vil vih vippvcc dout 禁止编程禁止编程 vih x x vippvcc 高高阻

8、阻2764 的工作方式的工作方式擦除擦除:紫外线照射芯片的窗口:紫外线照射芯片的窗口1520分钟即可分钟即可擦除干净擦除干净 。每个存储单元内容为。每个存储单元内容为ffh。pgm :编程脉冲输入线,脉冲宽度为:编程脉冲输入线,脉冲宽度为50ms的负脉冲的负脉冲ce : 片选信号片选信号 oe : 允许信号允许信号数据存储器数据存储器 ram ram 的扩展:的扩展:有时需要扩展有时需要扩展外部数据存储器外部数据存储器ramram方能工作方能工作( (如数如数据采集系统数据量较大,需要专设据采集系统数据量较大,需要专设 ramram或或 flash flash ram)ram)。最常用的。最常

9、用的 ramram器件是器件是sramsram。如如:6116:6116(2k)(2k)/6264/6264(8k)(8k)/62128/62128(16k)(16k)/ /628128(128k) 628128(128k) 一、一、存储器的扩展存储器的扩展(ram)(ram)a7 a7 vccvcca6 a8a6 a8a5 a9a5 a9a4 a4 wewe a3 a3 oeoea2 a10a2 a10a1 a1 cecea0 d7a0 d7d0 d6d0 d6d1 d5d1 d5d2 d4d2 d4gnd d3gnd d36116vpp vccvpp vcca12 a12 wewea7 a

10、7 ce2ce2a6 a8a6 a8a5 a9a5 a9a4 a11 a4 a11 a3 a3 oeoea2 a10a2 a10a1 a1 ce1ce1a0 d7a0 d7d0 d6d0 d6d1 d5d1 d5d2 d4d2 d4gnd d3gnd d36264vpp vccvpp vcca12 a12 wewea7 a7 a13a13a6 a8a6 a8a5 a9a5 a9a4 a11 a4 a11 a3 a3 oeoea2 a10a2 a10a1 a1 cecea0 d7a0 d7d0 d6d0 d6d1 d5d1 d5d2 d4d2 d4gnd d3gnd d362128数据存储器数据

11、存储器 6264 6264 的扩展:的扩展:89c51单片机单片机sram6264锁存器锁存器74ls373p0.0-p0.7alep2.7p2.0-p2.48d8qoea8-a12a0-a7d0-d7geaoece25151单片机能提供单片机能提供1616条地址线,可扩展条地址线,可扩展64k64k字节字节的的ramram。可以用一片芯片,也可以用多片。可以用一片芯片,也可以用多片ramram(见学习指导参考书上(见学习指导参考书上p122p122127127图所示)。图所示)。rdwrwece1+5v 信号信号方式方式 写写维持维持读读oecewed0 d7vilvihvihvihvilv

12、ilvil任意任意任意任意数据数据输出输出数据数据输入输入高阻态高阻态6116 6264 62128 的工作方式的工作方式mcs51对外部数据存储器的对外部数据存储器的访问指令访问指令有四条有四条 movx a ,ri movx ri ,a movx a ,dptr movx dptr ,a简单i/o,8255并口扩展在单片机的在单片机的i/oi/o口线不够用的情况下,可以借助口线不够用的情况下,可以借助外部器件对外部器件对i/oi/o口进行扩展。可资选用的器件很口进行扩展。可资选用的器件很多,方案也有多种。多,方案也有多种。简单简单i/oi/o扩展:(锁存器扩展)扩展:(锁存器扩展)二、二、

13、并行接口的扩展并行接口的扩展( (简单简单i/o)i/o)clrclr vcc vcc 1q 8q 1q 8q 1d 8d 1d 8d 2d 7d 2d 7d 2q 7q 2q 7q 3q 6q 3q 6q 3d 6d 3d 6d 4d 5d 4d 5d 4q 5q 4q 5q gnd gnd clkclkoeoe vcc vcc 1q 8q 1q 8q 1d 8d 1d 8d 2d 7d 2d 7d 2q 7q 2q 7q 3q 6q 3q 6q 3d 6d 3d 6d 4d 5d 4d 5d 4q 5q 4q 5q gnd gnd g goeoe vcc vcc 1q 8q 1q 8q 1

14、d 8d 1d 8d 2d 7d 2d 7d 2q 7q 2q 7q 3q 6q 3q 6q 3d 6d 3d 6d 4d 5d 4d 5d 4q 5q 4q 5q gnd gnd clkclk74ls27374ls37374ls374通常输出需要锁存,输入需要缓冲。通常输出需要锁存,输入需要缓冲。但并非一成不变但并非一成不变 74ls373 74ls373 (带输出允许控制的(带输出允许控制的8d8d触发器触发器) 74ls244 ,74ls245 74ls244 ,74ls245 (三态输出(三态输出8 8位总线缓冲驱动器)位总线缓冲驱动器)简单简单i/oi/o扩展:扩展:( (缓冲缓冲/

15、 /驱动器扩展驱动器扩展) )p.148p.148单片机单片机锁存器锁存器74ls273p0.0-p0.7p2.0p2.1rdwrd0 d0 d7d7d0 d0 d7d7d0 d0 d7d7d0 d0 d7d7缓冲器缓冲器74ls2441111clkclkce1ce1ce2ce2输出输出输入输入或门或门或门或门输入指令:输入指令: mov dptrmov dptr,#0200h#0200h movx a movx a, dptrdptr输出指令:输出指令: mov dptrmov dptr,#0100h#0100h movx dptr movx dptr, a a串行口常用工作方式串行口常用工

16、作方式0 0扩展出并行扩展出并行i/oi/o口口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单片机单片机74ls16474ls164是是串入并出串入并出芯片;芯片;74ls16574ls165是是并入串出并入串出芯

17、片芯片可编程并行可编程并行i/oi/o接口芯片接口芯片82558255扩展扩展i/oi/o:二、二、并行接口的扩展并行接口的扩展(8255) p.(8255) p.pa3 pa4pa3 pa4pa2 pa5pa2 pa5pa1 pa6pa1 pa6pa0 pa7pa0 pa7rd wrrd wrgndgnd d0d0a1a1 d1 d1a0a0 d2d2pc7pc7 d3 d3pc6pc6 d4 d4pc5pc5 d5 d5pc4pc4 d6 d6pc0pc0 d7 d78255pc2pc2 pb7pb7pc3pc3 pb6pb6pb0pb0 pb5pb5pb1pb1 pb4pb4pb2pb2

18、 pb3pb3cscs resetresetpc1pc1 vccvcc82558255的基本特性与引脚:的基本特性与引脚: papa,pbpb,pc pc 三个三个8 8位位i/oi/o口口; ;40 pin pc pc口分口分高高4 4位位和和低低4 4位。位。高高4 4位位 可与可与papa口合为一组口合为一组(a(a组组),),低低4 4 位可与位可与pbpb口合为一组口合为一组(b(b组组) )。 3 3种工作方式。种工作方式。内部有内部有4 4个寄存个寄存 器,器,由由a1,a0a1,a0与与读读, ,写写信号选择。信号选择。 片选片选低有效低有效, ,复位复位高有效。高有效。 pc

19、 pc可按位置位可按位置位/ /复位。复位。 4040条引脚,条引脚,dipdip封装。须注意封装。须注意 vccvcc与与gndgnd引脚的位置。引脚的位置。 一个一个8 8位的数据口位的数据口d0d0d7d7。82558255的的pa,pb,pcpa,pb,pc口的三种工作方式:口的三种工作方式: p.p. 三种方式中只有三种方式中只有方式方式 0 0 用得最多用得最多且且最容易使用最容易使用。 基本基本输入输入/ /输出方式输出方式 就是就是简单简单输入输入/ /输出方式。输出方式。 方式方式1 1 和方式和方式2 2 使用复杂使用复杂。因单片机能。因单片机能自动提供自动提供 各种应答信

20、号各种应答信号,这两种方式已,这两种方式已很难见到再有人用很难见到再有人用 于单片机系统。于单片机系统。工作方式工作方式a口口b口口c口口0基本输入基本输入/输出输出输出锁存输出锁存, 输入三态输入三态基本输入基本输入/输出输出输出锁存输出锁存, 输入三态输入三态基本输入基本输入/输出输出输出锁存输出锁存, 输入三态输入三态1应答式输入应答式输入/输出输出输入输入/输出均锁存输出均锁存应答式输入应答式输入/输出输出输入输入/输出均锁存输出均锁存提供提供a口和口和b口的口的应答信号应答信号2应答式应答式双向双向输入输入/输出输出输入输入/输出均锁存输出均锁存b口无此方式口无此方式提供提供a口的口

21、的应答信号应答信号pa,pb,pcpa,pb,pc口的三种工作方式示意图:口的三种工作方式示意图:p.p. rd wr rd wr d7d7d0d0 a1 a0a1 a0地址地址总线总线控制总线控制总线数据数据总线总线a ab bc cpa0-7pa0-7pb0-7pb0-7pc4-7pc4-7pc0-3pc0-3a a组组b b组组82558255的方式的方式 0 0a ab bpa0-7pa0-7pb0-7pb0-7控制线控制线控制线控制线a a组组b b组组a ab bpa0-7pa0-7pb0-7pb0-7控制线控制线i/oi/oa a组组b b组组7 6 5 4 3 2 1 07 6

22、 5 4 3 2 1 0pcpc口口82558255的方式的方式 1 182558255的方式的方式 2 27 6 5 4 3 2 1 07 6 5 4 3 2 1 0pcpc口口82558255的端口选择表:的端口选择表: p.p.注意注意:对对pa,pb,pcpa,pb,pc三个口的任何读三个口的任何读/ /写操作,就是对写操作,就是对 pa,pb,pcpa,pb,pc这三个寄存器进行这三个寄存器进行i/oi/o操作操作. . 第第4 4个寄存器是个寄存器是控制字寄存器控制字寄存器( (命令字寄存器命令字寄存器) )a1a0a1a0rdrdwrwrcscs操操 作作 说说 明明0 00 0

23、0 01 10 0cpucpu读取读取papa口数据口数据从从82558255的的i/oi/o口口读有效读有效0 10 1cpucpu读取读取pbpb口数据口数据1 01 0cpucpu读取读取pcpc口数据口数据0 00 01 10 0cpucpu向向papa口口输出输出数据数据向向82558255的的i/oi/o口口写有效写有效0 10 1cpucpu向向pbpb口口输出输出数据数据1 01 0cpucpu向向pcpc口口输出输出数据数据1 11 11 10 00 0对对控制寄存器控制寄存器写控制字写控制字初始化初始化82558255时必须做的工作时必须做的工作x x x x x xx x

24、1 1没有选中,没有选中,82558255不工作不工作82558255对系统总线呈对系统总线呈高阻态高阻态1 11 10 01 10 0非法状态非法状态控制寄存器只能写不能读控制寄存器只能写不能读x xx x1 11 10 0非法状态非法状态82558255对系统总线呈对系统总线呈高阻态高阻态 d7 d6 d5 d4 d3 d2 d1 d0 特征位特征位=1=1a a组组方式选择方式选择0 00 0:方式:方式 0 00 10 1:方式:方式 1 11 x1 x:方式:方式 2 2a a 口口b b 口口c cl l 口口c ch h 口口b b组组方方式选择式选择=0=0,方式,方式0 0=

25、1=1,方式,方式1 1=0=0,输出,输出=1=1,输入,输入=0=0,输出,输出=1=1,输入,输入=0=0,输出,输出=1=1,输入,输入=0=0,输出,输出=1=1,输入,输入82558255控制寄存器控制寄存器 p.p. 接受控制命令接受控制命令, ,告诉告诉82558255以何种方式工作。以何种方式工作。其地址其地址是:是:a1,a0 = 11a1,a0 = 11。它可以接受两条命令,第一条。它可以接受两条命令,第一条命令叫命令叫“方式控制字方式控制字”,方式控制字格式如下:,方式控制字格式如下:a 组组b 组组注意:注意:对同一控制寄存器可写对同一控制寄存器可写两种两种命令命令,

26、 ,故必须在命令本身用故必须在命令本身用“特征位特征位”加以区别。第加以区别。第一一条命令的条命令的特征位特征位=1=1第第二二条命令的条命令的特征位特征位= =0 0 d7 d6 d5 d4 d3 d2 d1 d0 特征位特征位=0=0dont care bitsdont care bits选中的选中的位将要位将要输出的输出的状态状态= 0= 0,清,清0 0= 1= 1,置,置1 182558255控制寄存器控制寄存器 可以接受的第可以接受的第2 2条命令是条命令是: :可以对可以对pcpc口口按位按位进行进行“置置1 1”和和“清清0 0”操作操作。具体命令格式如下具体命令格式如下: :

27、(地址同样是:(地址同样是:a1,a0 = 11a1,a0 = 11)例如:设例如:设82558255的控制寄存器在的控制寄存器在系统中的地址是系统中的地址是: 0003h,: 0003h,要将要将pc5pc5引脚置引脚置 1 1, , 可用如下指令可用如下指令完成:完成: mov dptrmov dptr,#0003h#0003h mov a mov a, # #0bh0bh movx dptr movx dptr,a ad3d3d2d2d1d1选中选中pcxpcx引脚引脚0 00 00 0pc0pc00 00 01 1pc1pc10 01 10 0pc2pc20 01 11 1pc3pc3

28、1 10 00 0pc4pc41 10 01 1pc5pc51 11 10 0pc6pc61 11 11 1pc7pc7在在p.174p.174有这几句有这几句82558255与单片机的连接:与单片机的连接: ( (参见参见p.)p.)at89c51at89c518255825574ls37374ls373p0.0-p0.7p0.0-p0.7alealep2.7p2.78d8dq0q0q1q1cscsresetreseta0a0a1a1d0-d7d0-d7g geaeaoeoeresetresetrdrdwrwrwrwrrdrd+5vpapcpbp2.7p2.7接片选接片选/cs/cs端端,8

29、255,8255的的( (一组一组) )寄存器地址寄存器地址可以是可以是:papa口口: :7000h 7000h pbpb口口: :7001h 7001h pcpc口口: :7002h 7002h 命令口命令口: :7003h7003h82558255的编程应用的编程应用例:初始化例:初始化a a口口,b,b口口,c,c口为基本口为基本i/oi/o输出口输出口mov dptr,#mov dptr,#7003h7003h ; ;指向控制字寄存器指向控制字寄存器mov a, #mov a, #80h80h ; ; a,b,ca,b,c口均为输出口口均为输出口movx dptr, a ;movx

30、dptr, a ;装入装入按照按照82558255控制寄存器控制寄存器方式控制字格式写命令:方式控制字格式写命令: d7 d6 d5 d4 d3 d2 d1 d0 特征位特征位=1=1a a组组方式选择方式选择0 00 0:方式:方式 0 00 10 1:方式:方式 1 11 x1 x:方式:方式 2 2a a 口口b b 口口c cl l 口口c ch h 口口b b组组方方式选择式选择= =0 0,方式,方式0 0=1=1,方式,方式1 1= =0 0,输出,输出=1=1,输入,输入= =0 0,输出,输出=1=1,输入,输入= =0 0,输出,输出=1=1,输入,输入= =0 0,输出,

31、输出=1=1,输入,输入: :8255 a.b.c8255 a.b.c口输出方波口输出方波 org 0100horg 0100hwavewave: mov dptr,#0ffdbh ;8255 : mov dptr,#0ffdbh ;8255 控制字控制字寄存器地址寄存器地址(11(110 01101101111) ) mov a, # mov a, #8080h ;h ;初始化初始化a,b,ca,b,c口为基本输出口口为基本输出口 movx movx dptr, adptr, a mov a, # mov a, #5555h ;8h ;8位高位高/ /低电平相间输出低电平相间输出reptre

32、pt: mov dptr,#0ffd: mov dptr,#0ffd8 8h ;8255 h ;8255 a a口口地址地址 (11(110 01101100000) ) movx movx dptr, adptr, a inc dptr ;8255 inc dptr ;8255 b b口口地址(地址(0ffd0ffd9 9h h)(11(110 01101100101) ) movx movx dptr, adptr, a inc dptr ;8255 inc dptr ;8255 c c口口地址(地址(0ffd0ffda ah h)(11(110 01101101010) ) movx m

33、ovx dptr, a dptr, a lcall dely1s ; lcall dely1s ;延时延时 cpl a ;cpl a ;取反取反 sjmp sjmp retpretp ; ;跳到跳到reptrept去循环去循环82558255硬件参考实验硬件参考实验: :8255 a.b.c8255 a.b.c口输出方波口输出方波pa0输出输出pa1输出输出pa2输出输出pa3输出输出pa4输出输出pa5输出输出pa6输出输出pa7输出输出pb0输出输出pc0输出输出8255 pa8255 pa口控制口控制pbpb口口 org 0770horg 0770hse17: mov dptr,#0ff

34、dbh se17: mov dptr,#0ffdbh ;8255 ;8255 控制字控制字寄存器地址寄存器地址(11(110 01101101111) ) mov a,#90h mov a,#90h ; ;初始化初始化a a口口为基本输入口为基本输入口, , b b口口为基本输出口为基本输出口 ( (1 100001 100000 00)0) movx dptr,a ;8255 movx dptr,a ;8255初始化初始化lo32: mov dptr,#0ffd8h lo32: mov dptr,#0ffd8h ;8255 ;8255 a a口口地址地址 (11(110 0110110000

35、0) ) movx a,dptr ;pa movx a,dptr ;pa口状态取出口状态取出 inc dptr ; inc dptr ; b b口口地址(地址(0ffd9h)0ffd9h)(1 11 10 01101100101) movx dptr,a ;movx dptr,a ;送送pbpb口口 sjmp lo32sjmp lo32 end end82558255与单片机的连接:与单片机的连接: ( (参见参见p.)p.)at89c51at89c518255825574ls37374ls373p0.0-p0.7p0.0-p0.7aleale8d8dq0q0q1q1q q7 7cscsres

36、etreseta0a0a1a1d0-d7d0-d7g geaeaoeoeresetresetrdrdwrwrwrwrrdrd+5vpaq7q7接片选接片选/cs/cs端端,8255,8255的的( (一组一组) )寄存器地址寄存器地址可以是可以是:papa口口: :0000h 0000h pbpb口口: :0001h 0001h pcpc口口: :0002h 0002h 命令口命令口: :0003h0003h也可以也可以是:是:00007c7ch,00h,007d7dh,00h,007e7eh,00h,007f7fh hpc7pc7pc0pc0db0db7busystb微型打微型打印机印机db

37、0db7busystb 微型打微型打 印机印机 例例2 8255 作为连接打印机的接口作为连接打印机的接口 p. org 0100horg 0100h mov r0, # mov r0, #7f7fh ;8255 h ;8255 控制字控制字寄存器寄存器地址地址( (0 011111111111111) ) mov a, # mov a, #8888h ;h ;初始化初始化a a口输出口输出,c,c口低出高入口低出高入 movx r0, a ;movx r0, a ;送入方式字送入方式字 ( (1 100000 01 100000 0) ) mov r1,#20h ;r1 mov r1,#20

38、h ;r1指向数据区指向数据区首址首址 mov r2,#32h mov r2,#32h ;送数据块;送数据块长度长度(50(50个单元)个单元)lp: mov r0,#lp: mov r0,#7e7eh ;h ;指向指向c c口口 ( (0 011111111111010) )loop: movx a ,r0 ;loop: movx a ,r0 ;读入读入c c口信息口信息 jb acc.7 ,loop ;jb acc.7 ,loop ;若若busy=1,busy=1,继续查询继续查询 mov r0,#mov r0,#7c7ch ;h ;指向指向a a口口 ( (0 0111111111100

39、00) ) mov a mov a ,r1 ;r1 ;取取ramram数据数据 movx r0,amovx r0,a inc r1 ; inc r1 ;数据指针加数据指针加1 1 movx r0 ,# movx r0 ,#7f7fh ; 8255 h ; 8255 控制字控制字寄存器寄存器地址地址 mov a ,#00h ;cmov a ,#00h ;c口置位口置位/ /复位命令字复位命令字(pc(pc0 0= =0 0) ) mov r0, a ; mov r0, a ;产生产生stbstb的下降沿的下降沿 ( (0 00000000000000 0) ) mov a mov a ,01h

40、; c01h ; c口置位口置位/ /复位命令字复位命令字(pc(pc0 0= =1 1) ) movx r0, a ; movx r0, a ;产生产生stbstb的上升沿的上升沿 ( (0 00000000000001 1) ) djnz r2, lp ; djnz r2, lp ;未完,则反复未完,则反复 显示器接口扩展三、三、ledled显示器的扩展显示器的扩展( (结构结构) p.160) p.160ledled数码管的数码管的结构结构:共阳与共阴共阳与共阴 单片机系统扩展单片机系统扩展ledled数码管时数码管时多用多用共阳共阳ledled: :共阳数码管每个段笔画是用低电平共阳数

41、码管每个段笔画是用低电平(“0”)(“0”)点亮的点亮的, ,要求驱要求驱动功率很小;而共阴数码管段笔画是用高电平动功率很小;而共阴数码管段笔画是用高电平(“0”)(“0”)点亮点亮的,要求驱动功率较大。的,要求驱动功率较大。 通常每个段笔画要串一个通常每个段笔画要串一个数百欧姆数百欧姆的的降压电阻降压电阻。公共公共阳阳极极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高电平点亮高电

42、平点亮低电平点亮低电平点亮接高电平接高电平接地接地ledled数码管的数码管的译码译码:硬件译码与软件译码硬件译码与软件译码硬件译码特点硬件译码特点: :采用专用的译码采用专用的译码/ /驱动器件驱动器件, ,驱动功驱动功率较大率较大; ;增加了硬件的开销增加了硬件的开销; ;软件软件编程简单编程简单; ;字型固字型固定定( (比如比如: :只有七段只有七段, ,只可译数字只可译数字, ,字型不好看字型不好看) )。共阴共阴leda ab bc cd dg ge ef fh hg gf fe ed dc cb b a ad dc cb ba ap1.3p1.3p1.2p1.2p1.1p1.1p

43、1.0p1.0cd4511cd4511at89c51at89c5174ls48/cd451174ls48/cd4511是是“bcdbcd码码七段七段共阴共阴译码译码/ /驱动驱动”ic; ic; 74ls4774ls47是是“bcdbcd码码七段七段共阳共阳译码译码/ /驱动驱动”icic三、三、ledled显示器的扩展显示器的扩展( (结构结构) p.) p.三、三、ledled显示器的扩展显示器的扩展( (软件译码软件译码) )ledled数码管的译码:数码管的译码:软件译码软件译码软件译码特点软件译码特点: : 不用专用的译码不用专用的译码/ /驱动器件,驱动驱动器件,驱动功率较小功率较

44、小;不增不增加加硬件的开销;软件硬件的开销;软件编程较复杂编程较复杂;字型;字型灵活灵活( (比如:比如:有八段,只可译多种字符,字型好看有八段,只可译多种字符,字型好看) )。共阳共阳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硬件译码特点硬件译码特点: : 采用专用译码采用专用译码/ /驱动器件,驱动器件,驱动功率较大;增加了硬驱动功率较大;增加了硬件的开销;软件编程简单;件的开销;软件编程简单;字型固定字型固定(

45、 (比如:只有七比如:只有七段,只可译数字,字型不段,只可译数字,字型不好看好看) )。ledled数码管的软件译码数码管的软件译码八段八段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高电平点亮高电平点亮低电平点亮低电平点亮接高电平接高电平接地接地字形字形0

46、123456789黑黑共阳共阳0c00f90a40b09992820f880900ff共阴共阴3f065b4f666d7d077f6f00三、三、ledled显示器的扩展显示器的扩展( (显示方式显示方式) p.) p.ledled数码管的数码管的显示方式显示方式:静态与动态静态与动态动态显示特点动态显示特点: : 有闪烁有闪烁,用,用元器件少元器件少,占占i/oi/o线少线少,必须扫描必须扫描,花费花费cpucpu时间时间,编程复杂。编程复杂。( (有多个有多个ledled时尤为突出)时尤为突出)静态显示特点静态显示特点: : 无闪烁无闪烁,用,用元器件多元器件多,占占i/oi/o线多线多,

47、无须扫描无须扫描,节省节省cpucpu时间时间,编程简单。编程简单。静态显示静态显示: : 各数码管在显示过程中各数码管在显示过程中持续持续得到送显信号,与各数码管接口得到送显信号,与各数码管接口的的i/oi/o口线口线是是专用专用的。的。动态显示动态显示: : (p.190 )p.190 )各数码管在显示过程中各数码管在显示过程中轮流轮流得到送显信号,与各数码管接口得到送显信号,与各数码管接口的的i/oi/o口线口线是是共用共用的。的。a ab bclkclkh g f e d c b ah g f e d c b aclrclra ab bclkclkclrclra ab bclkclkc

48、lrclr+5v+5vvccvcctxdtxdrxdrxd 89c51单片机单片机74ls16474ls16474ls164h 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数码管数码管ledled数码管数码管静态静态显示举例显示举例( (学习串行口已见过学习串行口已见过) )有几个有几个ledled就要几个就要几个74ls16474ls164,但只要数据不变,但只要数据不变,送一次就保持住了,且不闪烁,编程十分简单。送一次就保持住了,且不闪烁,编程十分简单。要求:要求:根据上图编写通过串行口和根据

49、上图编写通过串行口和74ls16474ls164驱动驱动共共 阳阳ledled数码管数码管查表显示的子程序。查表显示的子程序。条件:条件:系统有系统有6 6个个ledled数码管数码管, ,待显数据待显数据(00h(00h09h)09h)已放在已放在35h35h30h30h单元中单元中( (分别对应分别对应十万位十万位个位个位) ),dsplydsply:mov dptr, #table :mov dptr, #table ; ;共阳共阳ledled数码管译码数码管译码表首址表首址 mov r0mov r0,#30h #30h ; ;待显数据缓冲区的待显数据缓冲区的个位个位地址地址redore

50、do:mov amov a, r0 r0 ; ;通过通过r0r0实现寄存器实现寄存器间接寻址间接寻址 movc a, a+dptr movc a, 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 r0cjne r0,#36h#36h

51、,redo redo ; ;判断判断是否发完是否发完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,90hdb 92h, 82h, 0f8h, 80h,90hledled数码管数码管动态动态显示举例显示举例 ( (图见图见p.)p.)p1.5 p1.5 p1.4p1.4p1.3p1.3p1.2p1.2p1.2p1.2p1.0p1.0p0.7 p0.7 p

52、0.6 p0.6 p0.5 p0.5 p0.4 p0.4 p0.3 p0.3 p0.2 p0.2 p0.1 p0.1 p0.0p0.07406 oc7406 oc门门 x 3x 3上拉上拉电阻电阻1414+5v+5vat89c51工作原理工作原理:从从p0p0口送段代码口送段代码,p1,p1口送位选信号口送位选信号。段码虽同时。段码虽同时到达到达 6 6个个ledled,但,但一次仅一个一次仅一个ledled被选中被选中。利用。利用“视觉暂视觉暂留留”,每送一个字符并选中相应位线,延时一会儿,每送一个字符并选中相应位线,延时一会儿, ,再送再送/ /选下一个选下一个循环扫描循环扫描即可。即可。

53、共阴共阴 数码管数码管位位选选线线段段代代码码p1.5 p1.5 p1.4p1.4p1.3p1.3p1.2p1.2p1.2p1.2p1.0p1.0p0.7 p0.7 p0.6 p0.6 p0.5 p0.5 p0.4 p0.4 p0.3 p0.3 p0.2 p0.2 p0.1 p0.1 p0.0p0.07406 oc7406 oc门门 x 3x 3+5v+5vat89c51位位选选线线段段代代码码要求要求:此处为此处为共阴共阴数码管,数码管,p0p0口送段代码,口送段代码,p1p1口送位选信号。口送位选信号。通过查表实现动态显示。通过查表实现动态显示。条件条件:待显数据待显数据(00h(00h0

54、9h)09h)已放在已放在: : 7fh7fh7ah7ah单元中单元中( (分别对分别对应应十万位十万位个位个位) )说明说明:由于用了由于用了反相驱动器反相驱动器74067406,要用共阳译码表。,要用共阳译码表。共阴共阴 数码管数码管上拉上拉电阻电阻14147406 oc7406 oc门门 x 3x 3+5v+5v(7fh) (7eh) (7dh) (7ch) (7bh) (7ah)十万十万 万位万位 千位千位 百位百位 十位十位 个位个位数据缓冲区数据缓冲区 / / 显示缓冲区显示缓冲区p0p0口口送段送段代码,代码,p1p1口口送位选送位选信号。信号。待显数据待显数据已经放在已经放在: : 7fh7fh7ah7ah单元单元( (分别分别对应对应十万十万位位个位个位) )使用共阳使用共阳译码表译码表。; ;显示显示2 2位数的程序位数的程序displaydisplay:mov dptr, :mov dptr, #tab #tab ; ;数码管译码数码管译码表首址表首址 mov amov a,7ah 7ah ; ;待显缓冲区待显缓冲区个位个位地址地址 movc a, a+dptrmovc a, a+dptr ; ;查表查表 mov p0, a mov p0, a ; ;

温馨提示

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

评论

0/150

提交评论