1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

quét led 7 đoạn

Thảo luận trong 'Vi điều khiển - Mạch Số' bắt đầu bởi ngosicuong07, 5 Tháng một 2011.

  1. ngosicuong07 New Member

    Số bài viết: 15
    Đã được thích: 0
    Điểm thành tích: 1
    #include <htc.h>
    __CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS);
    const char LedCode[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
    char LayDonVi(char data);
    char LayChuc (char data);
    //khai bao bien cho dong ho
    char Gio=0,Phut=0,Giay=0,timer=0;
    void Tick();
    void main()
    {
    //cau hinh tat ca cac PORT la Digital
    ANSEL=ANSELH=0;
    // cau hinh tat ca la Digital Output
    TRISB=0;
    TRISD=0;
    while(1){
    unsigned char t=0;
    for(t=0;t<=5;t++){
    //quet led
    //Led Giay hang Donvi
    PORTB=0;RB2=1;
    PORTD=LayDonVi(Giay);_delay(5000);
    //Led Giay hang chuc
    PORTB=0;RB3=1;
    PORTD=LayChuc(Giay);_delay(5000);
    //Led Phut hang Don Vi
    PORTB=0;RB4=1;
    PORTD=LayDonVi(Phut);_delay(5000);
    //Led Phut hang Chuc
    PORTB=5;RB5=1;
    PORTD=LayChuc(Phut);_delay(5000);
    //Led Gio hang Don Vi
    PORTB=0;RB6=1;
    PORTD=LayDonVi(Gio);_delay(5000);
    //Led Gio hang Chuc
    PORTB=0;RB7=1;
    PORTD=LayChuc(Gio);_delay(5000);
    //==============================
    }
    Tick();
    }
    }
    char LayDonVi(char data)
    {
    return LedCode[(data%10)];
    }
    char LayChuc(char data)
    {
    return LedCode[(data/10)];
    }
    void Tick()
    {
    Giay++;
    if(Giay>59){
    Giay=0;
    Phut++;
    if(Phut>59){
    Phut=0;
    Gio++;
    if(Gio>23){
    Gio=0;
    }
    }
    }
    }

Chia sẻ trang này