《【精品】MCS-51单片机的扩展与应用精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】MCS-51单片机的扩展与应用精品ppt课件.ppt(121页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MCS-51单片机的扩展与应用第一节 程序存储器的扩展51单片机存储器的特点:单片机存储器的特点:程序存储器和数据存储器分开可扩展空间各为64K内部有4K程序存储器和128bytes数据存储器常用程序存储器芯片:INTEL 2716 2K 2732 4K 2764 8K 27128 16K 27256 32K 27512 64KD7D0:数据输出A12A0:地址CE:片选信号OE:允许输出控制信号PGM:编程脉冲输入VPP:编程电压输入2764引脚D7D0:数据输入端Q7Q0;数据输出端LE:锁存允许信号(高)OE:允许输出信号(低)当:LE=1,Di=Qi当:LE=0,Qi保持74LS138
2、译码器引脚数据锁存器74LS3733-Line To 8-Line Decoders/DemultiplexersE3E2E1CBAY7Y6Y5Y4Y3Y2Y1Y01 0 0 0 0 0 1 1 1 1 1 1 1 01 0 0 0 0 1 1 1 1 1 1 1 0 11 0 0 0 1 0 1 1 1 1 1 0 1 11 0 0 0 1 1 1 1 1 1 0 1 1 11 0 0 1 0 0 1 1 1 0 1 1 1 11 0 0 1 0 1 1 1 0 1 1 1 1 11 0 0 1 1 0 1 0 1 1 1 1 1 11 0 0 1 1 1 0 1 1 1 1 1 1 1 1
3、 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 1 1 1 1 1 1 1 174LS138译码器真值表地址锁存器P0ALEP2PSENA15A8A7A0OECEEA8031EPROMD0D7程序存储器扩展及工作时序LEOE8051访问外部数据存储器时序访问程序存储器步骤:输出当前PC值:P0输出PCL,P2输出PCH。ALE下降沿锁存PCL(74LS373)。PSEN有效,指令由程序存储器输出。CPU由P0口读入指令。CPU取指令的过程。8031扩展2764电路8031扩展多片2764U3的地址:0000H1FFFHU4的地址:2000H3FFFH第二节 数据存储器的
4、扩展常用芯片:6116 6264 62256地址锁存器P0ALEP2A15A8A7A0OECEEA8031RAMD0D7RDWRWE数据存储器的扩展示意图LEOE数据存储器读/写周期访问数据存储器步骤:读,写指令(MOVX)。输出当前DPTR的值:P0输出DPL,P2输出DPH。ALE下降沿锁存DPL(74LS373)。RD或WR有效,数据由数据存储器输出。CPU由P0口读入数据。读/写结束D0D7:8位数据线A0-A10:11位地址线CE:片选信号(低)OE:读WE:写6116引脚HM6116 2K8 静态-RAM 8031扩展的61168031扩展2764和6116第三节 MCS51单片机
5、I/O口扩展51单片机单片机I/O口的特点:口的特点:P0:I/O口、输入指令、输入/输出数据、输出低八位地址。P1:I/O口 P2:I/O口、高八位地址。P3:I/O口、第二功能。I/O口扩展的目的:口扩展的目的:增加I/O口的数量。匹配外设的工作速度。一、并行 输入/输出接口电路Intel 8255 8255为Intel公司的可编程I/O接口芯片,具有三个8位I/O口,三种工作方式。1、8255的引脚D7D0:三态双向数据线PA7PA0:A口输入输出线PB7PB0:B口输入输出线PC7PC0:C口输入输出线CS:片选信号RD:读信号WR:写信号RESET:复位信号A1、A0:I/O口地址线
6、2、8255的结构端口A、B、C控制电路总线数据缓冲器读/写逻辑控制电路8255的结构框图A组B组A1A000A口01B口10C口11控制字寄存器8255 IO口的地址8255的工作状态A1 A0 RD WR CS 操 作 输入操作 0 0 0 1 0 A 口 数据总线 0 1 0 1 0 B 口 数据总线 1 0 0 1 0 C 口 数据总线 输出操作 0 0 1 0 0 数据总线 A口 0 1 1 0 0 数据总线 B口 1 0 1 0 0 数据总线 C口 1 1 1 0 0 数据总线 控制字寄存器 断开状态 1 数据总线为三态 1 1 0 1 0 非法状态 1 1 0 数据总线为三态 3
7、、8255的工作方式工作方式0:基本输入输出工作方式工作方式1:选通工作方式工作方式2:双向传送工作方式工作方式0:基本输入输出工作方式工作方式1:选通工作方式工作方式2:双向传送工作方式D1D6D7D0D2D3D4D5端口B:1=IN;0=OUT 端口C下半部:1=IN;0=OUTB组工作方式:0=方式0;1=方式1端口A:1=IN;0=OUT 端口C上半部:1=IN;0=OUTA组方式选择:00=方式0;01=方式1;1=方式2置方式标志位:1=有效(1)工作方式控制字寄存器D1D6D7D0D2D3D4D51=置位;0=复位置位/复位控制位0011010201131100010100765
8、40C口111100=置位/复位寄存器置位/复位控制标志位 C口按位操作控制字C口位地址 设8255选择为A、B、C口均为基本输入输出工作方式,A口为输入,B、C口为输出。00100010D1D6D7D0D2D3D4D5工作方式控制字寄存器工作方式控制字寄存器的内容为90H 设8255选择为A、B、C口均为基本输入输出工作方式,A口为输出,B、C口为输入。将C口的PC0置1,C口按位操作控制字寄存器的内容应为何值。00010000D1D6D7D0D2D3D4D5C口按位操作控制字寄存器 将C口的PC7置1,C口按位操作控制字寄存器的内容应为何值。将C口的PC3清0,C口按位操作控制字寄存器的内
9、容应为何值。(2)工作方式工作方式0:基本输入输出工作方式三个8位双向I/O口或2个8为和2个4位I/O口;各个口均可设为输入或输出;数据输出时锁存、输入时不锁存。方式0输入时序Data Valid From RD方式0输出时序Data Valid to WR High工作方式工作方式1:选通工作方式A、B、C分为2组A组、B组。A组:A口和C口上部B组:B口和C口下部三个端口分为2组:A组合B组每组包括一个8位I/O口和 4位控制/状态口每个口都可以设为输入或输出输入和输出均有锁存功能STBBIBFBPB7-0INTE BPC0PC1PC28INTRB111端口B输入端口B方式1RDPA7-
10、0INTE APC6,7PC3PC5PC428STBAIBFAINTRA01I/O11端口A输入端口A方式11=输入0=输出PC6,7RD方式方式1输入输入A口方式1输入B口方式1输入PC4PC2OBFBACKBPB7-0INTE BPC0PC2PC18INTRBPA7-0INTE APC4,5PC3PC6PC728OBFAACKAINTRA01I/O11端口A输出端口A方式11=输入0=输出PC4,5WRA口方式1输出011端口B输出端口B方式1WRB口方式1输出方式方式1输出输出方式1输入时序方式1输出时序WR1/0111/01/0端口A方式11=输入0=输出PC2-0输入/输出RD1=输
11、入0=输出B口输入/输出1=方式10=方式0B组工作方式PA7-0INTE 2PC2-0PC5PC6PC738ACKAINTRAIBFAPC4INTE 1PC3STBAOBFA工作方式2:双向数据传送工作方式(A组)方式2输入/输出时序8031与8255的接口电路8255的地址:低8位地址A1A6A7A0A2A3A4A5A1A0=00 A口01 B口10 C口11 控制字寄存器0A9A14A15A8A10A11A12A13高8位地址A口-7FFCH B口-7FFDHC口-7FFEH 控制字寄存器-7FFFH 设8255选择为A、B、C口均为基本输入输出工作方式,A口为输入,B、C口为输出。00
12、100010D1D6D7D0D2D3D4D5工作方式控制字寄存器8255按上述设置初始化:MOV DPTR,#7FFFHMOV A,#90HMOVX DPTR,A(1)工作方式控制字寄存器二、并行 输入/输出接口电路Intel 8155 8155为Intel公司的可编程I/O接口芯片具有:二个8位I/O口和一个6位(PC)I/O口256字节静态RAM,一个14位定时/计数器二种工作方式。1、8155的引脚AD7AD0:三态双向数据线PA7PA0:A口输入输出线PB7PB0:B口输入输出线PC5PC0:C口输入输出线CS:片选信号RD:读信号WR:写信号ALE:地址锁存信号IO/M:I/O口、R
13、AM选择信号RESET:复位信号TIMERIN:定时器输入TIMEROUT:定时器输出2、8155的结构A、B、C口256字节RAM一个14位定时/计数器控制电路256 8 静态存储器定时器ABCWRRDALERESETCE IO/MAD0-7 TIMEINTIMEOUTPC0-5PB0-7PA0-7VCCVSS控制电路8155框图ADDRESS LATCH256BYTERAMCOUNTER LENGTH REGISTERTIMER/COUNTERCOMMAND STATUS REGISTERCONTROL CIRCUITPCPAPBIO/M CSWR RD RESETALEPA07PC05P
14、B07VCCVSSTIMER OUTTIMER IN886AD078155框框图图AD7-AD0A7A6A5A4A3A2A1A0000命令/状态寄存器001A口(PA0-7)010B口(PB0-7)011C口(PC0-5)100定时器低8位101定时器高6位及操作法寄 存 器8155命令寄存器、I/O口、定时器的地址3、8155工作方式8155的工作方式:基本输入输出工作方式选通输入输出工作方式PBTM1TM2PAPC1PC2IEAIEBPA0:A口定义为输入方式,1:A口定义为输出方式PB0:B口定义为输入方式,1:B口定义为输出方式PC2,PC100ALT1:A口、口定义为基本输入输出,口
15、为输入方式11ALT:A口、口定义为基本输入输出,口为输出方式01ALT:A口选通输入输出,口基本输入输出,C口:10ALT:A口、口定义为选通输入输出,口为控制状态TM2 TM100空操作,不影响计数器操作。01停止定时器操作10若定时器正在计数,长度减为1时停止计数11置定时器方式与长度后立即启动计数,若正在计数,溢出按IEA0:禁止A口中断,1:允许A口中断IEB0:禁止B口中断,1:允许B口中断8155命令寄存器命令寄存器PC0-AINTRPC1-ABFPC2-ASTBPC0-AINTR,PC1-ABF,PC2-ASTBPC3-BINTR,PC4-BBF,PC5-BSTBINTAA口中
16、断请求标志位ABFA口缓冲器满标志位INTEAA口允许标志位INTBB口中断请求标志BBFB口缓冲器满标志位INTEBB口允许标志位TIMER 定时/计时器中断标志位BFATIMERINTARINTEAINTRBBFBINTEBD1D6D7D0D2D3D4D58155的状态寄存器的状态寄存器T1T6T7T0T2T3T4T5D1D6D7D0D2D3D4D5T8M1M2T8T9T9T10T11D1D6D7D0D2D3D4D5单脉冲01110M2连续脉冲1连续方波0单方波0定时器输出波形方式M1定时计数器:定时计数器工作方式4、8155定时计数器5、8031与8155的接口电路8031与8155的接
17、口电路P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0A2A1A0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0CEIO/M11111A2A1A001111111 1访问I/O口(无关位置1)P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0A7A6A5A4A3A2A1A0P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0CEIO/MA7A6A5A4A3A2A1A001111110 0访问存储器(无关位置1)命令/状态寄存器7FF8HA口7FF9HB口7FFAHC口7FFBH定时器低8位7FFCH定时器高8位7FFDHRAM的地址7
18、E00H7EFFH图中:8155I/O口、寄存器、RAM的地址举例:设8155的A、B口为基本I/O方式,A、C口为输入,B口为输出,定时器输出连续方波,为输入脉冲的24分频。初始化程序为:MOV DPTR,#7FFCH ;定时器低8位MOV A,#18H ;24MOVX DPTR,AINC DPTR ;定时器高8位MOV A,#40H ;连续方波MOVX DPTR,AMOV DPTR,#7FF8H ;命令/状态寄存器MOV A,#0C2H ;B-O,立即启动MOVX DPTR,ATIMER INTIMER OUT连续脉冲。连续方波。单脉冲。单方波。TIMER=412341234作业:1.设计
19、8051与8255的接口电路。并将 A口、B口、C口初始化为基本输入输出工作方式,A口、B口输出,C口输入。已知:8255的A口地址为:FEFCH B口地址为:FEFDH C口地址为:FEFEH 寄存器地址为:FEFFH2.设计8051与8155的接口电路。并将 A口、B口、C口初始化为基本输入输出工作方式,A口、B口输出,C口输入。已知:8155的寄存器地址为:7FF8H A口地址为:7FF9H B口地址为:7FFAH C口地址为:7FFBH RAM的地址为:6F00H 6FFFH3已知下图,将8255选择为A、B、C口均为基本输入输出工作方式,A、C口为输入,B口为输出。分析8255的地址
20、(IO口,寄存器地址),编写初始化程序。4已知下图,将8155的A、B口为基本I/O方式,A、C口为输出,B口为输入,定时器输出连续方波,为输入脉冲的24分频。分析8155的地址(RAM,IO口,寄存器地址,编写初始化程序。第四节 键盘与数码管显示电路键盘:输入设备数码管显示器:输出设备一、键盘电路开始按下完全松开键盘抖动现象按键基本电路1、基本电路编码键盘 键盘非编码键盘程序扫描式中断扫描式2、非编码键盘的结构独立式按键结构行列式键盘电路3、8031的键盘接口电路通过8155扩展的44键盘 根据键盘的工作过程,8155 A口、B口和C口应为基本输入/输出工作方式,A口、(B口)输出,C口输入
21、,则8155命令寄存器的内容为:03H 命令寄存器:7FF8H A口:7FF9H B口:7FFAH C口:7FFBH开始有键闭合吗?延时12ms求闭合键的键号闭合键释放否?键号送A返回延时6ms有键闭合吗?键盘子程序流程图YESNOYESYESNONO开始置行,列初值1行有键按下?R4 求新列号4列扫描完了?2行有键按下?3行有键按下?4行有键按下?求键号返回求键号程序框图YYYYYNNNNN扫描码左移一位;查是否有键闭合子程序 KS1:MOV DPTR,#7F01H ;A口地址 MOV A,#00H MOVX DPTR,A ;A口0 INC DPTR INC DPTR ;指向C口 MOVX
22、A,DPTR ;读C口 CPL A ANL A,#0FH RET程序:KEY1:ACALL KS1 ;判断有无健闭合 JNZ LK1 ;有健闭合(A)0),转去抖动 ACALL TIM ;无健闭合,延时6ms AJMP KEY1LK1:ACALL TIM ;延时6ms ACALL TIM ;延时6ms ACALL KS1 ;再判断有无健闭合 JNZ LK2 ;有健闭合(A)0),求健码 ACALL TIM ;延时6ms AJMP KEY1 ;无健闭合,返回LK2:MOV R2,#0FEH ;R2扫描码 MOV R4,#00H ;R4列号LK3:MOV DPTR,#7F01H ;DPTRA口地址
23、 MOV A,R2 ;MOVX DPTR,A ;A口扫描码 INC DPTR INC DPTR ;指向C口 MOVX A,DPTR ;读C口 JB ACC.0,L1 ;PC0=1转,第一行无键闭合 MOV A,#00H ;PC0=0,第一行有键闭合 AJMP LK ;转去求键号 L1:JB ACC.1,L2 ;PC1=1转,第2行无键闭合 MOV A,#04H ;置行号 AJMP LKL2:JB ACC.2,L3 ;PC1=1转,第3行无键闭合 MOV A,#08H ;置行号 AJMP LKL3:JB ACC.3,NEXT ;PC1=1转下列,第4行无键闭合 MOV A,#0CH ;置行号LK
24、:ADD A,R4 ;键号=行号+列号 PUSH ACC ;保存在堆栈中LK4:ACALL TIM ACALL KS1 JNZ LK4 ;等待键释放 POP ACC NS:RET ;返回NEXT:INC R4 ;形成新的列号,指向下一列 MOV A,R2 ;A口扫描码 JNB ACC.3,NS ;判断4列扫描是否完毕 RL A ;形成新的扫描码 MOV R2,A AJMP LK3 ;转去扫描下一列;查是否有键闭合子程序 KS1:MOV DPTR,#7F01H MOV A,#00H MOVX DPTR,A INC DPTR INC DPTR MOVX A,DPTR CPL A ANL A,#0F
25、H RET数码管引脚数码管示意图数码管电路二、数码管显示电路abdpgcdefabgcdefhgfedcbaD7D6D5D4D3D2D1D000000110显示1显示代码:06H8031扩展的6位数码管电路显示子程序置显示缓冲区首地址和显示位代码查表求显示代码并送8155B口延时2ms(R0)+1指向下一个显示数据六位显示完否?R3(位选码)左移一位返回显示子程序流程图YESNO DIR:MOV R0,#79H ;置显示缓冲区受地址 MOV R3,#01H ;置位选码 MOV A,R3 LOOP:MOV DPTR,#7F01H ;A口地址 MOVX DPTR,A INC DPTR ;B口地址
26、MOV A,R0 ;取显示数据 ADD A,#12H ;表首的的地址 MOVC A,A+PC ;转换为显示码程序代码:JNB PSW.5,DIR1 ;F0=1,显示小数点 SETB ACC.7 DIR1:MOVX DPTR,A ;从B口输出显示码 ACALL DLT ;延时 INC R0 ;下一个显示数据 MOV A,R3 ;取位选码 JB ACC.5,LOOP1 ;六位显示完毕?RL A ;新的位选码 MOV R3,A AJMP LOOPLOOP1:RET;显示代码表 DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39
27、H,5EH,79H,71H延时程序:DLT:MOV R7,#04H DLT1:MOV R6,#0FFH DLT2:DJNZ R6,DLT2 DJNZ R7,DLT1 RET8031扩展的键盘和数码管显示电路第五节 D/A转换接口电路D/A转换是将数字量转换为模拟量的过程。常用芯片:0832 DAC12101、DAC08320832的引脚图DI7DI0:数字量输入端CS:片选信号(低)ILE:数据锁存允许信号WR1:第一写信号(低)WR2:第二写信号(低)XFER:数据传送控制信号(低)IOUT1:电流输出端1IOUT2:电流输出端2RFB:反馈电阻端VREF:基准电压DGND:数字地AGND:
28、模拟地8位输入寄存器8位DAC寄存器8位D/A转换器DI7DI0ILECSWR1WR2XFERVREFIOUT2IOUT1RFBAGNDVCCDGND0832的结构LE2=WR2XFERLE1=WR1CSILERfb0832的基本输出电路DAC0832VOUTIOUT1IOUT2RFBRfbVREF2、0832的工作状态DAC0832VOUTIOUT1IOUT2RFBCSWR1ILEXFERWR2VCCD7D0地址译码器二级缓冲器连接方式VREF单级缓冲器连接方式DAC0832VOUTIOUT1IOUT2RFBCSWR1ILEXFERWR2VCCD7D0地址译码器WRVREFDAC0832VO
29、UTIOUT1IOUT2RFBCSWR1ILEXFERWR2VCCD7D0直通连接方式VREF3、8031于0832的接口电路8031于0832的接口电路MOVX DPTR,A图中0832的地址输入寄存器:7FFFHDAC寄存器:7FFFH示范程序:MOV DPTR,#7FFFH ;置0832地址MOV A,#80H ;置被转换的数字量MOVX DPTR,A;第六节 A/D转换接口电路A/D转换是将模拟量转换位数字量的过程。常用芯片:0809 AD16741、0809的引脚IN7IN0:8路模拟量输入端D7D0:8路数字量输出端START:A/D启动信号OE:允许输出控制ALE:地址锁存允许信
30、号(高)EOC:转换结束信号,(高)CLK:时钟信号输入端A、B、C:转换通道地址VREF(+):参考电源正端VREF(-):参考电源负 端VCC:电源正端GND:地8位模拟量开关8位A/D转换器3态输出锁存器IN0IN7AEOCCLKGNDVCC地址锁存器D0D7STALEVREF(+)VREF(-)OE3CB80809的结构S.A.R.:逐次逼近寄存器ADC0809的结构2、8031于0809的接口电路MOV DPTR,AMOV A,DPTRSTART信号和OE信号与8031的输出信号的逻辑关系START=ALE=WR+P2.0OE=RD+P2.0START10us100usP0WRALE
31、EOC启动转换时序MOVX DPTR,A清除输出锁存器的内容启动转换RDP0OE数据根据图ADC0809的地址为 启动AD转换地址:FEFFH ADC输出寄存器的地址:FEFFH读结果时序MOV A,DPTR ORG 0000H ADT:MOV A,#00H MOV DPTR,#0FEFFH MOVX DPTR,A ;启动转换 ACALL DLT10 ;调用延时10us程序WAIT:JB P3.3,WAIT ;查询EOC MOVX A,DPTR ;取转换结果 MOV 30H,A END程序举例:本章回顾:一、MCS51单片机存储器的扩展 1、程序存储器的扩展程序存储器用于存放代码与常数。只读存
32、储器ROMPROMEPROMEEROMFLASH常用器件:相关器件访问程序存储时序:取指令的过程。口:输出口:输出程序存储与的接口电路数据总线地址总线控制总线引脚的处理访问数据存储时序:读写信号有效,信号无效。口:输出口:输出、数据存储器的扩展常用器件:数据存储与的接口电路数据总线地址总线控制总线二、口的扩展、的扩展引脚:寄存器、口按位操作工作方式:种与的接口电路地址分析命令寄存器的确定初始化程序、的扩展引脚:寄存器、定时器工作方式:种(种)三、键盘与显示器的扩展、键盘的扩展键盘的种类键盘电路键盘防抖动键盘接口电路()行列式键盘的工作过程键盘扫描程序、数码管显示电路、数码管显示电路数码管结构与显示原理数码管显示接口电路动态显示过程数码管显示程序四、与转换、与转换、转换引脚与结构的工作方式与的接口电路程序设计、转换、转换引脚与结构与的接口电路时序程序设计