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

  • 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


    • 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


      • 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


        • 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


          • 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


            • 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, 23: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


              • 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


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

                  Comment


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

                    Comment


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

                      Comment


                      • 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


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

                          Comment


                          • 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, 02:13.

                            Comment


                            • 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


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