第7章80C51单片机的系统扩展m_第1页
第7章80C51单片机的系统扩展m_第2页
第7章80C51单片机的系统扩展m_第3页
第7章80C51单片机的系统扩展m_第4页
第7章80C51单片机的系统扩展m_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

2023/2/61第7章80C51单片机的系统扩展存储器的扩展7.1输入/输出及其控制方式7.281C55接口芯片及其应用7.3LCD接口及其扩展7.42023/2/627.2输入/输出及其控制方式7.2.1输入/输出接口的功能单片机与输入/输出设备的关系2023/2/63输入/输接口的功能对单片机输出的锁存:74LS273对输入设备的三态缓冲:74LS244信号转换:ADC,DAC,MAX232,74LS164,74LS165时序协调:8155选通工作方式

2023/2/647.2.2单片机与I/O设备的数据传送方式

无条件传送查询状态传送

中断传送

DMA(直接存储器存取)传送2023/2/657.2.3单片机扩展TTL芯片的输入/输出

基本扩展电路

74LS273/CLRCPDQLXXLH

HHHLLHL/HXQ02023/2/66

驱动LED数码管示例

74LS373OELEDQLHHHLHLLLLXQ0HXXZ2023/2/677.3

81C55接口芯片及其应用7.3.181C55的结构及工作方式

81C55的结构及引脚2023/2/68

81C55的内部编制内部RAM地址为00H~FFH内部端口地址

000:命令/状态寄存器

001:A口

010:B口

011:C口

100:计数器低8位

101:计数器高6位及计数器方式设置位2023/2/69

工作方式设置及状态字格式方式设置76543210TM2TM1IEBIEAPC2PC1PBPA地址:000PA:A口方向。0--输入;1--输出PB:B口方向。0--输入;1--输出

2023/2/610PC2PC1工作方式说明00ALT1A、B口为基本I/O,C口方向为输入11ALT2A、B口为基本I/O,C口方向为输出01ALT3A口为选通I/O,PC0~PC2作为A口的选通应答B口为基本I/O,PC3~PC5方向为输出10ALT4A口为选通I/O,PC0~PC2作为A口的选通应答B口为选通I/O,PC3~PC5作为B口的选通应答PC1、PC2:C口工作方式设置位

IEA:A口的中断允许设置位。0--禁止;1--允许。IEB:B口的中断允许设置位。0--禁止;1--允许。2023/2/611TM2、TM1:计数器工作方式设置位TM2TM1工作方式说明00方式0空操作,对计数器无影响01方式1使计数器停止计数10方式2减1计数器回0后停止工作11方式3未计数时,送完初值及方式后立即启动计数;正在计数时,重置初值后,减1计数器回0则按新计数初值计数2023/2/612状态字格式76543210TIMERINTEBBFBINTRBINTEABFAINTRA地址:000INTRX:中断请求标志BFX:口缓冲器空/满标志INTEX:口中断允许/禁止标志TIMER:计数器计满标志

2023/2/613计数器输出模式1514131211109876543210M2M1T13T12T11T10T9T8T7T6T5T4T3T2T1T0M2M1输出方式说明00方式0单方波输出。计数的后半周期输出低电平,计数器回0后输出高电平。(计数初值为奇数时,高电平比低电平的持续期多一个脉冲周期)01方式1连续方波输出(计数值自动重装)。计数前半部分输出高电平,后半部分输出低电平。10方式2单脉冲输出。计数器回0后输出一个单脉冲。11方式3连续脉冲输出(计数值自动重装)。计数器回0后输出单脉冲,又自动向计数器重装原计数值,回0后又输出单脉冲,如此循环。2023/2/614选通I/O方式的组态工作方式PC5PC4PC3PC2PC1PC0ALT1输入ALT2输出ALT3输出BFAINTRAALT4BFBINTRBBFAINTRA选通方式时,C口的PC0~PC5被定义为A或B口选通I/O方式的应答和控制线2023/2/615组态逻辑选通I/O输入(A口)命令字:工作过程:1、输入设备数据8155A口,L8155ASTB2、8155锁存数据到A口,将QABF置1,送H输入设备,QIEA为1时,送INTR(H)CPU3、CPU读8155A口数据,

