- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PIC系列单片机简单IO扩展技术
PIC系列单片机简单I/O口扩展技术
摘 要 在实际应用当中当的口资源无法满足系统设计需要时,为了节省成本,通过外部扩展芯片来达到设计要求。当的口资源无法满足系统设计需要时,为了节省成本,通过外部扩展芯片来达到设计要求。通常的办法是设计之初就选用口丰富的实现,但如果外围设备较多时,也只能外部扩展了。口通过3个外部地址,扩展出3个并口串入并出、并入串出、并入并出I/O口扩展GM8166芯片。口资源通过移位寄存器,来扩展无穷个输出或者输入口。
简单的扩展,如373做多个锁存器输出扩展,245做多个总线收发器输入扩展。8位并入/出移位寄存器74HC165是一款高速CMOS器件8位并行读取或串行输入移位寄存器,可在末级得到互的串行输出(0和7)当并行()输入为低时,从0到7口输入的并行数据将被异步地读取进寄存器内。而当为高时,数据将从输入端串行进入寄存器,在每个时钟脉冲的上升沿向右移动一位(0→P1 → P2,等等)。利用这种特性,只要把Q7输出绑定到下一级的输入,即可实现并转串扩展。74HC165八个单独的数据输入端使对每一级的并行输入存取得以实现,数据输入端由的低电平。这种寄存器具有门控时钟输入端和第八位互补输出端的特点。为使传输线效应变得最小,输入都是二极管钳位,因而简化了系统设计。并行8位入/出移位寄存器74HC595是硅结构的CMOS器件,兼容低电压TTL电路,具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。数据在S的上升沿输入移位寄存器,在的上升沿存储寄存器。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。 74HC595移位寄存器有一个串行移位输入()和一个串行输出(Q7)一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当低电平使能E时,存储寄存器的数据输出到总线。8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态三态。0~O7: 并行数据输出Q7: 串行数据输出SRCLK: 移位寄存器时钟输入存储寄存器时钟输入 主复位低电平
E低电平输出有效 串行数据输入移位寄存器时钟输入S存储寄存器时钟输入CLK1为时钟输出端,PL为移位/并行置入控制端,KGDI为数据输入端,读取的数据存入DJFK_BYTE1和DJFK_BYTE2内。PL低电平置入数据时,74HC165自动移一位在程序中触发次;===============================================================================================
; 读取74HC165状态子程序
;===============================================================================================
READ_DJ BSF PL ;并行置入控制端为高,禁止置入
NOP
BCF PL ;并行数据置入移位寄存器 NOP
BSF PL ;并行置入控制端为高,禁止置入
BTFSC KGDI ;判断输入数据
GOTO READ_DJ3 ;输入数据为1,转READ_DJ3
BCF STATUS,C ;确保进位位为0
GOTO READ_DJ5 ;输入数据为0,转READ_DJ5
READ_DJ3 BSF STATUS,C ;置位进位位
READ_DJ5 RLF DJFK_BYTE2,F ;DJFK_BYTE2右移一次
RLF DJFK_BYTE1,F ;DJFK_BYTE1右移一次
MOVLW 0EH ;移位15次
MOVWF TEMP_JCQ3
READ_DJ2 BCF CLK1 ;时钟保持低电平,禁止移位
NOP
BSF CLK1 ;时钟高电平,数据移位
NOP
BCF STATUS,C
BTFSC KGDI ;判断输入数据
GOTO READ_DJ1 ;输入数据为1,转READ_DJ1
BCF STATUS,C ;确保进位位为0
GOTO READ_DJ4 ;输入数据为0,转READ_DJ4
READ_DJ1 BSF STATUS,C
READ_DJ4 RLF DJFK_BYTE2,F ;DJFK_BYTE2右移一次
RLF DJFK_BYTE1,F ;DJFK_BYTE1右移一次
DECFSZ TEMP_JCQ3,F ;移位是否15次
GOTO READ_DJ2 ;不是,转READ_DJ2
RETURN ;是,子程序结束
(2)74HC595程
文档评论(0)