q第六章单片机系统扩展_第1页
q第六章单片机系统扩展_第2页
q第六章单片机系统扩展_第3页
q第六章单片机系统扩展_第4页
q第六章单片机系统扩展_第5页
免费预览已结束,剩余77页可下载查看

付费下载

下载本文档

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

文档简介

1、第六章 MCS51单片机系统扩展微机原理及应用1.扩展方法; 2.存储器扩展3.I/O口扩展;4.键盘接口5.显示接口; 6.D/A、A/D接口6.1总线扩展方法MCS51单片机通过总线的方式进行系统扩展。总线:连接系统中各个扩展部件的一组公共信号线。分为数据总线、地址总线和控制总线。6.1.1 总线的构成1)数据总线:8位 P0.0P0.7:D0D72)地址总线:16位 P0.0P0.7, P2.0P2.7: A0A153)控制总线:3 PSEN, RD,WRMCS8051P0.0P0.7锁存器ALEP2.0P2.7D0D7A0A7A8A15PSENRDWR总线扩展图:锁存器:74HC373

2、,8282,74HC573总线扩展实例:6.1.2地址编码技术1)单片机给以总线方式扩展的接口芯片分配不同的地址,并以该地址访问接口芯片。2)一般接口芯片有片选输入端,当片选有效时,芯片的数据线与数据总线连通,无效时则处于高阻态。即,芯片必须是三态的。3)单片机访问时,一次只能访问一个接口芯片,或一个地址的读或写。1)线选法:用高位地址线直接作为接口芯片的片选信号。芯片 A15 A14 A13 A12 A11 A0 地址IC1: 0 1 1 X X X 0 1 1 0 0 0 6000H 0 1 1 1 1 1 7FFFHIC2: 1 0 1 X X X A000BFFFHIC3: 1 1 0

3、 X X X C000DFFFH8051IC1IC2IC3P2.7P2.6P2.52)译码法:用译码器对高位地址线进行译码后作为片选信号。译码器:2-4译码器: 74LS1393-8译码器: 74LS1384-16译码器:74LS1543种译码器实例:片选 A15 A14 A13 A12 A11 A0 地址 Y0 0 0 0 X X X 00001FFFHY1 0 0 1 X X X 20003FFFHY2 0 1 0 X X X 40005FFFH . Y7 1 1 1 X X X E000FFFFH6.1.3 扩展方法 接口芯片的数据线与数据总线相连,地址线与地址总线或片选信号线相连,控制

4、线与控制总线相连。6.1.4 访问方法(软件)1)以PSEN作为控制线: 与片外ROM统一编址读: MOVC A,A+DPTR MOVC A,A+PC2)以RD,WR作为控制线: 与片外RAM统一编址读: MOVX A,DPTR MOVX A,Ri写: MOVX DPTR,A MOVX Ri,A6.2 存储器扩展程序存储器: 0000HFFFFH, 64K(含内部ROM)数据存储器: 0000HFFFFH,64K(单独)6.2.1程序存储器型号1)ROM2)EPROM:电可编程只读存储器 2716: 16Kbit, 2Kbyte 2732: 32Kbit 2764: 64Kbit 27128:

5、 27256:64Kbyte引脚图:3)EEPROM:电擦除电编程ROM 2817: 2Kbyte 2864: 64Kbit W27C512:64Kbyte 台湾华邦 W27C4096:512Kbyte6.2.2 程序存储器扩展实例:2732EPROM扩展图6.2.3 数据存储器型号采用静态RAM(Static RAM)6116: 16Kbit6264: 64Kbit or 8Kbyte62256: 32Kbyte628128: 128Kbyte芯片引脚:6.2.4 外部RAM扩展:6.3 外部I/O口的扩展1)使用可编程I/O口 8255A:可编程并行接口 8155:可编程I/O,RAM,计

6、数器 8243: I/O扩展 8279: 可编程键盘/显示接口 8251: 可编程通讯接口 8253:可编程定时计数器2)使用TTL芯片6.3.1 8155扩展接口1)资源 3个I/O口(PA,PB,PC),1个14位定时计数器,256字节RAM.2)引脚数据地址线:AD0AD7I/O口:PA0PA7, PB0PB7, PC0PC5定时器:TIMER IN, TIMER OUT控制线: CE- 片选信号 RD- 读 WR- 写 IO/M-访问IO或存储器 ALE- 地址锁存 RESET- 复位3)8155工作原理I/O口端口选择(IO/M=1) AD2 AD1 AD0 端口 0 0 0 命令/

