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

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • saudo
    Thành viên mới
    • Dec 2007
    • 26

    #271
    Em là gà và đang tìm tài liệu về con 89c51 làm mô phỏng đèn tín hiệu giao thông bác nào có tài liệu cho port lên cho em hay gửi qua mail ng_huytoan@yahoo.com. thx

    Comment

    • hero8x
      Banned
      • Nov 2007
      • 64

      #272
      Nguyên văn bởi Asterik Xem bài viết
      Chác các bác!
      Tui cũng mới học lập trình VDK nên mới chỉ biết sơ sơ về ngôn ngữ lập trình Asembler chứ chưa biết lập trình C. Vì vậy tui mong các bác có ai hiểu rõ lập trình về ASembler thì chỉ giáo giúp tui như bạn Quỳnh thì tôt quá.
      Cám ơn các bác nhiều!
      không có gì đâu bạn muốn học được ASM tốt thì bạn càn phải tìm hiểu rõ cấu trúc của nó đã thì bạn mới bắt đầu học dc.
      như các thang ghi,...

      Comment

      • man
        Thành viên mới
        • Feb 2008
        • 1

        #273
        em mới bắt đầu học vi điều khiển để làm đồ án tốt nghiệp hơi trễ nên cần sự trợ giúp của anh quynh,duy phi và tất cả các bạn tham gia diễn đàn.Các anh chị có sơ đồ nguyên lý của mạch điều khiển thiết bị điện dung 8051 ở đây e làm cho 2 thiết bị thôi. 8051 sẽ nhận tín hiệu từ 4 phím.tín hiệu ra được hiên thị 4 led 7 đoạn(2 led cho 1 thiết bị gồm hàng chục và hàng đơn vị).Khi e bấm nút hoạt động thì thiết bị sẽ hoat động và 8051 sẽ điều khiển led 7 doạn giảm dần về đến 00 thì thiết bị tăt.Ban đầu thì nhập vào giá trị vào chip khi án phím hoạt động thì giá trị hiện lên led 7 doạn.Muốn thay đổi giá trị thì minh dung 4 phím luc nãy mình ấn sẽ thay đổi tùy theo hang chuc hay hàng đơn vị hoặc cả 2.E chi hiểu vậy thôi các bước làm sao thì e chưa biết vả lại chưa hình dung cụ thể sơ đồ nguyên lý.E cung dang tìm hiểu về 8051.À còn nữa là phải lập trình chip để khi led về 00 thì thiết bị nhận tín hiệu tắt. E đang rất cần câu trả lời cang sơm càng tốt các anh chị.E CẢM ƠN NHIỀU.

        Comment

        • sun_rise
          Thành viên tích cực
          • Sep 2006
          • 144

          #274
          bác có cách nào có thể đếm được xung encoder không?
          Dùng ngắt để phát hiện và đếm số xung (chỉ cần đếm thôi, không cần tính độ rộng vì nếu tính độ rộng sẽ gây khó khăn do dễ bị tràn biến)Tính toán cho Timer chạy khoảng 1s sau đó cứ mỗi giây thì đọc giá trị đếm xung, đếm được n xung -> có n xung/s. Mình thử với AVR rồi, bạn thử làm với 8051 nhá.

          Comment

          • nghiem
            Thành viên chính thức
            • Sep 2007
            • 41

            #275
            Nguyên văn bởi vohieu
            Xin tat ca giup em hoc voi,em thich hoc C cho 8051,nhung chua biet nhieu,xin goi cho em 1 it tai lieu tieng viet nha,cam on nhieu
            Bạn xem lại ở trang trước, diễn đàn có trao đổi rất nhiều rồi đó

            Comment

            • trong123
              Thành viên chính thức
              • Mar 2008
              • 79

              #276
              Nguyên văn bởi vohieu
              Xin tat ca giup em hoc voi,em thich hoc C cho 8051, nhung chua biet nhieu,xin goi cho em 1 it tai lieu tieng viet nha,cam on nhieu
              Bạn xem luồng HƯỚNG DẪN LẬP TRÌNH KEIL C CHO 8051, hoặc Danh cho nguoi moi tim hieu 8051
              Last edited by trong123; 24-04-2008, 22:51.
              Không TÔI là kẻ phàm phu
              Cái TÔI quá lớn làm ngu muội mình!
              - 0983.886.113

              Comment

              • vohieu
                Thành viên mới
                • Apr 2008
                • 12

                #277
                Cho em hỏi,em viết code ở duới sai cái gì mà ko biên dịch đc:
                #include<reg51.h>
                #include<stdio.h>
                #include<intrins.h>
                sbit contac P3^7;
                sbit a;
                unsigned char x;
                int j;
                void delay()
                {
                unsigned long int i;
                for (i=1;i<=5000;++i);
                }
                void main(void)
                {
                while(1)
                {
                x=0xFE;
                contac = 1;
                a = contac;
                if (a==0)

                for(j=0;j<=7;++j)
                {
                P0= x; //Xuat ra Port 0
                delay();
                x=_crol_(x,1); // Xoay Led.
                }
                P0=0;
                delay();
                P0=0xFF;
                delay();


                }

                }

                Comment

                • zemen
                  Thành viên tích cực
                  • Nov 2005
                  • 536

                  #278
                  //a là biến thì phải:
                  bit a;
                  //chứ không phải sbit a.
                  !e

                  Comment

                  • vohieu
                    Thành viên mới
                    • Apr 2008
                    • 12

                    #279
                    Cam ơn bạn nhìu nghen,để mình thử lại

                    Comment

                    • vohieu
                      Thành viên mới
                      • Apr 2008
                      • 12

                      #280
                      Cám ơn a zemen nhiều nghen,em làm được rồi

                      Comment

                      • vohieu
                        Thành viên mới
                        • Apr 2008
                        • 12

                        #281
                        Sao không có ai thảo luận nữa vậy? Mình đang cần 1 bài tập mẫu về quét Led 7 đoạn đếm từ số 00 đến 99.bạn nào biết hướng dẫn co mình cụ thể nha. Cám ơn

                        Comment

                        • sakura88
                          Thành viên mới
                          • Oct 2007
                          • 1

                          #282
                          cac bac co the cho em chuong trinh viet cai nay dc hok?cam on cac truoc hen

                          Comment

                          • Zz_Bi_zZ
                            Thành viên tích cực
                            • Nov 2007
                            • 766

                            #283
                            Nguyên văn bởi vohieu Xem bài viết
                            Sao không có ai thảo luận nữa vậy? Mình đang cần 1 bài tập mẫu về quét Led 7 đoạn đếm từ số 00 đến 99.bạn nào biết hướng dẫn co mình cụ thể nha. Cám ơn
                            mấy phần râu ria kia u tự thêm vào nha , tui chỉ hướng dẫn phần chính thui
                            Code:
                            unsigned char const bang_ma[10] = {......} ;
                            
                            
                            void scan_led()
                            { unsigned char i ; // biến đếm
                               while (1)
                              {
                               for(i =0 ; i<99; i++)
                                   { P0 = bang_ma[i%10] ; //xuất data hàng đơn vị
                                      P1_0 = 0 ; delay_us(500);  P1_0 = 1 ;// bật led đơn vị
                                      
                                      P0 = bang_ma[i/10]; // xuất data hàng chục
                                      P1_1 = 0 ; delay_us(500); P1_1 = 1;// bật led chục
                                   }
                              }
                            }
                            tất nhiên trong hàm main , bạn phải cho tắt hết led lúc ban đầu reset
                            Last edited by Zz_Bi_zZ; 04-05-2008, 01:13.

                            Comment

                            • duyanh
                              Thành viên chính thức
                              • Sep 2007
                              • 51

                              #284
                              Cho em hỏi về lệnh LJMP addr 16.trong sách trang 278(sách vi xử lí của thấy Hồ Trung Mĩ),có mô tả lệnh này như sau: (PC0-15)<--A0-15.Lệnh này tốn tới 3 byte,vậy tại sao ko có thêm phần (PC)<--(PC)+3,hay là sách thiếu.,em cũng hỏi tương tự cho lệnh JMP@A+DPTR ở cùng trang luôn nó chỉ có phần mô tả là: (PC)<--(A)+(DPTR) mà ko thấy ghi trước đó : (PC)<--(PC)+1.Các bác có biết chỗ tải phần mô tả lệnh của 8051 ko,cho em xin với

                              Comment

                              • blackmoon
                                Thành viên tích cực
                                • Jul 2005
                                • 363

                                #285
                                Tôi cũng chưa đọc sách của thầy Hồ Trung Mỹ, nhưng qua bạn mô tả thì thầy viết có lý đấy chứ.
                                Hai lệnh mà bạn hỏi đều là hai lệnh nhảy. Bản chất của lệnh nhảy là thay đổi nội dung của con trỏ PC. Thông thường thì PC tự tăng (+1, hoặc +2, hoặc +3...) để trỏ vào lệnh ngay sau lệnh đang được thực hiện. Nhưng với lệnh nhảy thì PC không tăng tuần tự như thế nữa mà thay đổi đột ngột đến 1 giá trị được quy định bởi toán hạng (operand) của lệnh nhảy. Nếu thay đổi theo toán hạng rồi mà sau đó lại gán PC tăng tuần tự (+1, +2, +3...) nữa thì nhảy sao được?
                                Còn link để tải tập lệnh của 8051 thì bạn vào google, tra với từ khóa "mcs-51 instruction set". Internet là kho kiến thức vô tận, các bạn sinh viên nên học cách tìm thông tin trên internet bằng các search engine như Google hay Yahoo.
                                Thân mến,
                                blackmoon.

                                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...