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 480 4
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

Đ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

TRƯ NG ð I H C KHOA H C T NHIÊN KHOA ðI N T - VI N THÔNG PH N 3: L P TRÌNH V I CCS ð ng Lê Khoa CHƯƠNG 1: CƠ B N V CCS • • • • • • Ngôn ng C C u trúc b n m t chương trình Xu t nh p Hàm delay L p trình v i vịng l p u ki n L p trình v i l nh logic s h c Ngôn ng C Ngôn ng C… Ngôn ng C… Ngôn ng C… C u trúc b n m t chương trình #include #use delay(clock=16000000) void main(void) { //chuong trinh C } Xu t nh p Ví d VD 1: Xu t giá xu t port C giá tr 0x0F #include void main() { set_tris_c(0x00); while(1) { output_c(0x0F); } } Ví d VD 2: ð c d li u port D xu t port C #include void main() { char data; set_tris_c(0x00); set_tris_d(0xff); while(1) { data = input_d(); output_c(data); } } 10 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 tr v • ADC_READ_ONLY : đ c k t qu chuy n đ i l n cu i #DEVCE ADC=8 ADC=10 ADC=11 ADC=16 bit 10 bit 0-255 0-255 x 0-1023 x x 0-65280 0-65472 11 bit 00-255 x 0-2047 0-65504 16 bit 00-255 x x 0-65535 27 Ví d 28 Ví d Ví d : ð c d li u t analog t chân AN0 xu t port C #include #device *=16 ADC=8 #use delay (clock = 16000000) void main (void) { int8 value; setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(ALL_ANALOG); set_adc_channel(0); set_tris_c(0x00); while(1) { delay_ms(100); value = read_adc(); output_c(value); } } 29 #include #device *=16 ADC=8 #use delay (clock = 16000000) void main (void) { int8 value; setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(ALL_ANALOG); set_tris_c(0x00); set_tris_d(0x00); while(1) { set_adc_channel(0); delay_ms(1); value = read_adc(); output_c(value); set_adc_channel(1); delay_ms(1); value = read_adc(); output_d(value); } } 30 CHƯƠNG 3: GIAO TI P N I TI P • • • • Nguyên t c ho t ñ ng port n i ti p Các hàm dùng giao ti p n i ti p C u hình giao ti p n i ti p Ví d 31 Ho t đ ng port n i ti p • Chương 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ý ñi u n • Ph i có khai báo : #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 Các hàm dùng giao ti p n i ti p 33 Các hàm dùng giao ti p n i ti p… 34 Các hàm dùng giao ti p n i ti p… 35 printf ( string ) • Printf ( cstring , values ) • Dùng xu t chu i theo chu n RS232 PC - string chu i h ng hay m ng ký t ( k t thúc b i ký t null ) - value danh sách bi n , cách b i d u ph y • B n ph i khai báo d ng format c a value theo ki u %wt 36 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ó ký t đư c xu t ra, ho c 01-09 s chèn thêm cho ñ ký t ho c 1.1-1.9 cho trư ng h p s th c, t ki u giá tr • _ t có th : • C : ký t • S : chu i ho c ký t • U : s bit khơng d u • x : s bit ki u hex ( ký t vi t thư ng ,VD : 1ef ) • X : s bit ki u hex ( ký t vi t hoa ,VD : 1EF ) • D : s 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 • % : ký hi u % 37 KBHIT ( ) • RC6 RC7 cho RX TX giao ti p c ng COM , VDK PIC trang b ph n c ng ph c v vi c v i ghi g i nh n bit báo hi u tương ng Do dùng RS232 h tr t ph n c ng KHBIT ( ) tr v TRUE n u ký t ñã ñư c nh n (trong b ñ m ph n c ng) s n sàng cho vi c ñ c , tr v n u chưa s n sàng • Hàm có th dùng h i vịng xem có data nh n t RS232 đ đ c 38 Ví d g i d li u qua RS232 #include #use delay (clock = 16000000) #use rs232 (uart1, baud=9600,parity=n,xmit=pin_c6, rcv=pin_c7 ) char temp; void main (void) { set_tris_d(0x00); while(1) { printf("%u",5); } } 39 Ví d nh n d li u qua RS232 #include #use delay (clock = 16000000) #use rs232 (uart1, baud=9600,parity=n,xmit=pin_c6, rcv=pin_c7 ) char temp; void main (void) { set_tris_d(0x00); while(1) { if (kbhit()) temp = getc(); output_d(temp); } } 40 41 ... cu i #DEVCE ADC=8 ADC=10 ADC=11 ADC=16 bit 10 bit 0-2 55 0-2 55 x 0-1 023 x x 0-6 5280 0-6 5472 11 bit 0 0-2 55 x 0-2 047 0-6 5504 16 bit 0 0-2 55 x x 0-6 5535 27 Ví d 28 Ví d Ví d : ð c d li u t analog t... delay us • 2: delay_us ( time ) Time : bi n s = – 255 , time h ng s = -6 5535 • 3: delay_ms (time ) Time = 0-2 55 n u bi n s hay = 0-6 5535 n u h ng s • VD : int a = 215; delay_us ( a ) ; // delay... read_ADC ( ) • Giá tr channel tuỳ s chân ch c 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 Read_ADC ( mode ) • Dùng đ c giá tr ADC t ghi ch a k t qu bi n đ i

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