1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

PHẦN 3: LẬP TRÌNH VỚI CCS - ĐẶNG LÊ KHOA - TRƯỜNG ĐH KHTN - KHOA ĐIỆN TỬ VIỄN THÔNG doc

41 481 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 597,42 KB

Nội dung

Các hàm dùng cho ADC21... • Giá trị channel tuỳ số chân chức năng ADC mỗi chip... biến đổi ADC sẽ mất vài us.. set_ADC_channel lấy chân đó... KBHIT • RC6 và RC7 cho RX và TX trong gia

Trang 1

TR ƯỜ NG ðẠ I H Ọ C KHOA H Ọ C T Ự NHIÊN

TR ƯỜ NG ðẠ I H Ọ C KHOA H Ọ C T Ự NHIÊN

Trang 3

Ngôn

ng ữ C

3

Trang 4

Ngôn ng ữ C…

4

Trang 5

Ngôn ng ữ C…

5

Trang 6

Ngôn ng ữ C…

6

Trang 8

Xu ấ t nh ậ p

8

Trang 11

Hàm delay

• Cần có khai báo #use delay ( clock =xxxx)

VD : #use delay ( clock = 20000000 )

• Hàm delay không sử dụng bất kỳ timer nào

Trang 19

Nguyên t ắ c ho ạ t ñộ ng c ủ a ADC

• ADC bộ chuyển ñổi tương tự sang số

• Giá trị xuất ra dạng số phụ thuộc vào ñiện

thế analog, ñiện thế tham chiếu và số bit

của ADC(còn ñược gọi là ñộ phân giải)

của ADC(còn ñược gọi là ñộ phân giải)

• ADC 8 bit có giá trị( 0-255 ) và ADC 10 bit

(0-1023 )

Ví dụ: ADC có 10 bit

ADC = V/VREF * 1023

19

Trang 20

Nguyên t ắ c ho ạ t ñộ ng c ủ a ADC…

• Phải có khai báo #DEVICE cho biết dùng

ADC mấy bit (thường là 8 hay 10 bit hoặc

hơn)

• Có thể chuyển giá trị của bộ ADC 10 bit

• Có thể chuyển giá trị của bộ ADC 10 bit

thành ADC 8 bit bằng cách chia cho 4

• Có thể lập trình bằng các cập nhật, hay

dùng ngắt ADC

20

Trang 21

Các hàm dùng cho ADC

21

Trang 22

Setup_ADC ( mode )

Dùng xác ñị nh cách th ứ c ho ạ t ñộ ng b ộ bi ế n ñổ i ADC Xem chi ti ế t t ừ ng lo ạ i PIC khác nhau Các tham s ố thông

Trang 23

Setup_ADC_ports ( value )

Xác ñị nh chân l ấ y tín hi ệ u analog và ñ i ệ n th ế chu ẩ n s ử d ụ ng Xem chi ti ế t t ừ ng lo ạ i PIC khác nhau Vref : áp chu ẩ n , Vdd :

áp ngu ồ n

Sau ñ ây là các giá tr ị thông d ụ ng cho value:

23

Trang 25

• Giá trị channel tuỳ số chân chức năng

ADC mỗi chip Thường có giá trị :

• 0-chân A0 , 1-chân A1, 2-chân A2, 3-chân A3…

25

Trang 26

Read_ADC ( mode )

biến đổi ADC ( sẽ mất vài us )

giá trị trả về của hàm là 8 bit, ngược lại là 16 bit nếu khai báo

#DEVICE sử dụng ADC 10 bit trở lên

• S ẽ l ấ y ADC t ừ chân b ạ n ch ọ n trong hàm

Set_ADC_channel( ) tr ướ c ñ ó

set_ADC_channel( ) lấy chân đó

26

Trang 27

Read_ADC ( mode )

Mode có thể có hoặc không , gồm có :

ADC_START_AND_READ : giá trị mặc định

ADC_START_ONLY : bắt đầu chuyển đổi và trả về

ADC_READ_ONLY : đọc kết quả chuyển đổi lần cuối

