Một số TD lập trình C cho PIC với CCS C
Số trang: 6
Loại file: pdf
Dung lượng: 321.57 KB
Lượt xem: 10
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
PIC được dùng trong các TD này là PIC16F84 hay PIC16F877. · Trong các chương trình C không ghi #fuses (sẽ tự tạo ra khi ta chọn PIC từ đầu khi mở CCS C cho project mới) · Mô phỏng phần cứng dùng Proteus version từ 7.4 trở lên. · Để đơn giản trong Proteus các hình vẽ không có vẽ phần nối với thạch anh hay RC ở phần dao động. TD 1: LED chaser (1 LED sáng được chạy từ trái qua phải ở port B [khi chân RA0=1] hoặc từ phải sang trái [khi chân RA0=0]). ·...
Nội dung trích xuất từ tài liệu:
Một số TD lập trình C cho PIC với CCS CĐHBK Tp HCMBMĐTGVPT: Hồ Trung Mỹ Một số TD lập trình C cho PIC với CCS CChú ý: · PIC được dùng trong các TD này là PIC16F84 hay PIC16F877. · Trong các chương trình C không ghi #fuses (sẽ tự tạo ra khi ta chọn PIC từ đầu khi mở CCS C cho project mới) · Mô phỏng phần cứng dùng Proteus version từ 7.4 trở lên. · Để đơn giản trong Proteus các hình vẽ không có vẽ phần nối với thạch anh hay RC ở phần dao động.TD 1: LED chaser (1 LED sáng được chạy từ trái qua phải ở port B [khi chân RA0=1] hoặc từ phảisang trái [khi chân RA0=0]). · Sơ đồ mạch: (Giả sử phím nhấn không bị nẩy [rung]) · Chương trình C:#include #use delay(clock=20000000)#use_fast_io(A)#use_fast_io(B)void main(){ int pattern=1; TD lập trình C cho PIC với CCS C – trang 1 set_tris_a(0x01); /* Chân A0 là ngõ nhập */ set_tris_b(0x00); /* Port B xuất */ while (1) { output_b(pattern); delay_ms(20); if (input(PIN_A0)==1) /* Rotate Left */ if (pattern != 0x80) pattern = 1; else pattern = 0x80; }}TD 2: Mạch đếm lên thập phân 2 ký số với xung nhịp kích cạnh xuống · Sơ đồ mạch: (Giả sử phím nhấn không bị nẩy [rung] và LED 7 đoạn có sẵn mạch giải mã) · Chương trình C:#include #use delay(clock=20000000)#use_fast_io(A)#use_fast_io(B)int bin2BCD(int bin){ // Chương trình đổi từ 1 số nhị phân ra số BCD 2 ký số, chỉ đúng cho số nhị phân này có trị BCD = ((bin/10) #use_fast_io(A)#use_fast_io(B)int bin2BCD(int bin){ // Chương trình đổi từ 1 số nhị phân ra số BCD 2 ký số, chỉ đúng cho số nhị phân này có trị Người đọc tự vẽ phần cứng của mạch cần thiết kế.Chương trình C:#include #use delay(clock=20000000)#use_fast_io(B)void main(){ int state[5]={0x09, 0x01, 0x02, 0x0C, 0x04}; set_tris_b(0x00); // Đặt cấu hình xuất cho Port B while(1) { for (i = 0; i { switch(state){ case 0: state =1; output_b(0x09); break; case 1: state =2; output_b(0x01); break; case 2: state =3; output_b(0x02); break; case 3: state =4; output_b(0x0C); break; case 4: state =0; output_b(0x04); break; default: state =0; output_b(0x00); } // end of switch-case delay_ms(20); } // end of while}Chú ý: Phương pháp dùng switch..case để cài đặt máy trạng thái là cách tổng quát, còn phương pháp bảngcho các bài toán đơn giản! TD lập trình C cho PIC với CCS C – trang 6
Nội dung trích xuất từ tài liệu:
Một số TD lập trình C cho PIC với CCS CĐHBK Tp HCMBMĐTGVPT: Hồ Trung Mỹ Một số TD lập trình C cho PIC với CCS CChú ý: · PIC được dùng trong các TD này là PIC16F84 hay PIC16F877. · Trong các chương trình C không ghi #fuses (sẽ tự tạo ra khi ta chọn PIC từ đầu khi mở CCS C cho project mới) · Mô phỏng phần cứng dùng Proteus version từ 7.4 trở lên. · Để đơn giản trong Proteus các hình vẽ không có vẽ phần nối với thạch anh hay RC ở phần dao động.TD 1: LED chaser (1 LED sáng được chạy từ trái qua phải ở port B [khi chân RA0=1] hoặc từ phảisang trái [khi chân RA0=0]). · Sơ đồ mạch: (Giả sử phím nhấn không bị nẩy [rung]) · Chương trình C:#include #use delay(clock=20000000)#use_fast_io(A)#use_fast_io(B)void main(){ int pattern=1; TD lập trình C cho PIC với CCS C – trang 1 set_tris_a(0x01); /* Chân A0 là ngõ nhập */ set_tris_b(0x00); /* Port B xuất */ while (1) { output_b(pattern); delay_ms(20); if (input(PIN_A0)==1) /* Rotate Left */ if (pattern != 0x80) pattern = 1; else pattern = 0x80; }}TD 2: Mạch đếm lên thập phân 2 ký số với xung nhịp kích cạnh xuống · Sơ đồ mạch: (Giả sử phím nhấn không bị nẩy [rung] và LED 7 đoạn có sẵn mạch giải mã) · Chương trình C:#include #use delay(clock=20000000)#use_fast_io(A)#use_fast_io(B)int bin2BCD(int bin){ // Chương trình đổi từ 1 số nhị phân ra số BCD 2 ký số, chỉ đúng cho số nhị phân này có trị BCD = ((bin/10) #use_fast_io(A)#use_fast_io(B)int bin2BCD(int bin){ // Chương trình đổi từ 1 số nhị phân ra số BCD 2 ký số, chỉ đúng cho số nhị phân này có trị Người đọc tự vẽ phần cứng của mạch cần thiết kế.Chương trình C:#include #use delay(clock=20000000)#use_fast_io(B)void main(){ int state[5]={0x09, 0x01, 0x02, 0x0C, 0x04}; set_tris_b(0x00); // Đặt cấu hình xuất cho Port B while(1) { for (i = 0; i { switch(state){ case 0: state =1; output_b(0x09); break; case 1: state =2; output_b(0x01); break; case 2: state =3; output_b(0x02); break; case 3: state =4; output_b(0x0C); break; case 4: state =0; output_b(0x04); break; default: state =0; output_b(0x00); } // end of switch-case delay_ms(20); } // end of while}Chú ý: Phương pháp dùng switch..case để cài đặt máy trạng thái là cách tổng quát, còn phương pháp bảngcho các bài toán đơn giản! TD lập trình C cho PIC với CCS C – trang 6
Tìm kiếm theo từ khóa liên quan:
C# Lập trình mạng phần mềm máy tính kỹ thuật phần mềm giáo trình lập trình lập trình căn bản LEDTài liệu liên quan:
-
Bài giảng Xử lý sự cố phần mềm - Bài 4 Xử lý sự cố sử dụng Internet
14 trang 341 0 0 -
Nhập môn Tin học căn bản: Phần 1
106 trang 331 0 0 -
64 trang 265 0 0
-
114 trang 243 2 0
-
80 trang 222 0 0
-
Thiết kế mạch logic bằng Verilog - HDL
45 trang 165 0 0 -
Đề cương chi tiết học phần: Mạng máy tính và lập trình mạng
4 trang 160 0 0 -
Báo cáo nghiên cứu khoa học: Xây dựng ứng dụng quản lý sinh viên trên thiết bị di động
36 trang 141 0 0 -
Báo cáo bài tập lớn môn Mạng máy tính và Lập trình mạng: Tìm hiểu về Soap
32 trang 137 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 134 0 0