Thông báo

Collapse
No announcement yet.

Công cụ học tập và phát triển cho PIC - Hoàn toàn miện phí

Collapse
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Nhân dạng tiếng nói .Chuyển đổi trong ADC của dspic ròi lưu vào một fai sau đó đưa fai đó lên may tinh.
    co bác nào lam về kiểu đề tài đó không hay lam rui chảng hạn
    pos len cho anh em với
    hungtuanbk@gmail.com

    Comment


    • đếm sản phẩm dung pic 16f877a

      Anh linh oi, a có mạch đếm sản phẩm dùng pic 16f877a hiển thị qua LCD ko? E đang làm đồ án về nó mà ko có mạch. Em có đọc qua tài liệu về LCD HD44780 nhưng cũng chỉ hiểu sơ sơ, đặc biệt là khâu viết lệnh ko hiểu gì, a co thể cho vi dụ dơn giản cho e dễ hiểu ko?

      Comment


      • Nếu bạn ở ĐN bạn đến cửa hàng linh kiện điện tử ATECKO số 677 Tôn Đức Thắng. ở đây có mấy loại DS chuyên dụng bạn cần,Hiện tại ATECKO đang có chương trình giảm giá 20% tất cả các linh kiện điện tử.

        :

        Comment


        • Nguyên văn bởi tomato2711 Xem bài viết
          Anh linh oi, a có mạch đếm sản phẩm dùng pic 16f877a hiển thị qua LCD ko? E đang làm đồ án về nó mà ko có mạch. Em có đọc qua tài liệu về LCD HD44780 nhưng cũng chỉ hiểu sơ sơ, đặc biệt là khâu viết lệnh ko hiểu gì, a co thể cho vi dụ dơn giản cho e dễ hiểu ko?
          Bạn gì ơi hỏi đích danh anh LINHNC308 thế, người khác có biết cũng chẳng dám mách cho bạn

          Comment


          • Mình đang làm bài tập lớn về pic 16f877a giao tiếp với ma trận phím 4x3 và LCD 2x16 sao cho Lcd hiển thị phím bấm. Bấm phím nào hiển thị lên Lcd phím đấy ( LCD giao tiếp theo chế độ 4bit). Hiện nay mình đã vẽ được mach nguyên lý nhưng chưa biết code thế nào, mà mình lại hơi gà về lập trình. Search trên mạng thấy co nhiều code về LCd nhưng đọc không hiểu lắm mà nạp vào mach và chạy thử trên proteus thì không chạy. Bạn nào có code về vấn đề này cho mình xin với???? Thanks!!!!

            Comment


            • Hiển thị LCD 4 bit

              đây là đoạn code hiển thị LCD 4bit trong viết bằng ngôn ngữ CCS
              HTML Code:
              #include <stddef.h>
              //atecko - lien chieu - da nang
              #define LCD_RS          PIN_c7
              #define LCD_EN          PIN_c5
              #define LCD_D4          PIN_c4
              #define LCD_D5          PIN_c3
              #define LCD_D6          PIN_c2
              #define LCD_D7          PIN_c1
              #define Line_1          0x80
              #define Line_2          0xC0
              #define Clear_Scr       0x01
              
              #separate void LCD_Init ();// ham khoi tao LCD
              #separate void LCD_SetPosition ( unsigned int cX );//Thiet lap vi tri con tro
              #separate void LCD_PutChar ( unsigned int cX );// Ham viet1kitu/1chuoi len LCD
              #separate void LCD_PutCmd ( unsigned int cX) ;// Ham gui lenh len LCD
              #separate void LCD_PulseEnable ( void );// Xung kich hoat
              #separate void LCD_SetData ( unsigned int cX );// Dat du lieu len chan Data
              
              
              // prototype statements
              
              // D/n Cong
              #use standard_io (c)
              //#use standard_io (D)
              
              //khoi tao LCD**********************************************
              #separate void LCD_Init ()
                  {
                  LCD_SetData ( 0x00 );
                  delay_ms(20);       /* wait enough time after Vdd rise >> 15ms */
                  output_low ( LCD_RS );// che do gui lenh
                  LCD_SetData ( 0x03 );   /* init with specific nibbles to start 4-bit mode */
                  LCD_PulseEnable();
                  LCD_PulseEnable();
                  LCD_PulseEnable();
                  LCD_SetData ( 0x02 );   /* set 4-bit interface */
                  LCD_PulseEnable();      /* send dual nibbles hereafter, MSN first */
                  LCD_PutCmd ( 0x2C );    /* function set (all lines, 5x7 characters) */
                  LCD_PutCmd ( 0x0C );    /* display ON, cursor off, no blink */
                  LCD_PutCmd ( 0x06 );    /* entry mode set, increment & scroll left */
                  LCD_PutCmd ( 0x01 );    /* clear display */
              
                  // Init for BarGraph
              
                  }
              
              #separate void LCD_SetPosition ( unsigned int cX )
                  {
                  /* this subroutine works specifically for 4-bit Port A */
                  LCD_SetData ( swap ( cX ) | 0x08 );
                  LCD_PulseEnable();
                  LCD_SetData ( swap ( cX ) );
                  LCD_PulseEnable();
                  }
              
              #separate void LCD_PutChar ( unsigned int cX )
                  {
                  /* this subroutine works specifically for 4-bit Port A */
                      output_high ( LCD_RS );
                      LCD_SetData ( swap ( cX ) );     /* send high nibble */
                  LCD_PulseEnable();
                  LCD_SetData ( swap ( cX ) );     /* send low nibble */
                  LCD_PulseEnable();
                      output_low ( LCD_RS );
                       delay_ms(10);
                  }
              
              #separate void LCD_PutCmd ( unsigned int cX )
                  {
                  /* this subroutine works specifically for 4-bit Port A */
                    //  output_low ( LCD_RS );
                  LCD_SetData ( swap ( cX ) );     /* send high nibble */
                  LCD_PulseEnable();
                  LCD_SetData ( swap ( cX ) );     /* send low nibble */
                  LCD_PulseEnable();
                  delay_ms(10);
                  }
              #separate void LCD_PulseEnable ( void )
                  {
                  output_high ( LCD_EN );
                  delay_us ( 15 );         // was 10
                  output_low ( LCD_EN );
                  delay_us ( 15 );         // was 5
                  }
              
              #separate void LCD_SetData ( unsigned int cX )
                  {
                  output_bit ( LCD_D4, cX & 0x01 );
                  output_bit ( LCD_D5, cX & 0x02 );
                  output_bit ( LCD_D6, cX & 0x04 );
                  output_bit ( LCD_D7, cX & 0x08 );
                  }

              :

              Comment


              • bạn linh ơi.ban có đề tài nào có thể làm đồ an tốt nghiệp bậc cao đằng không.mình tìm lâu lắm rồi mà không có.những mạch như đếm sản phẩm,đèn giao thông hay đo nhiệt độ mình đăng kỳ thì thầy chê nhỏ quá không chấp nhận hướng dẫn cho mình.vậy bạn có đề tài nào hay hay không lam ơn gợi ý cho mình với.mình sắp hết hạn đăng ký đề tài rồi.lam ơn giúp mình với.

                Comment


                • mong anh hay bạn nào biết làm ơn chỉ sớm dùm em.em cám ơn nhiều.gợi ý về ý tưởng đề tài thôi cũng được tại em đang cần gấp

                  Comment


                  • ĐỀ tÀi ĐỒ Án tỐt nghiỆp

                    Theo mình thì đề tài tốt nghiệp nên làm cái gì đó lẫy kĩ năng cho công việc sau này luôn, vì mình bỏ thời gian nhiều để luyện mà. Các đề tài truyền thống thì nhiều người đã làm, bạn nên kiếm một đề tài vừa tầm không khó quá cũng không dễ quá. Bạn cứ chọn đề tài cho mình trước đi nếu mình có tài liệu liên quan sẽ cho bạn tham khảo. Các đề tài về vi điều khiển bạn có thể làm các đề tài như điều khiển động cơ, ổn định tốc độ động cơ ,robốt, LED ma trận, bảng thông tin điện tử, thang máy, đo lưu lượng chất lỏng, UBS, điều khiển chỉnh lưu, biến tần bằng vi điều khiển, định giờ đóng cắt thiết bị, liên quan thời gian thực v.v . nhiều lắm. chúc bạn thành công

                    :

                    Comment


                    • Đề tài về pic18f4431/4331

                      Bác nào có đề tài về điều khiển động cơ 1pha sủ dung pic18f4431/4331 thì cho em với

                      Comment


                      • pic giao tiếp i2c

                        giúp em với em mới nhận đồ án 1 : giao tiếp i2c giữa 2 con pic dùng sw điều khiển để hiển thị ra led (thực ra là để xác nhận giao tiếp giữa 2 con pic )
                        ai có tài liệu nào hay share cho em với

                        Comment


                        • đây là đoạn code hiển thị LCD 4bit trong viết bằng ngôn ngữ CCS
                          anh ơi , em đang làm về mạch giao tiếp matran phím với LCD. mạch em mô phỏng trên Proteus thì chạy rùi, code cũng có, nhưng em muốn đoạm test em dịch chuyển mà ko biết cách, anh chỉ giúp em với. thank!!!


                          #INCLUDE <16F877A.h>
                          #FUSES XT,NOWDT,NOPROTECT,NOLVP
                          #USE DELAY(CLOCK=6000000)
                          #BYTE PORTB=0X06
                          #BYTE PORTC=0X07
                          #BYTE PORTD=0X08
                          #define lcd portB

                          CONST UNSIGNED CHAR
                          DIG[]={'T','u','y',' ','C','h','o','n',' ','s','o','#'};
                          INT8 A=0;
                          void lenh(void)
                          {
                          OUTPUT_LOW(PIN_c0);
                          OUTPUT_LOW(PIN_c1);
                          OUTPUT_HIGH(PIN_c2);
                          OUTPUT_LOW(PIN_c2);
                          DELAY_MS(5);
                          }
                          VOID DU_LIEU(VOID)
                          {
                          OUTPUT_HIGH(PIN_c0);
                          OUTPUT_LOW(PIN_c1);
                          OUTPUT_HIGH(PIN_c2);
                          OUTPUT_LOW(PIN_c2);
                          DELAY_MS(5);
                          }
                          VOID MAIN(VOID)
                          {
                          OUTPUT_B(0X38);
                          LENH();
                          OUTPUT_B(0X0E);
                          LENH();
                          OUTPUT_B(0X80);
                          LENH();

                          WHILE(DIG[A]!='#')
                          {
                          PORTB=DIG[A];
                          DU_LIEU();
                          DELAY_MS(100);
                          A++;
                          }
                          OUTPUT_B(0XC0);
                          LENH();
                          DELAY_MS(100);
                          OUTPUT_D(0B11111111);

                          WHILE(true)
                          {
                          //*****************************************
                          OUTPUT_D(0B11111110);
                          DELAY_MS(10);
                          IF(INPUT(PIN_D4)==0)//CHO KHI D4 XUONG 0
                          {
                          OUTPUT_B(0X37);//GHI7
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          IF(INPUT(PIN_D5)==0)//CHO KHI D5 XUONG 0
                          {
                          OUTPUT_B(0X38);//GHI 8
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          IF(INPUT(PIN_D6)==0)//CHO KHI D6 XUONG 0
                          {
                          OUTPUT_B(0X39);//GHI 9
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          IF(INPUT(pin_D7)==0)//CHO KHI D7 XUONG 0
                          {
                          OUTPUT_B('H');//GHI h
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          //************************************************
                          OUTPUT_D(0B11111101);
                          DELAY_MS(10);
                          IF(INPUT(pin_D4)==0)//CHO KHI D4 XUONG 0
                          {
                          OUTPUT_B(0X34);//GHI 4
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          if(input(pin_d5)==0)//cho khi d5 xuong 0
                          {
                          OUTPUT_B(0X35);//GHI 5
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          if(input(pin_d6)==0)//cho khi d6 xuong 0
                          {
                          OUTPUT_B(0X36);//GHI 6
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          if(input(pin_d7)==0)//cho khi d7 xuong 0
                          {
                          OUTPUT_B('I');//GHI i
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          //******************************************
                          OUTPUT_D(0B11111011);
                          DELAY_MS(10);
                          if(INPUT(PIN_D4)==0)//CHO KHI D4 XUONG 0
                          {
                          OUTPUT_B(0X31);//GHI 1
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          if(input(pin_d5)==0)//cho khi d5 xuong 0
                          {
                          OUTPUT_B(0X32);//GHI 2
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          if(input(pin_d6)==0)//cho khi d6 xuong 0
                          {
                          OUTPUT_B(0X33);//GHI 3
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          if(input(pin_d7)==0)//cho khi d7 xuong 0
                          {
                          OUTPUT_B('E');//GHI e
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          //************************************************** *
                          OUTPUT_D(0B11110111);
                          DELAY_MS(10);
                          if(INPUT(PIN_D4)==0)//CHO KHI D4 XUONG 0
                          {
                          OUTPUT_B('*');//GHI *
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          if(input(pin_d5)==0)//cho khi d5 xuong 0
                          {
                          OUTPUT_B(0X30);//GHI 0
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          if(input(pin_d6)==0)//cho khi d6 xuong 0
                          {
                          OUTPUT_B(0X01);//clear
                          DU_LIEU();
                          DELAY_MS(150);
                          }
                          if(input(pin_d7)==0)//cho khi d7 xuong 0
                          {
                          portB='U';//GHI u
                          DU_LIEU();
                          DELAY_MS(150);
                          } } }

                          Comment


                          • cần giúp đỡ về pic 16f887

                            có bác nào trên diễn đàn co mạch điều khiển tốc độ nhanh cham và thuận nghich cua động cơ DC không cho em xin để tham khảo với, em đang rât cần nó.
                            nếu có xin gửi qua địa chỉ email: nguyenbatrung2688@gmail.com
                            xin chân thành cám ơn!!!

                            Comment


                            • Nguyên văn bởi linhnc308 Xem bài viết
                              Đề tài: Đồng hồ thời gian thực dùng IC DS1337

                              + Chức năng mạch điện:
                              - Hiển thị thời gian hiện tại: Năm/Tháng/Ngày/Thứ/Giờ/Phút/Giây.
                              - Đặt thời gian hẹn giờ.
                              - Giao tiếp bàn phím với 4 phím: Mode – Change – Clear – Set_alarm
                              + Mô tả mạch:
                              - Mạch sử dụng IC thời gian thực DS1337, giao tiếp I2C với PIC. Chi tiết về các thanh ghi và cách khởi tạo xem thêm trong datasheet.
                              -
                              - Hiển thị thời gian dùng 12 LED 7 thanh mắc theo kiều đa hợp(Riêng LED hiển thị năm chỉ dùng 2 LED, nếu muốn hiển thị đầy đủ thì mắc thêm 2 LED nữa hiển thị 20xx). Tất cả các LED chung các đường tín hiệu a..g, còn các chân điều khiển thì mắc với các khoá điện tử (12 Transistor A1015) để điều khiển việc đóng mở LED. Chi tiết về việc ghép nối LED xem thêm trong hàm Display() của chương trình nguồn
                              - Các đèn LED để báo hẹn giờ (có thể dùng Loa để báo hiệu)
                              - VĐK được dùng là PIC16F877A, thạch anh 20MHz…
                              + Mô tả phần mềm:
                              - Viết bằng ngôn ngữ C, dùng chương trình CCS 3.227 để biên dịch
                              - Sử dụng I2C tích hợp của PIC để giao tiếp với DS1337. Các hàm có sẵn trong CCS là I2C_START,I2C_STOP, I2C_READ, I2C_WRITE được dùng trong việc khởi tạo và đọc giá trị thời gian từ DS1337 (Chi tiêt xem thêm trong datasheet của DS1337 để biêt chi tiết về giản đồ thời gian khi đọc và ghi của DS1337)
                              - Việc hiển thị thời gian ra LED là liên tục, dùng 12byte RAM làm bộ đệm hiển thị (các biến LED1, LED2…LED12), giá trị thời gian đọc được từ DS1337 sau khi chuyển đổi từ số BCD sang mã LED7 được lưu trong các biến này.
                              - Ta sẽ đọc liên tục DS1337 nhưng chỉ cập nhật giây. Sau 1 phút thì ta mới đọc toàn bộ các thanh ghi thời gian của DS1337 để cập nhật thời gian và đưa ra hiện thị
                              - Chương trình quét bàn phím sẽ xác định phím chức năng và gọi hàm xử lý tương ứng như hàm chuyển chế độ, hàm chỉnh phút, giờ… hàm hẹn giờ…
                              + Mở rộng:
                              - Dùng LCD cho việc hiển thị thời gian, kết nối máy tính để gửi giá trị và điều khiển.
                              - Kết hợp với việc hiển thị thời gian là hiển thị nhiệt độ dùng LM335 trên LCD.
                              - Trên DS1337 có chân SQW/INTB là chân sẽ xuất ra xung vuông 1Hz, ta dùng xung này đưa vào chân ngắt ngoài của VĐK. Chương trình phục vụ ngắt sẽ tăng biến giây lên 60. Khi bằng 60 thì xoá về 0 và gọi hàm đọc DS1337 cập nhật thời gian. Trong chương trình chính sẽ là hiển thị và quét phím
                              - Việc dùng IC DS1337 hay 1307 là tuỳ vào người dùng. Nếu dùng DS1307 thì phần khởi tạo sẽ có một sô thay đổi và cần thêm nguồn PIN 3V vào chân V_bat- đây chính là nguồn backup để lưu giữ thời gian không bị sai khi mất điện hệ thống.

                              Lưu ý: mạch này có sơ đồ mạch vẽ trên OrCAD, do phần cứng đơn giản nên xem trong phần mã nguồn cũng có thể mắc được mạch. Chú ý thêm điện trở 4K7 tại các chân SDA và SCL(requires an external pullupresistor.)
                              Anh ơi! send cho em bài này với, em đang cần gấp
                              Mail em là: hoanghadt.hnivc@gmail.com
                              thanks anh

                              Comment


                              • Em mới học về VĐK, được phân công làm đồ án dùng PIC16F877a đếm sản phẩm hiển thị ra led7, giao tiếp với bàn phím để chọn số lượng sản phẩm đóng gói. các bác giúp em dí ạ!!!
                                có thể gửi mail cho em: nghia18081991@gmail.com

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X