MICROCHIP PIC SERIES CCS C VÍ DỤ ỨNG DỤNG ĐƠN GIẢN

CCS C thực hiện của hầu hết thực hiện với PIC16F648 2 đơn vị PIC16F628 với isis mô phỏng các file C và HEX Mã có PIC là một nguồn lực lớn cho những người làm việc trong các chương trình đó hoặc tìm hiểu C trong một loạt các mạch biên dịch CCS C đã qua sử dụng RS232, bàn phím, màn hình LCD, hiển thị, eeprom, truy cập, pwm, v.v ... rất nhiều tệp mẫu dựa trên các mạch đơn giản
Dưới đây là danh sách các ví dụ và danh sách

Tắt đèn Led bằng PIC16F628
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'04 // 14 / August / 05 // vszener@gmail.com // Chương trình: Nhấp nháy của người dẫn đầu mỗi 0.5 giây // Phiên bản: 0.0 sửa đổi del 16F648a // // Thiết bị: Trình biên dịch PIC 16F628A: CCS vs3.227 // Môi trường IDE: MPLAB IDE v7.20 Simulator: Proteus 6.7sp3 // // Ghi chú: nhấp nháy LED 0.5s cho mỗi cổng B pin RB0 ////////////////////////////////////////////////// //////////////////////////////// #include <16f628a .h=""> // pic một tiện ích 16f628a> #fuses XT, NOWDT, NOPROTECT, PUT // đơn đặt hàng cho lập trình viên #use delay (clock = 4000000) // Fosc = 4Mhz #use fast_io (b) /// PROGRAM void chính (void) { set_tris_b (0xFE); // portb là đầu ra (RB0, những người khác bị vô hiệu hóa) disable_interrupts (GLOBAL); // tất cả các ngắt bị tắt làm { output_low (PIN_B0); //dẫn ra delay_ms (500); output_high (PIN_B0); // dẫn đầu delay_ms (500); } trong khi (TRUE); // bucle infinito }
Trượt Leder với PIC16F648A
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'04 // 14 / August / 05 // vszener@gmail.com // Chương trình: Fantastic Car // Phiên bản: 2.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.227 // Môi trường IDE: MPLAB IDE v7.20 Simulator: Proteus 6.7sp3 // // Ghi chú: LED quét mô phỏng ánh sáng xe tuyệt vời bởi // port B. Thích ứng của mã trong cơ bản de lordlafebre // // RB0 -> 1º Led // RB1 -> 2º Led // RB2 -> 3º Led // RB3 -> 4º Led // RB4 -> 5º Led // RB5 -> 6º Led // RB6 -> 7º Led // RB7 -> 8º Led // Trong biến tiếp theo, các giá trị được lưu trữ 1-2-4-8-16-32-64-128 // trong nhị phân tương ứng với chuỗi 00000001-00000010-00000100 ... // là đèn LED được chiếu sáng, trùng với trình tự ánh sáng // của chiếc xe tuyệt vời (phiên bản Ecuador: xe tuyệt vời) ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #fuses XT, NOWDT, NOPROTECT, PUT, NOLVP // đơn đặt hàng cho lập trình viên #use delay (clock = 4000000) // Fosc = 4Mhz #use standard_io (B) // cổng B là đầu ra /// PROGRAM void chính (void) { int i, cont; // biến definidas set_tris_b (0x00); // portb là đầu ra disable_interrupts (GLOBAL); // tất cả các ngắt bị tắt làm {// bucle ... tài khoản = 1; // ... inicializar cho (i = 1; i <8 d="" derecha="" font="" i="" n="" tr="" u=""> output_b (tiếp theo); // chiếu sáng tương ứng delay_ms (100); tài khoản tài khoản = * 2; } cho (i = 1; i <8 font="" i=""> output_b (tiếp theo); // chiếu sáng tương ứng delay_ms (100); tài khoản = Tiếp / 2; } } trong khi (TRUE); //...infinito } 8>8>
Ứng dụng hiển thị thanh Led với PIC16F648A
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'05 // 8 / tháng 11/05 // vszener@gmail.com // Programa: Led & hiển thị 7seg andodo comun // Phiên bản: 0.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.236 // Môi trường IDE: MPLAB IDE v7.22 Simulator: Proteus 6.7sp3 // // Ghi chú: Chương trình này cho thấy cách kết hợp mã ASM trong chương trình của chúng tôi trong C. // Các mô-đun trong asm xử lý các thiết bị ngoại vi (một là một thanh đèn LED, // chiếu sáng tối đa 4 đèn LED liên tiếp và quay lại để bắt đầu và các đèn LED khác / / lái xe một bcd lên truy cập từ 0a9 và trở lại để bắt đầu). Nó sử dụng // bộ giải mã ngoại vi 4555 và bcd-7sec 74247. // Kết nối: A0 -> A 4555 DEC // A1 -> B 4555 DEC // B4 -> A 74247 / Led D1 // B5 -> B 74247 / Led D2 // B6 -> C 74247 / Led D3 // B7 -> D 74247 / Led D4 ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #fuses XT, NOWDT, NOPROTECT, PUT, NOLVP // đơn đặt hàng cho lập trình viên #fuses INTRC // bộ dao động nội bộ #use delay (clock = 4000000) // Fosc = 4Mhz #use fast_io (a) #use fast_io (b) #byte PORTB = 0x06 // định nghĩa của PORTB #byte STATUS = 0x03 // definicion del STATUS /// PROGRAM void chính (void) { char cont = 0; // định nghĩa của ... ký char bcd = -1; //...biến set_tris_a (0x00); // cổng thoát set_tris_b (0x00); // portb salida cho (;;) {// bucle ... output_a (tiếp); // bật đèn LED tương ứng #asm // modulo asm para manejar bcd-> 7seg movlw 1; w <- 1="" font=""> addwf bcd, 1; bcd <- bcd="" font="" w=""> movf bcd, 0; w <- bcd="" font=""> sublw 10; 10- w btfsc STATUS, 2, đã đạt đến 9? goto bằng, YES-> đi đến cùng swapf bcd, 0; KHÔNG: w <- alta="" bcd="" font="" parte=""> goto mẫu, đi đến mẫu bằng nhau: movlw 0; w <- 0="" font=""> movwf bcd; bcd <- font="" w=""> mẫu: movwf PORTB, PORTB <- font="" w=""> #endasm // asm cuối mô-đun để xử lý bcd-> 7 giây delay_ms (450); #asm // mô-đun asm để xử lý movlw 1; w <- 1="" font=""> addwf cont, 1; cont <- cont="" font="" w=""> #endasm // asm cuối mô-đun để xử lý if (cont> 3) // có lần hiển thị cuối cùng được hiển thị không? tt = 0; // SI-> đặt lại cont } //...infinito } ->->->->->->->->->
PIC16F648A 7 phân đoạn ứng dụng bcd
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'05 // 22 / August / 05 // vszener@gmail.com // Programa: Contador 0-9 hiển thị BDC & Boton // Phiên bản: 0.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.227 // Môi trường IDE: MPLAB IDE v7.20 Simulator: Proteus 6.7sp3 // // Ghi chú: Số lượt truy cập từ 0 đến 9 mỗi khi chúng ta nhấn nút và bắt đầu lại. Có // lưu ý rằng bạn phải đặt chỉ thị NOLVP để pin B4 là // thoát. Khi chúng ta thêm nút vào mạch của mình, chúng ta phải tính đến // thiết bị này tạo ra 'số trang không truy cập' phải được loại bỏ // hiển thị chính xác trên màn hình của chữ số đã chọn. Lần này // việc loại bỏ 'bị trả lại' đã được thực hiện bằng phần mềm. // Khi một giá trị logic '0' (thấp) được nhập qua chân A0 của chủ sở hữu, // tăng một chữ số trong màn hình BCD. // // Kết nối: Nút A0 -> // B0 -> a // B1 -> b // B2 -> c // B3 -> d // BCD: // dcba NUM // 0 0 0 0 0 // 0 0 0 1 1 // 0 0 1 0 2 // 0 0 1 1 3 // 0 1 0 0 4 // 0 1 0 1 5 // 0 1 1 0 6 // 0 1 1 1 7 // 1 0 0 0 8 // 1 0 0 1 9 ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #fuses XT, NOWDT, NOPROTECT, PUT, NOLVP // đơn đặt hàng cho lập trình viên #use delay (clock = 4000000) // Fosc = 4Mhz #use fixed_io (b_outputs = PIN_B0, PIN_B1, PIN_B2, PIN_B3) #use standard_io (A) /// PROGRAM void chính (void) { char i = 0; // bộ đếm cho bảng BCD int tabBCD [10] = {0b0000,0b0001,0b0010,0b0011,0b0100,0b0101,0b0110,0b0111,0b1000,0b1001}; // BCD 0-9 set_tris_a (0xFF); // cửa làm đầu vào disable_interrupts (GLOBAL); // tất cả các ngắt bị tắt output_b (tabBCD [i]); // inicializa displayBCD digito 0 cho (;;) {// bucle ... if (! input (PIN_A0)) // đã nhấn nút chưa? { delay_ms (151); // YES -> delay để tránh rebounds i ++; // bảng đếm chỉ số gia tăngBCD nếu (i> 9) // có chữ số 9 được hiển thị không? i = 0; // SI -> khôi phục giá trị chỉ mục (để hiển thị chữ số 0) output_b (tabBCD [i]); // hiển thị theo phân đoạn 7 chữ số portb } } //...infinito }
PIC16F648A Lỗi Int portB
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'06 // 01 / July / 06 // // Chương trình: Kiểm tra gián đoạn do thay đổi trạng thái portb <4: 7="">4:> // Phiên bản: 0.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.249 // Môi trường IDE: MPLAB IDE v7.40 Simulator: Proteus 6.9sp4 // // Ghi chú: Chương trình này sẽ quan tâm để xem trình biên dịch của nhà CCS có bị hủy kích hoạt hay không // ngắt cổng chính xác b, vì điều này bạn phải: // 1. Đọc cổng B cổng // 2. Xóa bit ngắt (bit RBIF) // Mỗi lần có sự thay đổi trạng thái trong các chân của cổng B <4: 7="">4:> // một sự gián đoạn sẽ xảy ra, làm tăng một biến sẽ được sử dụng // trong chương trình chính để hiển thị đèn LED. Ngoài ra, // mỗi lần xảy ra gián đoạn, đèn LED được kết nối với ghim sẽ sáng lên // A4 sẽ xuất hiện khi chúng tôi thoát khỏi sự gián đoạn này. // // Kết nối: A0 -> A dec 4028 // A1 -> B tháng 12 năm 4028 // A2 -> C tháng 12 năm 4028 // A3 -> D tháng 12 năm 4028 // A4 -> đèn báo gián đoạn // B4 -> boton // B5 -> boton // B6 -> boton // B7 -> boton // // Kết luận: CCS không thực hiện điều trị gián đoạn tốt // của portB, vì vậy chúng ta sẽ phải đọc / ghi một số pin // của portB hoặc toàn bộ cổng. ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #fuses XT, NOWDT, NOPROTECT, PUT, NOLVP // đơn đặt hàng cho lập trình viên #fuses INTRC // bộ dao động nội bộ #use delay (clock = 4000000) // Fosc = 4Mhz #use fast_io (b) #use fast_io (a) /// KHAI THÁC BIẾN ĐỔI TOÀN CẦU int biến = 0; /// CALL CHỨC NĂNG TƯƠNG LAI #INT_RB void IntPortB4_7 () { output_high (pin_a4); // indicador de interrupcion on // Kích hoạt dòng dưới đây để xem các thay đổi !!! // trong khi đầu vào (PIN_B4) ||! đầu vào (PIN_B5) ||! đầu vào (PIN_B6) ||! (PIN_B7)); // elimina rebotes // trong trường hợp các ccs hoạt động, nó không nên xử lý gián đoạn một lần nữa cho đến khi một thay đổi trạng thái // của bất kỳ các chân <4: 7=""> của portb. 4:>CCS không thành công, vì vậy nếu chúng ta có dòng đọc / ghi // cổng b (hoặc một trong số các ghim của nó) bị hủy kích hoạt sẽ luôn nhập vào gián đoạn! biến ++; // biến incrementamos if (biến> 0b00001001) // có đèn LED cuối cùng được chiếu sáng không? biến = 0; // SI -> biến đặt lại output_low (pin_a4); // ngắt lời chỉ định } /// PROGRAM void chính (void) { setup_oscillator (OSC_4MHZ); // chúng tôi đặt bộ dao động thành 4MHz set_tris_a (0x00); // cổng thoát set_tris_b (0xFF); // portb entrada enable_interrupts (int_rb); // activar interrupcion rb4: 7 enable_interrupts (GLOBAL); // kích hoạt ngắt output_low (pin_a4); // indicador de la interrupcion off làm {// bucle ... output_a (biến); // chúng tôi hiển thị giá trị của biến } trong khi (TRUE); //...infinito }
PIC16F648A lcd ve 24lc256 Eeprom
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'05 // 30 / August / 05 // vszener@gmail.com // Chương trình: Viết và đọc eeprom ngoài 24LC256 và hiển thị nó bằng màn hình LCD // Phiên bản: 0.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.227 // Môi trường IDE: MPLAB IDE v7.21 Simulator: Proteus 6.7sp3 // // Ghi chú: Thông tin được ghi trong bộ nhớ được hiển thị bằng màn hình LCD (LM016L) // bên ngoài 24LC256 (eeprom) và sau đó được hiển thị bởi màn hình LCD // Các biến cục bộ được sử dụng: // dir-> vị trí để ghi trên eeprom 24LC256 // · men1 [] -> chứa 1 tin nhắn để viết trong eeprom và hiển thị trong màn hình LCD // · men2 [] -> chứa thông điệp thứ 2 để viết bằng eeprom và hiển thị trên màn hình LCD // · men3 [] -> chứa tin nhắn thứ 3 để viết bằng eeprom và hiển thị trên màn hình LCD // · men4 [] -> chứa thông điệp thứ 4 để viết trên eeprom và hiển thị trên màn hình LCD // Màn hình LCD hiển thị địa chỉ bộ nhớ nơi ghi âm được ghi // tin nhắn được hiển thị và thông báo tương ứng. // Hãy nhớ rằng bạn phải đặt chỉ thị NOLVP để pin B4 là // thoát. // Kết nối: A0 -> SCK eeprom bên ngoài // A1 -> SDA eeprom bên ngoài // B0 -> E // B1 -> RS // B2 -> RW // B4 -> D4 // B5 -> D5 // B6 -> D6 // B7 -> D7 ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #use delay (CLOCK = 4000000) // Fosc = 4Mhz #fuses HS, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOWDT // comandos para el programador #define use_portb_lcd TRUE // sử dụng cổng b cho lcd # define EEPROM_SDA PIN_A1 // xác định các ghim ở đâu ... #define EEPROM_SCL PIN_A0 // la eeprom ira conectada #include <24256 .c=""> // libreria de eeprom externa 24LC256 24256> #include// libreria de lcd /// PROGRAM void main (void) { int dir = 0; // địa chỉ eeprom để viết và đọc thư char men1 [] = "VsZeNeR'05"; // declarationacion de ... char men2 [] = "Hola"; char men3 [] = "Foro"; char men4 [] = "TODOPIC!"; //...messajes để viết và đọc bởi 25LC256 lcd_init (); // khởi tạo lcd init_ext_eeprom (); // inicializa eeprom lcd_putc ("~ Viết trong ... \ n24LC256 \ n"); delay_ms (500); write_ext_eeprom (dir, men1); // quá trình viết ... bạn ++; write_ext_eeprom (dir, men2); bạn ++; write_ext_eeprom (dir, men3); bạn ++; write_ext_eeprom (dir, men4); // ... thư trong eeprom bên ngoài lcd_putc ("\ fFin de escritura vi \ n24LC25"); delay_ms (1500); lcd_putc ("\ f >>> Leyendo ... \ n"); cho (dir = 0; dir <4 b="" c="" dir="" eeprom="" font="" h="" hi="" i="" l="" lcd="" m="" n="" ng="" ngo="" nh="" p="" th="" trong="" v=""> printf (lcd_putc, "\ n% d ~% s", dir, read_ext_eeprom (dir)); delay_ms (1500); // chậm trễ cho các tin nhắn xuất hiện trên màn hình lcd_putc ("\ n"); // borrado 2ºlinea de lcd } output_a (0b00); // apago port a lcd_putc ("\ fFin de lectura!"); cho (;;) {// animacion ... for (dir = 1; dir <8 b="" font="" n=""> lcd_gotoxy (dir, 2); lcd_putc ("VsZeNeR'05"); delay_ms (200); lcd_putc ("\ n"); } for (dir = 6; dir> 1; bạn -) { lcd_gotoxy (dir, 2); lcd_putc ("VsZeNeR'05"); delay_ms (200); lcd_putc ("\ n"); } } //...sau cùng } 8>4>
5x7 Led Matrix
////////////////////////////////////////////////// //////////////////////////////// // VsZeNeR'05 // 19/12/05 // vszener@gmail.com // Chương trình: Bảng chữ cái trong mảng LED 5x7 // Phiên bản: 0.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.236 // Môi trường IDE: MPLAB IDE v7.30 Simulator: Proteus 6.7sp3 // // Ghi chú: Chương trình này hiển thị bằng bảng chữ cái trong ma trận đèn LED 5x7. // Trong các cột, bộ giải mã 4028 được sử dụng để quét // Kết nối: A0 -> A 4028 DEC // A1 -> B 4028 DEC // A2 -> C 4028 DEC // A3 -> D 4028 DEC // B0 -> Ma trận hàng 1 5x7 // B1 -> ma trận Row 2 5x7 // B2 -> Hàng 3 ma trận 5x7 // B3 -> Ma trận Fila 4 5x7 // B4 -> Ma trận Fila 5 5x7 // B5 -> ma trận hàng 6 5x7 // B6 -> ma trận Row 7 5x7 ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #fuses XT, NOWDT, NOPROTECT, PUT, NOLVP // đơn đặt hàng cho lập trình viên #fuses INTRC // bộ dao động nội bộ #use delay (clock = 4000000) // Fosc = 4Mhz #use fast_io (a) #use fast_io (b) /// Biến thể GLOBAL TOÀN CẦU int thư [5], tùy chọn = 0; /// CALL CHỨC NĂNG TƯƠNG LAI # INT_TIMER1 void interrupcion () { switch (tùy chọn) {// chọn chữ cái trường hợp 0: letra [0] = 0b00000001; // A thư [1] = 0b01110110; thư [2] = 0b01110110; thư [3] = 0b01110110; thư [4] = 0b00000001; tùy chọn ++; phá vỡ; trường hợp 1: letra [0] = 0b01001001; // B thư [1] = 0b00110110; thư [2] = 0b00110110; thư [3] = 0b00110110; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 2: letra [0] = 0b00111110; // C thư [1] = 0b00111110; thư [2] = 0b00111110; thư [3] = 0b00111110; thư [4] = 0b01000001; tùy chọn ++; phá vỡ; trường hợp 3: letra [0] = 0b01000001; // D thư [1] = 0b00111110; thư [2] = 0b00111110; thư [3] = 0b00111110; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 4: letra [0] = 0b00111110; // E thư [1] = 0b00110110; thư [2] = 0b00110110; thư [3] = 0b00110110; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 5: letra [0] = 0b01111110; // F thư [1] = 0b01110110; thư [2] = 0b01110110; thư [3] = 0b01110110; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 6: letra [0] = 0b01001110; // G thư [1] = 0b00110110; thư [2] = 0b00110110; thư [3] = 0b00111110; thư [4] = 0b01000001; tùy chọn ++; phá vỡ; trường hợp 7: letra [0] = 0b00000000; // H thư [1] = 0b01110111; thư [2] = 0b01110111; thư [3] = 0b01110111; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 8: letra [0] = 0b00111110; //TÔI thư [1] = 0b00111110; thư [2] = 0b00000000; thư [3] = 0b00111110; thư [4] = 0b00111110; tùy chọn ++; phá vỡ; trường hợp 9: letra [0] = 0b01111111; // J thư [1] = 0b00000000; thư [2] = 0b00111110; thư [3] = 0b00101110; thư [4] = 0b01001111; tùy chọn ++; phá vỡ; trường hợp 10: letra [0] = 0b00111110; // K thư [1] = 0b01011101; thư [2] = 0b01101011; thư [3] = 0b01110111; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 11: letra [0] = 0b00111111; // L thư [1] = 0b00111111; thư [2] = 0b00111111; thư [3] = 0b00111111; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 12: letra [0] = 0b00000000; // M thư [1] = 0b01111101; thư [2] = 0b01111011; thư [3] = 0b01111101; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 13: letra [0] = 0b00000011; // N thư [1] = 0b01011111; thư [2] = 0b01101111; thư [3] = 0b01110111; thư [4] = 0b00000011; tùy chọn ++; phá vỡ; trường hợp 14: letra [0] = 0b00000011; // Ñ thư [1] = 0b01011101; thư [2] = 0b01101101; thư [3] = 0b01110101; thư [4] = 0b00000011; tùy chọn ++; phá vỡ; trường hợp 15: letra [0] = 0b01000001; // O thư [1] = 0b00111110; thư [2] = 0b00111110; thư [3] = 0b00111110; thư [4] = 0b01000001; tùy chọn ++; phá vỡ; trường hợp 16: letra [0] = 0b01111001; // P thư [1] = 0b01110110; thư [2] = 0b01110110; thư [3] = 0b01110110; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 17: letra [0] = 0b00000001; // Q thư [1] = 0b00011110; thư [2] = 0b00101110; thư [3] = 0b00111110; thư [4] = 0b01000001; tùy chọn ++; phá vỡ; trường hợp 18: letra [0] = 0b01111001; // R thư [1] = 0b00110110; thư [2] = 0b01010110; thư [3] = 0b01100110; thư [4] = 0b00000000; tùy chọn ++; phá vỡ; trường hợp 19: letra [0] = 0b01001110; //S thư [1] = 0b00110110; thư [2] = 0b00110110; thư [3] = 0b00110110; thư [4] = 0b00111001; tùy chọn ++; phá vỡ; trường hợp 20: letra [0] = 0b01111110; // T thư [1] = 0b01111110; thư [2] = 0b00000000; thư [3] = 0b01111110; thư [4] = 0b01111110; tùy chọn ++; phá vỡ; trường hợp 21: letra [0] = 0b01000000; // U thư [1] = 0b00111111; thư [2] = 0b00111111; thư [3] = 0b00111111; thư [4] = 0b01000000; tùy chọn ++; phá vỡ; trường hợp 22: letra [0] = 0b01100000; // V thư [1] = 0b01011111; thư [2] = 0b00111111; thư [3] = 0b01011111; thư [4] = 0b01100000; tùy chọn ++; phá vỡ; trường hợp 23: letra [0] = 0b01000000; // W thư [1] = 0b00111111; thư [2] = 0b01000111; thư [3] = 0b00111111; thư [4] = 0b01000000; tùy chọn ++; phá vỡ; trường hợp 24: letra [0] = 0b00111011; // X thư [1] = 0b01010111; thư [2] = 0b01101111; thư [3] = 0b01010111; thư [4] = 0b00111011; tùy chọn ++; phá vỡ; case 25: letter [0] = 0b01111110; // Y thư [1] = 0b01111101; thư [2] = 0b00000011; thư [3] = 0b01111101; thư [4] = 0b01111110; tùy chọn ++; phá vỡ; trường hợp 26: letra [0] = 0b00111100; // Z thư [1] = 0b00111010; thư [2] = 0b00110110; thư [3] = 0b00101110; thư [4] = 0b00011110; option = 0; } set_timer1 (3036); // TMR1 tràn mỗi 0.5 giây } void chính (void) { int i; // biến contador enable_interrupts (INT_TIMER1); // interrupcion TIMER1 activada setup_timer_1 (T1_INTERNAL | T1_DIV_BY_8); // configuracion TMR1 set_timer1 (65535); // Tải TMR1 cho tràn trực tiếp enable_interrupts (GLOBAL); // gián đoạn được kích hoạt set_tris_b (0x00); // portb salida set_tris_a (0x00); // cổng thoát làm {// bucle ... cho (i = 0; i <5 font="" i=""> output_a (i); // columnas output_b (letra [i]); // filas delay_ms (10); // tạm dừng để có thể xem } } trong khi (TRUE); //...infinito } 5>
Văn bản cuộn màn hình LCD
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'05 // 29 / August / 05 // vszener@gmail.com // Programa: VsZeNeR'05 mov pantalla // Phiên bản: 0.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.227 // Môi trường IDE: MPLAB IDE v7.21 Simulator: Proteus 6.7sp3 // // Ghi chú: Nó được hiển thị bằng màn hình LCD (LM016L) như từ VsZeNeR'05 // nó di chuyển trên màn hình, bắt đầu ở hàng thứ nhất và kết thúc ở hàng thứ 2. // Các biến cục bộ được sử dụng: // · x -> các hàng chỉ mục, có kiểu char được ký vì chúng ta cần số âm // để kết thúc thông báo xuất hiện đầu tiên ở hàng thứ 2 của màn hình LCD. // · y -> chỉ mục cột: y = 1 -> cột thứ nhất // y = 2 -> cột thứ hai // 'x' được hiểu trên màn hình từ 1 đến 16 và 'y' từ 1 đến 2. // Hãy nhớ rằng bạn phải đặt chỉ thị NOLVP để pin B4 là // thoát. // // Kết nối: B0 -> E // B1 -> RS // B2 -> RW // B4 -> D4 // B5 -> D5 // B6 -> D6 // B7 -> D7 ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #fuses XT, NOWDT, NOPROTECT, PUT, NOLVP // đơn đặt hàng cho lập trình viên #use delay (clock = 4000000) // Fosc = 4Mhz #define use_portb_lcd TRUE // definir portb lcd #include// libreria manejo lcd /// PROGRAM void chính (void) { char y = 1; // cột chỉ mục ký char x = 1; // indice filas lcd_init (); // khởi tạo lcd trong khi (TRUE) {// bucle ... lcd_gotoxy (x, y); // con trỏ để viết tin nhắn lcd_putc ("VsZeNeR'05"); // hiển thị thông báo trên màn hình delay_ms (150); x ++; // tăng chỉ số hàng if (x> 16) {// có toàn bộ thông điệp được hiển thị bởi 1ºfila không? x = -8; // SI -> chỉ mục hàng x = -8 và ++; // tăng cột chỉ mục nếu (y> 2) // có thông báo được hiển thị theo cột thứ 2 không? y = 1; // SI -> khôi phục cột chỉ mục } lcd_putc ("\ f"); // borra pantalla } //...infinito }
Ứng dụng LCD DS1302
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'05 // 09/09/05 // vszener@gmail.com // Chương trình: Đồng hồ lịch DS1302 // Phiên bản: 0.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.227 // Môi trường IDE: MPLAB IDE v7.21 Simulator: Proteus 6.7sp3 // // Ghi chú: Ngày và thời gian thu được bằng màn hình hiển thị được hiển thị bằng màn hình LCD (LM016L) // đọc DS1302. Có thể sửa đổi bằng các nút Conf / Ok và lên. // Biến toàn cục được sử dụng: // · ngày-> dia ds1302 // · mth -> mes ds1302 // · năm -> año ds1302 // · giờ -> hora ds1302 // · phút -> phút ds1302 // · sec-> segundos ds1302 // · menu -> biến hiển thị cấu hình tùy chọn menu // · flag -> biến đếm lên tới 130ms. / / Var -> điều chỉnh tốt để nó tràn mỗi 130ms khoảng. // TMR0 được nạp với 0 vì vậy nó tràn trong khoảng 65ms, chúng tôi muốn // hiển thị và khôi phục các giá trị được lấy từ ds1302 mỗi khoảng 130ms, do đó // chúng tôi sử dụng một biến được gọi là cờ sẽ chịu trách nhiệm cho tác vụ này. // Khi bắt đầu chương trình, đồng hồ phải được định cấu hình, nút 'lên' là // chịu trách nhiệm di chuyển qua các tùy chọn menu: giờ, phút, .... // và nút 'Conf / Ok' chịu trách nhiệm thiết lập đồng hồ (khi chúng ta đang ở chế độ xem // thời gian và ngày) hoặc người phụ trách rời khỏi cấu hình của các tùy chọn (khi nào // chúng tôi đang ở định dạng để định cấu hình ngày và giờ). // Hãy nhớ rằng bạn phải đặt chỉ thị NOLVP để pin B4 là // thoát. // Conexiones: A0 -> RST DS1302 // A1 -> SCLK DS1302 // A2 -> I / O DS1302 // A3 -> Boton 'lên' // A5 -> Boton 'Conf / Ok' // B0 -> E // B1 -> RS // B2 -> RW // B4 -> D4 // B5 -> D5 // B6 -> D6 // B7 -> D7 // B3 -> Zumbador (tiếng bíp) ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #use delay (CLOCK = 4000000) // Fosc = 4Mhz #fuses HS, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOWDT, NOMCLR // comandos para el programador #use standard_io (a) #use standard_io (b) #define use_portb_lcd TRUE // sử dụng cổng b cho lcd #define RTC_SCLK PIN_A1 // pin của definimos ... #define RTC_IO PIN_A2 #define RTC_RST PIN_A0 //...de conexion de la rtc ds1302 #include// libreria de rtc ds1302 #include// libreria de lcd /// Biến thể GLOBAL byte ngày, mth, năm, dow, giờ, phút, giây; // variabes para ds1302 menu byte = 0, cờ = 0, var = 2; // variables para menu configurar /// ĐỊNH NGH OFA CHỨC NĂNG void configurar (void); void horas (void); void minutos (void); void dia (void); void mes (void); void anio (void); void beep (void); /// CALL CHỨC NĂNG TƯƠNG LAI # INT_TIMER0 void interrupcion () { if (flag> var) {// ¿ya es 130ms aprox? var--; // SI -> decremento var ... if (var == 0) var = 2; // ... điều chỉnh tốt khoảng 130ms flag = 0; // đặt lại cờ para contar 130ms aprox rtc_get_date (ngày, tháng, năm, tháng); // coge dia, mes, año rtc_get_time (giờ, phút, giây); // lấy giờ, phút, giây printf (lcd_putc, "\ fFecha:% 2X /% 2X /% 2X \ nHora:% 2X:% 2X:% 2X", ngày, tháng, năm, giờ, phút, giây); // lcd } set_timer0 (0); // đặt lại TMR0 cờ ++; // cờ biến incremento } /// PROGRAM void main (void) { enable_interrupts (INT_TIMER0); // interrupcion TIMER0 activada setup_counters (RTCC_INTERNAL, RTCC_DIV_256); // configuracion interrupcion TMR0 set_timer0 (0); // carga TMR0 lcd_init (); // khởi tạo lcd rtc_init (); // inicializa rtc lcd_putc ("Reloj Calendario \ n VsZeNeR'05"); // presentacion ... delay_ms (800); //...inicial configure (); // vào menu cài đặt enable_interrupts (GLOBAL); // gián đoạn được kích hoạt cho (;;) {// bucle ... if (đầu vào (PIN_A5) == 0) {// Si se pulsa Conf .... while (! input (PIN_A5)) {} // rebina loại bỏ tiếng kêu bíp(); configure (); } // đi tới cấu hình trình đơn } //...infinito } /// CHỨC NĂNG CONFIGURE void configurar (void) { disable_interrupts (GLOBAL); // gián đoạn bị hủy kích hoạt làm { switch (menu) { case 0: lcd_putc ("\ fConfigurar \ nhoras?"); // horas if (! input (PIN_A5)) { trong khi (! đầu vào (PIN_A5)) {} tiếng kêu bíp(); giờ (); menu = 1; // trỏ tới tùy chọn tiếp theo } phá vỡ; trường hợp 1: lcd_putc ("\ fConfigurar \ nminutos?"); // minutos if (! input (PIN_A5)) { trong khi (! đầu vào (PIN_A5)) {} tiếng kêu bíp(); phút (); menu = 2; // trỏ tới tùy chọn tiếp theo } phá vỡ; trường hợp 2: lcd_putc ("\ fConfigurar \ ndia?"); // dias if (! input (PIN_A5)) { trong khi (! đầu vào (PIN_A5)) {} tiếng kêu bíp(); ngày (); menu = 3; // trỏ tới tùy chọn tiếp theo } phá vỡ; trường hợp 3: lcd_putc ("\ fConfigurar \ nmes?"); // mes if (! input (PIN_A5)) { trong khi (! đầu vào (PIN_A5)) {} tiếng kêu bíp(); (Của tôi); menu = 4; // trỏ tới tùy chọn tiếp theo } phá vỡ; trường hợp 4: lcd_putc ("\ fConfigurar \ nanio?"); // años if (! input (PIN_A5)) { trong khi (! đầu vào (PIN_A5)) {} tiếng kêu bíp(); anio (); menu = 5; // trỏ tới tùy chọn tiếp theo } phá vỡ; trường hợp 5: lcd_putc ("\ fSalir \ nconfigurar?"); // salir configuracion if (! input (PIN_A5)) { menu = 6; tiếng kêu bíp(); } } if (! input (PIN_A3)) {// controla el boton up ... trong khi (! đầu vào (PIN_A3)) {} menu ++; if (menu> 5) menu = 0; } //...để hiển thị menu bằng màn hình LCD delay_ms (130); // chậm trễ để xem lcd } trong khi (menu <6 font=""> menu = 0; // cập nhật menu chỉ mục rtc_set_datetime (ngày, tháng, năm, giờ, phút); // nueva hora, minuto, ... enable_interrupts (GLOBAL); // gián đoạn được kích hoạt set_timer0 (0); // carga TMR0 } /// CÀI ĐẶT CÀI ĐẶT CHỨC NĂNG void horas (void) { printf (lcd_putc, "\ fConf.Horas: \ nHora:% 2X:% 2X:% 2X", giờ, phút, giây); // muestra por lcd làm { if (! input (PIN_A3)) {// ¿se ha pulsado lên? while (! input (PIN_A3)) {} // rebina loại bỏ giờ ++; // SI -> giờ tăng dần chuyển đổi (giờ) {// giới hạn ... trường hợp 0x0A: giờ = 0x10; ngắt; trường hợp 0x1A: giờ = 0x20; ngắt; trường hợp 0x24: giờ = 0x00; } //...hour printf (lcd_putc, "\ nHora:% 2X:% 2X:% 2X", giờ, phút, giây); // muestra por lcd hour } } while (đầu vào (PIN_A5)); while (! input (PIN_A5)) {} // rebina loại bỏ } /// CONFIGURE MINUTES FUNCTION void minutos (void) { printf (lcd_putc, "\ fConf.Minutos: \ nHora:% 2X:% 2X:% 2X", giờ, phút, giây); // muestra por lcd làm { if (! input (PIN_A3)) {// ¿se ha pulsado lên? while (! input (PIN_A3)) {} // rebina loại bỏ min ++; // CÓ -> phút tăng chuyển đổi (tối thiểu) {// giới hạn ... trường hợp 0x0A: min = 0x10; ngắt; trường hợp 0x1A: min = 0x20; ngắt; trường hợp 0x2A: min = 0x30; case 0x3A: min = 0x40; ngắt; trường hợp 0x4A: min = 0x50; ngắt; case 0x5A: min = 0x00; } //...min printf (lcd_putc, "\ nHora:% 2X:% 2X:% 2X", giờ, phút, giây); // muestra por lcd min } } while (đầu vào (PIN_A5)); while (! input (PIN_A5)) {} // rebina loại bỏ } /// CONFIGURATION DAY FUNCTION void dia (void) { printf (lcd_putc, "\ fConf.Dias: \ nFecha:% 2X /% 2X /% 2X", ngày, tháng, năm); // muestra por lcd làm { if (! input (PIN_A3)) {// ¿se ha pulsado lên? while (! input (PIN_A3)) {} // rebina loại bỏ ngày ++; // SI -> incremento day chuyển đổi (ngày) {// giới hạn ... trường hợp 0x0A: ngày = 0x10; ngắt; trường hợp 0x1A: ngày = 0x20; ngắt; trường hợp 0x2A: ngày = 0x30; trường hợp 0x32: ngày = 0x01; } //...ngày printf (lcd_putc, "\ fConf.Dias: \ nFecha:% 2X /% 2X /% 2X", ngày, tháng, năm); // muestra por lcd day } } while (đầu vào (PIN_A5)); while (! input (PIN_A5)) {} // rebina loại bỏ } /// CHỨC NĂNG CONFIGURE MONTH void mes (void) { printf (lcd_putc, "\ fConf.Mes: \ nFecha:% 2X /% 2X /% 2X", ngày, tháng, năm); // muestra por lcd làm { if (! input (PIN_A3)) {// ¿se ha pulsado lên? while (! input (PIN_A3)) {} // rebina loại bỏ mth ++; // SI -> incremento mth chuyển đổi (mth) {// giới hạn ... trường hợp 0x0A: mth = 0x10; ngắt; trường hợp 0x13: mth = 0x01; } //...mth printf (lcd_putc, "\ fConf.Mes: \ nFecha:% 2X /% 2X /% 2X", ngày, tháng, năm); // muestra por lcd } } while (đầu vào (PIN_A5)); while (! input (PIN_A5)) {} // rebina loại bỏ } /// CONFIGURE NĂM CHỨC NĂNG void anio (void) { printf (lcd_putc, "\ fConf.Anio: \ nFecha:% 2X /% 2X /% 2X", ngày, tháng, năm); // muestra por lcd làm { if (! input (PIN_A3)) {// ¿se ha pulsado lên? while (! input (PIN_A3)) {} // rebina loại bỏ năm ++; // SI -> incremento mth chuyển đổi (năm) {// giới hạn ... trường hợp 0x0A: năm = 0x10; ngắt; case 0x1A: year = 0x20; break; trường hợp 0x2A: năm = 0x30; trường hợp 0x3A: năm = 0x40; ngắt; case 0x4A: year = 0x50; break; trường hợp 0x5A: năm = 0x60; ngắt; case 0x6A: year = 0x70; break; trường hợp 0x7A: năm = 0x80; ngắt; trường hợp 0x8A: năm = 0x90; ngắt; trường hợp 0x9A: năm = 0x00; } //...year printf (lcd_putc, "\ fConf.Anio: \ nFecha:% 2X /% 2X /% 2X", ngày, tháng, năm); // muestra por lcd } } while (đầu vào (PIN_A5)); while (! input (PIN_A5)) {} // rebina loại bỏ } /// FUNCION BEEP void beep (void) { output_high (PIN_B3); // activa zumbador delay_ms (50); output_low (PIN_B3); // desactiva zumbador } 6>
In một chữ cái trên màn hình LCD
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'05 // 26 / August / 05 // vszener@gmail.com // Chương trình: Abecedario // Phiên bản: 0.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.227 // Môi trường IDE: MPLAB IDE v7.21 Simulator: Proteus 6.7sp3 // // Ghi chú: Nó được hiển thị bằng màn hình LCD (LM016L) bảng chữ cái và quay lại để bắt đầu // Hãy nhớ rằng bạn phải đặt chỉ thị NOLVP để pin B4 là // thoát. // · abecedario [] -> vectơ nơi abecedario được lưu trữ // · x -> chỉ mục cho bảng chữ cái vector và chỉ mục cho cột LCD // · y -> chỉ mục cho hàng lcd: y = 1 -> Hàng 1 // y = 2 -> Hàng 2 // Kết nối: B0 -> E // B1 -> RS // B2 -> RW // B4 -> D4 // B5 -> D5 // B6 -> D6 // B7 -> D7 ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #fuses XT, NOWDT, NOPROTECT, PUT, NOLVP // đơn đặt hàng cho lập trình viên #use delay (clock = 4000000) // Fosc = 4Mhz #define use_portb_lcd TRUE // definir portb lcd #include// libreria manejo lcd /// PROGRAM void chính (void) { char abecedario [27] = {'', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w ',' x ',' y ',' z '}, x, y = 1; // biến tabla y definidas lcd_init (); // khởi tạo lcd làm {// bucle ... cho (x = 1; x <27 ch="" font="" hi="" l="" n="" ng="" p="" s="" th="" v="" x=""> if (y == 1) // hàng đầu tiên của màn hình LCD lcd_gotoxy (x, y); else // hàng thứ 2 của màn hình LCD lcd_gotoxy ((x-16), y); if (x> 15) // Hàng đầu tiên của LCD đã hoàn thành chưa? y = 2; // SI -> viết ở hàng thứ 2 printf (lcd_putc, "% c", bảng chữ cái [x]); // hiển thị ký tự trên màn hình delay_ms (300); } printf (lcd_putc, "\ f"); // borra pantalla del lcd y = 1; // chỉ mục đặt lại } trong khi (TRUE); //...infinito } 27>
4 Ledli Black Lightning
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'04 // 12 / August / 05 // vszener@gmail.com // Chương trình: Fantastic Car // Phiên bản: 1.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.227 // Môi trường IDE: MPLAB IDE v7.20 Simulator: Proteus 6.7sp3 // // Ghi chú: LED quét mô phỏng ánh sáng xe tuyệt vời bởi // cổng B bằng phương tiện lệnh xoay. // // RB0 -> 1º Led // RB1 -> 2º Led // RB2 -> 3º Led // RB3 -> 4º Led ////////////////////////////////////////////////// //////////////////////////////// #include <16f648a .h=""> // pic một tiện ích 16f648a> #fuses XT, NOWDT, NOPROTECT, PUT // đơn đặt hàng cho lập trình viên #use delay (clock = 4000000) // Fosc = 4Mhz #use standard_io (B) // cổng B là đầu ra #byte portb = 0x6 // địa chỉ cổng b /// PROGRAM void chính (void) { int led_on = 0b0001; // dẫn đầu một iluminar set_tris_b (0xf0); // portb là đầu ra (một số bị vô hiệu hóa) disable_interrupts (GLOBAL); // tất cả các ngắt bị tắt làm {// bucle ... do {// ánh sáng bên trái portb = led_on; rotate_left (& led_on, 1); delay_ms (300); } while (bit_test (led_on, 3) == 0); do {// ánh sáng ở bên phải portb = led_on; rotate_right (& led_on, 1); delay_ms (300); } while (bit_test (led_on, 0) == 0); } trong khi (TRUE); //...infinito }
8 Ledli Black Lightning Circuit
////////////////////////////////////////////////// ////////////////////////////////// // VsZeNeR'04 // 14 / August / 05 // vszener@gmail.com // Chương trình: Fantastic Car // Phiên bản: 2.0 // // Thiết bị: Trình biên dịch PIC 16F648A: CCS vs3.227 // Môi trường IDE: MPLAB IDE v7.20 Simulator: Proteus 6.7sp3 // // Ghi chú: LED quét mô phỏng ánh sáng xe tuyệt vời bởi // port B. Thích ứng của mã trong cơ bản de lordlafebre // // RB0 -> 1º Led // RB1 -> 2º Led // RB2 -> 3º Led // RB3 -> 4º Led // RB4 -> 5º Led // RB5 -> 6º Led // RB6 -> 7º Led // RB7 -> 8º Led // Trong biến tiếp theo, các giá trị được lưu trữ 1-2-4-8-16-32-64-128 // que en binario corresponden a la secuencia 00000001-00000010-00000100... // son los led's a iluminar, coincidiendo con la secuencia de iluminacion // del coche fantastico(version Ecuatoriana: auto fantastico) ////////////////////////////////////////////////////////////////////////////////// #include <16f648a .h=""> //pic a utilizar #fuses XT,NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador #use delay (clock=4000000) //Fosc=4Mhz #use standard_io(B) //puerto B como salida ///PROGRAMA void main(void) { int i,cont; //variables definidas set_tris_b(0x00); //portb como salida disable_interrupts(GLOBAL); //todas las interrupciones desactivadas do{ //bucle... cont=1; //inicializar... i=1; //...variables do{ //led's on derecha output_b (tiếp theo); // chiếu sáng tương ứng delay_ms (100); tài khoản tài khoản = * 2; i ++; // incremento i } trong khi (i <8 font=""> i = 1; // đặt lại valor i do {// led's trên izquierda output_b (tiếp theo); // chiếu sáng tương ứng delay_ms (100); tài khoản = Tiếp / 2; i ++; // incremento i } trong khi (i <8 font=""> } trong khi (TRUE); //...infinito } 8>8>16f648a>
DANH SÁCH ỨNG DỤNG VÍ DỤ ĐƠN GIẢN PIC C
16F628A LED on-off
16f648a tự tuyệt vời là
16f648A Luces trò chơi
aupa depo
betis
c , ASM
chụp CCP1
ccp1_pwm
ccp1_pwm_vs2
chìa khóa
xe ngựa tuyệt vời
comecocos
truy cập 0000a9999
truy cập 00_99
tăng dần truy cập
tự động truy cập
BCD truy cập 0A9
BCD truy cập rev
xuống truy cập
đảo ngược truy cập
dữ liệu
phân phối d thay đổi
DS1620
Lỗi Int PORTB
hola_rot_7seg
int PORTB
int RB0
int RDA EEPROM 25lc256
int DDR nội EEPROM
int EEPROM nội DDR
bộ trong khi
bộ
LCD & 24lc256
LCD & bàn phím
LCD & rs232
lcd abecedario
lcd caracter nuevo
lcd Contador
lcd ds1302
lcd hola_mundo
lcd limites
lcd mover palabra
lcd đọc & viết eeprom Tế
limites 7seg
ma trận dẫn 5x7
Parpadeo un dẫn
parpadeo4leds
PCF8591 ADC
PCF8591 nghị đến
publicar
Reloj 7seg
rs232 & bàn phím
rs232 & leds
saa1064 16disp 7seg
saa1064 dinamico
saa1064 estatico
version_ahorro_1pin
vs_pcf8591
PIC C
16f648a tự tuyệt vời là
16f648A Luces trò chơi
aupa depo
betis
c , ASM
chụp CCP1
ccp1_pwm
ccp1_pwm_vs2
chìa khóa
xe ngựa tuyệt vời
comecocos
truy cập 0000a9999
truy cập 00_99
tăng dần truy cập
tự động truy cập
BCD truy cập 0A9
BCD truy cập rev
xuống truy cập
đảo ngược truy cập
dữ liệu
phân phối d thay đổi
DS1620
Lỗi Int PORTB
hola_rot_7seg
int PORTB
int RB0
int RDA EEPROM 25lc256
int DDR nội EEPROM
int EEPROM nội DDR
bộ trong khi
bộ
LCD & 24lc256
LCD & bàn phím
LCD & rs232
lcd abecedario
lcd caracter nuevo
lcd Contador
lcd ds1302
lcd hola_mundo
lcd limites
lcd mover palabra
lcd đọc & viết eeprom Tế
limites 7seg
ma trận dẫn 5x7
Parpadeo un dẫn
parpadeo4leds
PCF8591 ADC
PCF8591 nghị đến
publicar
Reloj 7seg
rs232 & bàn phím
rs232 & leds
saa1064 16disp 7seg
saa1064 dinamico
saa1064 estatico
version_ahorro_1pin
vs_pcf8591
PIC C
Nguồn: todopic.mforos.com Tất cả các tập tin: Microchip PIC Series CCS C Ví dụ Ứng dụng đơn giản
Tải xuống tệp LINK danh sách (ở định dạng TXT) link-2101.zip mật khẩu-pass: 320volt.com
Post a Comment