Thứ Hai, 7 tháng 3, 2016

BÀI 37 : ĐẾM TỪ 0 ĐẾN 99 SỬ DỤNG IC 74HC595 PIC16F877A CCS

Chào các bạn trong bài đăng trước mình đã hướng dẫn các bạn đếm từ 0 đến 9 rồi trong bài này sẽ tiếp tục với LED 7 SEG là đếm từ 0 đến 99 sử dụng IC 74HC595 và Vi Điều Khiển PIC16F877A. 
- Đây là ảnh mô phỏng chương trình.


đếm từ 0 - 99 sử dụng ic74hc595 pic16f877a

- Đây là code chương trình.
#INCLUDE <16F877a.H>
#FUSES NOWDT,PUT,HS,NOPROTECT,NOLVP
#USE DELAY(CLOCK=16M)
const 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
unsigned int Cnt = 0,i = 0;
void IC_74hc595(unsigned int data) 
{
    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(SHCP_PIN);
    delay_us(5);
    OUTPUT_HIGH(STCP_PIN);
    OUTPUT_LOW(STCP_PIN);
}
void main(void)
{
    SET_TRIS_C (0X00);
    OUTPUT_C  (0X00);
    while(1)
    {
        IC_74hc595(Code7Seg[Cnt%10]); 
        IC_74HC595_Output();
        IC_74hc595(Code7Seg[Cnt/10]); 
        IC_74HC595_Output();
        Cnt++;
        for(i=0;i<5;i++)
        {
        delay_ms(100);
        if(Cnt == 100)
        {
            Cnt = 0;
        }
        }
    }
}
- Link download project Click here


EmoticonEmoticon