Thông báo

Collapse
No announcement yet.

Cần giúp đỡ về code đếm chẵn lẻ

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

  • Cần giúp đỡ về code đếm chẵn lẻ

    Tình hình e mới học về con 89c51, và em cũng tìm đc code điều khiển led 7 thanh, nhưng nó mới chỉ đếm được từ 0-9. Vậy em muốn xin các pro giúp đỡ e phần code chăn lẻ với ạ. Và liệu từ cái code này có thể biến thể thành đếm chẵn lẻ được ko ạ. Thạnks các bác trc ạ
    #include <REGX51.H>
    #define Q0 P1_0
    #define Q1 P1_1
    #define Q2 P1_2
    #define Q3 P1_3
    #define sang 1
    #define tat 0
    //========khai bao ham delay(tao ra do tre bang phan mem)
    void delay(unsigned int ms)
    {
    unsigned int i,j;
    for (i=0; i<ms; i++)
    { for (j=0; j<120; j++);

    }
    }
    //======== hien thi ra led 7 thanh
    void display(unsigned char number)
    {
    switch (number)
    {
    case 0:
    Q0=Q1=Q2=Q3=0;
    break;
    case 1:
    Q1=Q2=Q3=0;
    Q0=1;
    break;
    case 2:
    Q1=1;
    Q0=Q2=Q3=0;
    break;
    case 3:
    Q0=Q1=1;
    Q2=Q3=0;
    break;
    case 4:
    Q0=Q1=Q3=0;
    Q2=1;
    break;
    case 5:
    Q1=Q3=0;
    Q2=Q0=1;
    break;
    case 6:
    Q3=Q0=0;
    Q2=Q1=1;
    break;
    case 7:
    Q3=0;
    Q0=Q1=Q2=1;
    break;
    case 8:
    Q3=1;
    Q0=Q1=Q2=0;
    break;
    case 9:
    Q3=Q0=1;
    Q1=Q2=0;
    break;
    default:Q0=Q1=Q2=Q3=0;break;
    }
    }
    main ()
    {
    unsigned char m;
    while(1)
    {
    for (m=0;m<10;m++)
    { display(m);delay(1000);}
    }
    }

  • #2
    mình biết của asm.

    Comment


    • #3
      em mới bắt đàu bài học vỡ lòng với code c thôi bác à

      Comment


      • #4
        neu asm thi day :

        led0 equ p0
        led1 equ p2
        org 00h
        mov dptr,#ma_7seg_ac
        mov r0,#0
        main:
        call hienthi
        call delay
        call tang
        jmp main
        hienthi:
        mov a,r0
        mov b,#10
        div ab
        movc a,@a+dptr
        mov led1,a
        mov a,b
        movc a,@a+dptr
        mov led0,a
        tang:
        inc r0
        cjne r0,#100,nhan1
        mov r0,#0
        nhan1:
        ret

        ;===========chuong trinh tre
        delay: mov r5,#255
        delay1: mov r6,#255
        delay2: mov r7,#1
        djnz R7,$
        djnz r6,delay2
        djnz r5,delay1
        ret
        ma_7seg_ac: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
        end

        Comment


        • #5
          Đếm chẵn lẻ ntn?

          Comment


          • #6
            Nguyên văn bởi sai.vn Xem bài viết
            Đếm chẵn lẻ ntn?
            ý e là từ code đó biến thể thành đếm chẵn hoặc đếm lẻ a ak

            Comment


            • #7
              thanks bác tehacxeng nhé, nhưng e ngờ u cái asm quá

              Comment


              • #8
                rat de neu ban muon dem nhu binh thuong thi chi can them chu ret , de ket thuc chuong trinh con ban them vao truoc chu <tang:> con muon den so lon hon cu noi , minh viet cho

                Comment


                • #9
                  nhìn code thiệt là vật vã
                  Code:
                  main(){
                  unsigned char i;
                  while(1){
                  for(i=0;i<=10;i+=1){// đếm chẵn thì i+=2
                  P1=i;
                  delay(1000);
                  }
                  }
                  }

                  Comment


                  • #10
                    minh viet theo kieu mang

                    Comment


                    • #11
                      Nguyên văn bởi chung1608 Xem bài viết
                      nhìn code thiệt là vật vã
                      Code:
                      main(){
                      unsigned char i;
                      while(1){
                      for(i=0;i<=10;i+=1){// đếm chẵn thì i+=2
                      P1=i;
                      delay(1000);
                      }
                      }
                      }
                      nó báo lỗi bác ơi, e thay phần
                      main ()
                      {
                      unsigned char m;
                      while(1)
                      {
                      for (m=0;m<10;m++)
                      { display(m);delay(1000);}
                      }
                      }
                      của e = của bác nhưng nó báo lỗi

                      Comment


                      • #12
                        Nguyên văn bởi tehacxeng Xem bài viết
                        rat de neu ban muon dem nhu binh thuong thi chi can them chu ret , de ket thuc chuong trinh con ban them vao truoc chu <tang:> con muon den so lon hon cu noi , minh viet cho
                        nhưng liệu viết = c được ko bác, e đang muốn ct = c

                        Comment


                        • #13
                          ban bien dich bang phan mem nao ! minh dung mide , chuong trinh cua minh viet ban chi can copy va bien dich bang phan mem mide la chay ngay ma minh da test roi ma!

                          Comment


                          • #14
                            vi chuong trinh cua minh viet theo dang mang ! nen don gian ban muon chan hay le thi chii can thay doan code o cuoi chuong trinh
                            (ma_7seg_ac: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h)

                            Comment


                            • #15
                              Nguyên văn bởi nh0k Xem bài viết
                              nhưng liệu viết = c được ko bác, e đang muốn ct = c
                              code của bạn đây. chú ý khi viết thì các lệnh trong case cần có { mở ngoặc đóng ngoặc này nhé }. đồng thời các câu lệng trong { }
                              cần được đẩy vào một tab nhé. với lại cái này của bạn mới chỉ có xuất ra các chân thôi chứ có hiển thị được led 7 đoạn đâu
                              Code:
                              #include <REGX51.H>
                              #define Q0 P1_0
                              #define Q1 P1_1
                              #define Q2 P1_2
                              #define Q3 P1_3
                              #define sang 1
                              #define tat 0
                              //========khai bao ham delay(tao ra do tre bang phan mem)
                              void delay(unsigned int ms)
                              { 
                              	unsigned int i,j;
                              	for (i=0; i<ms; i++)
                              	{ 
                              		for (j=0; j<120; j++); 
                              	}
                              }
                              //======== hien thi ra led 7 thanh
                              void display(unsigned char number)
                              {
                              	switch (number)
                              	{ 
                              		case 0:
                              		{	Q0=Q1=Q2=Q3=0;
                              			break;
                              		}
                              		case 1:
                              		{
                              			Q1=Q2=Q3=0;
                              			Q0=1;
                              			break;
                              		}
                              		case 2:
                              		{
                              			Q1=1;
                              			Q0=Q2=Q3=0;
                              			break;
                              		}
                              		case 3:
                              		{	Q0=Q1=1;
                              			Q2=Q3=0;
                              			break;
                              		}
                              		case 4:
                              		{	Q0=Q1=Q3=0;
                              			Q2=1;
                              			break;
                              		}
                              		case 5:
                              		{	Q1=Q3=0;
                              			Q2=Q0=1;
                              			break;
                              		}
                              		case 6:
                              		{
                              			Q3=Q0=0; 
                              			Q2=Q1=1;
                              			break;
                              		}
                              		case 7:
                              		{	Q3=0;
                              			Q0=Q1=Q2=1;
                              			break;
                              		}
                              		case 8:
                              		{	Q3=1;
                              			Q0=Q1=Q2=0;
                              			break;
                              		}
                              		case 9:
                              		{	Q3=Q0=1;
                              			Q1=Q2=0;
                              			break;
                              		}
                              		default:Q0=Q1=Q2=Q3=0;break;
                              	}
                              }
                              main ()
                              {
                              	unsigned char m;
                              	while(1)
                              	{
                              		for (m=0;m<10;m=m+2)
                              		{ 
                              			display(m);
                              			delay(1000);
                              		}
                              	}
                              }
                              chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
                              Everything should be made as simple as possible, but not simpler

                              Comment

                              Về tác giả

                              Collapse

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

                              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