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

  • Nguyên văn bởi quynh Xem bài viết
    Ví dụ đầu tiên:Nối A của led với P1.0 ,K nối với GND, và cho nó nhấp nháy nhanh hay chậm, tùy bạn.
    ___________________
    Code:
    #include<regx51.h>//khai báo cho chương trình mình dùng thư viện của 8051
    #define led P1_0//Led được nối với P1_0,chú ý viết hoa chữ "P"nhé
    void delay(unsigned int ms)//hàm này tạo độ trễ thời gian, dơn vị là ms
    {
      unsigned int i;
      unsigned char j;//khai báo kiểu "char"mỗi biến chỉ chiếm 1 byte
      for(i=0;i<ms;i++)
         for(j=0;j<120;j++)
             {}//không làm gì cả
    }
    main()//Chương trình chính
    {
      While(1)//tạo vòng lặp vô hạn
    {
        led=0;//tắt led
        delay(1000);//tạo độ trễ 1000ms=1s
        led=1;//bật led
        delay(1000);
    }
    }
    Thế là xong ct đầu tiên, bạn chỉ việc copy,paste, và dịch nó thành file hex ,nạp vào chip,cắm vào mạch và thấy thành quả của mình.
    có điều lưu ý. lệnh While phải sửa thành while ko là Build bị 3 error ngay đó.
    "rất nhỏ nhặt mà lại đáng sợ"

    Comment


    • Nguyên văn bởi duydong Xem bài viết
      mình có thể tham gia chút nha!
      Bạn đã học lập trình C nếu có học mã HEX thì chỗ này có j mà ko hiểu
      0x00 mã HEX viết dạng nhị phân 8bit là 00000000 nếu nối led anot lên nguồn thì nó sáng cả lũ 8 cái luôn còn nối canot thì nó tắt hết thui
      còn 0x01 thi nhị phân 8bit là 00000001 ngẫm thử coi
      nghe vẻ cậu này cũng biết nhiều đây. mình thử hỏi các bạn mới học 1 câu nhé,
      Bạn đã học lập trình C nếu có học mã HEX thì chỗ này có j mà ko hiểu
      0x00 mã HEX viết dạng nhị phân 8bit là 00000000 nếu nối led anot lên nguồn thì nó sáng cả lũ 8
      vậy nếu đặt 0xFF tức là 11111111 (8 con số 1) nếu đấu xuống canot thì hiện tượng gì xảy ra ???

      Comment


      • có điều lưu ý. lệnh While phải sửa thành while ko là Build bị 3 error ngay đó.
        "rất nhỏ nhặt mà lại đáng sợ"
        thì trong C nó phân biệt chữ Hoa và chữ thường mà. bạn ghi thế nào nếu là từ khóa thì tự khắc nó sẽ in đậm lên. nếu không đậm thì tức là bạn đã ghi sai,cần phải sửa.

        mấy cái này mình có thể quy ước được mà các bạn thử nhé

        Comment


        • Nguyên văn bởi rongconn2t Xem bài viết
          nghe vẻ cậu này cũng biết nhiều đây. mình thử hỏi các bạn mới học 1 câu nhé,


          vậy nếu đặt 0xFF tức là 11111111 (8 con số 1) nếu đấu xuống canot thì hiện tượng gì xảy ra ???
          Oh! ahy nhỉ tất nhiên là có hiện tượng chả có hiện tượng j cả, các led tắt hết thui. vì oxFF là coi logic 1 =5v
          anot nối 5v qua trở điện bằng nhau. led tắt
          ở 8051 do cấu tạo phần cứng chỉ hút dòng lớn thui
          nên chả ai cho led sáng băng 0xFF cả ^^ trừ qua IC đệm thì ko nói làm j
          ( thực tế thì mức logic 1 ở đây do điện trở treo thui or gần như zậy, xem phần cứng coi ^^)
          àh ! có khi cho nó sáng mờ mờ ảo ảo lại hay..hehe

          Comment


          • bác nào có thể giúp em được không
            em cần chương trình khi dịch ra file hex thì nó ở dạng
            0000
            1000
            0100
            0010
            0001
            1001
            0101
            0011
            1011
            0111
            1111
            nó được viết bằng ASM nha

            Comment


            • Nguyên văn bởi duydong Xem bài viết
              Oh! ahy nhỉ tất nhiên là có hiện tượng chả có hiện tượng j cả, các led tắt hết thui. vì oxFF là coi logic 1 =5v
              anot nối 5v qua trở điện bằng nhau. led tắt
              ở 8051 do cấu tạo phần cứng chỉ hút dòng lớn thui
              nên chả ai cho led sáng băng 0xFF cả ^^ trừ qua IC đệm thì ko nói làm j
              ( thực tế thì mức logic 1 ở đây do điện trở treo thui or gần như zậy, xem phần cứng coi ^^)
              àh ! có khi cho nó sáng mờ mờ ảo ảo lại hay..hehe
              vui đây.
              ý mình nói là cắm đầu ---- con led xuống đất.khi đưa ra mức 1 ở các chân thì nó xảy ra hiện tượng gì ??
              cái này dành cho mấy bạn hay dùng proteus ấy mà .

              thêm câu nữa nhé . mình dùng C cho mọi người dễ hiểu ,asm cho người mới bắt đầu thì ... hic ... lâu tiến bộ lắm

              ở đầu hàm main mình thiết lập thế này
              void main(void)
              {
              TMOD = 0x01;
              TR0 = 1;
              IE = 0x82;
              while(1);

              }

              và hàm xử lý ngắt nữa

              void ngat_timer_0(void) interrupt 1 // hàm xử lý ngắt timer 0
              {
              P2_0 = ~P2_0; // đảo mức trên chân P2.0
              }

              //==============================================

              hiện tượng gì sẽ sảy ra trên chân P2.0
              nếu đấu đầu + con led lên 5V , đầu --- con led xuống P2.0 thì led sẽ thế nào ?
              mình dùng thạch anh 12MHz nhé.cho quen thuộc
              cái này cho mấy bạn mới vào nghề
              Last edited by rongconn2t; 22-12-2009, 09:39.

              Comment


              • em có led matrix nhu chủ đền bên dưới em đã ráp xong rồi nhưng em chưa biết lập trình như thế nào bằng c keli. em muốn chạy dòng chữ "happy new year" thì phải lập trình như thế nào. em cám ơn anh nhiều

                http://www.dientuvietnam.net/forums/...885#post229885

                Comment


                • làm LED thì phần nguồn khá là quan trọng, nên mua một nguồn tốt của hãng về ghép lại sẽ đỡ tốn nhiều phí
                  Giảng dạy, thiết kế mạch vdk: pic,8051,psoc,avr. các board ứng dụng: ADC,LCD,LED, điều khiển động cơ bước, tich hợp sensor:dò đường, siêu âm, chuyển động.YM:luong_nc@yahoo.com, dd:01234809946

                  Comment


                  • Nguyên văn bởi rongconn2t Xem bài viết
                    vui đây.
                    ý mình nói là cắm đầu ---- con led xuống đất.khi đưa ra mức 1 ở các chân thì nó xảy ra hiện tượng gì ??
                    cái này dành cho mấy bạn hay dùng proteus ấy mà .

                    thêm câu nữa nhé . mình dùng C cho mọi người dễ hiểu ,asm cho người mới bắt đầu thì ... hic ... lâu tiến bộ lắm

                    ở đầu hàm main mình thiết lập thế này
                    void main(void)
                    {
                    TMOD = 0x01;
                    TR0 = 1;
                    IE = 0x82;
                    while(1);

                    }

                    và hàm xử lý ngắt nữa

                    void ngat_timer_0(void) interrupt 1 // hàm xử lý ngắt timer 0
                    {
                    P2_0 = ~P2_0; // đảo mức trên chân P2.0
                    }

                    //==============================================

                    hiện tượng gì sẽ sảy ra trên chân P2.0
                    nếu đấu đầu + con led lên 5V , đầu --- con led xuống P2.0 thì led sẽ thế nào ?
                    mình dùng thạch anh 12MHz nhé.cho quen thuộc
                    cái này cho mấy bạn mới vào nghề
                    Thực tế chút chứ mô phỏng nhiều khi ko đúng lém. ^^
                    Mà bộp 1 phát bạn cho luôn mấy bạn mới như vậy thì làm sao mà hiểu nổi
                    Phải tìm hiểu qua phần cứng và viêt ASM 1 chút chứ -> nó là cơ bản và cũng tưong đối dễ mà
                    Nếu viết như trên bạn cũng phải giải thic chút chứ
                    TMOD : Dặt chế độ cho Timer , ở đây chọn Timer 0 chế độ 16bit nè
                    Khai báo ngắt nè IE
                    và cho timer0 TR0=1
                    mà ở đây bạn ko nạp giá trị ban đầu cho timer0 nhé , thế tính thời gian đèn chuyển trạng thái bao nhiêu zậy ^^
                    Trong chương trình ngắt timer0 chỉ đảo bit cổng P2_0
                    Ở đây ko nạp giá trị ban đầu cho timer0 thì bạn dùng thạch anh nào chả thế có cần tính thời gian chính xác đâu nhỉ
                    Có j thỉnh giáo nhé ^^

                    Comment


                    • Thực tế chút chứ mô phỏng nhiều khi ko đúng lém. ^^
                      thế mới cần thực tế.các bạn mà cứ đăm đăm vào thằng Proteus thì có ngày die đấy.các bạn đóng tắt con led thì không sao.hic nhưng các bạn mà làm bộ hẹn giờ cho quả bom chẳng hạn .cẩn thận đấy

                      Phải tìm hiểu qua phần cứng và viêt ASM 1 chút chứ -> nó là cơ bản và cũng tưong đối dễ mà
                      mới vào nghề thì nên đọc về C trước hay hơn .đọc thẳng ASM dễ tẩu hỏa nhập ma lắm

                      Nếu viết như trên bạn cũng phải giải thic chút chứ
                      mình đã ghi trên là "ĐỐ" rồi. vậy các bạn trả lời xong thì mình sẽ giải thích chứ

                      TMOD = 0x01; : cái này để khai báo timer 0 mode 1( chế độ 16 bit)
                      TR0 = 1; : cái này để cho timer 0 chạy .
                      IE = 0x82; : cái này để khai báo ngắt cho timer 0
                      giải thích như thế này thì người biết rồi không sao . nhưng những người chưa biết thì sẽ không hiểu đc vì nó yêu cầu phải biết đc bản chất con 89 trong có những thanh ghi nào ? các chế độ đc đặt ở các bit trên thanh ghi có tác dụng gì ....
                      tham khảo các code trên mạng đc thì tốt nhưng vẫn phải yêu cầu các bạn phải học sâu về con VDK mới đc
                      mà ở đây bạn ko nạp giá trị ban đầu cho timer0 nhé , thế tính thời gian đèn chuyển trạng thái bao nhiêu zậy ^^
                      Trong chương trình ngắt timer0 chỉ đảo bit cổng P2_0
                      Ở đây ko nạp giá trị ban đầu cho timer0 thì bạn dùng thạch anh nào chả thế có cần tính thời gian chính xác đâu nhỉ
                      không nạp giá trị ban đầu cho timer 0 thì mặc định của nó sẽ là 0. và cứ 12 xung thạch anh vào thì bộ đếm timer sẽ tăng lên 1 .
                      mình đưa thạch anh 12MHz vào vì nó quen với các bạn hơn và dễ dùng với 89
                      tính thời gian chuyển trạng thái trên chân P2.0 như sau
                      tần số thạch anh đưa vào là 12MHz
                      qua bộ chia tần số trong chip thì chip hoạt động với tần số là 12/12 = 1MHz
                      vì timer 0 chế độ 1 là 16bit tức là timer 0 đếm tối đa là 2^16 = 65535
                      vậy thời gian đảo trạng thái là : 1/ (1E6 / 65536 ) = ~1 /15 s
                      nếu đấu con led vào thì tần số 15Hz bạn có thể trông thấy đc

                      chúc vui

                      Comment


                      • Xin hỏi các cao thủ có kiểu thể lập trình được cho VDK đồng thời thực hiện tất cả các chương trình con cùng một lúc không. Giả sử có 3 chương trình con để tạo 3 xung tần số f1, f2 ,f3 xuất ra P1, P2, P3 .

                        Comment


                        • E cũng mạo mụi trả lời cho bác là: ko thể có 3 ct con cùng thực hiện một lúc đc. Chỉ có 3 ct thực hiện lần lượt thôi. Chỉ là thời gian quá ngắn mình ko phân biệt đc 3 ct đó thực hiện lần lượt thôi. chúc bác zui ze nghiên cứu hăng say!

                          Comment


                          • Đó chính là điểm yếu của VDK.

                            Comment


                            • theo cá nhân mình đc biết thì hầu hết các phần mềm lập trình đều như thế. Mình chỉ có biết 1 phần mềm tên là labview là có thể chạy song song một lúc cả 2 chương trình trên 2 nhân của cpu máy tính. Có bạn nào biết thêm thì chỉ giáo cho mình. E là kiến thức của mình khá hạn hẹp mong sự bổ sung từ mọi người để cùng tiến.

                              Comment


                              • Riêng về nhân máy tính thì khỏi nói. 2 chứ 10 chương chình nó chấp hết. Loại chip AMD 4CPUs thì khỏi bàn luôn.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                • mèomướp
                                  Trả lời cho Công thức điện tử
                                  bởi mèomướp
                                  Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
                                  Hôm qua, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
                                  Hôm qua, 20:31
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  Ok , thanks bác đã chỉ...
                                  Hôm qua, 15:06
                                • nguyendinhvan
                                  Công thức điện tử
                                  bởi nguyendinhvan
                                  Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

                                  Chập thì thay. Cháy thì tháo
                                  Làm thì láo. Báo thì hay
                                  May thì khoe. Rủi thì bỏ
                                  Thành tích nhỏ. Báo thành to
                                  Làm cho có. Báo chi li
                                  Sai cả li. Báo
                                  ...
                                  Hôm qua, 00:35
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
                                  25-11-2024, 22:31
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
                                  25-11-2024, 22:14
                                • bactho
                                  Trả lời cho Tự làm máy đo Cuộn cảm
                                  bởi bactho
                                  Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
                                  25-11-2024, 21:48
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
                                  25-11-2024, 21:43
                                • bactho
                                  Trả lời cho các bạn giúp mình về file HEX với!!!
                                  bởi bactho
                                  Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
                                  25-11-2024, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
                                  25-11-2024, 20:43
                                Đang tải...
                                X