8155撤销中断请求,

并清零QABF,TM2TM1IEBIEAPC2PC1PBPA18H/14HSTBP08031D7|D0PAPC1PC2PC08155输入设备D7-D0BFINTRRDRDRDINT0EA选通I/O输出(A口)命令字:工作过程:1、CPU数据8155A口

8155置INTR=04、8155检测到STB=1、QIEA=1时,送INTR(H)CPU。TM2TM1IEBIEAPC2PC1PBPA19H/15H2、8155将QABF置1,A口数据输出设备3、输出设备接收8155A口数据,并送STB(L)8155STBP08031D7|D0PAPC1PC2PC08155输出设备D7-D0BFINTRWRWRWRINT0EA2023/2/6187.3.281C55的接口方法

81C55与单片机的接口片外ROM2023/2/619A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0I/O口0××××××1×××××000命令/状态口

0××××××1×××××001A口

0××××××1×××××010B口

0××××××1×××××011C口

0××××××1×××××100计数器低8位

0××××××1×××××101计数器高6位及方式RAM地址:0111111000000000B(7E00H)~0111111011111111B(7EFFH)I/O端口的地址:

2023/2/620

81C55的键盘及显示接口Open-Collectorbuffers/Drivers8155基本输出应用:交通灯控制8155定时器应用:分频器PA1TrafficLightsPA[0..7]AD[0..7]PA4PA6PA5AD0AD1AD2AD3AD4AD5AD6AD7IOIOALEPA4PA6PA0PA2PA0PA2PA1PA5RSTRSTALEXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51PROGRAM=Trial5_8155.hexIOPTRAMALE11AD[0..7]PA[0..7]PB[0..7]PC[0..5]IO/M7RES4TIN3CS8RD9WR10TOUT6U28155HD2LED-RED南北向东西向交通灯控制数据PA7PA6PA5PA4PA3PA2PA1PA0绿黄红绿黄红X001X00111H,点亮所有红灯X001X10014H,东西绿灯亮,南北红灯亮X001X00/1010H/12H,东西黄灯闪烁,南北红灯亮X100X00141H,东西红灯亮,南北绿灯亮X00/10X00101H/21H,东西红灯亮,南北黄灯闪烁P2.7/CSP2.6-1P2.0IO//MP0.7-3P0.2A2P0.1A1P0.0A08155端口地址01…110…00007F00H|:8155控制端口01…110…00017F01H:8155PA端口两个方向红灯亮开始堆栈、8155初始化东西绿灯亮,南北红灯亮,延时5s东西黄灯闪烁,南北红灯亮,延时2s东西红灯亮,南北绿灯亮,延时5s东西红灯亮,南北黄灯闪烁,延时2s#include<reg51.h>#include<intrins.h>#include<absacc.h>#defineucharunsignedchar#defineuintunsignedint#definecom8155XBYTE[0x7f00]#definelightXBYTE[0x7f01]voiddelay(ucharN){uintj;while(N--)for(j=0;j<5000;j++)_nop_();}xbyte是absacc.h中的一个宏定义,可用XBYTE[0xnnnn]访问外部RAM2023/2/625voiddelay(ucharN){ucharj;while(N--)for(j=0;j<5000;j++)_nop_();}6:voiddelay(ucharN)C:0x0000AD07 MOVR5,0x07 1TcyC:0x00021F DECR7 1TcyC:0x0003EDMOVA,R5 1TcyC:0x00046010JZC:0016 2TcyC:0x0006E4CLRA 1TcyC:0x0007FEMOVR6,A 1TcyC:0x0008EEMOVA,R6 1TcyC:0x0009C3CLRC 1TcyC:0x000A9488SUBBA,#TCON(0x88) 1TcyC:0x000C7480MOVA,#P0(0x80) 1TcyC:0x000E9493SUBBA,#0x93 1TcyC:0x001050EEJNCdelay(C:0000) 2TcyC:0x001200 NOP 1TcyC:0x00130EINCR6 1TcyC:0x001480F2 SJMPC:0008 2TcyC:0x001622 RET 2TcyN--j<5000延时时间N*5000*11Tcy55000*88*1us5s,一方红灯,一方绿灯

55000*4*1us0.2s,黄灯闪烁时亮或灭voidmain(void){uchari;SP=0x60;com8155=0x01;light=0x11;delay(5);//点亮所有红灯while(1){light=0x14;delay(88);//东西绿灯亮,南北红灯亮for(i=0;i<5;i++)//东西黄灯闪烁5次,南北红灯亮{light=0x12;delay(4);light=0x10;delay(4);}light=0x41;delay(88);//东西红灯亮,南北绿灯亮for(i=0;i<5;i++)//东西红灯亮,南北黄灯闪烁{light=0x21;delay(4);light=0x01;delay(4);}}}2023/2/6277.4

LCD接口及其扩展7.4.1LCD1602模块的外形与引脚

引脚01:VSS,接地引脚引脚02:VDD,接+5V电源引脚03:VL,对比度调整端(接地,对比度最高)引脚04:RS,数据/命令寄存器选择(H,数据;L,命令)引脚05:R/W,读/写选择端(H,读;L,写)引脚06:E,使能端(↓,执行命令)引脚07~14:D0~D7,8位双向数据线引脚15:BLA,背光正极引脚16:BLK,背光负极字段式点阵字符式(1602)点阵图形式(12864)2023/2/628结构框图7.4.2LCD1602模块的组成

对于2行16字符的显示要增加HD44100驱动器HD44780本身可以驱动单行16字符或2行8字符

有的用SPLC780C2023/2/629HD44780

由字符发生器CGROM、自定义字符发生器CGRAM和显示缓冲区DDRAM组成。CGROM存储了不同的点阵字符图形(表7.9

),每一个字符都有一个固定的代码。CGRAM可定义8个字形2023/2/631DDRAM有80个单元,但第1行仅用00H~0FH单元,第2行仅用40H~4FH单元序号指令RSR/WD7D6D5D4D3D2D1D01清屏00000000012光标归位000000001*3输入模式设置00000001I/DS4显示与不显示设置0000001DCB5光标或屏幕内容移位选择000001S/CR/L**6功能设置00001DLNF**7CGRAM地址设置0001CGRAM地址8DDRAM地址设置001DDRAM地址9读忙标志和计数器地址设置01BF计数器地址10写DDRAM或CGRAM10要写的数据11读DDRAM或CGRAM11读出的数据2023/2/632S/CR/L=01右移光标I/DS=10,光标右移一格且地址计数器加1(06H)DCB=111,开显示和光标,光标闪烁(0FH)DLNF=1108位数据,两行,5*7点阵(38H)7.4.3LCD1602模块的命令清屏:DDRAM全写空格,光标回到屏幕左上角,地址计数器清0(01H);光标归位:光标回到屏幕左上角;输入模式设置:I/D光标移动方向;S全部屏幕。I/DS00,光标左移一格且地址计数器减101,屏幕内容全部右移一格,光标不动10,光标右移一格且地址计数器加1(06H)11,屏幕内容全部左移一格,光标不动显示与不显示设置:D、C、D分别为字符显示、光标显示、光标闪烁开关。DCB=111,显示字符和光标,光标闪烁(0FH)光标或屏幕内容移位选择:S/C屏幕内容/光标移动选择,0移动光标,1移动屏幕内容;R/L移动方向选择,0左移,1右移。S/CR/L=01,右移光标功能设置:DL数据接口位数选择,0为4位,1为8位;N单/双行显示选择,0单行,1双行;F点阵选择,0为5*7点阵,1为5*10点阵。DLNF=110,8位数据,两行,5*7点阵(38H)#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineLCD_DP3sbitRS=P2^5;sbitRW=P2^6;sbitE=P2^7;charcodetab1[]={'W','E','L','C','O','M','E',0x00};charcodetab2[]={'Y','O','U',0x00};2023/2/634接口电路7.4.4LCD1602模块的接口示例

设计要求液晶显示WELCOMEYOUP3.010P3.111P3.212P3.313P3.414P3.717P3.616P3.515P2.728P2.526P2.627U1AT89C51GNDD714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LVCCvoiddelay(ucharN){uchari;while(N--)for(i=0;i<250;i++);}voidwrite_cmd(ucharcmd)//写指令{LCD_D=cmd;RS=0;RW=0;E=0;delay(15);E=1;}voidwrite_byte(uchardat)//写字节{LCD_D=dat;RS=1;RW=0;E=0;delay(15);E=1;}voidmain(){uchari;SP=0x70;E=1;write_cmd(0x01);//清屏

write_cmd(0x38);//功能设置:8位数据,两行,5*7点阵

write_cmd(0x0F);//显示设置:开显示和光标,光标闪烁

write_cmd(0x06);//输入模式设置:光标右移1格且地址计数器加1i=0;write_cmd(0x80);//DDRAM地址设置:00H,即第一行1列

while(tab1[i]!=0x00){write_byte(tab1[i]);i++;}i=0;write_cmd(0xC0);//DDRAM地址设置:40H,即第二行1列

while(tab2[i]!=0x00){write_byte(tab2[i]);i++;}while(1);}*LCD12864应用举例

