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

  • có bác nào biết cách sử dụng watchdog trong keil ,su dung 89s5X không ?
    bác BẰC HẢI có thể giúp em không ?
    |

    Comment


    • Tham khảo cái này xem sao:
      Code:
      //----------------------------------------------------
      //  thghi watchdog se tran sau khoang 17ms neu khong duoc xoa lai tu dau.
      
      #include <Treg52.h>
      #include <Tdelay.h>
      
      void HdelayWDT_ms(unsigned int ms)
      {
          unsigned char btam;
          while(ms--)
          {
              btam = 120;
              //reset watchdog timer
          	WDTRST = 0x1E;
          	WDTRST = 0xE1;
              //delay khoang 1000us
              while(btam--){}
          }
      }
      
      void main (void)
      {
      	//Gia tri ban dau cho watchdog timer
      	WDTRST = 0x1E;
      	WDTRST = 0xE1;
      
      	while(1)
      	{
      		P0 ++;
      		HdelayWDT_ms(500);
              //mach se chay binh thuong do da reset watchdog timer
              //trong ham delay
              
              //Neu nhan p37, reset lai vdk
      		if (P37 == 0)
      		{
      			Hdelay_ms(20);
                  //do delay qua lau 20ms > 17mm => watchdog timer tran
                  //mach se tu reset lai
      		}
      
              if(!P36)
              {
                  HdelayWDT_ms(20);
                  P0--;
                  HdelayWDT_ms(500);
              }
      
      
      		//Reset lai watchdog timer, o cho no tran
      		WDTRST = 0x1E;
      		WDTRST = 0xE1;
      	}
      }
      Last edited by VNarmy; 09-05-2007, 14:38.
      !e

      Comment


      • chao anh nghe tin anh da lau hôm nay co viẹc mong anh nhiet tinh giup :thiet kế bộ biến ðỏi số-týõng tự DAC 8bit , có khả nãng giao tiếp với máy tính qua các ðýõng dữ liệu của PLT1
        VIÊT CT CHO bộ DAC ðọc dữ liệu nhận ðựoc từ máy tính và ðièu khiển DAC biến ðỏi tín hiệu ðó thành tín hiệu ðiện áp(0-5v)
        mong tin anhnhiều em gai giảng dường hang_vip_tieu....@yahoo

        Comment


        • Nguyên văn bởi tuan11 Xem bài viết
          Bác natra2k2 xem trương trình em có sai gì không vậy
          các bác cứu em với em cũng bị "Target not created".
          ko hiểu nữa.
          Còn nếu dùng Reads51 thì dùng vòng lặp For để delay thì ko được..... hu...hu....
          tốn cả tuần rồi

          Comment


          • Tham khảo.

            Nguyên văn bởi thanhtrucdln Xem bài viết
            :[B]thiet kế bộ biến ðỏi số-týõng tự DAC 8bit , có khả nãng giao tiếp với máy tính qua các ðýõng dữ liệu của PLT1
            VIÊT CT CHO bộ DAC ðọc dữ liệu nhận ðựoc từ máy tính và ðièu khiển DAC biến ðỏi tín hiệu ðó thành tín hiệu ðiện áp(0-5v)
            cái này hình như có nhiều người làm rồi mà.
            Nếu đơn giản ta có thể tạo 1 giao diện bằng VB6.0 sử dụng các file liên kêt động dll để giao tiếp cổng LPT.
            Phần cứng dùng 1 con ADC (chẳng hạn LC7528), kết nối 8 dg dữ liệu của ic tới 8 dg ra của thghi dữ liệu cổng máy in, các chân điều khiển, chọn thì nối tới mấy đường của thghi điều khiển cổng máy in
            Thế là từ giao diện nhập thông số, nhấn "SEND", ta sẽ có điện áp tương tự.
            Đơn giản đấy chứ!
            !e

            Comment


            • Anh BẰC HẢI ơi ! có thể giúp có cách nào dùng KeilC cho AVR, tiny không?

              Comment


              • các bác, em đã làm y như hướng dẫn mà sao Keil C cứ báo lỗi "taget not created" ?

                Comment


                • Xin chào, mình mới học tập lảm quen với vi điều kiển, nên chưa biết gì.Đọc thấy NHB cho địa chì hướng dẫn lập trình dùng phần mềm Keil C cho 8051:
                  http://picvietnam.com/ngohaibac/8051...1%20Primer.pdf
                  và bản Keil C 8.05:
                  http://picvietnam.com/ngohaibac/8051/c51v805.exe
                  mình tìm hoài không thấy. Mong NHB và ai biết chỉ giúp cho, cám ơn nhiều.

                  Comment


                  • xinhuogn dan dum

                    chao bác hai xin bac huogn dan dum minhloi o dau mihn làm dúng như bác hướng dẫn mà không dược :xin vui lòng xem file gửi kèm
                    http://www.freewebtown.com/nhachue9988/xinhuongdan.rar
                    thank

                    Comment


                    • chào các anh !
                      em mới học về lập trình c cho vi điều khiển hôm nay là lần đầu giủ bài lên diễn đàn, em mới học năm thứ hai nên chưa học vi điều khiển, nhưng đã học lập trình c, hôm vừa rồi ghé diễn đàn thấy có nhiều bài nói về nhúng c cho vi điều khiển, em thấy rất hay, em xin hỏi muốn lập trình được phải học những gì ạ ? rất mong các anh giúp đỡ, em cũng đã đọc được ít tài liệu về nó như c primer, code c for 8051, nhưng em chưa biết bắt đầu lập trình từ đâu?

                      Comment


                      • Lâu không thấy bác NgôHaiBac trả lời giúp anh em nhỉ, hôm nay em có câu hỏi hỏi ý kiến bác đây, bác có thể chỉ giúp anh em ý nghĩa của những công cụ cụ thể trong keil C được không, em mới học lập trình nên chưa biết nhiều lắm, mong bác chỉ giáo ??

                        Comment


                        • minh mới tìm hiểu về vdk các ban cho minh hỏi giao tiep 8050 vơi máy tính qua cổng com máy tính phải không a phai qua cả mạch nạp nữa
                          thế co lập trình được bằng c++ không

                          Comment


                          • Chào các bạn!
                            Cho mình hỏi về việc gọi ngắt trong kiel như thế nào thế nào?????
                            thank

                            Comment


                            • Chào các bạn!
                              Cho mình hỏi về việc gọi ngắt trong kiel như thế nào thế nào?????
                              Bạn xem VD sau về dùng ngắt timer để nháy led .
                              void timer1_init()//dung cho ngat timer 1
                              {
                              TMOD&=0x0F;//0xOF=0000.1111
                              TMOD|=0x10;//timer1 in mode 1(16bit)
                              ET1=1;//cho phep ngát timer1
                              EA=1; //cho phep ngat xay ra
                              TH1=0x00; //gia tri can dua vao de xd toi gian xay ra ngat
                              TL1=0x00; //
                              TR1=1; //khoi dong ngat timer1
                              }
                              void chuongtrinh_timer1 (void) interrupt 3//chuong trinh phuc vu ngat timer1
                              {
                              P1_1=~P1_1; //nhay led noi voi chan nay
                              TH1=0x00;
                              TL1=0x00;
                              TF1=0;
                              TR1=1;
                              }
                              void main()
                              {
                              timer1 _init();
                              while(1);
                              }
                              Last edited by TDH-BN; 26-05-2007, 11:20.
                              Học thầy không tày học bạn ...

                              Comment


                              • Cảm ơn bác TBH-BN nhe !
                                Em lại làm phiền bác đây
                                Em có câu hoi tới bác đây, em co chương trình cho chạy 1 led tu chan p1_0 sau đó 2 led chân 3 của port1, cứ thế tăng đến chân 8:
                                Code:
                                #include <AT89x51.h>
                                #define LED P1;
                                void tre();
                                void tre(void)
                                 {
                                   unsigned int i;
                                   for (i=0;i<36000;i++)
                                    {;}
                                  }
                                main()
                                {
                                 unsigned char P1=128;
                                 for (;;)
                                  {
                                	P1=P1|(P1>>1);
                                	if(P1==255)
                                	 {
                                	   tre();
                                	   P1=128;
                                	  }
                                	 tre();
                                   }
                                 }
                                khi chạy mô phỏng thì không thấy các chân p1 nhưng không thấy như y muốn và khi em đã define led p1 nhưng không dùng led thay thế p1 được ?
                                Cảm ơn bác!
                                Last edited by VNarmy; 07-07-2007, 17:43.

                                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

                                Đang tải...
                                X