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

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • diecthu
    Thành viên mới
    • Aug 2008
    • 10

    #541
    mọi người ơi sửa hộ cái bài trong sách cái

    mấy cái tài liệu trong sách VDK sai linh tinh, ai sửa dùm cái bài đếm sản phẩm này cái(hiển thị 4 LED ngắt = sườn âm)


    #include<reg52.h>
    #include<stdio.h>
    #include<math.h>
    unsigned char M[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
    unsigned char donvi,chuc,tram,nghin;
    long int num,j;
    void tre (unsigned long int t)
    {
    unsigned long int i;
    for (i=1;i<=t;i++)
    }
    void main (void)
    {
    nghin=num/1000;
    tram=(num%1000)/100;
    chucnum%1000)%100)/10;
    donvinum%1000)%100)%10;
    for (j=1;j<=100;j++)
    {
    P1=0xF7;
    P2=M[donvi];
    tre(100);
    P1=0xFB;
    P2=M[chuc];
    tre(100);
    P1=0xFD;
    P2=M[tram];
    tre(100);
    P1=0xFE;
    P2=M[nghin];
    tre(100);
    P1=0xFF;
    }
    }
    voi main(void)
    {
    IE=0x84;
    IT1=1;
    num=0;
    while(1)
    {
    hienthi();
    }
    }
    void ngatngoai_1(void) interrupt 2
    {num++};

    Comment

    • saoxathu
      Thành viên tích cực
      • Jul 2007
      • 172

      #542
      Mới xem qua thấy 2 main là sao, không thấy while(1) ở đâu luôn, có thời gian mình sẽ xem tiếp giúp bạn ...
      dientuvietnam.net

      Comment

      • daominhchien
        Thành viên tích cực
        • Jul 2008
        • 452

        #543
        tôi thấy trên cửa sổ Keil C, hình đầu tiên có chữ "hello" có bắt buộc phải vào
        "Keil C_HELLO" k0 ? xin các vị chỉ giúp. Xin cảm ơn!
        Tôi thích cái cầu kỳ của kỹ thuật
        Nhưng ghét mọi phức tạp trong tính cách con người

        Comment

        • daominhchien
          Thành viên tích cực
          • Jul 2008
          • 452

          #544
          Xin các cao nhân chỉ giúp chuong trình "HELLO" có ý nghĩa gì với các chuong trình khác viết sau này k0 ạ!
          Last edited by daominhchien; 04-09-2008, 09:23.
          Tôi thích cái cầu kỳ của kỹ thuật
          Nhưng ghét mọi phức tạp trong tính cách con người

          Comment

          • thuanc85
            Thành viên mới
            • Jun 2007
            • 3

            #545
            Nói chung các bác phải học C trước, chứ cứ bập vào lập trinh VDK luôn thì khó giải thích lắm

            Comment

            • kimsauquan
              Thành viên mới
              • Sep 2008
              • 5

              #546
              mấy pác thảo luận vấn đề này xông xáo we chừng. e vừa tập tỏm cái keil này các pác ạ, pác nào hướng dẫn giúp e kỹ hơn với, tụi bạn đưa tài liệu đọc chẳng hiểu j cả. từ đó e mới rút ra kinh nghiệm là phải có người hướng dẫn cái này mới mong...Ví dụ như các pác post một bài tập of pác rồi chỉ vài đường cho e với. hy vọng các pác giúp cho. cảm ơn các pác nhiêu2

              Comment

              • tallht
                Thành viên mới
                • Apr 2008
                • 361

                #547
                nếu bạn chưa học c lần nào thì nên tìm tài liệu về c đọc trước cho dễ nắm bắt về sau!
                SỰ HỌC LÀ MÃI MÃI......!!!!

                Comment

                • jackychan
                  Thành viên tích cực
                  • Mar 2008
                  • 112

                  #548
                  Bạn tallht nói đúng: Các bạn phải biết chút ít về lập trình C thì làm việc với Keil C mới dễ được. Ít nhất thì bạn cũng phải hiểu được các khai báo, các kiểu dữ liệu, và một số lệnh if, for ...

                  Comment

                  • jackychan
                    Thành viên tích cực
                    • Mar 2008
                    • 112

                    #549
                    Trích "mấy cái tài liệu trong sách VDK sai linh tinh, ai sửa dùm cái bài đếm sản phẩm này cái(hiển thị 4 LED ngắt = sườn âm)" của bạn diecthu: Tôi tặng bạn chương trình bộ đếm tôi đã thử chạy thực tế rất tốt. Dùng ngắt ngoài 1 làm đầu vào đếm và ngắt ngoài 0 làm đầu vào reset. hiển thị ra Led 7 thanh. Hãy so sánh với chương trình của bạn sẽ thấy bạn sai ở đâu:

                    Comment

                    • jackychan
                      Thành viên tích cực
                      • Mar 2008
                      • 112

                      #550
                      Chương trình:
                      #include<AT89x52.h>
                      #define L0 P2_5
                      #define L1 P2_4
                      #define L2 P2_3
                      #define L3 P2_2
                      #define L4 P2_1
                      #define L5 P2_0
                      int a[]={0x12,0x7e,0x0b,0x4a,0x66,0xc2,0x82,0x7a,0x02,0x4 2};
                      int tang,temp,trieu,tnghin,nghin,tram,chuc,donvi,i,j=0 ;
                      void delay_us(x){
                      int time3,time4;
                      for(time3=0;time3<x;time3++)
                      for(time4=0;time4<1;time4++){}
                      }
                      void init(){
                      IE=0x85;
                      IT1=1; //Lenh nay kha quan trong de dung vao bo dem
                      IT0=1;
                      tang=0;
                      }
                      void ngatngoai_1(void) interrupt 2 using 1{
                      tang++;
                      }
                      void ngatngoai_0(void) interrupt 0 using 2{
                      tang=0;
                      }
                      void display(){
                      P1=trieu;
                      L0=0;
                      delay_us(100);
                      L0=1;
                      P1=tnghin;
                      L1=0;
                      delay_us(100);
                      L1=1;
                      P1=nghin;
                      L2=0;
                      delay_us(100);
                      L2=1;
                      P1=tram;
                      L3=0;
                      delay_us(100);
                      L3=1;
                      P1=chuc;
                      L4=0;
                      delay_us(100);
                      L4=1;
                      P1=donvi;
                      L5=0;
                      delay_us(100);
                      L5=1;
                      }
                      void convert(){
                      trieu=tang/1000000;
                      temp=tang%1000000;
                      tnghin=temp/100000;
                      temp=temp%100000;
                      nghin=temp/1000;
                      temp=temp%1000;
                      tram=temp/100;
                      temp=temp%100;
                      chuc=temp/10;
                      donvi=temp%10;
                      for (i=0;i<=9;i++){
                      if (i==trieu) trieu=a[i];
                      if (i==tnghin) tnghin=a[i];
                      if (i==nghin) nghin=a[i];
                      if (i==tram) tram=a[i];
                      if (i==chuc) chuc=a[i];
                      if (i==donvi) donvi=a[i];
                      }
                      }
                      void main(void){
                      init();
                      P2 = 0xff;
                      P1 = 0xff;
                      while(1){
                      convert();
                      display();
                      }
                      }

                      Comment

                      • yeubom1
                        Thành viên mới
                        • Sep 2008
                        • 12

                        #551
                        các bác ơi ai co chương trình delay miligiay chính xác không post lên gium em với
                        cảm ơn nhiều
                        bac jackychan ơi chương trình delay cua bác nếu nạp x =100 thì trể được bao nhiêu hả bác
                        Last edited by yeubom1; 17-09-2008, 10:24.

                        Comment

                        • hothieugia86
                          Thành viên mới
                          • Sep 2008
                          • 15

                          #552
                          cac anh oi co tai lieu tieng anh chuyen nghanh ko ai co gui cho em voi hell me

                          Comment

                          • tallht
                            Thành viên mới
                            • Apr 2008
                            • 361

                            #553
                            Bạn chụp hình màn hình bằng nút print screen trên keyboard rùi paste vào paint.lưu lại rùi nén file đó, up lên đây cho mọi người xem!(chọn chức năng trả lời chi tiết!)
                            @BẠN NHỚ DÙNG TIẾNG VIỆT CÓ DẤU TRÊN DIỄN ĐÀN NHA!
                            SỰ HỌC LÀ MÃI MÃI......!!!!

                            Comment

                            • HAINGUYEN_20
                              Thành viên chính thức
                              • Sep 2008
                              • 48

                              #554
                              Các anh em ai có bài về đo gia tốc của 1 vật pots lên cho mình với nhé mình đang cần.Cảm ơn nhìu nhá.Em nghĩ mãi ko ra cách viết.

                              Comment

                              • jackychan
                                Thành viên tích cực
                                • Mar 2008
                                • 112

                                #555
                                Trích: "bac jackychan ơi chương trình delay cua bác nếu nạp x =100 thì trể được bao nhiêu hả bác"
                                Cái đoạn delay đó là tôi làm để chuyển từ us sang ms cho tiện
                                void delay_us(x){
                                int time3,time4;
                                for(time3=0;time3<x;time3++)
                                for(time4=0;time4<1;time4++){}
                                }

                                Nếu nạp x=100 thì trể được khoảng 100us
                                Nếu sửa lại một ít ta sẽ được delay_ms()
                                void delay_ms(x){
                                int time3,time4;
                                for(time3=0;time3<x;time3++)
                                for(time4=0;time4<100;time4++){}
                                }

                                Nói chung là nó ko chính xác đâu bạn ah.

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