![]() |
Cùng khai hoang con 16F88
2 Attachment(s)
Sau một thời gian làm quen với PIC noisepic thấy học 16F84 là dễ nhất, và thấy 16F88 nhiều chức năng hơn như:
- ADC - PWM - Comparator (bộ so sánh) .. Nói chung hơn hẳn 16F84. Hiện nay phong trào học PIC đang diễn ra sôi nổi, noisepic biết bên BKHN có hẳn một nhóm học PIC. Hi vọng chúng ta cùng học và khám phá nó. Bắt đầu nhé! http://i11.photobucket.com/albums/a1...pic/PORTA1.jpg //************************************************** **** PORTA Các chức năng có thể làm: - Biến đổi AD - Bộ so sánh - I/O Các thanh ghi liên qua đến PORTA, các bạn có thể xem thêm trong datasheet. - Thanh ghi PORTA (RA7:RA0) - Thanh ghi TRISA(TRISA7:TRISA0)--> I/O? - Thanh ghi ADCON1(ADFM,ADCS2,VCFG1,VCFG0) - Thanh ghi ANSEL (Bit ANS4:ANS0)--> cấu hình cho 1 chân là Analog/digital Nếu dùng chức năng A/D, comparator thì dùng thanh ghi ADCON1. //************************************************** **** http://i11.photobucket.com/albums/a1.../thanhghi1.jpg Chương trình sau viết bằng CCS_ làm cho 1 LED nháy tại chân RA0 với khoảng thời gian là 1s Code:
#include<16F88.h> |
Chào Noisepic:
Tớ là thành viên của nhóm BK ấy đây, Hôm nay vừa mới nhận được Pic+Mach Nạp từ anh BinhAnh , cho nên bây giờ mới đủ diều kiện thực hành về Pic.( mấy hôm trước chỉ viết chay) Cậu dung CCS còn tớ dung Mpasm như thế sẽ có sự tương đương . Chúng ta sẽ làm từng phần một, khi làm đến phần nào cậu viết lý thuyết ( bao gồm các thanh ghi, các chức năng ) . Coi như cậu là người cầm trịch của box này, đẫn dắt anh em Anh em sẽ theo sau để hỗ trợ và bổ sung nếu cần thiết Tài liệu chính của chúng ta sẽ là cuốn datasheet 16f88 Có lẽ nhưng người tham gia box này đều là những người mới học Pic( như tui) hoặc mới bẳt đầu làm trên 16f88 ( như bác NoisePic) , do đó kinh nghiệm ko nhiều Và chắc chắn ko tránh khỏi sai sót , rất mong sự giúp đỡ của các bậc tiền bối đi trước Working together to improve ourselves Bắt đầu thôi ………………. |
Bộ dao động dùng cho 16F88
Có nhiều nguồn cấp xung nhịp cho 16F88
http://i11.photobucket.com/albums/a1...sepic/OSC1.jpg Có 3 nguồn tạo dao động chính: - Bộ dao động sơ cấp (Primary Oscillator) - Bộ dao động thứ cấp (Secondary Oscillator) - Bộ dao động bên trong (Internal Oscillator) Việc cấu hình các bit trong thanh ghi CONFIG1, OSCCON sẽ để PIC làm việc với bộ dao động nào! tần số bao nhiêu? //********************************************* thanh ghi CONFIG1 FOSC2:FOSC0 = 010 // Làm việc với bộ dao động thạch anh, tần số >= 4MHz, cách này thường sử dụng = 101 // Làm việc với bộ dao động bên trong (INTRC), RA7: I/O = 100 // INTRC, RA6,RA7: I/O Thanh ghi OSCCON (0x8F) SCS<1:0> = 00 // Chế độ dao động chọn bởi FOSC2:FOSC0 = 01 // xung nhịp hệ thống lấy từ Timer1 = 10 // xung nhịp hệ thống lấy từ bộ dao động RC bên trong. OSCCON<6:4> 3 bit này sẽ quyết định xung nhịp của bộ dao động bên trong. //********************************************** Có 8 chế độ dao động: LP Lowpower Crystal XT Crystal/ Resonator HS High Speed Crystal/Resonator RC External Resitor/ Capacitor với Fosc/4 tại lối ra RA6 RCIO External Resitor/ Capacitor với I/O trên RA6 INTIO1 Bộ dao động bên trong với Fosc/4 lối ra trên RA6 và I/O trên RA7 INTIO2 Bộ dao động bên trong với I/O trên RA6, và RA7 ECIO Xung nhịp bên ngoài với I/O trên RA6 Do vậy khi lắp bộ dao động thế nào, bạn phải cấu hình bit cho phù hợp! |
NoiPIC viết rất hay. cảm ơn em nhiều.
|
Khoan đã nào, chương trình thì hay thiệt nhưng sau mình thử chạy chương trình của bạn noisePIC thi máy lại báo lỗi ở phần def_16F88.h nhỉ? Bạn hãy giải thích giùm mình đi.
|
Bạn hamchoi chắc chưa đọc những bài viết cũ của noisepic, vì file def_16f88.h chứa định nghĩa các thanh ghi và các bit của 16F88. Cách lập trình này giúp bạn hiểu rõ hơn về phần cứng. Trong các bài viết của noisepic, dùng đến thanh ghi nào noisepic sẽ bổ sung vào file def_16F88.h--> khi làm xong hết chắc là đủ số thanh ghi và các bit.
Ví dụ file def_16F88.h dủng trong chương trình trên Code:
// dinh nghia cac thanh ghi Chúc bạn vui vẻ! |
Em có thể lấy các file .h này trong MPASM, nó đã định nghĩa sẵn rồi, và nó định nghĩa tất cả các thanh ghi có trong danh sách của nó. Nó có rất đầy đủ, em không cần phải viết lại như thế này.
Với CCS C, nó cũng có đầy đủ rồi, không cần viết lại. Ngoại trừ một số thanh ghi mà em muốn tạo thêm, tuy nhiên, nói chung không nên đặt thêm nhiều ngoài các thanh ghi có trong map registers của nó. Bởi vì mỗi chương trình có một đặc thù riêng, dùng của nó là đủ rồi. |
Chào falleaf và noisePIC, sao mình tìm hoài trong MPASM mà không thấy có files có đuôi (.h) nhỉ? Các bác có thể post nó lên để mình download nó về dùng được không?
Cảm ơn trước nhé! |
Moi nguoi khi hoc F88 hay ho 16x noi chung , chu y doc qua ca quan " PICmicro™Mid-Range MCU family Reference Manual" Quan nay viet rat chi tiet va co code mau bang MPASM.
Co the down tai ( 2.7MB): http://www.microchip.com/stellent/id...elect=&x=5&y=4 |
Khi moi lap trinh cho F88 chac co nhieu ban bo ngo ve phan "Configuration Bits", va toi cung vay. Sau day la mot so diem khac biet so voi F84
+ Cac bit Configuration duoc luu o hai dia chi bo nho 2007h( gom 14 bit) va 2008h (2 bit) va cac bit nay duoc dinh nghia trong MPASM do la PHP Code:
Nhu vay khac voi F84 , F88 co lenh thong thuong de dua ra _config_ trong MPASM do la PHP Code:
|
Mot dieu dac biet o PortA ma moi nguoi can phai chu y: sau khi Reset hoac bat dau mot chuong trinh thi PortA( 5 pin RA4,RA3,RA2,RA1,RA0), va hai pin RB7,RB6 ko phai la dang I/O nua ma la analog input
va trang thai nay duoc quy dinh boi thanh ghi ANSEL (9bh) ( cac ban tham khao them o trang 51 datasheet) Do do de ban dau thiet lap trang thai cua cac chan nay la dang I/O thi ta phai CLRF ANSEL Den day moi thiet lap trang thai I/O: Do la nhung loi tuong nhu nho nhat, nhung rat de mac phai doi voi nhung newbie, Rat mong duoc su hop tac cua moi nguoi |
Hi everybody, sau một thời gian vật lộn với con 16f88 cuối cùng mình cũng thành công với bản đầu tay, nay muốn chia sẻ cho tất cả mọi người
Đây là chương trình hiển thị LCD dung 16f88, trong chương trình có sử dụng kỹ thuật bảng , dung thạch anh 4M , dung 4 chân data ( trong đó D7=>D4 của LCD nối với Port7=>Port4 của F88) và các chân EN, RS, RW của LCD được nối với port2,1,0 của F88). Các bạn có thể tham khảo kiến thức cơ bản của LCD ở http://www.dientuvietnam.net/board/s...1&page=1&pp=10 PHP Code:
Rất mong chương trình này giúp đỡ được một phần nào cho các bạn Nếu bạn nào thác mắc vấn đề về chương trình này thì hãy mở một luông mới để thảo luận về vấn đề này nhé :) |
Chào các bạn ở bài viết này mình muốn đề cập đến sử dụng I2C trong F88
+ I2C là chuẩn giao tiếp của hang Philp và hiện đang đựoc sử dụng rất rộng rãi, ưu điểm tốc độ truyền nhanh, chỉ cần 2 dây SDA, SCL nhưng chỉ truyền trong phạm vi ngắn , Tốc độ đường truyền vào khoảng 100Kb => 400Kb …… Các bạn có thể tham khảo tại : http://users.pandora.be/educypedia/electronics/I2C.htm http://www.semiconductors.philips.co...protocols/i2c/ + Trong 16F88 có hỗ trợ I2C nhưng chỉ hỗ trợ các chế độ Slave Mode, do đó để có thể giao tiếp với các IC như DS1307 ( hoạt động ở chế dộ Slave mode ) ta phải tự xây dựng các giao tiếp chế độ Master Mode + Về tài liệu giao tiếp I2C trong PIC các bạn có thể tham khảo vidu của Ngài Nigel ( VD6 ) Project dưới đây tôi cũng dựa theo VD đó + Để các bạn hình dung được hơn về I2C mình Up lên cho các bạn Project mình vừa mới hoàn thành xong. Giao tiếp DS1307 với 16F88.. Các đặc điểm của chương trình: Dây nối SDA, SCL được nối với RB1,RB4 của RTC, SQW/OUT của RTC được nối với RB0 ( chân này được sử dụng để tạo ngắt.ngoài ) Cơ chế hoạt động: cho RTC hoạt động với mức tạo xung ra ở chân SQW 1Hz, xung tín hiêu được đưa vào RB0 tạo ngăt, cứ mỗi khi có ngắt xảy ra thì Pic sẽ đọc dữ liệu từ RTC đưa ra màn hình LCD. Trong chương trình ko sử dụng nut bắm để điều chinh thời gian , ko hiển thị ngày tháng năm, các bạn hoàn toàn có thể đưa vào để nâng cấp chương trình. Rât mong được nhận các chương trình từ các bạn Phan 1 PHP Code:
|
Phan 2( cac module ve I2C va LCD )
1 Attachment(s)
PHP Code:
Luu y voi cac ban la: cac ky tu f,g,e trong chuong trinh tren la cac ky tu bao loi duong truyen |
Chương trình trên các bác cứ coi như là một newbie viết nhé. Các bác đừng có cười em nhé. Nếu có gì sai hoặc lỗi mong các bác cứ bảo em Thực sự là em cũng rất mong được nhận duoc các y kien hay chương trình nâng cấp của các bác. Vì hiện em cũng chưa có thời gian để làm tiếp về con này
Xem chừng 16F88 được it người quan tâm quá àh. Có lẽ cũng phải theo thời đại chuyển sang 16F87x thui. Chúc cả nhà vui |
Múi giờ GMT. Hiện tại là 04:41 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