BÀI 35 : LED 7 ĐOẠN VÀ IC74HC595 PIC16F877A CCS

6:34:00 AM
1. Cơ bản về IC 74HC595.
74hc595

74hc595 là IC ghi dịch 8 bit kết hợp chốt dữ liệu, đầu vào nối tiếp đầu ra song song. IC này thường sử dụng để mở rộng Port của vi điều khiển để quét LED 7 đoạn....
2. Cách thức hoạt động:

IC74HC595 với đầu vào nhận dữ liệu nối tiếp, đầu ra song song. Khi 1 bit được đưa đến chân nhận dữ liệu DS, muốn đẩy bit này vào thanh ghi dịch ta cần kích một xung vào chân SHCP (xung sườn dương từ 0->1). Cứ lần lượt vậy sau khi đưa hết hết 8 bit vào thanh ghi dịch, 8 bit này vẫn nằm trong bụng của 74HC595 (trong 8-bit storage register). Muốn xuất cùng một lúc cả 8 bit này ra các chân ngõ ra (từ Q0 -> Q7) ta cần tạo ra một xung lên chân STCP (xung sườn dương từ 0->1). Do thanh ghi dịch chỉ lưu trữ tối đa 8 bit nên khi bit dữ liệu thứ 9 tiếp tục được đưa vào thanh ghi dịch thì bit dữ liệu đầu tiên được đẩy ra chân Q7S.
Nếu kết nối chân Q7S này đến chân DS của IC 74HC595 tiếp theo. Ta có thể mở rộng rất nhiều port xuất.
Chân MR (chân số 10): khi chân này ở mức thấp, dữ liệu chứa trong thanh ghi dịch bị xóa hết. Khi chân này ở mức cao 74HC595 hoạt động bình thường
Chân OE (chân số 13): Khi OE=0 cho phép xuất ngõ ra.


- Đây là ảnh mô phỏng protues.

led 7 đoạn ic74hc595 pic16f877a

- Đây là code chương trình.
#include <16F877A.h>
#device *=16 ADC=10
#use delay(clock=20000000)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
unsigned char Code7Seg[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
/* Dinh nghia cac chan cua IC74HC595 */
#define SHCP_PIN PIN_C0
#define DS_PIN PIN_C1
#define STCP_PIN PIN_C2
void IC_74hc595(int data) 
{
int i;
output_low(SHCP_PIN);
for(i=0;i<=7;i++)
{
if((data & 0x80)==0)
output_low(DS_PIN);
else
output_high(DS_PIN);
data=data<<1;
output_high(SHCP_PIN);
output_low(SHCP_PIN);
}
}
void IC_74HC595_Output()
{
output_low(STCP_PIN);
delay_us(5);
output_high(STCP_PIN);
output_low(STCP_PIN);
}
void main(void)
{
IC_74hc595(Code7Seg[9]); 
IC_74hc595(Code7Seg[8]); 
IC_74hc595(Code7Seg[7]); 
IC_74hc595(Code7Seg[6]); 
IC_74HC595_Output();

}
- Link download project Click here

Share this

Related Posts

Previous
Next Post »