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
Xem thêm: 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, 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