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

  • Tài liệu keil c

    Nguyên văn bởi tc8051 Xem bài viết
    Mình cũng đang cần tìm tài liệu về lập trình keil C(từ A tới Z) cho VDK day.
    Bạn Quocdungk27 up lên lại cho mình với anh em xin nhé.
    Cảm ơn nhiều lắm.
    http://www.picvietnam.com/forum/showthread.php?t=306
    MẤY PÁC QUA TRANG NÀY MÀ DOWN NHÁ!
    SỰ HỌC LÀ MÃI MÃI......!!!!

    Comment


    • Nguyên văn bởi minhhieu Xem bài viết
      Dịch bít trong C bạn không cần phải quan tâm cờ dịch bít đâu. Làm theo câu lênh như sau:

      char Data; // ví dụ khai báo một biến có tên là Data, kiểu là char
      char i; // biến i là số bít cần dịch

      Data = Data << i; // đây là dịch trái
      Data = Data >> i; // còn đây là lệnh dịch 8 bit của Data sang phải i bit

      //Ví dụ cụ thể
      Data = 0b10110011;
      Data = Data >> 1; // Data dịch phải 1 bit. Kết quả sau khi dịch là 0b01011001


      Đến đây chắc bạn đã nắm được rồi.
      Vay minh muon dich bit ma khong bi anh huong boi co C (OV) thi lam sao, minhhieu ? Giup minh luon nhe! Cam on nhieu!!!

      Comment


      • Có ai cho mình link download keil c với.

        Comment


        • các bạn cho mình hỏi chút ,mình cài chương trình keil C (uVISION3 V3.33) nhưng chạy code nào nó cũng thông báo:
          ----------
          " Build target 'Simulator'
          compiling HELLO.C...
          HELLO.C(1): warning C500: SERIAL NUMBER EXPIRED
          linking...
          BL51 BANKED LINKER/LOCATER V6.02 - SN: K1M0C-4UI989
          COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2006
          "HELLO.obj"
          TO "HELLO"
          RAMSIZE(256)
          *** FATAL ERROR L210: I/O ERROR ON INPUT FILE:
          EXCEPTION 0021H: PATH OR FILE NOT FOUND

          FILE: HELLO.obj
          Target not created"
          ------------

          chạy code mẫu hello cũng bị,copy code của người khác vô cũng bị

          Comment


          • Nguyên văn bởi svvietnam Xem bài viết
            các bạn cho mình hỏi chút ,mình cài chương trình keil C (uVISION3 V3.33) nhưng chạy code nào nó cũng thông báo:
            ----------
            " Build target 'Simulator'
            compiling HELLO.C...
            HELLO.C(1): warning C500: SERIAL NUMBER EXPIRED
            linking...
            BL51 BANKED LINKER/LOCATER V6.02 - SN: K1M0C-4UI989
            COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2006
            "HELLO.obj"
            TO "HELLO"
            RAMSIZE(256)
            *** FATAL ERROR L210: I/O ERROR ON INPUT FILE:
            EXCEPTION 0021H: PATH OR FILE NOT FOUND

            FILE: HELLO.obj
            Target not created"
            ------------

            chạy code mẫu hello cũng bị,copy code của người khác vô cũng bị

            SERIAL NUMBER EXPIRED : thay cdkey mới đi

            FATAL ERROR L210: I/O ERROR ON INPUT FILE:
            EXCEPTION 0021H: PATH OR FILE NOT FOUND[/B]
            FILE: HELLO.obj
            Target not created" : chưa tạo project , từ từ tạo lại project mới xem thử còn bị ko ? thứ nữa là phải click vào chỗ OUT HEX trong option for target

            Comment


            • !!!

              Nguyên văn bởi quannt13788 Xem bài viết
              Có ai cho mình link download keil c với.
              http://www.dientuvienthong.net/diend...hp?f=47&t=2317

              wa đây mà down nha bác!
              mấy bác chịu khó nhờ bác google giúp đi! hay search trong diễn đàn cũng có ý mà!
              SỰ HỌC LÀ MÃI MÃI......!!!!

              Comment


              • Nguyên văn bởi Zz_Bi_zZ Xem bài viết
                SERIAL NUMBER EXPIRED : thay cdkey mới đi

                FATAL ERROR L210: I/O ERROR ON INPUT FILE:
                EXCEPTION 0021H: PATH OR FILE NOT FOUND[/B]
                FILE: HELLO.obj
                Target not created" : chưa tạo project , từ từ tạo lại project mới xem thử còn bị ko ? thứ nữa là phải click vào chỗ OUT HEX trong option for target
                cám ơn bạn .chắc cdkey có vấn đề rùi,mình cài lại keil c là dich được ngay

                Comment


                • giup em

                  sorry
                  Rẹt rẹt....................xẹt xẹt......................roạt.......xong,,,,,, ,,,,,,,,xuống dòng...................Dohoanggiang

                  Comment


                  • các bạn xem giúp mình doạn code điều khiển led 7 đoạn.

                    ================================================== ===========*/
                    /*chuong trinh dieu khien 8 led 7 doan và quet 16 phim bam*/
                    //***********************CAC BO TIEN XU LI*********************
                    #include <at89X51.H>
                    //*************CAC BIEN TOAN CUC*************
                    unsigned char count_scled, //bo dem xac dinh vi tri led

                    buff_led1,buff_led2,buff_led3,buff_led4, //cac thanh ghi chua thong so can hien thi
                    buff_led5,buff_led6,buff_led7,buff_led8;

                    sbit anod_led1=P2^3;sbit anod_led2=P2^2; //cac chan quet led
                    sbit anod_led3=P2^0;sbit anod_led4=P2^1; //cac chan quet led
                    sbit anod_led5=P2^5;sbit anod_led6=P2^4; //cac chan quet led
                    sbit anod_led7=P2^6;sbit anod_led8=P2^7; //cac chan quet led
                    sbit key_a=P3^4;sbit key_b=P3^5; //cac chan giam sat phim bam

                    //********************KHAI BAO CAC HAM NGAT********************

                    void int_tm0(void) interrupt 1 using 0 //ngat time 0
                    {
                    TH0=0xfe; TL0=0x0b; //nap lai bo dem tm0
                    P2=0xff; //tat tat ca led
                    switch(count_scled)
                    {
                    case 0:P0=buff_led1;anod_led1=0;scan_key1();break; //mo led 1+quet phim cot 1
                    case 1:P0=buff_led2;anod_led2=0;break;
                    case 2:P0=buff_led3;anod_led3=0;break;
                    case 3:P0=buff_led4;anod_led4=0;break;
                    case 4:P0=buff_led5;anod_led5=0;break;
                    case 5:P0=buff_led6;anod_led6=0;break;
                    case 6:P0=buff_led7;anod_led7=0;break;
                    case 7:P0=buff_led8;anod_led8=0,count_scled=0xff;break;
                    }
                    count_scled ++; //tang gia tri thanh ghi xac dinh vi tri
                    }
                    //*****KHAI BAO CAC HAM THONG THUONG******************
                    void setin_tm0(void) //khoi tao cac thong so ngat
                    {
                    EA=ET0=1; //cho phep ngat tm0
                    TMOD=17; //che do tm 16 bit
                    TH0=0xfe;TL0=0x0b;TR0=1; //khoi dong tm0
                    }
                    //----------------------------------------------------------
                    void scan_key1(void) //ham quet phim cot 1
                    {
                    }
                    //***************************HAM CHINH*************************
                    void main(void)
                    {
                    setin_tm0(); //thiet lap thong so ban dau cho cac ngat
                    while(1) //vong lap vo tan cho ngat
                    {
                    }
                    }
                    //------------------------------------------------------------
                    trước khi chèn hàm scan_key1 vào lệnh case 0 thì mọi chuyện đều ok nhưng chỉ thêm hàm scan_key1 vào là nó báo lỗi:
                    //-------------------------------------------------------------
                    "compiling Windhv.c...
                    WINDHV.C(33): warning C206: 'scan_key1': missing function-prototype
                    WINDHV.C(53): error C231: 'scan_key1': redefinition
                    WINDHV.C(54): error C231: 'scan_key1': redefinition
                    Target not created"
                    Last edited by svvietnam; 25-08-2008, 13:33.

                    Comment


                    • Trong những chương trình có hàm con, bạn nên có phần khai báo hàm, như vậy sẽ dễ nhìn hơn.Phần khai báo hàm được đặt ở đầu chương trình, trình biên dịch sẽ biên dịch từ trên xuống.
                      Trong đoạn trương trình trên của bạn hàm scan_key1 được sử dụng trong chương trình ngắt, trong khi nó chưa được khai báo.Bạn có thể sửa bằng cách đưa hàm scan_key1 lên trên hoặc khai báo hàm đó.
                      dientuvietnam.net

                      Comment


                      • Dear bạn svvietnam,
                        lỗi này là do bạn chưa khai báo prototype cho hàm scan_key1 trc khi gọi nó ở chỗ case 0 của bạn.
                        Sửa rất đơn giản: bạn đưa cái
                        void scan_key1(void) //ham quet phim cot 1
                        {
                        }
                        lên trước chỗ:
                        void int_tm0(void) interrupt 1 using 0 //ngat time 0
                        {
                        TH0=0xfe; TL0=0x0b; //nap lai bo dem tm0
                        P2=0xff; //tat tat ca led
                        ...
                        là ok thôi.
                        Khi lập trình C bạn phải nhớ 1 điều : khi bạn gọi bất cứ hàm nào, bạn phải khai báo prototype cho hàm đấy trc rồi mới gọi. (đơn giản là bạn phải đưa cái tên của hàm đấy lên trc cái chỗ bạn gọi giống như trường hợp này đấy!)
                        Chúc bạn thành công!

                        Comment


                        • Nguyên văn bởi svvietnam Xem bài viết
                          các bạn xem giúp mình doạn code điều khiển led 7 đoạn.

                          ================================================== ===========*/
                          /*chuong trinh dieu khien 8 led 7 doan và quet 16 phim bam*/
                          //***********************CAC BO TIEN XU LI*********************
                          #include <at89X51.H>
                          //*************CAC BIEN TOAN CUC*************
                          unsigned char count_scled, //bo dem xac dinh vi tri led

                          buff_led1,buff_led2,buff_led3,buff_led4, //cac thanh ghi chua thong so can hien thi
                          buff_led5,buff_led6,buff_led7,buff_led8;

                          sbit anod_led1=P2^3;sbit anod_led2=P2^2; //cac chan quet led
                          sbit anod_led3=P2^0;sbit anod_led4=P2^1; //cac chan quet led
                          sbit anod_led5=P2^5;sbit anod_led6=P2^4; //cac chan quet led
                          sbit anod_led7=P2^6;sbit anod_led8=P2^7; //cac chan quet led
                          sbit key_a=P3^4;sbit key_b=P3^5; //cac chan giam sat phim bam

                          //********************KHAI BAO CAC HAM NGAT********************

                          void int_tm0(void) interrupt 1 using 0 //ngat time 0
                          {
                          TH0=0xfe; TL0=0x0b; //nap lai bo dem tm0
                          P2=0xff; //tat tat ca led
                          switch(count_scled)
                          {
                          case 0:P0=buff_led1;anod_led1=0;scan_key1();break; //mo led 1+quet phim cot 1
                          case 1:P0=buff_led2;anod_led2=0;break;
                          case 2:P0=buff_led3;anod_led3=0;break;
                          case 3:P0=buff_led4;anod_led4=0;break;
                          case 4:P0=buff_led5;anod_led5=0;break;
                          case 5:P0=buff_led6;anod_led6=0;break;
                          case 6:P0=buff_led7;anod_led7=0;break;
                          case 7:P0=buff_led8;anod_led8=0,count_scled=0xff;break;
                          }
                          count_scled ++; //tang gia tri thanh ghi xac dinh vi tri
                          }
                          //*****KHAI BAO CAC HAM THONG THUONG******************
                          void setin_tm0(void) //khoi tao cac thong so ngat
                          {
                          EA=ET0=1; //cho phep ngat tm0
                          TMOD=17; //che do tm 16 bit
                          TH0=0xfe;TL0=0x0b;TR0=1; //khoi dong tm0
                          }
                          //----------------------------------------------------------
                          void scan_key1(void) //ham quet phim cot 1
                          {
                          }
                          //***************************HAM CHINH*************************
                          void main(void)
                          {
                          setin_tm0(); //thiet lap thong so ban dau cho cac ngat
                          while(1) //vong lap vo tan cho ngat
                          {
                          }
                          }
                          //------------------------------------------------------------
                          trước khi chèn hàm scan_key1 vào lệnh case 0 thì mọi chuyện đều ok nhưng chỉ thêm hàm scan_key1 vào là nó báo lỗi:
                          //-------------------------------------------------------------
                          "compiling Windhv.c...
                          WINDHV.C(33): warning C206: 'scan_key1': missing function-prototype
                          WINDHV.C(53): error C231: 'scan_key1': redefinition
                          WINDHV.C(54): error C231: 'scan_key1': redefinition
                          Target not created"
                          đúng oy , u viết hàm scan_key1() sau hàm init_tm0() , thì nó kiếm ko ra hàm scan_key1() ở đâu để thực hiện trong case0 . Cách giải quyết :
                          - Cách 1 : hàm nào dùng lồng các hàm # thì phải đc viết trứoc khi gọi nó
                          - Cách 2 : ngay sau # include<> , bạn khai báo hết tất cả các hàm mà mình dùng ra , nó giống như ta báo danh trước í . Sau đó , viết thoải mái , ko cần để í thứ tự trước sau , u hỉu í tui chứ ?


                          hic , replay xong mới thấy có 2 pro đã replay oy , méc công ngồi type ghê

                          Comment


                          • cảm ơn các bạn nhiều , chuyện có thế thôi mà mình ngồi mò cả ngày hôm qua không ra,lại còn phải nhờ đến mấy đứa bạn học bên IT mà bọn nó cũng bó tay luôn!!!.sở dĩ mình phải đi hỏi mà không post bài trong này vì thấy luồng này còn ít người tham gia quá , không ngờ mọi người nhiệt tình quá.

                            Comment


                            • bạn phải khai báo hàm này trước khi dùng nó chứ!
                              dưới hàng include bạn thêm vào lệnh sau: void scan_key1(void);
                              lỗi được thông báo là thiếu prototype của hàm scan_key1()
                              SỰ HỌC LÀ MÃI MÃI......!!!!

                              Comment


                              • Cần giúp dỡ

                                Tôi cũng bắt đầu học lập trình C cho VDK 80C51.
                                Nhưng trước tiên tôi muốn hỏi các bạn là Keil uVision3 có sử dụng được cho Window Vista kô? Tôi cài vào rồi mà kô ***** được?
                                Cảm ơn

                                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