Thông báo

Collapse
No announcement yet.

mạch đếm 00 đến 9999 dùng 8051

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

  • mạch đếm 00 đến 9999 dùng 8051

    mình đang làm bài tập lớn về vi xử lý sủ dụng 8051 và asm quét led 7 đoạn hiển thị từ 00 đến 9999.
    Lâu rùi không động đến nên quên hết rùi mong các bạn giúp đỡ. thank

  • #2
    Gần 40 lần đọc mà không ai trả lời vậy

    Comment


    • #3
      Nguyên văn bởi hahuyquyen
      Sao không ai trả lời nhỉ chán quá !

      Comment


      • #4
        mình chỉ có cái code C thôi. 00->99 bạn chỉ cần thay vào thành 0000->9999
        1 #include <reg52.h>
        2 //================
        3 sbit led1 = P3^0;
        4 sbit led2 = P3^1;
        5 //=================
        6 unsigned char
        7 M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
        8 int a,b,c,d,k;
        9 void delay(unsigned int t)
        10 {
        11 1 unsigned int i,j;
        12 1 for(j=0;j<=t;j++){
        13 2
        14 2 for(i=0;i<=125;i++ ){}}
        15 1 }
        16 //=================
        17 void main()
        18 {
        19 1 while(1)
        20 1 {
        21 2 for(k=0;k<=99;k++ ){
        22 3 a=k/10;
        23 3 b=k%10;
        24 3 for(c=0;c<=9;c++) {
        25 4 led1=1; //led dau tien sang
        26 4 P2=M[a];
        27 4 delay(40);
        28 4 led1=0;
        29 4 P2=0xff;//xoa du lieu
        30 4 led2=1; //led 2 sang
        31 4 P2=M[b];
        32 4 delay(40);
        33 4 led2=0;
        34 4 P2=0xff;//xoa du lieu
        35 4 }
        36 3 }
        37 2 }
        38 1 }

        Comment


        • #5
          asm thì trên diễn đàn nhiều lắm. bạn chịu khó tìm 1 chút là thấy ngay. chak mọi ng không trả lời vì chủ đề này có nhiều trên diễn đàn rồi

          Comment


          • #6
            của bạn đây chúc bạn thành công

            00-9999.zip
            email
            nick: bangbigboy_bigboy
            sdt :01203380789

            Comment


            • #7
              tài liệu rất hay.
              cảm ơn bạn hieuthai2011 chúc bạn thành công trong cuộc sống

              Comment


              • #8
                nhân tiện mọi người giúp mình đoạn code nay nhé. Minh muốn đếm đến 60s thì hang tram giảm. Số đếm sẽ do mình tự cài đặt.
                #include <REGX51.H>
                #define led1 P2_0
                #define led2 P2_1
                #define led3 P2_2
                #define led4 P2_3
                #define chay P1_7
                #define led6 P2_4


                unsigned char nghin, tram, chuc, donvi;
                char k,i,gio, giay2, giay1;
                unsigned int dem;

                // ma hex cua led 7 doan
                unsigned char ma[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

                //khoi tao timer 0 de quyet led
                void delay_timer0(void)
                {
                TMOD=0x10; //chon che do dinh thoi 16bit
                TH1=-9215/256; //nap gia tri cho bit cao (26ms)
                TL1=-9215%256; //nap gia tri cho bit thap (26ms)
                TR1=1; //khoi dong bo dinh thoi timer0 chay
                while (!TF1); //cho co tran bat len 1
                TF1=0; //xoa co tran
                TR1=0; // ngung bo dinh thoi
                }

                //ham quet led de hien thi so
                void quet_led(void)
                {
                //for(dem=1500;dem>0;dem--) // 30000 thoi gian cai dat de dem lui
                //for (i=0;i<20;i++) //thoi gian dua du lieu len port 1 (1s= 20lan lap)

                led1=1;
                P1=ma[nghin];
                delay_timer0();
                led1=0;
                //P1=0x00;

                led2=1;
                P1=ma[tram] ;
                delay_timer0();
                led2=0;
                //P1=0x00;

                led3=1;
                P1=ma[chuc];
                delay_timer0();
                led3=0;
                //P1=0x00;

                led4=1;
                P1=ma[donvi];
                delay_timer0();
                led4=0;
                //P1=0x00;

                donvi=dem%10;
                chuc= (dem/10)%10;
                tram= (dem/100)%10;
                nghin=(dem/1000)%10;
                }



                void main()
                {
                dem=1500;
                delay_timer0();
                IE=0x8a;
                IP=0x02; // uu tien ngat timer 0
                TMOD = 0x20 ; //timer 0 16bit reload
                TH0 = 0xFC;
                TL0 = 0x18;
                /*bat' dau` dem' tu` 0xf000*/
                TR0 = 1;//run timer 0
                EA = 1 ;//enable global interrupt: cho phep' ngat' toan` khu vu.c trong chip
                ET0 = 1; //cho phep' ngat' timer 0
                while (1)
                {


                quet_led();

                }
                }

                void Timer0() interrupt 1
                {
                TR0 = 0;//stop timer 0
                /*nap lai gia tri dem*/
                TH0 = 0xFC;
                TL0 = 0x18;
                TF0 = 0;//xo'a co` ngat' cua timer 0
                //cac' lenh dc xu ly o day
                i++;
                if(i==20)
                {
                i=0;
                giay2++;
                if(giay2>60)
                {
                giay2=0;
                giay1++;
                if(giay1>60)
                {
                giay1=0;
                }

                TR0 = 1; //khoi dong lai timer 0
                }
                }}


                thanks!

                Comment


                • #9
                  bai nay cua ban dung 2 con led 7 doan rieng ak hay la dung led doi! t nghi la dung 2 led don
                  !

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  • bqviet
                    Trả lời cho Đấu tắt điện cho máy tính bảng
                    bởi bqviet
                    Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                    06-12-2025, 17:17
                  • nguyendinhvan
                    Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                    bởi nguyendinhvan
                    Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                    05-12-2025, 19:59
                  • afrendly
                    Trả lời cho Đấu tắt điện cho máy tính bảng
                    bởi afrendly
                    Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                    04-12-2025, 01:27
                  • nick22
                    Trả lời cho Máy điện châm ?
                    bởi nick22
                    Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                    01-12-2025, 13:23
                  Đang tải...
                  X