7、状态寄存器 0 0 1 PA口 0 1 0 PB口 0 1 1 PC口 1 0 0 计数器低8位 1 0 1 计数器高6位 RAM地址:IO/M=1 AD0AD7:地址, ALE锁存命令字 D0: PA口方式 0-输入,1-输出 D1: PB口方式 0-输入,1-输出 D3D2: PC口方式 D4: PA口中断允许 0-中断禁止,1-允许 D5: PB口中断允许 0-中断禁止,1-允许 D7D6: 计数器操作 00-空操作 01-停止计数 10-计满后停止计数 11-开始计数D7D6D5D4D3D2D1D0状态字:INTR- 中断请求INTE- 中断允许BF- 缓冲器满标志TIMER- 定时中

8、断D7D6D5D4D3D2D1D0/TIMERINTEBBBFINTEBINTEAABFINTRA4)与单片机接口例1:将PA口的输入从PB口输出地址计算: A15A14A11A10A9A8A7.A2A1A0PA口: 0 1 0 0 1 PB口: 0 1 0 1 0 PC口: 0 1 0 1 1 命令: 0 1 0 0 0 因此:PA口:7F01H PB口: 7F02H PC口: 7F03H 命令口:7F00H命令字初始化 MOV DPTR,#7F00H MOV A, #02H MOVX DPTR, A读PA,写PB MOV DPTR,#7F01H MOVX A,DPTR MOV DPTR,#

9、7F02H MOVX DPTR,A例2: 将立即数41H写入8155RAM的20H单元。计算地址: A15A14.A9A8A7A6A5A4A3A2A1A0 0 0 0 0 1 0 0 0 0 0 因此20H单元在系统中的地址:7E20H传送 MOV A, #41H MOV DPTR,#7E20H MOVX DPTR,A6.3.2 8255A扩展接口 可扩展3个8位并行I/O口。1)引脚:40PIN数据线:D0D7地址线:A0A1片选线:CS控制线:RD, WRI/O口: PA0PA7,PB0PB7 PC0PC7复位:RESET电源:VCC,GND2)工作方式:方式0:基本输入输出方式1:选通输

10、入输出方式2:双向传送3)地址选择 A1 A0 端口 0 0 PA口 0 1 PB口 1 0 PC口 1 1 控制寄存器4)控制寄存器 D7 D6 D5 D4 D3 D2 D1 D0A组:D7:置方式标志=1D6D5: 方式选择 00-方式0 01-方式1 10方式2D4:端口A I/O选择 0-输出 1-输入D3:端口C(PC.4-PC.7) I/O选择 0-输出 1-输入B组: D2:方式选择 0-方式0 1-方式1 D1:端口B I/O选择 0-输出 1-输入 D0:端口C(PC.0-PC.3) I/O选择 0-输出 1-输入5)与单片机的接口PA口地址:FF7CHPB口地址:FF7DH

11、PC口地址:FF7EH控制器地址:FF7FH A15 A7 A6 A5 A4 A3 A2 A1 A0PA: 1 0 1 1 1 1 1 0 0PB: 1 0 1 1 1 1 1 0 1PC: 1 0 1 1 1 1 1 1 0R: 1 0 1 1 1 1 1 1 1应用:将8255工作在方式0,A口作为输入,B,C作为输出。 MOV A,#90H MOV DPTR,#0FF7FH MOVX DPTR,A6.4 键盘接口1. 接口形式1)独立式键盘: 每个键单独地接I/O线。特点:接口简单,但需较 多的I/O线。识别:电平变化OFFONOFF2)行列式键盘:每个键跨接在行线和列线上。特点:占用较

12、少的I/O线,编程较复杂P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.72.去抖动按键波形:软件去抖动:延时10-20ms进行再次扫描。前抖动后3.例:用A记录按键次数。流程图:检测按键去抖动A加1等待键释放初始化P10=0?延时10msP10=0?A+P10=1?nynyny初始化P10=0?延时10msP10=0?A+P10=1?nynynyLOOP:WAIT: MOV A,#0LOOP: JB P1.0, LOOP LCALL DELAY JB P1.0, LOOP INC AWAIT: JNB P1.0, WAIT SJMP LOOP6.5 LED显示接口1. LED显

13、示器的引脚2.结构(类型):由8个发光二极管组成。共阴数码管共阳数码管AH:段选, COM: 位选3.显示码hgfedcba001111110000011001110001字符01239EF共阴共阳3FHC0H06HF9H5BHA4H4FHB0H6FH90H79H86H71H8EH4. 接口方式1)静态显示方式: 位选信号固定为高电平(共阳数码管)或低电平(共阴数码管),段选信号接I/O线。特点:接口简单;容易编程;亮度较高; 需要较多的I/O线,功耗高。 8*n2)动态显示方式 将所有数码管的段选线并联后连接I/O线,各数码管的位选单独连接到I/O线。原理:动态轮流显示,输出数码管的显示码,

