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}

Cần giúp quét 8 led 7 đoạn( đếm số)

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

  1. thanhnguyen2075 New Member

    Số bài viết: 7
    Đã được thích: 0
    Điểm thành tích: 0
    Mọi người ơi, mình đang làm bài tập hiện thị 8 led 7 đoạn và đếm số, nhưg đang vướng phần lập trình bằng asm. Mạch của mình như thế này:
    [IMG]
    Bạn nào biết cách lập trình bằng asm hoặc biết cách làm thì hướng dẫn mình với. Mình cám ơn trước nha
  2. capkama New Member

    Số bài viết: 2
    Đã được thích: 0
    Điểm thành tích: 0
    Cái này thì đơn giản thôi.
    Bạn dùng timer đi.Thông thừong người ta dùng tần số 25hz cho 1 led tuơng tứng là 40ms.
    suy ra 8 led bạn sẽ quét là 40 : 8 =5ms.
    Do đó code như sau, t chỉ quen dùng C thôi bạn dùng 8 led liền nhé! C phải thế
    Mã:
     
    #include<reg52.h>
    #include<stdio.h>
    #include<intrins.h>
    // khai bao bien cua bạn day
    unsigned char mang[10]={0x}; 
    
    Hay nhanh nhất bạn vao cái này nè do " langtuvotinh" viết rất chi tiết và cụ thể
    http://www.dtvt.tk/t955-topic#4575
  3. vanthanh056 New Member

    Số bài viết: 4
    Đã được thích: 0
    Điểm thành tích: 0
  4. vanthanh056 New Member

    Số bài viết: 4
    Đã được thích: 0
    Điểm thành tích: 0
    mong anh e giup voi sao no ko dem duoc chan thanh cam on nhieu!!!

    #include <REGX51.H>

    sbit led1 = P2^0;
    sbit led2 = P2^1;
    sbit led3 = P2^2;
    sbit led4 = P2^3;
    sfr p1 = 0x90;
    // khai bao ma 7 doan va bien
    unsigned char ma7doan[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
    unsigned char k, donvi=0,chuc;
    unsigned char thoigian;
    unsigned int dem=0;
    // khai bao ham delay
    void delay(void)
    {
    TMOD = 0x01; // timer 0 che do 1 (16 bit)
    TH0 =0xfc;//bey cao cua timer
    TL0 =0x18;//bey thap cau timer
    TR0 =1;// cho timer 0 chay
    while(!TF0);//khong lam gi cho den khi tf0 bat len bi trang
    TF0 =0;// xoa timer 0 bi trang
    TR0 =0;// xoa timer 0
    }
    void delay1(unsigned long time)
    {
    while(time--);
    }
    // chuong trinh hien thi
    void hienthi(void)
    {

    donvi=thoigian%10;
    chuc=thoigian/10;


    led1 = 1; //led1 sang
    p1 = ma7doan[donvi];//hien thi don vi
    delay(); //thoi gian quet

    led1 =0; //tat led
    // p1 = 0xff; //xoa du lieu vao led 7 doan 0 don vi


    led2 = 1; //led1 sang
    p1 = ma7doan[chuc];//hien thi don vi
    delay(); //thoi gian quet

    led2 =0; //tat led
    // p1 = 0xff; //xoa du lieu vao led 7 doan 0 don vi
    }
    // chuong trinh ngat
    void INT_0 (void) interrupt 0
    {
    ++thoigian;
    }
    // chuong trinh chinh
    void main(void)
    {
    IE0 =0X89;
    IT0=1 ;
    thoigian=0;
    while(1)
    {
    hienthi();
    }
    }

Chia sẻ trang này