您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页三、74HC595串入并出芯片应用

三、74HC595串入并出芯片应用

来源:五一七教育网
274HC595的控制端口:

1)SH_CP(11脚):移位时钟脉冲输入端。在上升沿时移位寄存器将数据移位 2)DS(14脚):串行数据输入端。本例通过移位运算将每次移位的数据送到PWD寄存器的 进位标志位CYCY再将值传递给DS引脚,8次移位后完成一个字符的串行传送。 3)ST_CP(12脚):锁存脉冲控制端,在上升沿时移位寄存器的数据被传入存储寄存器,这 时如果OE端为低电平,传入存储器的数据会直接输出到输出端Q0-Q7。本例在一个字节的移位操作完成后,通过在ST_CP端产生一个上升沿将数据送出。 4)/MR(10脚):低电平时将移位寄存器数据请0.一般情况下接VCC 5)/OE(13脚):高电平时输出端禁止输出(高阻态)。低电平时允许数据输出使用74HC595的优点是能锁存数据,这样在移位过程中可以保持输出端的数据不变。而74HC1则没有这种功能。//利用74HC595实现端口扩展

/*名称:74HC595串入并出芯片应用

说明:74HC595是具有一个8位串入并出的 移位寄存器和一个8位输出寄存器,

本例利用74HC595,通过串行输入数据来控制数码管的显示。 */

#include #include

#define uchar unsigned char #define uint unsigned int sbit SH_CP=P2^0; //移位时钟脉冲 sbit DS=P2^1; //串行数据输入 sbit ST_CP=P2^2; //输出锁存器控制脉冲 uchar temp;

uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //延时

void DelayMS(uint ms) { uchar i; while(ms--) for(i=0;i<120;i++); }

//串行输入子程序 void In_595() { uchar i; for(i=0;i<8;i++) { temp<<=1;DS=CY; SH_CP=1; //移位时钟脉冲上升沿移位

}

}

_nop_();_nop_(); SH_CP=0;

//并行输出子程序 void Out_595() { ST_CP=0;_nop_(); }

ST_CP=1; _nop_(); ST_CP=0;

//上升沿将数据送到输出锁存器 //锁存显示数据

//主程序 void main() { uchar i; while(1) { for(i=0;i<10;i++) { temp=DSY_CODE[i]; In_595(); //temp中的一字节数据串行输入74HC595 Out_595(); //74HC595移位寄存数据传输到存储寄存器并出现在输出端 DelayMS(200); } } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务