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

                              • vi van pham
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi vi van pham
                                Cám ơn những lời chúc tốt đẹp của em.

                                Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

                                Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
                                hôm nay, 02:00
                              • nhathung1101
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi nhathung1101
                                Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                                Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                                Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                                Hôm qua, 22:18
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                                Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                                Hôm qua, 14:51
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                                Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                                Hôm qua, 14:39
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                                Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                                Hôm qua, 14:28
                              • bqviet
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi bqviet
                                Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                                21-02-2025, 20:26
                              • mèomướp
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi mèomướp
                                Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                                21-02-2025, 12:32
                              • vi van pham
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi vi van pham
                                Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                                Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                                20-02-2025, 21:31
                              • bqviet
                                Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                bởi bqviet
                                Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                                20-02-2025, 17:22
                              • dinhthuong80
                                Trả lời cho Tiếng Anh cho người Việt
                                bởi dinhthuong80
                                Tiếng Anh, Đình Thường phải nói là rất tệ, khiến việc giao tiếp đời thường thôi cũng khó chứ nói gì về kĩ thuật.

                                Nhân tiện, nhờ các bạn, các bác xem giúp thư ĐT viết thế này liệu có thể gửi tới địa chỉ nhận hay chăng,...
                                20-02-2025, 11:52
                              Đang tải...
                              X