已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四讲: 接口与系统扩展(1),本讲重点: 片外ram与片外rom扩展(参考范例应用); 简单i/o扩展 (选用锁存器与驱动器); 扩展8255,8155 (初始化,电路及应用); led显示接口(动态与静态,硬件译码与 软件译码,电路与编程应用).,ram,rom存储器扩展,单片机本身资源不足以满足应用需求的情况下,必须借助外部器件对系统进行扩展,主要介绍: 并口、ram、rom、键盘、led、dac、adc 等接口的扩展与应用, 其中涉及到 6264(标准ram)、2764(标准eprom)、74ls373(8d锁存器)、74ls244、74ls245(总线驱动器)、8255(可编程并行i/o接口)、8155(可编程ram/io/ctc接口)、 dac0832 、adc0809 等芯片。,第七章 接口芯片与系统扩展,以at89c51/52应用为例进行介绍 at89c51/52 与 mcs-51系列的8031/8032在性能、引脚、指令等方面完全兼容,此 外,内部还集成了4k/8k 的flash rom。,程序存储器 eprom 的扩展:,单片机内部没有rom,或虽有rom但容量太小时,必须扩展外部程序存储器方能工作。最常用的rom器件是eprom。 如: 2764(8k)/27128(16k) /27256(32k)/27040(512k),一、存储器的扩展(eprom) p.140,vpp vcc,a12 pgm,a7 nc,a6 a8,a5 a9,a4 a11,a3 oe,a2 a10,a1 ce,a0 d7,d0 d6,d1 d5,d2 d4,gnd d3,2764,vpp vcc,a12 pgm,a7 a13,a6 a8,a5 a9,a4 a11,a3 oe,a2 a10,a1 ce,a0 d7,d0 d6,d1 d5,d2 d4,gnd d3,27128,vpp vcc,a12 a14,a7 a13,a6 a8,a5 a9,a4 a11,a3 oe,a2 a10,a1 ce,a0 d7,d0 d6,d1 d5,d2 d4,gnd d3,27256,程序存储器 2764 的扩展:,单片机,eprom 2764,锁存器74ls373,p0.0-p0.7,ale,psen,p2.0-p2.4,8d,8q,oe,a8-a12,a0-a7,d0-d7,g,ea,oe,ce,51单片机能提供16条地址线,可扩展64k字节的rom。可以用一片eprom,也可以用多片eprom (如书上p115116图所示)。,2764与单片机的连接图,2764 的工作方式,擦除:紫外线照射芯片的窗口1520分钟即可擦除干净 。每个存储单元内容为ffh。,pgm :编程脉冲输入线,脉冲宽度为50ms的负脉冲 ce : 片选信号 oe : 允许信号,数据存储器 ram 的扩展:,有时需要扩展外部数据存储器ram方能工作(如数 据采集系统数据量较大,需要专设 ram或 flash ram)。最常用的 ram器件是sram。 如:6116(2k)/6264(8k)/62128(16k)/628128(128k) ,一、存储器的扩展(ram),a7 vcc,a6 a8,a5 a9,a4 we,a3 oe,a2 a10,a1 ce,a0 d7,d0 d6,d1 d5,d2 d4,gnd d3,6116,vpp vcc,a12 we,a7 ce2,a6 a8,a5 a9,a4 a11,a3 oe,a2 a10,a1 ce1,a0 d7,d0 d6,d1 d5,d2 d4,gnd d3,6264,vpp vcc,a12 we,a7 a13,a6 a8,a5 a9,a4 a11,a3 oe,a2 a10,a1 ce,a0 d7,d0 d6,d1 d5,d2 d4,gnd d3,62128,数据存储器 6264 的扩展:,89c51单片机,sram6264,锁存器74ls373,p0.0-p0.7,ale,p2.7,p2.0-p2.4,8d,8q,oe,a8-a12,a0-a7,d0-d7,g,ea,oe,ce2,51单片机能提供16条地址线,可扩展64k字节的ram。可以用一片芯片,也可以用多片ram(见学习指导参考书上p122127图所示)。,rd,wr,we,ce1,+5v,写,维持,读,oe,ce,we,d0 d7,vil,vih,vih,vih,vil,vil,vil,任意,任意,数据输出,数据输入,高阻态,6116 6264 62128 的工作方式,mcs51对外部数据存储器的访问指令有四条 movx a ,ri movx ri ,a movx a ,dptr movx dptr ,a,简单i/o,8255并口扩展,在单片机的i/o口线不够用的情况下,可以借助外部器件对i/o口进行扩展。可资选用的器件很多,方案也有多种。,简单i/o扩展:(锁存器扩展),二、并行接口的扩展(简单i/o),clr vcc 1q 8q 1d 8d 2d 7d 2q 7q 3q 6q 3d 6d 4d 5d 4q 5q gnd clk,oe vcc 1q 8q 1d 8d 2d 7d 2q 7q 3q 6q 3d 6d 4d 5d 4q 5q gnd g,oe vcc 1q 8q 1d 8d 2d 7d 2q 7q 3q 6q 3d 6d 4d 5d 4q 5q gnd clk,74ls273,74ls373,74ls374,通常输出需要锁存,输入需要缓冲。但并非一成不变,74ls373 (带输出允许控制的8d触发器) 74ls244 ,74ls245 (三态输出8位总线缓冲驱动器),简单i/o扩展:(缓冲/驱动器扩展)p.148,单片机,锁存器74ls273,p0.0-p0.7,p2.0,p2.1,rd,wr,d0 d7,d0 d7,d0 d7,d0 d7,缓冲器74ls244,1,1,clk,ce1ce2,输出,输入,或门,或门,输入指令: mov dptr,#0200h movx a, dptr 输出指令: mov dptr,#0100h movx dptr, a,串行口常用工作方式0扩展出并行i/o口,ab,clk,h g f e d c b a,clr,ab,clk,clr,ab,clk,clr,+5v,74ls164,74ls164,74ls164,h g f e d c b a,h g f e d c b a,+5v,共阳led 数码管,vcc,txd,rxd,51单片机,74ls164是串入并出芯片;74ls165是并入串出芯片,可编程并行i/o接口芯片8255扩展i/o:,二、并行接口的扩展(8255) p.,pa3 pa4,pa2 pa5,pa1 pa6,pa0 pa7,rd wr,gnd d0,a1 d1,a0 d2,pc7 d3,pc6 d4,pc5 d5,pc4 d6,pc0 d7,8255,pc2 pb7,pc3 pb6,pb0 pb5,pb1 pb4,pb2 pb3,cs reset,pc1 vcc,8255的基本特性与引脚: pa,pb,pc 三个8位i/o口;,40 pin, pc口分高4位和低4位。高4位 可与pa口合为一组(a组),低4 位可与pb口合为一组(b组)。, 3种工作方式。内部有4个寄存 器,由a1,a0与读,写信号选择。 片选低有效,复位高有效。, pc可按位置位/复位。, 40条引脚,dip封装。须注意 vcc与gnd引脚的位置。,一个8位的数据口d0d7。,8255的pa,pb,pc口的三种工作方式: p., 三种方式中只有方式 0 用得最多且最容易使用。 基本输入/输出方式 就是简单输入/输出方式。, 方式1 和方式2 使用复杂。因单片机能自动提供 各种应答信号,这两种方式已很难见到再有人用 于单片机系统。,pa,pb,pc口的三种工作方式示意图:p.,rd wr d7d0 a1 a0,地址总线,控制总线,数据总线,a,b,c,pa0-7,pb0-7,pc4-7,pc0-3,a组,b组,8255的方式 0,a,b,pa0-7,pb0-7,控制线,控制线,a组,b组,a,b,pa0-7,pb0-7,控制线,i/o,a组,b组,7 6 5 4 3 2 1 0,pc口,8255的方式 1,8255的方式 2,7 6 5 4 3 2 1 0,pc口,8255的端口选择表: p.,注意:对pa,pb,pc三个口的任何读/写操作,就是对 pa,pb,pc这三个寄存器进行i/o操作. 第4个寄存器是控制字寄存器(命令字寄存器),d7 d6 d5 d4 d3 d2 d1 d0,特征位 =1,a组方式选择,0 0:方式 0 0 1:方式 1 1 x:方式 2,a 口,b 口,cl 口,ch 口,b组方式选择,=0,方式0 =1,方式1,=0,输出 =1,输入,=0,输出 =1,输入,=0,输出 =1,输入,=0,输出 =1,输入,8255控制寄存器 p. 接受控制命令,告诉8255以何种方式工作。其地址是:a1,a0 = 11。它可以接受两条命令,第一条 命令叫“方式控制字”,方式控制字格式如下:,a 组,b 组,注意:对同一控制寄存器可写两种命令,故必须在命令本身用“特征位”加以区别。第一条命令的特征位=1 第二条命令的特征位=0,d7 d6 d5 d4 d3 d2 d1 d0,特征位 =0,dont care bits,选中的位将要输出的状态,= 0,清0 = 1,置1,8255控制寄存器 可以接受的第2条命令是: 可以对pc口按位进行“置1”和“清0”操作。 具体命令格式如下:(地址同样是:a1,a0 = 11),例如:设8255的控制寄存器在系统中的地址是: 0003h,要将pc5引脚置 1, 可用如下指令完成: mov dptr,#0003h mov a, #0bh movx dptr,a,在p.174有这几句,8255与单片机的连接: (参见p.),at89c51,8255,74ls373,p0.0-p0.7,ale,p2.7,8d,q0q1,cs,reset,a0a1,d0-d7,g,ea,oe,reset,rd,wr,wr,rd,+5v,pa,pc,pb,p2.7接片选/cs端,8255的(一组)寄存器地址可以是:,pa口:7000h pb口:7001h pc口:7002h 命令口:7003h,8255的编程应用,例:初始化a口,b口,c口为基本i/o输出口,mov dptr,#7003h ;指向控制字寄存器 mov a, #80h ; a,b,c口均为输出口 movx dptr, a ;装入,按照8255控制寄存器方式控制字格式写命令:,d7 d6 d5 d4 d3 d2 d1 d0,特征位 =1,a组方式选择,0 0:方式 0 0 1:方式 1 1 x:方式 2,a 口,b 口,cl 口,ch 口,b组方式选择,=0,方式0 =1,方式1,=0,输出 =1,输入,=0,输出 =1,输入,=0,输出 =1,输入,=0,输出 =1,输入,:8255 a.b.c口输出方波,org 0100h wave: mov dptr,#0ffdbh ;8255 控制字寄存器地址(11011011) mov a, #80h ;初始化a,b,c口为基本输出口 movx dptr, a mov a, #55h ;8位高/低电平相间输出 rept: mov dptr,#0ffd8h ;8255 a口地址 (11011000) movx dptr, a inc dptr ;8255 b口地址(0ffd9h)(11011001) movx dptr, a inc dptr ;8255 c口地址(0ffdah)(11011010) movx dptr, a lcall dely1s ;延时 cpl a ;取反 sjmp retp ;跳到rept去循环,8255硬件参考实验:8255 a.b.c口输出方波,pa0输出,pa1输出,pa2输出,pa3输出,pa4输出,pa5输出,pa6输出,pa7输出,pb0输出,pc0输出,8255 pa口控制pb口 org 0770h se17: mov dptr,#0ffdbh ;8255 控制字寄存器地址(11011011) mov a,#90h ;初始化a口为基本输入口, b口为基本输出口 (10010000) movx dptr,a ;8255初始化 lo32: mov dptr,#0ffd8h ;8255 a口地址 (11011000) movx a,dptr ;pa口状态取出 inc dptr ; b口地址(0ffd9h)(11011001) movx dptr,a ;送pb口 sjmp lo32 end,8255与单片机的连接: (参见p.),at89c51,8255,74ls373,p0.0-p0.7,ale,8d,q0q1q7,cs,reset,a0a1,d0-d7,g,ea,oe,reset,rd,wr,wr,rd,+5v,pa,q7接片选/cs端,8255的(一组)寄存器地址可以是:,pa口:0000h pb口:0001h pc口:0002h 命令口:0003h 也可以是:007ch,007dh,007eh,007fh,pc7pc0,db0db7 busy stb 微型打 印机,db0db7 busy stb 微型打 印机,例2 8255 作为连接打印机的接口 p.,org 0100h mov r0, #7fh ;8255 控制字寄存器地址(01111111) mov a, #88h ;初始化a口输出,c口低出高入 movx r0, a ;送入方式字 (10001000) mov r1,#20h ;r1指向数据区首址 mov r2,#32h ;送数据块长度(50个单元) lp: mov r0,#7eh ;指向c口 (01111110) loop: movx a ,r0 ;读入c口信息 jb acc.7 ,loop ;若busy=1,继续查询 mov r0,#7ch ;指向a口 (01111100) mov a ,r1 ;取ram数据 movx r0,a inc r1 ;数据指针加1 movx r0 ,#7fh ; 8255 控制字寄存器地址 mov a ,#00h ;c口置位/复位命令字(pc0=0) mov r0, a ;产生stb的下降沿 (00000000) mov a ,01h ; c口置位/复位命令字(pc0=1) movx r0, a ;产生stb的上升沿 (00000001) djnz r2, lp ;未完,则反复,显示器接口扩展,三、led显示器的扩展(结构) p.160,led数码管的结构:共阳与共阴, 单片机系统扩展led数码管时多用共阳led: 共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。 通常每个段笔画要串一个数百欧姆的降压电阻。,公共阳极,h g f e d c b a,a,b,c,d,g,e,f,h,公共阴极,h g f e d c b a,a,b,c,d,g,e,f,h,h g f a,h g f a,高电平点亮,低电平点亮,接高电平,接地,led数码管的译码:硬件译码与软件译码,硬件译码特点:采用专用的译码/驱动器件,驱动功 率较大;增加了硬件的开销;软件编程简单;字型固 定(比如:只有七段,只可译数字,字型不好看)。,共阴led,a,b,c,d,g,e,f,h,gfedcb a,dcba,p1.3p1.2p1.1p1.0,cd4511,at89c51,74ls48/cd4511是“bcd码七段共阴译码/驱动”ic; 74ls47是“bcd码七段共阳译码/驱动”ic,三、led显示器的扩展(结构) p.,三、led显示器的扩展(软件译码),led数码管的译码:软件译码,软件译码特点: 不用专用的译码/驱动器件,驱动功率较小;不增加硬件的开销;软件编程较复杂;字型灵活(比如:有八段,只可译多种字符,字型好看)。,共阳led,a,b,c,d,g,e,f,h,p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7,+5v,at89c51,硬件译码特点: 采用专用译码/驱动器件,驱动功率较大;增加了硬件的开销;软件编程简单;字型固定(比如:只有七段,只可译数字,字型不好看)。,led数码管的软件译码,八段led数码管段代码编码表 () (连线不同可有多种表):,公共阳极,h g f e d c b a,a,b,c,d,g,e,f,h,公共阴极,h g f e d c b a,a,b,c,d,g,e,f,h,h g f a,h g f a,高电平点亮,低电平点亮,接高电平,接地,三、led显示器的扩展(显示方式) p.,led数码管的显示方式:静态与动态,动态显示特点: 有闪烁,用元器件少,占i/o线少,必须扫描,花费cpu时间,编程复杂。(有多个led时尤为突出),静态显示特点: 无闪烁,用元器件多,占i/o线多,无须扫描,节省cpu时间,编程简单。,静态显示: 各数码管在显示过程中持续得到送显信号,与各数码管接口的i/o口线是专用的。,动态显示: (p.190 ) 各数码管在显示过程中轮流得到送显信号,与各数码管接口的i/o口线是共用的。,ab,clk,h g f e d c b a,clr,ab,clk,clr,ab,clk,clr,+5v,vcc,txd,rxd,89c51单片机,74ls164,74ls164,74ls164,h g f e d c b a,h g f e d c b a,+5v,共阳led数码管,led数码管静态显示举例(学习串行口已见过),有几个led就要几个74ls164,但只要数据不变, 送一次就保持住了,且不闪烁,编程十分简单。,要求:根据上图编写通过串行口和74ls164驱动共 阳led数码管查表显示的子程序。 条件:系统有6个led数码管,待显数据(00h09h)已放在35h30h单元中(分别对应十万位个位),,dsply:mov dptr, #table ;共阳led数码管译码表首址 mov r0,#30h ;待显数据缓冲区的个位地址 redo:mov a, r0 ;通过r0实现寄存器间接寻址 movc a, a+dptr ;查表 mov sbuf, a ;经串行口发送到74ls164 jnb ti, $ ;查询送完一个字节的第8位? clr ti ;为下一字节发送作准备 inc r0 ;r0指向下一个数据缓冲单元 cjne r0,#36h,redo ;判断是否发完6个数? ret ;发完6个数就返回 table:db 0c0h,0f9h,0a4h,0b0h,99h ;共阳led译码表 db 92h, 82h, 0f8h, 80h,90h,led数码管动态显示举例 (图见p.),p1.5 p1.4p1.3p1.2p1.2p1.0,p0.7 p0.6 p0.5 p0.4 p0.3 p0.2 p0.1 p0.0,7406 oc门 x 3,上拉电阻14,+5v,at89c51,工作原理:从p0口送段代码,p1口送位选信号。段码虽同时到达 6个led,但一次仅一个led被选中。利用“视觉暂留”,每送一个字符并选中相应位线,延时一会儿,再送/选下一个循环扫描即可。,共阴 数码管,位选线,段代码,p1.5 p1.4p1.3p1.2p1.2p1.0,p0.7 p0.6 p0.5 p0.4 p0.3 p0.2 p0.1 p0.0,7406 oc门 x 3,+5v,at89c51,位选线,段代码,要求:此处为共阴数码管,p0口送段代码,p1口送位选信号。通过查表实现动态显示。 条件:待显数据(00h09h)已放在: 7fh7ah单元中(分别对应十万位个位) 说明:由于用了反相驱动器7406,要用共阳译码表。,共阴 数码管,上拉电阻14,7406 oc门 x 3,+5v,(7fh) (7eh) (7dh) (7ch) (7bh) (7ah) 十万 万位 千位 百位 十位 个位,数据缓冲区 / 显示缓冲区,p0口送段代码,p1口送位选信号。 待显数据已经放在: 7fh7ah单元(分别对应十万位个位) 使用共阳译码表。,;显示2位数的程序 display:mov dptr, #tab ;数码管译码表首址 mov a,7ah ;待显缓冲区个位地址 movc a, a+dptr ;查表 m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- BVL3572S-生命科学试剂-MCE
- Broquinaldol-生命科学试剂-MCE
- Boc-PEG2-I-生命科学试剂-MCE
- 保伞工岗前生产安全技能考核试卷含答案
- 矿用电机车机械装配工岗前面试考核试卷含答案
- 钟表设计师诚信品质测试考核试卷含答案
- 钢铁生产燃气防护工操作规程水平考核试卷含答案
- 2026年现代殡葬服务营销与骨灰安葬业务咨询模拟考题
- 人造板制胶工安全专项强化考核试卷含答案
- 2026年节约粮食反对浪费全员试题
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库及参考答案详解(预热题)
- 2026年危化品经营单位安全管理人员考试题库(附答案)
- 2026湖北宜昌市五峰土家族自治县“招才兴业”事业单位人才引进招聘29人考试备考题库及答案解析
- 慢性心力衰竭合并糖尿病综合管理研究
- 电梯维保员人员奖惩制度
- 幼儿园三会一课责任制度
- 2026新疆哈密市中心医院招聘91人笔试备考试题及答案解析
- 计量校准行业分析报告
- 林木良种繁育基地建设手册
- 2026年GCP(药物临床试验质量管理规范)相关知识考试题与答案
- 商砼培训课件
评论
0/150
提交评论