Thông báo

Collapse
No announcement yet.

HƯỚNG DẪN LẬP TRÌNH KEIL C CHO 8051-[Chỉ dành post bài hướng dẫn]

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

  • unsigned int n

    Type 16 bit - 2 byte - Range 0 - 65535
    Mạch nạp Pickit 2 SE ---> 170k BH 1 năm
    Pic 18F2550 PDIP Thailand bao test 60K/1c


    Comment


    • Mình mới viết đoạn code cho viêch giao tiếp máy tính để hiển thị lên led ma trận. Mình dùng Hyper Teminal để gởi dữ liệu từ PC sang led. Chương trinh của mình không báo lổi nhưng khi gởi 1 kí tự nó kô hiển thị được , nhờ các bạn xem giúp đoạn code có phải do thuật toán sai không, hay vấn đề khác .
      CODE :
      #include <REGX52.H> // Su dung 89c52 quet hang
      #define SHIFT P2_2
      #define LATCH P2_1
      #define DATA P2_0
      unsigned int byte_cot,che_bit,hang,chay,cot,toc_do;
      unsigned char chay_gia_tri_bang,ki_tu, uart_data;
      void delay(unsigned char time);
      void dich_bit();
      void hien_thi();
      void giai_ma();
      void khoi_tao();
      void receive_data_pc ();
      unsigned char code ma_che_bit[]=
      {0xFF,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
      unsigned char code font[]={
      0xFF,0x8F,0x77,0x77,0x07,0x77,0x77,0x77,//65(A)
      0xFF,0x0F,0x77,0x77,0x0F,0x77,0x77,0x0F,//66(B)
      0xFF,0x8F,0x77,0x7F,0x7F,0x7F,0x77,0x8F//;67(C)
      };
      void delay(unsigned char time )
      {
      unsigned char i,j;
      for(i=0;i<time;i++)
      for(j=0;j<121;j++);

      }
      void khoi_tao()
      {
      SCON =0X50;// UART CHE DO 1 (8 BIT), REN 1
      TMOD=0X20; // TIMER 1 MODE 2, TIMER 0 MODE 1
      TH1=0XFD; // BAUD 9600
      TH1=0XFD; // BAUD 9600 TA: 11.0592
      TR1=1; // KHOI DONG TIMER 1
      IE=0X90;// CHO PHEP NGAT TOAN CUC VA NGAT NOI TIEP DE XU LY DU LIEU DEN
      TI=0;
      RI=0;
      }
      void receive_data_pc () interrupt 4
      {
      if(RI==1)
      {
      RI=0; // Xoa RI de xac dinh du lieu co duoc truyen tu PC xuong ?
      uart_data =SBUF; // Khi Goi du lieu tu PC --> COM thi lay tu SBUF
      // Dua du lieu vao chan DATA cua IC 595
      }
      }
      void chon_hang(unsigned char hang)
      {
      switch(hang)
      {
      case 1:
      {
      P0=0x7F;// HANG 1
      break;
      }
      case 2:
      {
      P0=0xBF;//hang 2
      break;
      }
      case 3:
      {
      P0=0xDF;//hang3
      break;
      }
      case 4:
      {
      P0=0XEF;//hang 4
      break;
      }
      case 5 :
      {
      P0=0xF7;// HANG 5
      break;
      }
      case 6:
      {
      P0=0xFB;// hang 6
      break;
      }
      case 7:
      {
      P0=0xFD;//hang 7
      break;
      }
      case 8 :
      {
      P0=0xFE;// hang 8
      break;
      }

      }
      }
      void dich_bit()
      {
      for(cot=24;cot>0;cot--)
      {

      che_bit=ma_che_bit[hang];
      byte_cot=font[(ki_tu-32)*8+hang+cot];// quet led
      DATA=(bit)(byte_cot&che_bit);
      SHIFT=1;// dich cot
      SHIFT=0;
      DATA=1;
      }
      }
      void hien_thi()
      {
      for(hang=0;hang<8;hang++)
      {
      dich_bit();
      chon_hang(hang);
      LATCH = 1;
      LATCH = 0;
      delay(1);
      P0=0xff;
      }

      }
      void main(void)
      {

      P0=0xff;
      ki_tu=uart_data;
      khoi_tao();
      while(1)
      {

      hien_thi();

      }
      }
      Học hỏi là trên hết .

      Comment


      • Nhờ các bác xem giúp , em mò bữa giờ không có ra. Thanks các bác trước nha.
        Học hỏi là trên hết .

        Comment


        • Nguyên văn bởi vidieukhien1 Xem bài viết
          unsigned int n

          Type 16 bit - 2 byte - Range 0 - 65535
          ý mình muốn hỏi
          có phải biến n ở đây có giá trị là 65535, nếu không phải thì biến n có giá trị là bao nhiêu
          hôm nay nghiền lại thì thấy n ở đây có phải mang giá trị =0 phải không. mong được mọi người giúp đỡ
          Last edited by phamngoctoi1; 14-12-2009, 23:16.

          Comment


          • Có bạn nào biết cách khai báo ngắt dùng 2 chương trình chạy không (gần như song song nếu nhìn bằng mắt) . Xin chỉ giáo nha .
            Học hỏi là trên hết .

            Comment


            • Mình xin hỏi 2 vấn đề như sau:
              1. Nhúng asm trong keil C như thế nào? Mình cũng dùng #pragma asm và #pragma endasm nhưng keil C báo ko được, (cứ báo #pragma asm/end asm not allowed in include files), mình đã vào option file kích chọn 2 ô như hd rồi. Các bạn có thể hướng dẫn cụ thể cho mình ko?
              2. Mình muốn viết 1 hàm để chuyển giá trị BCD sang giá trị BIN, mình viết như sau, nhưng không chạy, bạn nào có thể hướng dẫn mình với (cụ thể là lấy gt từ ds1307 chuyen thành thập phân):
              void BcdToBin(unsigned char sobcd)
              {
              unsigned char BcdChuc,BcdDonvi;
              BcdChuc=sobcd * 0xF0; //giữ 4 bit cao
              BcdChuc=BcdChuc>>4; //đảo 4 bit cao, thấp. Như lệnh swap trong asm ấy

              BcdDonvi=sobcd * 0x0F;
              sobcd=(BcdChuc * 16 + BcdDonvi); //chuyển từ bcd sang thập phân
              }

              Nếu viết bằng asm thì ko có vấn đề nhưng chuyển qua C thì mình còn lúng túng quá!
              Last edited by vlcm2009; 31-12-2009, 15:10.

              Comment


              • BcdChuc=sobcd * 0xF0; //giữ 4 bit cao
                Bạn phải đổi thành BcdChuc=sobcd & 0xF0; //giữ 4 bit cao
                BcdDonvi=sobcd * 0x0F;
                Bạn phải đổi thành BcdDonvi=sobcd & 0x0F;; //giữ 4 bit thấp

                sobcd=(BcdChuc * 10 + BcdDonvi); //chuyển từ bcd sang thập phân
                SỰ HỌC LÀ MÃI MÃI......!!!!

                Comment


                • Chào cả nhà!
                  Mình là thành viên mới! Là con gà mới tập tẹo VXL.
                  Mình đang gặp khó khăn khi viết 1 đoạn chương trình điều khiển đèn LED. Khi viết Xong chương trình và kết thúc bằng lệnh Ret nhưng không hiểu tại sao chương trình cứ lặp mãi mà không chụ dừng.
                  Bác nào co kinh nghiệm chỉ cho em vài đường với!
                  cảm ơn nhiều nhé!

                  Comment


                  • chào các pro.
                    em học khoa điện nhưng lại nhận đồ án về điện tử,
                    nhưng em gặp khó khăn trong việc đếm xung từ encoder và điều khiển tốc độ đc DC bằng PWM.
                    bác nào giúp em với.
                    thanks

                    Comment


                    • uhm

                      Nguyên văn bởi datnguyenba Xem bài viết
                      Chào cả nhà!
                      Mình là thành viên mới! Là con gà mới tập tẹo VXL.
                      Mình đang gặp khó khăn khi viết 1 đoạn chương trình điều khiển đèn LED. Khi viết Xong chương trình và kết thúc bằng lệnh Ret nhưng không hiểu tại sao chương trình cứ lặp mãi mà không chụ dừng.
                      Bác nào co kinh nghiệm chỉ cho em vài đường với!
                      cảm ơn nhiều nhé!
                      cậu post cả cai đoạn code len đi xem nào.

                      Comment


                      • Nguyên văn bởi kien_tran Xem bài viết
                        Mình đang tập tọe VDK 8051 sử dụng trình dịch keil C. Các bước thao tác với Keil như thế nào mình không biết cụ thể.
                        Đầu tiên vào File -->new --> sau đó lập trình nhưng khi cho dịch chạy thử thì nó cứ chạy CT nguồn ee gì đó. xin hãy chỉ giúp.
                        huhu em post bài lên mà các bác chẳng chịu đọc gì cả, có chưong trình 8051 đơn giản và gọn nhẹ, giao diện tiếng việt thì các bác không chịu xem! học cái anh Keil-C này có phải rắc rối hơn chưa, rõ khổ!
                        Thui tạm biệt

                        Comment


                        • Nguyên văn bởi lee_nguyen Xem bài viết
                          huhu em post bài lên mà các bác chẳng chịu đọc gì cả, có chưong trình 8051 đơn giản và gọn nhẹ, giao diện tiếng việt thì các bác không chịu xem! học cái anh Keil-C này có phải rắc rối hơn chưa, rõ khổ!
                          Thui tạm biệt
                          Muốn nó biên dịch cái gì thì phải đặt project (hoặc file) đo làm project (file) đượcc active (đang sử dụng). tốt nhất đóng tất cả lại mở một file duy nhất cần biên dịch. Cái này chỉ la sử dụng chương trình đọc hướng dẫn của nó.

                          Comment


                          • Nguyên văn bởi datnguyenba Xem bài viết
                            Chào cả nhà!
                            Mình là thành viên mới! Là con gà mới tập tẹo VXL.
                            Mình đang gặp khó khăn khi viết 1 đoạn chương trình điều khiển đèn LED. Khi viết Xong chương trình và kết thúc bằng lệnh Ret nhưng không hiểu tại sao chương trình cứ lặp mãi mà không chụ dừng.
                            Bác nào co kinh nghiệm chỉ cho em vài đường với!
                            cảm ơn nhiều nhé!
                            Nếu muốn hỏi gỡ rối chương trình phải post cả chương trình nên mới co thể hiểu được

                            Comment


                            • Nguyên văn bởi lee_nguyen Xem bài viết
                              huhu em post bài lên mà các bác chẳng chịu đọc gì cả, có chưong trình 8051 đơn giản và gọn nhẹ, giao diện tiếng việt thì các bác không chịu xem! học cái anh Keil-C này có phải rắc rối hơn chưa, rõ khổ!
                              Thui tạm biệt
                              CÓ CÀI DC ĐÂU. XEM LẠI HỘ CÁI DC KO?

                              Comment


                              • Giúp em viết chương trình cho vi xử lí ở cột đèn Giao Thông!

                                post nhầm rồi

                                Comment

                                Về tác giả

                                Collapse

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

                                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