Thông báo

Collapse
No announcement yet.

Mạch đếm 0-9999 AVR

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Mạch đếm 0-9999 AVR

    Em đang làm bài tập VĐK,mạch led 7 đoạn dùng pp chốt dữ liệu,yêu cầu như sau:
    -sử dụng swithdip 2 nối vào PORTC,khi tín hiệu 0x00:led đếm lên,tín hiệu là 0x01:led đếm xuống.
    -Led đang đếm lên,chuyển sang đếm xuống thì cần đếm ngay số vừa dừng.VD:0,1,2,3,4,5,6,switch :0x01 thì đếm 6,5,4,3,2,1,0.
    -Led đang đếm xuống,chuyển sang đếm lên thì cần đếm ngay số vừa dừng.VD:6,5,4,switch :0x00 thì đếm 4,5,6,7,...vd2.zip

  • #2
    Các bro ơi giúp em với

    Comment


    • #3
      Nguyên văn bởi mrzero064 Xem bài viết
      Em đang làm bài tập VĐK,mạch led 7 đoạn dùng pp chốt dữ liệu,yêu cầu như sau:
      -sử dụng swithdip 2 nối vào PORTC,khi tín hiệu 0x00:led đếm lên,tín hiệu là 0x01:led đếm xuống.
      -Led đang đếm lên,chuyển sang đếm xuống thì cần đếm ngay số vừa dừng.VD:0,1,2,3,4,5,6,switch :0x01 thì đếm 6,5,4,3,2,1,0.
      -Led đang đếm xuống,chuyển sang đếm lên thì cần đếm ngay số vừa dừng.VD:6,5,4,switch :0x00 thì đếm 4,5,6,7,...[ATTACH]41113[/ATTACH]

      tạo delay để đếm lần lượt các con số.
      tạo bảng để lưu mã hình của số.
      truy xuất led 7seg ( quét, xuất)
      \\\
      cứ mỗi lần xuất xong một số thì quay lên kiểm tra potrc để xem 00 hay 01.
      tùy nó là gì thì tua lại bảng mã theo chiều này hay chiều kia.

      Comment


      • #4
        Đếm từ 0=>9999 mình sẽ tách 9999 ra i,j,k,l tương ướng là đơn vị chục trăn ngàn chục ngàn, rồi xuất ra từng led 7 đoạn led nào xuất rồi thì sẽ được chốt lại.
        mình dùng ic chốt 74hc573
        code viết bằng codevisionavr
        mach 74hc573.DSN
        Code:
        #include <mega32.h>
        #include <delay.h>
        
        void main(void)
        {
         unsigned int a[]= { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
          unsigned int j,i,k,l,n;
         unsigned int b[]={0x01,0x02,0x04,0x08};
        DDRA=0XFF;
        DDRC=0XFF;
        
        
        
        
            for(n=0;n<=9999;n++)
            {
            PORTA=b[0];
            i=n%10;
            PORTC=a[i];
            delay_ms(10);
        
            PORTA=b[1];
            j=(n%100)/10;
            PORTC=a[j];
            delay_ms(10);
        
            PORTA=b[2];
            k=(n%1000)/100;
            PORTC=a[k];
            delay_ms(10);
        
            PORTA=b[3];
            l=(n/1000);
            PORTC=a[l];
            delay_ms(10);
        
            delay_ms(10);
            }
        
        
        
        }

        Comment

        Về tác giả

        Collapse

        mrzero064 Tìm hiểu thêm về mrzero064

        Bài viết mới nhất

        Collapse

        Đang tải...
        X