PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   nhóm pic 4331/4431 (http://www.picvietnam.com/forum/showthread.php?t=7321)

robotpic 04-11-2010 11:56 PM

nhóm pic 4331/4431
 
mình tìm hiểu cũng được ít về thằng này đưa lên mọi người cùng tranh cải nhé.

4331 dùng điều khiển động cơ rất tốt. bây giờ mình cùng nhau học nhé:


#include <18f4331.h> // khai báo tên chíp dùng.
#INCLUDE <def_4331.h> //khai báo dịa chỉ từng thanh ghi, địa chỉ từng bit
// cái này có trong datasheet,họ 4331 thì nặm bang5-1 trang 65
// khai báo này giúp ta tiện hơn trong lập trình
// trong file này mình đinh nghia từng byte - bit sau đó bổ cùng forder
// với file chính.
// ví dụ nha:
// nếu mình khai báo file def_4331.h thì có thể viết giống ngôn
//ngữ assembly : T2CON=0b00111100;
#FUSES HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT // khai báo cấu hình pic
#fuses NOPUT,NOCPD,NODEBUG,NOFCMEN,NOCPB,STVREN,NOPWMPIN, HPOL_LOW
#FUSES MCLR,NOWINEN,NOIESO,NOWRTC,NOWRTB,NOWRTD
#fuses NOEBTR,NOWRT,NOEBTRB,EXCLKD0,T1STANDARD
// tùy pic bạn dùng mà cấu hình này nhiều hay ít.
// ví dụ 1 cái nhé: #FUSES HS // dùng thạch anh tần số trên 4mhz
//#fuses NOLVP : khai báo cái này thì pic4331 chân rb5 i/o
#use delay(clock=20000000) // khai báo tần số thach anh sẽ dùng
#use fast_io(a) // cái này mà dùng thì sẽ cho phép set_tris_x() nguyên
// port bất kỳ, nếu không dùng thì
// mình phải đi set_tris từng chân 1 rất tốn công
// theo mình hiểu như thế
#use fast_io(d)
#use fast_io(c)
#use fast_io(e)
void chaythu1(); // khai báo chương trình con
void chaythu2();
void chaythu3();

#INT_EXT // khai báo ngắt ngoài chân RC3
// theo mình thì để các bạn mới học biết thì giải thích như sau:
// nếu các bạn đã từng học 8051 viết bằng ngôn ngữ assembly
// thì viết chương trình ngắt phải có khai báo địa chỉ của ngắt đó đúng k?
// thì trong c nó cũng vậy: khi gặp lệnh này thì nó sẽ tự động đặt địa chỉ của chương trình ngắt, để chương trình ngắt có thể lưu giá trị khi xảy ra ngắt.

các cái khác cũng tương tự thế ví dụ:

#INT_SSP
#int_timer0 //ngắt timer 0


viết phần đầu tiên mình viết thế có được không nhỉ.


nếu mình có sai góp ý với nhé, cùng học tốt mà.
giơ mệt quá hôm sao nói tiếp vậy.

từ từ mình sẽ cung nhau đi hết con pic này nhé.


Múi giờ GMT. Hiện tại là 12:23 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