Thông báo

Collapse
No announcement yet.

Bài tập 8051,help me !

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

  • Bài tập 8051,help me !

    Chào các bác,e là dân điện tử mới toanh, hic' mới học được có ít ngày mà thày giáo đã giao về nhà làm 2 bài tập mà e chẳng hiểu gì cả, bác nào giúp đỡ e với, đề bài như sau:
    - viết chuơng trình nhập 1 dữ liệu từ một thiết bị ngoài(ví dụ máy đọc mã vạch) nối với 8051qua cổng nối tiếp( chế độ nối tiếp 1) tốc độ là 4800 bauld và ghi dữ liệu vào Ram nội địa chỉ 40H biết rằng chuỗi dữ liệu là 20 bye
    - Viết chương trình đọc 1 chuỗi dữ liệu chứa trong Ram nội từ địa chỉ 30H đến 50H và xuất ra 1 thiết bị được nối với cổng nối tiếp của 8051( chế độ 1, tốc độ bauld là 2400)

    thanks các bác nhiều
    VINI2 -Giang Khanh Long - Tran Van Cuong

  • #2
    ra mua quyển họ vi điều khiển 8051 về ma` đọc em trong đó có hết đó

    Comment


    • #3
      Dạ thưa bác e đã đọc quyển đó 3 ngày rồi mà ko dám chắc mình có làm đúng hay ko nữa, vậy e post thử bài giải của e cho các bác xem,nếu sai các bác chỉ giùm nha:

      BÀI 1:
      MOV TMOD,# 20H
      MOV TH1,#-6
      MOV SON,#50H
      SET TR1
      LẶP
      CLR RI
      HERE JNB RI,HERE
      MOV A, SBUF
      MOV R1,20D
      MOV A,# 40H
      MOVR1,A
      SJMP, LẶP


      BÀI 2:

      MOV TMOD, # 20H
      MOV TH1,#-12H
      MOV SCON,# 50H
      SET TR1
      LẶP1:
      CLP TI
      MOV SBUF,A
      MOVA,#50H
      MOV RO,#30H
      LẶP2:
      MOV @RO,A
      INC,RO
      CJNE RO,A LẶP2
      HERE JNP TI, HERE
      SJMP,LẶP1

      Các bác đọc xong cho ý kiến giùm e nha
      Last edited by VINI2; 21-12-2007, 06:54.
      VINI2 -Giang Khanh Long - Tran Van Cuong

      Comment


      • #4
        Bạn kiếm một chương trình dịch (ví dụ ASM51) về để dịch cú pháp trước đi đã. Cú pháp lộn xộn, linh tinh thì chưa thể đi vào nội dung được.
        AVR đã quay trở lại: ATMEGA32: 66k, ATMEGA8A: 30k, ATMEGA48: 30k.
        Xem thêm tại Online Store ---> Click here
        Mob: 0982.083.106

        Comment


        • #5
          Nguyên văn bởi VINI2 Xem bài viết
          Dạ thưa bác e đã đọc quyển đó 3 ngày rồi mà ko dám chắc mình có làm đúng hay ko nữa, vậy e post thử bài giải của e cho các bác xem,nếu sai các bác chỉ giùm nha:

          BÀI 1:
          MOV TMOD,# 20H
          MOV TH1,#-6
          MOV SON,#50H
          SET TR1
          LẶP
          CLR RI
          HERE JNB RI,HERE
          MOV A, SBUF
          MOV R1,20D
          MOV A,# 40H
          MOVR1,A
          SJMP, LẶP


          BÀI 2:

          MOV TMOD, # 20H
          MOV TH1,#-12H
          MOV SCON,# 50H
          SET TR1
          LẶP1:
          CLP TI
          MOV SBUF,A
          MOVA,#50H
          MOV RO,#30H
          LẶP2:
          MOV @RO,A
          INC,RO
          CJNE RO,A LẶP2
          HERE JNP TI, HERE
          SJMP,LẶP1

          Các bác đọc xong cho ý kiến giùm e nha
          Bài 1: của bạn, điều kiện thu không thể xảy ra được do cờ báo thu RI trong vòng lặp bạn cứ xóa liên tiếp thì làm sao lệnh JNB RI,$ kiểm tra được. giá trị của RI luôn luôn =0 nên chương trình không thoát ra khỏi vòng lặp được thế là đứng im tại chỗ luôn. Phần xử lý khi nhận được dữ liệu hình như cũng không đúng, bạn nên xem thêm phần định địa chỉ gián tiếp thông qua 2 thanh ghi R0 và R1 trong sách nha.

          Comment


          • #6
            bài 1

            MOV R0,#40H
            MOV R1,#20
            MOV TMOD,# 20H
            MOV TH1,#-6
            MOV SCON,#50H
            SET TR1
            LOOP:
            JNB RI,LOOP
            CLR RI
            MOV A,SBUF
            MOV @R0,A
            DJNZ R1,LOOP
            SJMP $

            xin cho ý kiến

            Comment


            • #7
              bài ngta post từ năm 07 mà giờ trả lời làm gì trời, ặc ặc

              Comment


              • #8
                lập trình c cho vi điều khiển

                Mọi người xem giùm em cái.em đặt một công tắc ở chân P0.0.khi nào ấn thi vòng lặp nhảy lên một nấc.Nhưng chương trình không thực hiện như thế.mọi người chỉ giùm em với.em xin cảm ơn.
                #include <REGX51.H>
                void tre(int n)
                {
                unsigned int i;
                for(i=0;i<=n;i++) ;
                }
                void HangChuc(so)
                {
                switch (so) //k chung
                {
                case 0 :{ P3=0x3f;break; }
                case 1 :{ P3=0x06;break; }
                case 2 :{ P3=0x5b;break; }
                case 3 :{ P3=0x4f;break; }
                case 4 :{ P3=0x66;break; }
                case 5 :{ P3=0x6d;break; }
                case 6 :{ P3=0x7d;break; }
                case 7 :{ P3=0x07;break; }
                case 8 :{ P3=0x7f;break; }
                case 9 :{ P3=0x6f;break; }
                }
                }
                void HangDV(so)
                {
                switch (so) //k chung
                {
                case 0 :{ P2=0x3f;break; }
                case 1 :{ P2=0x06;break; }
                case 2 :{ P2=0x5b;break; }
                case 3 :{ P2=0x4f;break; }
                case 4 :{ P2=0x66;break; }
                case 5 :{ P2=0x6d;break; }
                case 6 :{ P2=0x7d;break; }
                case 7 :{ P2=0x07;break; }
                case 8 :{ P2=0x7f;break; }
                case 9 :{ P2=0x6f;break; }
                }
                }
                void main()
                {
                while(1)
                {
                if (P0_0=1) //vi sao ko co tac dung
                {
                unsigned int i,j ;
                P3=0x3f;
                for (j=1;j<=10;j++)
                {
                for (i=0;i<=9;i++)
                {
                HangDV(i);
                tre(50000);}
                P2=0x3f;

                HangChuc(j);
                }
                }
                }
                }

                Comment

                Về tác giả

                Collapse

                VINI2 Ngày sinh 24.10.84 Tìm hiểu thêm về VINI2

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

                Collapse

                Đang tải...
                X