Tổng hợp các đề tài cho 8051-ASM-Keil(Học tập)

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • blackvip
    Thành viên mới
    • Oct 2011
    • 1

    #76
    các bác ơi, ai có code cho 89s52, nháy led matrix 8x8 hay 5x7 ko, cho e với.

    Comment

    • nktrong
      Thành viên mới
      • Feb 2011
      • 12

      #77
      pro ơi a giúp e lập trình ghép nối con 89c51 với con 8259A để mở rộng ngắt cho con VĐK với. e cố tìm đọc mãi nhưng giờ vẫn chưa bít thiết đặt trạng thái khởi đọng ban đầu cho con 8259A như thía nào. A bớt chút thời gian giúp e nha! tks a trước!

      Comment

      • laodaiprod
        Thành viên mới
        • May 2011
        • 40

        #78
        Bạn linhnc308 và các bạn ơi!
        Mình đang làm đồng hồ số với 8051 hiển thị trên led 7 đoạn
        Bạn có code và mạch giao tiếp với DS1307 để nhớ thời gian không cho mình xin để tham khảo với.
        Tết đến rồi mình định làm một cái treo cho dzui bạn giúp mình với nhá cảm ơn bạn nhiều lắm.

        Comment

        • love_DIY
          Thành viên mới
          • Dec 2011
          • 17

          #79
          linh ơi,cho minh hỏi là những cái ASM mà bạn gửi có đúng ko thế, sao mih thấy mấy ct bị sai
          vd như là
          ORG 0000H
          HUND EQU 100 ;100 x 1000 = 1 giay
          COUNT EQU 1000
          SETB P2.0 ;P3.0: input
          LOOP: JNB P2.0,LOOP ;Cho logic 0 o P3.0
          LOOP1: JB P2.0,LOOP1 ;cho logic 1 o P3.0
          CLR P1.0
          ACALL DELAY
          SETB P1.0
          SJMP LOOP

          DELAY: MOV R7,#HUND
          AGAIN: MOV TH0,#HIGH(COUNT)
          MOV TL0,#LOW(COUNT)
          SETB TR0
          WAIT: JNB TF0,WAIT
          CLR TF0
          CLR TR0
          DJNZ R7,AGAIN
          RET
          end
          bạn ko khởi động TMOD thì lam j có thời gian trễ,với lại đk p2.0 chứ đâu phải p3.0,mấy cái ct đó bạn test chưa?

          Comment

          • quatk7
            Thành viên mới
            • Mar 2012
            • 3

            #80
            em là lính mới có bác nào thông thạo về ám cho em xin cái chuong trình IC thời gian thực(DS1307 hoặc DS1302) viết bàng ASM nữa
            gmail:quatktmtk7@gmail.com
            em cảm ơn trước nhé

            Comment

            • lenhoc91
              Thành viên tích cực
              • Oct 2011
              • 208

              #81
              mấy bác nào xài c chỉ e dùng 555 chỉnh nhịp giup e vơi
              code e đây ạ
              #include <regx51.h>
              #define led P0
              void delay(unsigned int ms)
              {
              unsigned int i;
              unsigned char j;
              for(i=0;i<ms;i++)
              {
              for(j=0;j<125;j++)
              {
              }
              }
              }
              main()
              {
              while(1)
              {
              P0=0x00;delay(1000);
              P0=0x00;delay(1000);
              P0=0x04;delay(1000);
              P0=0x08;delay(1000);
              P0=0x10;delay(1000);
              P0=0x20;delay(1000);
              P0=0x40;delay(1000);
              P0=0x80;delay(1000);
              }
              }

              Comment

              • gagafayfay
                Thành viên chính thức
                • May 2012
                • 58

                #82
                nhưng mà cần phải nắm vững từ cơ bản đến nâng cao mới đc

                Comment

                • 1991conga
                  Thành viên chính thức
                  • Dec 2011
                  • 32

                  #83
                  Nguyên văn bởi linhnc308 Xem bài viết
                  Bên PIC cũng có một mục như vầy và thấy có nhiều bạn hỏi nên tôi mở thêm cho bên 8051, code cho 8051 tôi có khá nhiều và sẽ cố share dần cho a e mới học, có đủ cả cho ASM và C. Sẽ chuẩn bị và up lên sớm. Mong dc sự đón nhận và ủng hộ của a e, ai có gì hay thì up lên nhé, để cho nhưng người mới đỡ khổ như tôi trước đây, cứ phải mò mẫm và đôt không biết bao nhiêu tiền net cho việc tìm tài liệu.
                  - Nháy LED dơn, nháy led nhiều chế độ
                  - LED 7 thanh
                  - Phím bấm
                  - RS232
                  - ADC0804, 0809
                  - Code cho DAC0808 tôi còn thiếu, ái có bổ xung nhé
                  - Led matrix
                  - I2C, SPI
                  - LCD
                  .....nhiều code lặt vặt khác.

                  Phát triển box 8051
                  Vẫn còn bên AVR nữa, có lẽ cung cần mở môt mục tương tự cho nó đủ bộ AT, AVR, PIC
                  bạn có thể gửi cho mình kai' code matrix đc ko
                  mail: vietdung91hp@gmail.com

                  Comment

                  • ngoalong911
                    Thành viên mới
                    • Sep 2012
                    • 1

                    #84
                    xin cac pro giai thich gium tai sao khi toi dung ham
                    MOV P1.0,#3CH
                    thi chuong trinh bao la Undefined symbol
                    xin hoi khac phuc ntn ah
                    thank so much

                    Comment

                    • CONGMINHfs
                      Banned
                      • Jan 2008
                      • 227

                      #85
                      Nguyên văn bởi ngoalong911 Xem bài viết
                      xin cac pro giai thich gium tai sao khi toi dung ham
                      MOV P1.0,#3CH
                      thi chuong trinh bao la Undefined symbol
                      xin hoi khac phuc ntn ah
                      thank so much
                      bạn sai cú pháp và nhầm P1.0 là 1 chân ở port 1 thì nó là 1bit thì không thể đặt 1 byte vào được.
                      nếu là p1.0 thì setb hoặc clr
                      còn là p1 thì mới mov p1,#...

                      Comment

                      • anhtuan_qnu
                        Thành viên mới
                        • Sep 2012
                        • 4

                        #86
                        Mình đang làm đề tài: Thiết kế mạch giao tiếp cảm biến hồng ngoại với LCD, "thể hiện trên lcd tương ứng với các nút nhấn các chức năng
                        ESC, Enter, Up, Down".
                        Ai co thể hướng dẫn giúp mình với,mình đang rất cần. Thank các bác!

                        Comment

                        • anhtuan_qnu
                          Thành viên mới
                          • Sep 2012
                          • 4

                          #87
                          Giúp mình viết code này với.

                          Mọi người giúp mình với. Mình đã lập trình được khi bấm công tắc thì mở LCD, còn giờ muốn bấm công tắc để LCD tắt thì làm sao ạ,chức năng giống như nút ON/OFF. Mọi người ai giỏi lập trình giúp mình với. thank! Đây là code mình viết:
                          #include<reg52.h>
                          #include<stdio.h>
                          #include<intrins.h>
                          #include<math.h>
                          #include<stdlib.h>
                          #define bat 1
                          #define tat 0
                          sbit ctac = P3^0;
                          unsigned char dem=1;
                          sbit RS = P1^0;
                          sbit RW = P1^1;
                          sbit EN = P1^2;
                          sbit f = P3^3;
                          sbit b = P3^1;
                          sbit c1=P0^4;
                          sbit c2=P0^5;
                          sbit c3=P0^6;
                          sbit c4=P0^7;
                          unsigned char x;
                          unsigned char message[32];
                          unsigned char i,k;

                          void delay(unsigned long int t)
                          {
                          unsigned long int i;
                          for(i = 0; i<=t; ++i);
                          }
                          /*void phimnhan(void)
                          { if(ctac==0)
                          {delay(100);
                          while(ctac==0);
                          delay(100);
                          dem++;
                          }
                          } */
                          void busy_flag (void)
                          {
                          P2 = 0xff;
                          RS = 0;
                          RW = 1;
                          do
                          {
                          EN = 1;;
                          delay (10);
                          EN = 0;
                          x = P2;
                          x = x&0x80;
                          }
                          while(x!= 0x80);
                          }
                          void write_command (unsigned char lcd_command)
                          {
                          busy_flag();
                          P2 = lcd_command;
                          RS = 0;
                          RW = 0;
                          EN = 1;
                          delay(10);
                          EN = 0;
                          delay(10);
                          }
                          void write_data(unsigned char LCD_data) // thanh ghi du lieu
                          {
                          busy_flag();
                          if(LCD_data!='\n')
                          {
                          P2=LCD_data;
                          }
                          else
                          {
                          write_command(0xC0);
                          return;
                          }
                          RS=1;
                          RW=0;
                          EN=1;
                          delay(80);
                          EN=0;
                          delay(80);
                          }
                          void write_string(char *s)
                          {
                          while(*s)
                          {
                          write_data(*s);
                          s++;
                          }
                          }
                          void init (void)
                          {
                          write_command(0x03); //
                          write_command(0x38);
                          write_command(0x06);
                          write_command(0x0e);
                          }

                          void hienthi()
                          {
                          /*if(P0==0xee){write_command(0x01);
                          write_command(0x80);
                          write_string(" phim so 1 ");
                          P3=0xf1;} */

                          /*if(P0==0xde){write_command(0x01);
                          write_command(0x80);
                          write_string(" \n phim so 2 ");P3=0xf2;} */

                          if(P0==0xbe){write_command(0x01);
                          write_command(0x80);
                          write_string(" ON ");
                          write_command(0x0c);}

                          if(P0==0x7e){write_command(0x01);
                          write_command(0x80);
                          write_string(" OFF ");
                          write_string(" 3 "); delay(500); write_command(0x01);
                          write_string(" 2 "); delay(500);write_command(0x01);
                          write_string(" 1 "); delay(500); write_command(0x01);
                          write_command(0x08);
                          return; }

                          /*if(P0==0xed){write_command(0x01);
                          write_command(0x80);
                          write_string(" phim so 5 ");}

                          if(P0==0xdd){write_command(0x01);
                          write_command(0x80);
                          write_string(" phim so 6 ");} */

                          if(P0==0xbd){write_command(0x01);
                          write_command(0x80);
                          write_string(" VOLUME+ ");}

                          if(P0==0x7d){write_command(0x01);
                          write_command(0x80);
                          write_string(" VOLUME- ");}

                          /*if(P0==0xeb){write_command(0x01);
                          write_command(0x80);
                          write_string(" phim so 9 ");}

                          if(P0==0xdb){write_command(0x01);
                          write_command(0x80);
                          write_string(" phim so 10 ");} */

                          if(P0==0xbb){write_command(0x01);
                          write_command(0x80);
                          write_string(" UP ");}

                          if(P0==0x7b){write_command(0x01);
                          write_command(0x80);
                          write_string(" DOWN ");}

                          /*if(P0==0xe7){write_command(0x01);
                          write_command(0x80);
                          write_string(" phim so 13 ");}

                          if(P0==0xd7){write_command(0x01);
                          write_command(0x80);
                          write_string(" phim so 14 ");} */

                          if(P0==0xb7){write_command(0x01);
                          write_command(0x80);
                          write_string(" ENTER ");}

                          if(P0==0x77)
                          {
                          write_command(0x01);
                          write_command(0x80);
                          sprintf(&message[0],"ESC");
                          write_string(&message[0]);P3=0x00;
                          }
                          }
                          void dieukhien(void)
                          {
                          int n[5] = {0xfe,0xfd,0xfb,0xf7};
                          for (i=0; i<=3;++i)
                          {
                          P0 = n[i];
                          hienthi();

                          }
                          }
                          /* Lenh cuon tang tuyen tinh

                          k = 0xfe;
                          for(i=0;i<=3;++i)
                          {
                          P0 = k;
                          k = _crol_(k,1);
                          }*/


                          void main (void)
                          {

                          while(1)

                          if(ctac==0)
                          {


                          delay(100);
                          init();
                          write_command(0x01);
                          write_command(0x80);
                          sprintf(&message[0]," CAM BIEN\nHONG NGOAI_LCD");
                          write_command(0x0c);
                          write_string(&message[0]);
                          /*while(ctac==1)
                          {
                          //delay(100);
                          write_command(0x08);
                          } */
                          while(1)

                          {
                          dieukhien();
                          delay(10);

                          }

                          }
                          }

                          Click image for larger version

Name:	vdk.jpg
Views:	2
Size:	147.5 KB
ID:	1369963

                          Comment

                          • Vu Nam Hai
                            Thành viên mới
                            • Nov 2012
                            • 1

                            #88
                            Thank bạn nhiều hi
                            |

                            Comment

                            • gianghp1992
                              Thành viên mới
                              • Oct 2012
                              • 6

                              #89
                              bác chủ thớt ơi, bác có code của đề này ko, đo tốc độ DC rùi hiển thị lên LCD dùng 8051 và encoder

                              Comment

                              • nguyenlong14
                                Thành viên mới
                                • Oct 2013
                                • 1

                                #90
                                e đang làm bài tập thiết kế mạch đo nhiệt độ sử dụng cảm biền lm35 kết hợp adc0804 đo nhiệt độ môi trường và hiển thị ra led matrix bác nào có code cho em xin được không . chỉ bảo em sơ sơ qua thì càng tốt à . thanks

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...