#DEVCE 8 bit 10 bit 11 bit 16 bit

Trang 28

Ví d ụ

28

Trang 29

Ví d ụ

Ví d ụ : ðọ c d ữ li ệ u t ừ analog t ừ chân AN0 xu ấ t ra port C

#include<16f877.h>

#device *=16 ADC=8

#use delay (clock = 16000000)

void main (void)

Trang 30

#include<16f877.h>

#device *=16 ADC=8

#use delay (clock = 16000000)

void main (void)

Trang 32

Ho ạ t ñộ ng port n ố i ti ế p

• Ch ươ ng này s ẽ giúp b ạ n vi ế t ch ươ ng trình giao ti ế p PC

• V ð K truy ề n d ữ li ệ u cho PC x ử lý , ho ặ c nh ậ n giá tr ị t ừ PC

ñể x ử lý và ñ i ề u khi ể n

#use delay (clock = 40000000 ) // OSC 40Mhz

#use delay (clock = 40000000 ) // OSC 40Mhz

#use rs232 (baud=19200 , parity=n ,

xmit=pin_C6 , rcv=pin_C7 )

// baud= 19200 , không chẵn lẻ , chân truyền C6 , chân nhận C7

32

Trang 33

Các hàm dùng trong giao ti ế p

n ố i ti ế p

33

Trang 34

Các hàm dùng trong giao ti ế p

n ố i ti ế p…

34

Trang 35

Các hàm dùng trong giao ti ế p

n ố i ti ế p…

35

Trang 36

printf ( string )

• Printf ( cstring , values )

• Dùng xuất chuỗi theo chuẩn RS232 ra PC

- string là 1 chuỗi hằng hay 1 mảng ký tự ( kết thúc bởi ký tự null )

Trang 37

Format c ủ a value

D ạ ng format c ủ a value theo ki ể u %wt Trong ñ ó w có th ể có ho ặ c không, có giá

tr ị t ừ 1-9 ch ỉ rõ có bao nhiêu ký t ự ñượ c xu ấ t ra, ho ặ c 01-09 s ẽ chèn thêm

0 cho ñủ ký t ự ho ặ c 1.1-1.9 cho tr ườ ng h ợ p s ố th ự c, còn t là ki ể u giá tr ị

• _ t có th ể là :

• C : 1 ký t ự

• S : chu ỗ i ho ặ c ký t ự

• U : s ố 8 bit không d ấ u

• x : s ố 8 bit ki ể u hex ( ký t ự vi ế t th ườ ng ,VD : 1ef )

• x : s ố 8 bit ki ể u hex ( ký t ự vi ế t th ườ ng ,VD : 1ef )

• X : s ố 8 bit ki ể u hex ( ký t ự vi ế t hoa ,VD : 1EF )

• D : s ố 8 bit có d ấ u

• e : s ố th ự c có lu ỹ th ừ a VD : e12

• f : s ố th ự c 22

• Lx : s ố hex 16 /32 bit ( ký t ự vi ế t th ườ ng )

• LX : hex 16 /32 bit ( ký t ự vi ế t hoa )

• Lu : s ố th ậ p phân không d ấ u

• Ld : s ố th ậ p phân có d ấ u

Trang 38

KBHIT ( )

• RC6 và RC7 cho RX và TX trong giao tiếp cổng COM , VDK PIC trang bị phần cứng phục vụ

việc này với thanh ghi gởi và nhận và các bit

báo hiệu tương ứng Do ñó khi dùng RS232 hỗ trợ từ phần cứng thì KHBIT ( ) trả về TRUE nếu

Trang 39

Ví d ụ g ử i d ữ li ệ u qua RS232

#include<16f877.h>

#use delay (clock = 16000000)

#use rs232 (uart1, baud=9600,parity=n,xmit=pin_c6, rcv=pin_c7 )

Trang 40

Ví d ụ nh ậ n d ữ li ệ u qua RS232

#include<16f877.h>

#use delay (clock = 16000000)

#use rs232 (uart1, baud=9600,parity=n,xmit=pin_c6,

Ngày đăng: 23/03/2014, 09:20

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w