Thông báo

Collapse
No announcement yet.

Dành cho người mới tìm hiểu 8051

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

  • nhờ mọi người sửa lại code giúp tớ với tớ đang cần gấp
    pm:vanduoc1109@gmail.com
    thankssssssssssssssssss you

    Comment


    • Nguyên văn bởi langtuk10 Xem bài viết
      em mới học về lập trình nên chưa hiểu mấy mà thầy đã bắt làm đề tài về lập trình rùi nên post đề tài này lên nhờ mọi người giúp em với

      Đề bài:
      Sử dụng ic 8501 tạo mạch khóa số thảo mãn các yêu cầu sau:
      Nhập vào bốn mã nếu đúng thì phát tín hiệu mở khóa
      Nhập sai 3 lần phát tín hiệu báo trộm
      Ý tưởng thực hiện:
      Dùng chương trình quét bàn phím scankey để nhập 4 mã vào
      Cho phép người nhập 4 mã cùng lúc(được cất trong ngăn xếp)
      Có tín hiệu báo khi người nhập đủ 4 mã
      Nhập sai 3 lần có tín hiệu báo
      Nhập đúng mã số,kích xung mở khóa

      Mạch được kết nối:
      Led-d1 sáng: tín hiệu mở khóa được kích hoạt

      Mã nhập vào là 6009

      Mạch được thiết kế sao cho người nhập chỉ nhập mã vào 1 lần là 4 số
      Hết 4 số lần 1,sẽ chuyển sang những lần kế tiếp và chỉ được nhập 3 lần
      Mã đúng là 6009
      Led –d3 báo đã nhập đủ 4 mã số:

      Led d3 được kích hoạt,báo cho người sử dụng biết đã nhập đủ 4 mã số
      Sau khoảng thời gian trễ là 500 ms led d3 sẽ tắt,và được sử dụng cho các lần kế tiếp
      Điều này có tác dụng trong trường hợp người sử dụng không biết là mình đã nhập mấy mã,chu kỳ 4 mã nhập ,led-d3 sáng giúp cho khóa mã tiện ích hơn

      Chức năng chống trộm của mạch:

      Trong trường hợp có người lạ không biết mã số,cố ý mở khóa,sau 3 lần nhập mã không đúng,thì:
      Chân p2.1 được kích cạnh xuống,kích hoạt thiết bị báo trộm(trong mạch để cho đơn giản ta sử dụng led-d2)
      Trong main_code ta sử dụng led-d2 với tính chất mô phỏng cho chức năng này,led-d2 sáng khi nhập sai 3 lần
      Theo nguyên tắc ta phai reset lại mạch thì chuông báo động mới hết kêu,nhưng ở phần mô phỏng này ta cho thời gian trễ là 5s ,led-d2 sẽ tắt,rồi quay về chương trình chính.Cho lần thử sau
      em tìm thấy cái code này trên mạng nhưng nạp vào con ĂT9C51 thì nó không chạy chắc là code lỗi mong mọi người giúp đỡ nhá
      code:


      main code:
      org 0000h
      start:
      ljmp main; lap lai
      scan:
      mov p1,#0f0h;
      mov a,p1;
      cjne a,#0f0h,scan; neu A khac 0f0 scan
      scanner:
      mov a,#0feh;
      1up:
      mov r0,a;
      mov p1,a;
      mov a,p1;
      mov r1,a;
      orl a,#0fh; hop ma phim
      cjne a,#0ffh,cnvrt; neu A khac 0ff cnvrt
      sjmp scanner;
      cnvrt:
      mov a,r1;
      mov r3,#0;
      clup:
      jib acc.0,cnvrt2;
      rr a;
      mov r2,a;
      mov a,r3;
      add a,#4;
      mov r3,a;
      mov a,r2;
      sjmp c1up;
      cnvrt2:
      mov a,r1;
      swap a; quay ma phim
      ret; ket thuc chuong trinh con
      main:
      mov r5,#3;
      init:
      mov r7,#4;
      nhapso:
      acall scan;
      mov r0,a;
      push 0; cat vao stack
      djnz r7,nhapso; dem r7
      mov r1,#0feh;
      mov p2,r1;
      acall delay_500ms;
      pop 1; lay ra khoi stack
      pop 2;
      pop 3;
      pop 4;
      cjne r1,#0d7h,sorry;
      cjne r2,#0beh,sorry;
      cjne r3,#0beh,sorry;
      cjne r4,#0dbh,sorry;
      clr p3.5;
      sorry:
      acall delay_500ms;
      setb p2.0;
      djnz r5,init;
      clr p2.1;

      acall delay_5s;
      setb p2.1;
      sjmp main;
      delay_5s:
      mov tmod,#10h;
      mov th1,#high(-50000);
      mov tl1,#low(-50000);
      mov r4,#100;
      again:
      setb tr1;
      jnb tf1,$;
      clr tr1;
      clr tf1;
      djnz r4,again;
      ret;
      delay_500ms:
      mov tmod,#10h;
      mov th1,#high(-50000);
      mov tl1,#low(-50000);
      mov r4,#10;
      again1:
      setb tr1;
      jnb tf1,$;
      clr tr1;
      clr tf1;
      djnz r4,again1;
      ret;
      end.


      em dùng phần mềm asm 51 để kiểm tra thì thấy nó báo lỗi nhiều quá, chẳng hiểu là lỗi gì nữa nên post code này lên mong cac bạn giúp đỡ nhé (swả code giúp tớ or có thể tạo 1 code mới phù hợp với đề tài của tớ cũng được. cảm ơn mọi người trc nhá

      main code: ; Xóa dòng này đi
      org 0000h
      start:
      ljmp main; lap lai
      scan:
      mov p1,#0f0h;
      mov a,p1;
      cjne a,#0f0h,scan; neu A khac 0f0 scan
      scanner:
      mov a,#0feh;
      1up: ; nhãn này báo lỗi, bạn nên đặt nhãn khác không có số đứng trước.
      mov r0,a;
      mov p1,a;
      mov a,p1;
      mov r1,a;
      orl a,#0fh; hop ma phim
      cjne a,#0ffh,cnvrt; neu A khac 0ff cnvrt
      sjmp scanner;
      cnvrt:
      mov a,r1;
      mov r3,#0;
      clup:
      jib acc.0,cnvrt2;Cú pháp sai jnb hoặc jb
      rr a;
      mov r2,a;
      mov a,r3;
      add a,#4;
      mov r3,a;
      mov a,r2;
      sjmp c1 up; Nhãn c1 bạn chưa định nghĩa
      cnvrt2:
      mov a,r1;
      swap a; quay ma phim
      ret; ket thuc chuong trinh con
      main:
      mov r5,#3;
      init:
      mov r7,#4;
      nhapso:
      acall scan;
      mov r0,a;
      push 0; cat vao stack
      djnz r7,nhapso; dem r7
      mov r1,#0feh;
      mov p2,r1;
      acall delay_500ms;
      pop 1; lay ra khoi stack
      pop 2;
      pop 3;
      pop 4;
      cjne r1,#0d7h,sorry;
      cjne r2,#0beh,sorry;
      cjne r3,#0beh,sorry;
      cjne r4,#0dbh,sorry;
      clr p3.5;
      sorry:
      acall delay_500ms;
      setb p2.0;
      djnz r5,init;
      clr p2.1;

      acall delay_5s;
      setb p2.1;
      sjmp main;
      delay_5s:
      mov tmod,#10h;
      mov th1,#high(-50000);
      mov tl1,#low(-50000);
      mov r4,#100;
      again:
      setb tr1;
      jnb tf1,$;
      clr tr1;
      clr tf1;
      djnz r4,again;
      ret;
      delay_500ms:
      mov tmod,#10h;
      mov th1,#high(-50000);
      mov tl1,#low(-50000);
      mov r4,#10;
      again1:
      setb tr1;
      jnb tf1,$;
      clr tr1;
      clr tf1;
      djnz r4,again1;
      ret;
      end.
      ; sau lệnh end ban không được thêmđấu chấm hoặc enter thêm dòng trống nào.

      Mình chỉ kiểm tra dùm bạn về cú pháp còn về giải thuật và hướng lập trình nếu kết quả không như ý bạn cần tiếp tục thảo luận thêm để biết và hiểu sâu hơn.
      Chúc thành công

      Comment


      • thanks bạn nhá. còn đây là giải thuật của tớ http://www.mediafire.com/?5nnfnw3mzmm mong mọi người giúp đỡ nhé

        Comment


        • Nguyên văn bởi langtuk10 Xem bài viết
          thanks bạn nhá. còn đây là giải thuật của tớ http://www.mediafire.com/?5nnfnw3mzmm mong mọi người giúp đỡ nhé
          Bạn xem comment trong file nha.
          chúc thành công.
          Attached Files

          Comment


          • bác quỳnh ơi bác gui cho em tai lieu huong dan lap trinh c cho 8051 dc k bac . e cam on truoc naz

            Comment


            • mail e la ; mrhungh2a@gmail.com

              Comment


              • Bạn langtuk10 tham khảo files ASM và PROTEUS tôi đính kèm, tôi chỉ sử dụng những đoạn chương trình mà bạn đã viết để giải quyết các yêu cầu cơ bản nhất của bộ khóa số , bạn có thể hoàn thiện hơn .
                Chúc thành công .

                Comment


                • cảm ơn doanhatphong nhá

                  Comment


                  • đúng là cái tui cần tìm đây chứ đâu. cảm ơn các bạn rất nhiều.

                    Comment


                    • Nguyên văn bởi langtuk10 Xem bài viết
                      cảm ơn doanhatphong nhá
                      Ah, quên post kèm file, sorry.
                      Attached Files
                      Last edited by doanhatphong; 27-05-2010, 10:02.

                      Comment


                      • kết nối rôm cho 89c52

                        tôi có một trương trình kết nối rom 28c020 nhưng ko có điêù kiện thử nên post lên đây nhờ các bạn chỉ giáo sem có đọc được dữ liệu từ rôm ko ah các ban cho hỏi tạo bang dữ liệu để nạp vào rôm như thế nào vậy minh mới tìm hiểu về kết nối với rôm còn cách nạp rom và tao file hex cho rôm như thế nào thi mình kô có tài liệu tìm cũng ko thấy có ai có tài liệu gửi cho mình vơi hoac chỉ giáo mình chut

                        INDEX_DPTRL EQU 31H
                        INDEX_DPTRH EQU 32H
                        INDEX_DPTR1L EQU 33H
                        INDEX_DPTR1H EQU 34H
                        ORG 000H
                        LJMP MAIN
                        ORG 0030H
                        MAIN:
                        MOV A,#0
                        MOV INDEX_DPTRL,#0FFH
                        MOV INDEX_DPTRH,#0FFH
                        BATDAU:
                        MOVX A,@DPTR
                        MOV P1,A
                        LCALL DELAY
                        INC DPTR
                        MOV INDEX_DPTR1L,DPL
                        MOV INDEX_DPTR1H,DPH
                        LCALL SET_INDEX_DPTR
                        SJMP BATDAU
                        SET_INDEX_DPTR:
                        MOV A,INDEX_DPTR1L
                        CJNE A,INDEX_DPTRL,BATDAU
                        MOV A,INDEX_DPTR1H
                        CJNE A,INDEX_DPTRH,MAIN
                        RET
                        DELAY:
                        MOV R3,#10
                        DL10: MOV R2,#100
                        DL9: MOV R1,#250
                        DL8: NOP
                        NOP
                        DJNZ R1,DL8
                        DJNZ R2,DL9
                        DJNZ R3,DL10
                        RET
                        END

                        Comment


                        • điều khiển động cơ dc

                          ai giúp em sửa code bài này với "điều khiển động cơ dc với yêu cầu có nút chạy/dừng kết nối với p3.0,có nút nhấn đảo chiều kết nối với chân p3.1",em dùng chân p2.0 và p2.1 để điều khiển xung ra cầu H,khi mô phỏng thì chỉ chạy được một trạng thái,không đảo chiều được.giúp em với,em sắp phải nộp rồi.huhu
                          Attached Files
                          ĐẠI HỌC SƯ PHẠM KỸ THUẬT I

                          Nợ cha một sự nghiệp - Nợ mẹ một nàng dâu

                          Comment


                          • không ai giúp mình!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                            ĐẠI HỌC SƯ PHẠM KỸ THUẬT I

                            Nợ cha một sự nghiệp - Nợ mẹ một nàng dâu

                            Comment


                            • anh oi send cho em cái tài liệu mà anh bảo ấy nhé
                              qua mail cho em nhe duytuan2105@gmail.com em cảm ơn anh nhiều nhiều lắm anh àh ma anh có tài liệu vê cách lam robocon cần lam nhung gi.em dân co khí len chỉ biêt sơ sơ về mạch diên chua biet nhiều cac bác nào trong diễn đàn . hãy chỉ giáo em với em xin trân thành cảm ơn
                              điện tử việt nam muôn năm

                              Comment


                              • anh nào có thi send cho em qua mail levantuanlv@gmail.com luôn nha em cam ơn nhìu em cũng có dự định lam robocon hihi

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X