![]() |
Đà nẵng vào đây cùng thảo luận về PIC
Đầu tiên là t đưa ra 2 mạch nạp PIC vô cùng dễ làm nhưng tốc độ nạp hơn GTB-USB Lite
http://i189.photobucket.com/albums/z...IC4331/1-1.png sau đó , u tải file nì về http://www.mediafire.com/download.php?tzkzcccmit2 giải nén , coppy + paste vô thư mục C:\Program Files\WinPic800\Hardware. phần mềm để nạp PIC hiện t đang dùng là WINPIC800 v3.61 http://www.mediafire.com/download.php?w0zyqqtmmyq sau khi cài đặt , vô chương trình WINPIC800 : - Language : english - Setting/hardware : nếu mạch JDM mod(hình 1) thì chọn JDM mod , còn nếu mạch hình 2 thì chon Sch+ . Xong nhấn Appy edits - gắn mạch nạp vô , chọn devices/hardware test . Nếu mạch làm đúng thì có bảng hardware test : OK Theo kinh nghiệm làm tùm lum mạch nạp thì 2 mạch này nạp đc cả nùi con PIC. Ráp là chạy . Tin tưởng đi ..... |
thêm cái nữa cho ae học PIC thấy phấn khởi : đọc ADC , xuất giá trị ADC đk động cơ lun
http://i189.photobucket.com/albums/z...nhDN/16F88.png Code:
#include <16F88.h> |
I> LCD : LCD ở đây t chỉ đưa ra giao tiếp 8 bit cho ng mới dễ tiếp cận . Vì giao tiếp 8 bit nên sẽ cần 8 chân của VDK , do đó t thu gọn = con 74164 --> chỉ dùng 4 chân VDK (E,RS,RX1,TX1) .
http://i189.photobucket.com/albums/z...IC4331/2-1.png http://i189.photobucket.com/albums/z.../PIC4331/3.png Code giao tiếp LCD8bit , dùng 164 Code:
#include <18F4331.h> Hơ hơ mệt wa , nghe music tí đã |
Trích:
Nếu bạn tải WinPic800 về và cài đặt vào máy thì các tập tin cấu hình cho JDM Mod và Schaer+ sẽ không tồn tại, vì chúng không nằm trong gói cài đặt của phần mềm WinPic800. Các tập tin cấu hình này đã được tôi post lên diễn đàn ở luồng "Thông tin về các mạch nạp và phần mềm" (không cần phải post lại lên mediafire làm gì), các bạn nhớ chú ý điểm này. Thân, |
Trích:
http://www4.hcmut.edu.vn/~nqnam/uC.php#pic Còn kết quả thử nghiệm của a thì quá đủ để gọi là "cả nùi con PIC " rồi . Ở Đà Nẵng mà bán đủ loại PIC như a liệt kê thì e cũng rán mua . Vì một số mem ko chịu lục tìm , ko chịu search , chưa làm đc tới đâu thì hỏi cái đó , ngay cả với 1 số đứa em 05CDT đc em đưa cho capture,laypout , link 2 mạch này nhưng tụi nó la làng là ko nạp đc. Nguyên nhân là ko chịu copy 2 file cấu hình này . Do đó , em phải chỉ từng bứoc , up lun file lên ... Cảm ơn a đã nhắc nhở ! |
Em thấy 2 cái mạch nạp trên làm nguồn 1 chiều tùm lum.có mạch mô dùng ít nguồn 1 chiều hơn không anh
|
1 Attachment(s)
cho em tham gia với!
Nhân tiện em xin đưa chương trình "đo nhiệt độ "dùng cảm biến nhiệt LM35DZ hiển thị trên 2 led 7 đoạn anode chung ,dùng pic16f877a (phí quá,nhưng chip này do Thầy em cho). cai mach in em vẽ thiếu chân nguồn cho 2 con led7,em nhát quá chạy lun cái jumper trước con trở Reset xuống luôn> // |+++++++++++++++++++++++++++++++++++++++++++++++++ ++| // | CHUONG TRINH HIENTHI NHIET DO TREN 2 LED 7 DOAN | // | BAO CAO THUC TAP MACH SO UNG DUNG | // | NGUYEN TIEN CHUAN-071250520207-07DT2 | // |+++++++++++++++++++++++++++++++++++++++++++++++++ ++| // ||||||||||||---------------------- KET NOI PHAN CUNG --------------------|||||||||||||||| //++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++\ //| RB0->6 KET NOI DEN CAC CHAN A,B,C,D,E,F,G CUA 2 LED 7 DOAN ANODE CHUNG. +\ //| CHAN 8(VCC) CUA 2 LED 7 D0AN DUOC DIEU KHIEN BOI 2 BJT THUAN PNP: A1015 +\ //| CHAN C CUA 2 BJT NOI VOI CHAN VCC CUA 2 LED 7 DOAN DE DIEU KHIEN QUET LED +\ //| CHAN E CUA BJT NOI VOI NGUON +\ //| CHAN B (BAM DIEN TRO 10K )CUA BJT HANG CHUC VA DON VI NOI LAN LUOT VOI CHAN RD1,RD0 +\ //|---------------------------------------------------------------------------------------+\ //| SU DUNG TRINH BIEN DICH PCWH COMPLIER VER:4.018 +\ //| SU DUNG TRINH WINPIC800 DE NAP FILE HEX LEN PIC QUA CHUAN GIAO TIEP ICSP +\ //|+++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++\ #include <16F877A.h> // KHAI BAO SU DUNG PIC 16F877A #include <def_877a.h> // FILE DINH NGHIA CAC THANH GHI VA CAC BIT #device *=16 adc=10 // KHAI BAO SU DUNG CON TRO 16 BIT VA ADC 10 BIT // KHAI BAO CAU HINH CHO PIC 16F877A #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT // KHAI BAO SU DUNG DELAY VOI TAN SO DAO DONG NGOAI #use delay(clock=12000000) int8 high,low; // KHAI BAO CAC BIEN SO NGUYEN 1 BYTE // KHAI BAO BANG MA LED 7 DOAN ANODE CHUNG int8 const a[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 }; // CHUONG TRINH CON TACH SO HANG CHUC VA HANG DON VI void convert_bcd(int8 x) { low=x%10; // CHU SO HANG DON VI high=x/10; // CHU SO HANG CHUC } // CHUONG TRINH CON HIEN THI RA 2 LED 7 DOAN void display() { PORTB=a[low]; RD0=0; delay_us(500); RD0=1; PORTB=a[high]; RD1=0; delay_us(500); RD1=1; } void main() { float value; int16 i; trisb = 0x00; // THIET LAP CAC CHAN PORTB LA OUTPUT trisd = 0x00; // THIET LAP CAC CHAN PORT D LA OUTPUT trise = 0x00; // THIET LAP CAC CHAN PORT E LA OUTPUT trisa = 0xff; // THIET LAP CAC CHAN PORT A LA INPUT // KHOI TAO ADC setup_adc(ADC_CLOCK_INTERNAL); // THIET LAP THOI GIAN LAY MAU BANG XUNG CLOCK setup_adc_ports(AN0); // THIET LAP CHAN AN0 LA CHAN VAO ADC set_ADC_channel(0) ; delay_us(10); // TRE 10US value=(float)read_adc(); // DOC GIA TRI ADC value = value/2.048; // convert_bcd((int8)value); // GOI CHUONG TRINH CON CONVERT_BCD i=0; while(1) { i++; value =(float) read_adc(); value = value/2.048; if (i==500) { convert_bcd((int8)value); i=0; } display(); } } |
Trích:
Em dùng adapter (20k) để cấp nguồn 1 chiều này |
Có bác mô ở ĐN gần Bách Khoa không giúp em với.Em đang ngụp lặn con DS1307 với con 89S52 mấy ngày ni mà chưa được
|
ở đây chỉ thảo luận về PIC thui e . Nhưng thui , ae phá lệ . Vấn đề j nêu ra (quan trọng phải post code & mạch lên thì mới giúp đc đấy , chứ nói 0 0 thì chịu)
|
Em chỉ còn thắc mắc chỗ lấy dữ liệu ra ở con DS1307 rồi chuyển qua mã BCD sau đó lại đưa dữ liệu vào led 7 đoạn.Tại sao phải chuyển qua BCD mà không phải là số thập phân luôn
|
Cần giúp đỡ về Spi của pic16f877a
Các Anh nào có tài liệu tiếng việt, hay code và mạch ví dụ về Spi của pic16f877a thì cho em xin với !Em mới nghiên cứu về phần này nhưng chẳng biết bắt đầu từ đâu?
Em vào Topic giao tiếp của diễn đàn nhưng thấy loạn xạ luôn! Anh nào đi trước chỉ cho em với ! Cảm ơn các Anh nhiều ! tienchuanct@gmail.com |
Trích:
vd : mún nạp ngày = 27 thì phải nạp 0x27 . Còn khi đọc ra , dữ liẹu ta thu đc là số có dạng mã BCD , ta phải chuyển wa thành số thập phân để dễ làm việc khi xuất led vd : ngay = read_rtc(0x04) ; // ngày = 0x27 <-- số này là số BCD bước tiếp theo ngay = (ngay>>4)*10 + (ngay&0x0F) // lúc này ngày = 27 <-- số thập phân đây |
Chúng ta đã biết PIC 16F877A có module PWM trong CCP . Nhưng có cái dở là bắt buộc ta phải dùng 2 chân RC1 & RC2 , còn phải tốn bộ timer .
H với 1 bộ timer bất kỳ , ae ta có thể sử dụng bất kỳ chân nào làm PWM cũng đc (giống như kiểu sd 89 vẫn PWM đc) Code:
#include <16F877A.h> |
Tiếp theo , ta ứng dụng PIC trong việc thu nhận sóng RF , điều khiển Rb từ xa
mạch phát : http://i189.photobucket.com/albums/z...ATN/MachTx.png Code:
#include <16F88.h> Mạch thu: http://i189.photobucket.com/albums/z...ATN/machDK.png Code:
#include <18F4331.h> http://i189.photobucket.com/albums/z...N/IMG_1083.jpg http://i189.photobucket.com/albums/z...N/IMG_1085.jpg http://i189.photobucket.com/albums/z...N/IMG_1086.jpg |
Múi giờ GMT. Hiện tại là 02:21 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam