Thông báo

Collapse
No announcement yet.

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

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

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

    Comment


    • #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


      • #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


        • #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


          • #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


            • #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


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

                Comment


                • #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


                  • #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


                    • #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


                      • #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


                        • #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


                          • #88
                            Thank bạn nhiều hi
                            |

                            Comment


                            • #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


                              • #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...
                                X