TÀI LIỆU học VI điều KHIỂN PIC

70 325 0
TÀI LIỆU học VI điều KHIỂN PIC

Đ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

TÀI LIỆU HỌC VI ĐIỀU KHIỂN PIC -Ngôn ngữ lập trình C++ -Mơ mạch điện Proteus 7.8 -Lập trình PIC CCS -Các Ứng dụng PIC -Thiết kế mạch in Altium Designer -Làm mạch in thủ công Chương I: ƠN TẬP LẠI NGƠN NGỮ LẬP TRÌNH C++ I:Tón tắt ngơn ngữ c Ngơn ngữ lập trình C ngôn ngữ mệnh lệnh phát triển từ đầu thập niên 1970 Ken Thompson Dennis Ritchie để dùng hệ điều hành UNIX Từ dó, ngơn ngữ lan rộng nhiều hệ điều hành khác trở thành ngôn ngữ phổ dụng C ngơn ngữ có hiệu ưa chuộng để viết phần mềm hệ thống, dùng cho việc viết ứng dụng Ngoài ra, C thường dùng làm phương tiện giảng dạy khoa học máy tính ngôn ngữ không thiết kế dành cho người nhập môn II:Cá cấu trúc lệnh biến,hằng, hàm, mảng, chương trình c++(cụ thể phần mềm CCS) *Các hệ số thường dùng CCS -Hệ số 10 0,1,2,3,4 VD: 14,25,153 -Hệ nhị phân 0,1 VD: 0101 -Hệ số 16 VD: 0x25,0xFA Cách đổi qua lại hệ số trình bày lớp 1:Biến sử dụng CCS ĐN: Biến đại lượng số học hay ký tự chữ viết mà thay đổi giá trị 2:Các kiểu biến sử dụng CCS -Int1 kiểu logic or - Int8,Int,short,byte số nguyên bit (-127 đến 127) -Int16 số nguyên 16bit -Int32 số nguyên 32 bit -char ký tự bit -float số thực 32 bit -long số nguyên 16 bit -double số thực có độ xác cao 3:Định nghĩa biến sử dụng -Ví dụ sau giúp bạn hiểu biến Int8 a; Int b=5; Int c; a=10; a=a+2; c=a+b; //khai báo biến a bit //Khai báo biến b bit gán giá trị //khai báo biến a bit //Gán giá trị cho a=10 // a=10+2=12 biến a mang giá trị 12 // c=12+5=17 biến c mang giá trị =17 Tóm lại biến sau đưa vào tính tốn bị thay đổi giá trị -Ví dụ khai báo mảng-Mảng tập hợp biến tên kiểu liệu khác số Int8 abc[10]; //mảng abc có 10 phần tử từ abc[0] đến abc[9] abc[0]=5; //Gán giá trị cho phần tử thứ mảng abc =5 abc[1]=7; //Gán giá trị cho phần tử thứ mảng abc =7 c=abc[0]+abc[1]; //Biến c có giá trị =5+7=12 4:Hằng ,và khai báo số Hằng số giống biến không thay đổi giá trị mà mang giá trị từ lúc đầu khai báo Ví dụ sau rõ Const int8 a=2; //Khai báo số a có giá trị =2 Ta có biến Int8 b=2; Int8 c ; c=a+b; // Biến c có giá trị 2+2=4 Nếu dùng sau khơng số thay đổi giá trị a=b+3; 5:Các hàm hay dùng CCS(tơi trình bày theo mức độ quan trọng giảm dần) -Hàm if-else (Nếu thì) if(điều kiện){ chương trình A } else {chương trình B} Giải thích điều kiện thực chương trình A sai thực chương trình B VD: If (a>=5) { b=10;} else{ b=0} Nếu a có giá trị =1 chương trình b=0; Nếu a có giá trị =7 chương trình b=10; -Hàm for(vòng lặp) for(biến chạy;điều kiện;thay đổi biến){chương trình A } Giải thích, hàm tạo vòng lặp với số lần quy ước người sử dụng VD: Int i,b=0; for(i=0;i=5){ i++; b ; } Sau chương trình biến b mang giá trị 6:Các hàm xử lý toán số , toán học CCS Toán tử gán = Toán tử gán dùng để gán giá trị cho biến a = 5; gán giá trị nguyên cho biến a Vế trái bắt buộc phải biến vế phải hằng, biến hay kết biểu thức Cần phải nhấn mạnh toán tử gán thực từ trái sang phải không đảo ngược a = b; gán giá trị biến a giá trị chứa biến b Chú ý gán giá trị b cho a thay đổi b sau khơng ảnh hưởng đến giá trị a Một thuộc tính tốn tử gán C++ góp phần giúp vượt lên ngơn ngữ lập trình khác việc cho phép vế phải chứa phép gán khác Ví dụ: a = + (b = 5); tương đương với b = 5;a = + b; Vì biểu thức sau hợp lệ C++ a = b = c = 5; gán giá trị cho ba biến a, b c Các toán tử số học (+, -, *, /, %) Năm toán tử số học hỗ trợ ngôn ngữ là: + cộng - trừ * nhân / chia % lấy phần dư (trong phép chia) Thứ tự thực toán tử giống chúng thực toán học Điều lạ bạn phép lấy phần dư, ký hiệu dấu phần trăm (%) Đây phép tốn lấy phần dư phép chia hai số nguyên với Ví dụ, a = 11 % 3, biến a mang giá trị 11 = 3*3 +2 Các toán tử gán phức hợp (+=, -=, *=, /=, %=, >>=, = c) trả giá trị true (b+4 < a*c) trả giá trị false Cần ý = (một dấu bằng) lf hoàn toàn khác với == (hai dấu bằng) Dấu toán tử gán (gán giá trị biểu thức bên phải cho biến bên trái) dấu lại (==) tốn tử quan hệ nhằm so sánh xem hai biểu thức có hay khơng Trong nhiều trình dịch có trước chuẩn ANSI-C++ ngơn ngữ C, tốn tử quan hệ không trả giá trị logic true false mà trả giá trị int với 0tương ứng với false giá trị khác (thường 1) tương ứng với true Các tốn tử logic (!, &&, ||) Toán tử ! tương đương với toán tử logic NOT, có đối số phía bên phải việc mà làm đổi ngược giá trị đối số từ true sang false ngược lại Ví dụ: !(5 == trả false biểu thức bên phải (5 == 5) có giá 5) trịtrue !(6 6)) trả true ( true || false ) Toán tử điều kiện ( ? ) Tốn tử điều kiện tính tốn biểu thức trả giá trị khác tuỳ thuộc vào biểu thức hay sai Cấu trúc sau: condition ? result1 : result2 Nếu condition true giá trị trả result1, không giá trị trả result2 7==5 ? : trả khơng 7==5+2 ? : trả 5+2 5>3 ? a : b trả a, lớn a>b ? a : b trả giá trị lớn hơn, a b Các toán tử thao tác bit (&, |, ^, ~, ) Các toán tử thao tác bit thay đổi bit biểu diễn biến, có nghĩa thay đổi biểu diễn nhị phân chúng: Toán tử asm Mô tả & AND Logical AND | OR Logical OR ^ XOR Logical exclusive OR ~ NOT Đảo ngược bit 0 thực vòng lặp for biến i chạy từ đến 10 ,nếu a8); in573_2; output_D(data>>16); in573_3; output_D(data>>24); in573_4; } void main() { output_C(0x00); 67 while(TRUE) { Out_573(0xff000000); } } 2.Mở rộng cổng 595(nối tiếp) -Sơ đồ chân -Là ic ghi dịch 8bit kết hợp chốt liệu , đầu vào nối tiếp đầu song song Chức năng: Thường dùng mạch quét led , led matrix …để tiết kiệm số chân VDK tối đa (3 chân) Có thể mở rộng số chân vi điều khiển tùy thích mà k ic làm dc việc mắc nối tiếp đầu vào liệu ic với Giải thích ý nghĩa hoạt động số chân quan trọng: (input) Chân 14 : đầu vào liệu nối tiếp Tại thời điểm xung clock đưa vào bit (output) QA=>QH : chân (15,1,2,3,4,5,6,7) Xuất liệu chân chân 13 tích cực mức thấp có xung tích cực sườn âm chân chốt 12 (output-enable) Chân 13 : Chân cho phép tích cực mức thấp (0) Khi mức cao, tất đầu 74595 trở trạng thái cao trở, khơng có đầu cho phép (SQH) Chân 9: Chân liệu nối tiếp Nếu dùng nhiều 74595 mắc nối tiếp chân đưa vào đầu vào dịch đủ 8bit 68 (Shift clock) Chân 11: Chân vào xung clock Khi có xung clock tích cực sườn dương(từ lên 1) 1bit dịch vào ic (Latch clock) Chân 12 : xung clock chốt liệu Khi có xung clock tích cực sườn dương cho phép xuất liệu chân output lưu ý xuất liệu lúc bạn muốn ,ví dụ đầu vào chân 14 dc bit có xung clock chân 12 liệu chân Qa Qb (chú ý chiều dịch liệu từ Qa=>Qh) (Reset) Chân 10: chân mức thấp(mức 0) liệu bị xóa chip) -Sau để hiểu rõ IC ta làm ví dụ -Sơ đồ nguyên lý: -Code lập trình #include #FUSES NOWDT,NOBROWNOUT,NOLVP #use delay(crystal=20000000) #define DS(x) output_bit(pin_D0,x); #define CKSH output_bit(pin_D1,1);output_bit(pin_D1,0); #define CKCT output_bit(pin_D2,1);output_bit(pin_D2,0); int8 i; void Out_595(int32 RXout){ for(i=1;i

Ngày đăng: 19/11/2017, 19:01

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan