- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(地址锁存及IO扩展
单片机地址锁存及IO扩展 I/O端口P0~P3(80H,90H,A0H,B0H) P0—P3为4个8位特殊功能寄存器,分别是4个并行I/O端口的锁存器。它们都有字节地址,端口的每一位可以进行位操作,每一条I/O线均可独立用作输入或输出。 用作输出时,可以锁存数据;用作输入时,数据可以缓冲。 在单片机接口扩展系统中各端口功能 无论有无片外存储器扩展,P1端口均可用作通用I/O端口使用。 在单片机接口扩展系统中,P0口用作输出地址/数据总线,此时,P0无法再作I/O口使用了。 在单片机接口扩展系统中, P2口只输出高8位地址。 P3口可以用作第二功能使用 地址总线宽度为16位,可寻址范围64K字节。 地址锁存器 地址锁存器(74373) 74373内部逻辑 6264是8K*8的静态随机存储器。 A0-A12为片内13位地址线,I/O0-I/O7为双向三态数据线,/CE为片选信号,/OE为读允许信号,/WE为写信号。 #include reg51.h xdata unsigned char *port; xdata unsigned char Buffer[256] _at_ 0x6000; main() { unsigned char tmp=0x55; unsigned char j; port = Buffer; while(1) { for(j=0;j256;j++) { tmp++; *port++ = tmp; } } } 简单并行输出接口的扩展 在单片机的并行接口扩展中,常采用TTL、CMOS锁存器、缓冲器构成简单的扩展接口。其中,在输出接口的扩展中经常选用具备锁存功能的芯片实现,一般有:74273,74373,74573、74574等。在本节以74273为例,介绍输出接口的扩展实现。 74273引脚和功能原理 D0—D7为数据输入引脚,Q0—Q7为数据输出引脚,CP为时钟脉冲输入端,/MR为清零端。从内部逻辑图看出,74273为内部集成八路D触发器的锁存器,芯片的CP引脚与八路D触发器的时钟控制端相连,完成数据锁存的控制。 访问外设端口的软件设置 单片机系统外扩的接口芯片或外扩片外数据存储器统一编址,占用外部数据存储器0000---FFFFH空间,因此,片外扩展I/O口的硬件译码地址,看作片外数据存储单元访问。 #includeabsacc.H #define 变量名 XBYTE[地址常数] 举例——对片外的1000H单元进行数据的写操作,设计方法如下 #includereg51.h #include absacc.h #define port XBYTE [0x1000]; void main(void) { int temp; While(1) { temp = port; } } 注意: 程序中,#define用于定义将外部1000H端口命名为port,定义端口寄存器的长度为8位。通过上述定义,于是,在程序中出现的Port变量映射为外部寄存器地址单元,访问地址为1000H。程序设计中,对外部1000H地址的读操作就可以直接写作“temp = port”即可,其中,temp为设计的临时变量。 应用设计举例 应用74273扩展单片机的输出端口,设定74273的端口访问地址为7FFFH,控制在数码块上轮回显示从0—F的16个字符。 C51源程序为: #include reg51.h #include absacc.h #define port XBYTE [0x7FFF] unsigned char table[]={ 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};//设置数码块显示数据表 void delay(void) { unsigned int i; for(i=0;i40000;i++); } void main(void) { unsigned int i; while(1) {
您可能关注的文档
最近下载
- 四年级上道德与法治《学会识别广告》教学设计.pdf VIP
- 2024融合大语言模型DeepSeek技术新人教版语文七年级上册《第四单元》大单元整体教学设计[2022课标].pdf
- 监控系统项目完整技术标书.docx VIP
- 临床合理用药解读-质子泵抑制剂的处方和医嘱审核要点解读(PPT课件).pptx VIP
- 山东省化工装置安全试车工作规范 DB37_T 1854—2020 山东.pdf VIP
- 安徽—夏凯月—课件—直线的倾斜角与斜率.pptx VIP
- 房屋租赁合同,房屋租赁合同,房屋租赁合同.docx VIP
- 安徽—夏凯月—设计—直线的倾斜角与斜率.docx VIP
- 业务学习-子宫脱垂.pptx VIP
- 海尔风冷模块样册.pdf
文档评论(0)