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 |
Code:
To mafd_47a: //************************************************** *********** Tớ rất thích chữ kí của bạn! rất đúng đó Code:
ONE WORK, ONE PURPOSE or NOTHING! |
To mafd_47a: Tôi đang dùng CCS viết cho con PIC16F88 để điều khiển LCD 20x4 và thấy rất dễ dàng, vì nó có sẵn thư viện LCD420.c.
Tôi thấy con PIC16F88 này rất hay, vì nó sẵn mấy đường vào ADC, tôi sử dụng 4 kênh vào ADC, hiển thị kết quả đo được nên LCD. |
Chào bạn,
Mình cũng ở HN. Mình sẵn lòng ủng hộ các chương trình của mình đã làm để mọi người cùng tham khảo. Mình vừa làm 1 chương trình rất nhỏ, với 1 mục đích là đo đồng thời 4 tín hiệu tương tự, và hiển thị kết quả lên LCD 4x20. Mình sử dụng PIC16F88. Đồng thời kết quả đó được đưa về PC qua cổng RS232. Mình phải sửa lại thư viện LCD420.C của CCS một chút, vì trong thư viện này, nó dùng chân Tx và Rx để điều khiển LCD, do vậy tôi phải diều chỉnh lại sơ đồ chân nối với LCD. Mặt khác, trong ứng dụng của tôi, tôi không sử dung các hàm đọc từ LCD xuồng PIC, thế nên tôi cũng không nối chân RW của LCD về PIC nữa, mà nối chân RW xuống đất. Chức năng của PIC16F88 là rất nhiều, nhưng số cổng ra ngoài lại có hạn, do số chân PIC chỉ có 18, thế nên khi thiết kế, chúng ta lên tối ưu lại sơ đồ nối bên ngoài để tận dụng các chức năng có sẵn của PIC và hạn chế số lượng linh kiện phụ trợ bên ngoài. Rất mong nhận được ý kiến đóng góp của mọi người để thiết kế của tôi được hoàn thiện hơn. Thanks P/S: Làm sao để upload file lên diễn đàn đây ??? |
Rất hoan nghênh bạn đã đóng góp vào box này
Khi bạn soạn thảo, bạn chú ý phía dưới phần soạn thảo sẽ thấy phần “Đính kèm” kích vào phần “ Tải file từ máy” khi đó trên màn hình Window sẽ mở ra hộp thoại bạn chọn Choose để chỉ đường dẫn đến file mà bạn muốn chọn rồi kích vào “them File” đợi khoảng một lát để máy tải file lên nếu xuất hiện File bên dưới thì coi như bạn đã xong ( lưu ý đến các file hợp lệ về kích thước, kiểu file …. ) đóng hộp thoại này rồi sau đó gửi như bình thường |
Tôi gửi thử sơ đồ mạch
|
Chuẩn 1-Wire interface là một chuẩn của Maxim-ic, có khá nhiều linh kiện về giao tiếp cho chuẩn này. Điển hình nhất là đo nhiềt độ dùng Sensor nhiệt DS18B20, hay DS1821. Ưu điểm của chuẩn giao tiếp này là chúng ta chỉ cần một dây để giao tiếp, Giao thức giao tiếp cũng khá đơn giản có lợi cho Master ( đơn giản hơn I2C )
Bài viết tới đây tôi xin giới thiệu cho các bạn về chuẩn giao tiếp này file: 1w_16f6x.inc ( dung de khai bao bien dau - Marco ) PHP Code:
|
Chuong tirnh chinh
2 Attachment(s)
File tempt.asm
PHP Code:
Việc mổ sẻ các chương trình con ở trên sẽ mất rất nhiều thời gian, chắc tôi ko đủ sức làm được. Thắc mắc chỗ nào mọi người cứ post lên chúng ta cùng giải quyết Còn một điều nữa chương trình này là bản V1.0 tức là bản đầu tiên, tôi chưa chú trọng đến giao diện hay việc tối ưu code chương trình, Mục đích của các bản V1.0 ở đây là làm sao chay được mà thôi. Với chương trình này các bạn hoàn toàn có thể nâng cấp chỉnh sửa nó lên Have a good time |
Re:
Trích:
Cám ơn nhiều. |
1 Attachment(s)
Gửi thử sơ đồ PIC6F88 điều khiển LCD 4x20
|
các bác nói hay lắm, nhưng mình đi tìm con F88 này mà có ở đâu bán đâu
bác nào có bán, hay biết chỗ bán thì lên tiếng với. |
Ngay trong picvietnam có bán, phần quảng cáo và bán sản phẩm. Nếu bạn cần mua bán gì, cứ vào đó nhé. Hạn chế hỏi han việc mua bán trong các bài viết kỹ thuật.
Chúc vui |
Sử dụng dao động nội 16F88 trong CCS.
Tôi mới thực hiện một thiết kế với 16F88 để tiết kiệm thạch anh tôi dùng dao động nội trong CCS như sau:
Code:
#include <16F88.H> Tôi nghi rằng việc đặt #fuses của tôi chưa đủ dẫn đến chưa chuyển được chân RA6, RA7 sang mode IO nên vẫn bị ảnh hưởng đến hoạt động của chíp. Bạn nào biết vấn đề này xin chỉ giúp cách giải quyết. Chân thành cảm ơn. |
mấy a cho e xin file def_16f88 được không. e không chuyên về pic lắm nên không thể tạo được file này. mấy a có file định nghĩa nào khác nữa thì cho e với. e mới học nên còn gà lắm. mail e: tantme@gmail.com
|
Múi giờ GMT. Hiện tại là 06:26 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam