Thông báo

Collapse
No announcement yet.

Hỏi code đếm số lần bấm phím hiển thị trên LED 7 thanh

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

  • Hỏi code đếm số lần bấm phím hiển thị trên LED 7 thanh

    Mình đang có bài tập đếm số lần bấm phím hiển thị trên LED 7 thanh. Nhưng ko biết code viết thế nào.. Bạn nào biết chỉ mình với. Mình cần gấp lắm
    Thx các bạn

  • #2
    Chảng biết bạn này dùng vi điều khiển gì nữa! Mà ngôn ngữ lập trình dùng C hay ASbly!

    Comment


    • #3
      các bac cho em hỏi câu của bạn terryfox vdk là 89C51, lập trình bằng KeilC nhá, em cúng đang mắc ở phần này.

      Comment


      • #4
        Tôi viết bằng hợp ngữ mong giúp được bạn.

        Trong đoạn code bên dưới P0 xuất ra mã hàng, P1 xuất ra mã cột để điều khiển 3 Led 7 đoạn Anod chung.


        SW BIT P1.0
        DV EQU R2
        CHUC EQU R3
        TRAM EQU R4
        ..........ORG 000H
        TD:.....MOV TRAM,#0
        X3:.....MOV CHUC,#0
        X2:.....MOV DV,#0
        X1:.....LCALL BCD_7DOAN
        ..........LCALL HIENTHI
        ..........JB SW,TD
        ..........LCALL DELAY ;CHỐNG DỘI
        ..........INC DV
        ..........CJNE DV,#10,X1
        ..........INC CHUC
        ..........CJNE CHUC,#10,X2
        ..........INC TRAM
        ..........CJNE TRAM,#10,X3
        ..........JMP TD

        ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        BCD_7DOAN:
        ..........MOV R0,#02H
        ..........MOV R1,#30H
        ..........MOV DPTR,#500H
        X4:.....MOV A,@R0
        ..........MOVC A,@A+DPTR
        ..........MOV @R1,A
        ..........INC R0
        ..........INC R1
        ..........CJNE R0,#05H,X4
        RET

        ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        HIENTHI:
        ..........MOV R0,#30H
        ..........MOV A,#0FEH
        X5:......MOV P0,@R0
        ..........MOV P1,A
        ..........LCALL DELAY
        ..........MOV P1,#0FFH ;CHỐNG LEM
        ..........INC R0
        ..........RL A
        ..........CJNE A,#0F7H,X5
        RET

        ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        DELAY:
        .........MOV R6,#20
        X6:....MOV R7,#100
        .........DJNZ R7,$
        .........DJNZ R6,X6
        RET

        ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        ORG 500H
        DB 0C0H,0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H

        END

        Chúc bạn thành công !!!

        Comment


        • #5
          Sao mình dịch sang file .hex ko được. Bạn nào chỉ mình với. Dưới đây là sơ đồ mạch của mình .
          Attached Files

          Comment


          • #6
            ai giúp mình với. Mình đang cần lắm

            Comment


            • #7
              Sơ đồ của bạn post lên có nhiều điều đáng nói:
              + Thứ nhất : Chân EA\ phải treo lên nguồn để vi điều khiển đọc bộ nhớ nội.
              + Thứ hai : Bạn nên mắc thêm con 74HC245 để đệm dòng cho P0.
              + Thứ ba : Dùng transistor A1015 để điều khiển cột.
              + Thứ tư : mạch reset không cần mắc diode gì cả.
              Nếu bạn làm đúng như thế thì độ sáng của led mới được đảm bảo. Tuổi thọ của mạch mới cao.

              Việc dịch qua File.Hex không được là do trình biên dịch chứ không phải do phần cứng.

              Chúc bạn thành công !!!
              Last edited by sangthai; 06-12-2008, 12:00.

              Comment


              • #8
                mình dùng chg trinh Reads51 để dịch, Mình ko biết xài Keil C. Bạn chỉ mình cách dịch được ko

                Comment


                • #9
                  Đây là chương trình tham khảo dùng 8501 lập trình C.
                  với nút ấn đcj gắn vào P1.0 và LED đc găn vào P2
                  unsigned char i=0;// Khai bao them bien toan cuc de dem so lan an nut
                  unsigned char Doccongtac(void)// Ham tra lai gia tri unsigned char
                  {
                  if( P1_0 ==0)// Neu nut duoc bam
                  {
                  delay(300);// Tre 1 khoang thoi gian qua xung nhieu
                  while(P1_0 ==0) // Cho toi khi nha tay khoi nut bam
                  {
                  ;//Khong lam gi
                  }
                  i++;// Nha ty thi tang i
                  if( i ==10) i=0;// Quay vong gia tri cua i
                  }
                  return i;
                  }
                  void hienthisolannhanphim(unsigned char solan)
                  {
                  switch(solan)// Tuy vao so lan
                  {
                  case 0: { so0(); break; }// Neu so lan =0 hien so 0 thoat khoi switch
                  case 1: { so1(); break; }// Neu so lan =1 hien so 1 thoat khoi switch
                  case 2: { so2(); break; }// ....
                  case 3: { so3(); break; }
                  case 4: { so4(); break; }
                  case 5: { so5(); break; }
                  case 6: { so6(); break; }
                  case 7: { so7(); break; }
                  case 8: { so8(); break; }
                  case 9: { so9(); break; }// Neu so lan =9 hien so 9 thoat khoi switch
                  }
                  }
                  void main(void)
                  {
                  while(1)
                  {
                  Doccongtac(); // Goi ham doc so lan nhan phim
                  hienthisolannhanphim(i);// Hien thi so lan nhan phim, bien i la bien toan cuc
                  }
                  }

                  Comment


                  • #10
                    Nguyên văn bởi biendt Xem bài viết
                    Đây là chương trình tham khảo dùng 8501 lập trình C.
                    với nút ấn đcj gắn vào P1.0 và LED đc găn vào P2
                    unsigned char i=0;// Khai bao them bien toan cuc de dem so lan an nut
                    unsigned char Doccongtac(void)// Ham tra lai gia tri unsigned char
                    {
                    if( P1_0 ==0)// Neu nut duoc bam
                    {
                    delay(300);// Tre 1 khoang thoi gian qua xung nhieu
                    while(P1_0 ==0) // Cho toi khi nha tay khoi nut bam
                    {
                    ;//Khong lam gi
                    }
                    i++;// Nha ty thi tang i
                    if( i ==10) i=0;// Quay vong gia tri cua i
                    }
                    return i;
                    }
                    void hienthisolannhanphim(unsigned char solan)
                    {
                    switch(solan)// Tuy vao so lan
                    {
                    case 0: { so0(); break; }// Neu so lan =0 hien so 0 thoat khoi switch
                    case 1: { so1(); break; }// Neu so lan =1 hien so 1 thoat khoi switch
                    case 2: { so2(); break; }// ....
                    case 3: { so3(); break; }
                    case 4: { so4(); break; }
                    case 5: { so5(); break; }
                    case 6: { so6(); break; }
                    case 7: { so7(); break; }
                    case 8: { so8(); break; }
                    case 9: { so9(); break; }// Neu so lan =9 hien so 9 thoat khoi switch
                    }
                    }
                    void main(void)
                    {
                    while(1)
                    {
                    Doccongtac(); // Goi ham doc so lan nhan phim
                    hienthisolannhanphim(i);// Hien thi so lan nhan phim, bien i la bien toan cuc
                    }
                    }
                    mình dùng keil c dịch ra hex thì bão lỗi ở phần 04 " if(p1_0==0)// Neu nut duoc bam"

                    Comment


                    • #11
                      Nguyên văn bởi sangthai Xem bài viết
                      Trong đoạn code bên dưới P0 xuất ra mã hàng, P1 xuất ra mã cột để điều khiển 3 Led 7 đoạn Anod chung.


                      SW BIT P1.0
                      DV EQU R2
                      CHUC EQU R3
                      TRAM EQU R4
                      ..........ORG 000H
                      TD:.....MOV TRAM,#0
                      X3:.....MOV CHUC,#0
                      X2:.....MOV DV,#0
                      X1:.....LCALL BCD_7DOAN
                      ..........LCALL HIENTHI
                      ..........JB SW,TD
                      ..........LCALL DELAY ;CHỐNG DỘI
                      ..........INC DV
                      ..........CJNE DV,#10,X1
                      ..........INC CHUC
                      ..........CJNE CHUC,#10,X2
                      ..........INC TRAM
                      ..........CJNE TRAM,#10,X3
                      ..........JMP TD

                      ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      BCD_7DOAN:
                      ..........MOV R0,#02H
                      ..........MOV R1,#30H
                      ..........MOV DPTR,#500H
                      X4:.....MOV A,@R0
                      ..........MOVC A,@A+DPTR
                      ..........MOV @R1,A
                      ..........INC R0
                      ..........INC R1
                      ..........CJNE R0,#05H,X4
                      RET

                      ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      HIENTHI:
                      ..........MOV R0,#30H
                      ..........MOV A,#0FEH
                      X5:......MOV P0,@R0
                      ..........MOV P1,A
                      ..........LCALL DELAY
                      ..........MOV P1,#0FFH ;CHỐNG LEM
                      ..........INC R0
                      ..........RL A
                      ..........CJNE A,#0F7H,X5
                      RET

                      ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      DELAY:
                      .........MOV R6,#20
                      X6:....MOV R7,#100
                      .........DJNZ R7,$
                      .........DJNZ R6,X6
                      RET

                      ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      ORG 500H
                      DB 0C0H,0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H

                      END

                      Chúc bạn thành công !!!
                      cho mình xin sơ đồ mạch với. hiển thị số lần bấn nút đến 99 nhé. thank

                      Comment


                      • #12
                        cho em hỏi code số lần bấm phím hiển thị trên led 7 đoạn trên con pic 16f887 với!!!
                        Last edited by nvthanh020; 29-11-2014, 16:01.

                        Comment

                        Về tác giả

                        Collapse

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

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

                        Collapse

                        • mèomướp
                          Trả lời cho Công thức điện tử
                          bởi mèomướp
                          Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
                          Hôm qua, 21:21
                        • mèomướp
                          Trả lời cho Xin hỏi về màn hình laptop
                          bởi mèomướp
                          Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
                          Hôm qua, 20:31
                        • yname11
                          Trả lời cho Xin hỏi về màn hình laptop
                          bởi yname11
                          Ok , thanks bác đã chỉ...
                          Hôm qua, 15:06
                        • nguyendinhvan
                          Công thức điện tử
                          bởi nguyendinhvan
                          Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

                          Chập thì thay. Cháy thì tháo
                          Làm thì láo. Báo thì hay
                          May thì khoe. Rủi thì bỏ
                          Thành tích nhỏ. Báo thành to
                          Làm cho có. Báo chi li
                          Sai cả li. Báo
                          ...
                          Hôm qua, 00:35
                        • yname11
                          Trả lời cho Xin hỏi về màn hình laptop
                          bởi yname11
                          có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
                          25-11-2024, 22:31
                        • mèomướp
                          Trả lời cho Xin hỏi về màn hình laptop
                          bởi mèomướp
                          Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
                          25-11-2024, 22:14
                        • bactho
                          Trả lời cho Tự làm máy đo Cuộn cảm
                          bởi bactho
                          Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
                          25-11-2024, 21:48
                        • yname11
                          Trả lời cho Xin hỏi về màn hình laptop
                          bởi yname11
                          màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
                          25-11-2024, 21:43
                        • bactho
                          Trả lời cho các bạn giúp mình về file HEX với!!!
                          bởi bactho
                          Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
                          25-11-2024, 21:21
                        • mèomướp
                          Trả lời cho Xin hỏi về màn hình laptop
                          bởi mèomướp
                          Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
                          25-11-2024, 20:43
                        Đang tải...
                        X