Có lẽ với các bạn dân điện tử thì linh kiện điên tử chính là món ăn tinh thần của mình.
và hum nay mình sẽ mang tới cho các bạn 1 món ăn tinh thần có lẽ nhiêu bạn hay tìm tòi
và lập trình chắc cũng biết con ic này.
con ic mjnh muốn nói tới hum nay là ic 74hc595 .con ic này hay còn gọi là ic dịch bít
vì nó có chức năng đặc biệt đó là dịch bít.
đối với con ic này thì nó chỉ dich được 1 byte (8bit) lần lượt.
vậy nếu ta cầu xuất nhiêu byte nhiều một lúc thì ta phải cần nhiều ic này lắm đó.
ic này giúp chúng ta tiết kiệm dc số chân của vi điều khiển rất nhiều.
vì với con ic này chúng ta chỉ cần sử dụng 3 chân để nối với ic thui.
thường thì con ic này hay sử dụng để quét led 7 thanh hay led matrix.
và đây mình xinh giới thiệu chi tiết về nó:
hì hì
1, Chức năng :
Là ic ghi dịch 8bit kết hợp chốt dữ liệu , đầu vào nối tiếp đầu ra song song .
Chức năng: Thường dùng trong các mạch quét led 7 , led matrix ...để tiết kiệm số chân VDK tối đa (3 chân) . Có thể mở rộng số chân vi điều khiển bao nhiêu tùy thích mà k ic nào có thể làm dc bằng việc mắc nối tiếp đầu vào dữ liệu các ic với nhau .
[You must be registered and logged in to see this image.]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)
Cấu tạo của nó :
[You must be registered and logged in to see this image.]Đây là một số ví dụ mình đã làm :
quét led 7 thanh
[You must be registered and logged in to see this image.] - Code:
-
//=============== THANGPRO_HD91=================//
///////===== KHOA DIEN TU VIEN THONG =========////
/////////////// === K8D====///////////
#include"regx52.h"
sbit DATA = P2^1;
sbit SCK = P2^0;
sbit SCL = P2^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=x<<1; //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();
}
}}
bài sau mình sẽ viết về cách quét led matrix bằng con ic này