LCD12864点阵模块驱动器控制器名称型态电平功能描述GND--电源地VCC输入-电源输入(+5V)V0输入-对比度调节/RST输入H/L复位信号VEE输入-负压输入输出端CS1输入H/L片选信号,L,芯片1CS2输入H/L片选信号,L,芯片2RS输入H/L寄存器选择端:H,数据;L,命令R/W输入H/L读/写信号E输入,执行命令DB0~DB7输入/输出H/L数据总线LCD12864液晶模块接口*Vout或名VEE指令名称控制状态代码指令RSR/WD7D6D5D4D3D2D1D0显示开关设置000011111D显示起始行设置0011L5L4L3L2L1L0页面地址设置0010111P2P1P0列地址设置0001C5C4C3C2C1C0读取状态字01BUSY0ON/OFFRESET0000写显示数据10数据读显示数据11数据

KS0108指令列表

显示开关设置:D=1,开显示;0,关显示。

读状态字:BUSY=1,KS0108忙;0,KS0108闲ON/OFF=1,显示关;0,显示开RESET=0,KS0108正复位;1,KS0108正常工作3FHC0HB8H40H

设计要求:电路设计

显示汉字为宋体16*16点阵,显示内容为“欢迎使用启东计算机总厂生产的DICE系列实验教学仪器!!”用“字模软件”获得,如zimo221ERWRSCS2CS1RSRWECS2CS1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.4P3.6AT89C51GNDVCCCS1CS2GNDVCCV0RSR/WEDB0DB1DB2DB3DB4DB5DB6DB7RSTVoutAMPIRE128X6420KTabx[i]送左屏KS0108i++,j--B8H页地址page_a,8页数page_n,数据序号i、奇页标志F0清064每页列数j116汉字列数j,ii1j!=0?YN16j,i+16ij1!=0?YNj1--页地址page_a++列指针清零i1i,F0取反F0F0=0?YNi+16ii+7*16iPage_n!=0?page_n--YN返回半屏显示子程序流程图主程序流程图选择左屏KS0108KS0108初始化:开显示,显示行、列、页地址清0停止显示左屏汉字选择右屏KS0108显示右屏汉字#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitRS=P3^0;sbitRW=P3^1;sbitE=P3^2;sbitCS1=P3^6;sbitCS2=P3^4;ucharcodetab5[]={//空格点阵0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,…//--文字:欢--宋体12,点阵16x160x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00,…};ucharcodetab6[]={//--文字:使--0x40,0x20,0xF0,0x1C

温馨提示

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

评论

0/150

提交评论