14、然后输出位选信号,使得该数码管位选有效(共阴数码管为0,共阳数码管为1),而其他数码管无效;延时几毫秒,关闭位选,显示下一个数字。特点:较少的I/O线,8+n 编程较复杂,占用较多的CPU时间5. 接口实例:键盘:4*6行列键盘,共23键显示:6 LED共阴数码管,动态显示芯片地址:U1(74LS273): 8D触发器,OUTBIT:FE02HU2(74LS245):8总线收发器, KEYIN:FE00HU3(74LS74):双D触发器,CLK164:FE04HU4(74LS74): DAT164:FE06H键盘工作原理:行线:扫描输入线,通过74LS245扩展, 地址为0FE00H列线:扫描

15、输出线,通过74LS273扩展 地址为0FE02H显示工作原理:位选:通过74LS273扩展 地址0FE02H段选:通过74LS164扩展 数据线和时钟信号由74LS74锁存,数据线地址0FE06H,时钟地址为FE04H初始化关闭显示取显示码送显示码送位选变量修改显示结束RETr0=#LED,r1=6,r2=#20hLOOP:DJNZ R1, LOOP关闭位选移位传送显示子程序:功能: INEQU0FE00H ;键扫描输入 OUTBITEQU0FE02H ;键LED扫描输出 CLK164EQU0FE04H ;164时钟地址 DAT164EQU0FE06H ;164数据地址 LEDBUF EQU

16、30H ;显示缓冲区;ORG0000HLJMPSTART LEDMAP:DB3FH,06H,5BH,4FH,66H, DB6DH,7DH,07H,7FH,6FH定义显示码;-DELAY:MOVR7,#0 ;延时子程序,入口:R6DLOOP:DJNZR7,DLOOP DJNZR6,DLOOP RET;-DisplayLED: ;显示子程序 mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示Loop: mov dptr, #OUTBIT mov a, #0 movx dptr, a ; 关所有八段管-送显示码 mov a

17、, r0 ; 取显示码 mov dptr,#LEDMAP movc a, a+dptr mov B, #8 ; 送164DLP: rlc a mov r3, a mov acc.0, c mov dptr, #DAT164 movx dptr, a ; 送1数据位 mov dptr, #CLK164 setb acc.0 movx dptr, a clr acc.0 movx dptr, a ; 送时钟脉冲 mov a, r3 djnz B, DLP ; 循环8次-送位选信号 mov dptr, #OUTBIT mov a, r2 movx dptr, a ; 显示一位八段管 mov r6,

18、#1 ; 延时 lcall Delay mov a, r2 ; 显示下一位 rr a mov r2, a inc r0 djnz r1, Loop ; 显示6次 ret主程序:START: MOV SP,#40H MOV LEDBUF,#0 MOV LEDBUF+1,#1 MOV LEDBUF+2,#2 MOV LEDBUF+3,#3 MOV LEDBUF+4,#4 MOV LEDBUF+5,#5NEXT: NOP LCALL DISPLAYLED SJMP NEXT6.6 A/D接口ADC0809: 8位,8通道,逐次逼近式A/D转换器,转换时间100us1.引脚模拟量输入: IN0-IN7

19、数字量输出: 2-12-8(D0-D7)控制信号: START:启动 ALE: 地址锁存 OE: 输出控制 ADD-AC:地址信号其他: EOC:转换结束,REF:参考电压 CLK:时钟信号2. 输入通道选择CBA通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN73. 接口设计4. 通道地址计算通道 A15 A14A2 A1 A0 地址 IN0 0 1 0 0 0 7FF8H IN1 0 1 0 0 1 7FF9H IN7 0 1 1 1 1 7FFFH软件: BUFEQU20HMAIN:MOVR1,#BUF MOVDPTR,#7FF8H MO

20、VR7,#08HLOOP:MOVX DPTR,A;启动A/D MOVR6,#0AHDELAY:NOP NOP DJNZR6,DELAY ;延时 MOVX A,DPTR;读取结果 MOVR1,A ;保存数据 INCDPTR ;下一路 INCR1 DJNZR7,LOOP6.7 D/A转换器D/A转换器主要技术指标1)分辨率:最小输出电压与最大输出电压之比。如:8位A/D 1/255, 10位A/D 1/10232)建立时间3)输出方式:电流,电压4)输入代码:二进制,BCD,串行DAC08321.特点:8位分辨率,总线接口,单电源2.引脚:数据输入:DI0DI7电流输出:IOUT1,IOUT2 IOUT1+IOUT2=VREF/15K IOUT1 =VREF/15K*D/256控制:CS片选 WR1输入寄存器写 ILE输入锁存信号 WR2DAC寄存器写 XFER数据传送信号3.内部结构 4. 接口P2.75. 软件设计 CS0832 EQU 7FF

温馨提示

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

最新文档

评论

0/150

提交评论