IC này thường được dùng trong các mạch quét Led 7 đoạn,Led matrix,mở rộng bàn phím cho thiết bị điện tử …để tiết kiệm số chân vi điều khiển tối đa (3 chân) .
Đóng gói chân như hình sau:
Giải thích ý nghĩa hoạt động của một số chân quan trọng:
(input)Chân 14 : đầu vào dữ liệu nối tiếp . Tại 1 thời điểm xung clock chỉ đưa vào được 1 bit
(output)
QA=>QH : trên các chân (15,1,2,3,4,5,6,7)
Xuất dữ liệu khi chân chân 13 tích cực ở mức thấp và có một xung tích cực ở sườn âm tại chân chốt 12
(output-enable)
Chân 13 : Chân cho phép tích cực ở mức thấp (0) .Khi ở mức cao, tất cả các đầu ra của 74595 trở về trạng thái cao trở, không có đầu ra nào được cho phép.
(SQH)
Chân 9: Chân dữ liệu nối tiếp . Nếu dùng nhiều 74595 mắc nối tiếp nhau thì chân này đưa vào đầu vào của con tiếp theo khi đã dịch đủ 8bit.
(Shift clock)
Chân 11: Chân vào xung clock . Khi có 1 xung clock tích cực ở sườn dương(từ 0 lên 1) thì 1bit được dịch vào ic.
(Latch clock)
Chân 12 : xung clock chốt dữ liệu . Khi có 1 xung clock tích cực ở sườn dương thì cho phép xuất dữ liệu trên các chân output . lưu ý có thể xuất dữ liệu bất kỳ lúc nào bạn muốn ,ví dụ đầu vào chân 14 dc 2 bit khi có xung clock ở chân 12 thì dữ liệu sẽ ra ở chân Qa và Qb (chú ý chiều dịch dữ liệu từ Qa=>Qh)
(Reset)
Chân 10: khi chân này ở mức thấp(mức 0) thì dữ liệu sẽ bị xóa trên chip)
74HC595 đầu ra hoạt động ở 2 mức 0 &1 dòng ra tầm 35mA . điện áp hoạt động <=7V . Công suất trung bình 500mW
Giản đồ xung :
Giản đồ xung :
Một ví dụ về sơ đồ mạch điện ứng dụng 74HC595 trong hiển thị số 5 từ vi điều khiển ra led 7 thanh
Về chương trình hiển thị tham khảo dưới đây
#include"regx52.h"
sbit DATA = P2^1;//Định nghĩa chân dữ liệu là cổng 2.1
sbit SCK = P2^0;//Định nghĩa chân chốt là cổng 2.0
sbit SCL = P2^2;//Định nghĩa chân xung clock là cổng 2.2
void quet(unsigned char x)
{
int i,temp;
for(i=0;i<8;i++)
{
temp=x;//gan bien
temp=temp&0x80;//lay ra bit dau tien (bit 7)
if(temp==0x80)//so sanh bit
DATA=1; //bang 1 thi xuat vao chip =1
else
DATA=0; //nguoc lai bang 0
x*=2; //dich bit lay bit trong so thap
SCK=0; //tao xung tren chan 11
SCK=1; //1 xung dua vào 1 bít
}
SCL=0; //xuat du lieu ra output
SCL=1;
}
void delay()
{
unsigned int i;
for(i=0;i<33000;i++);
}
void main()
{
unsigned int i, k=0;
unsigned char ma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//ma led 7
while(1)
{
for(i=0;i<10;i++)
{
quet(ma[i]);
delay();
}
}}
Không có nhận xét nào:
Đăng nhận xét