intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051 - CHƯƠNG I

Chia sẻ: đặng Xuân Vinh | Ngày: | Loại File: PDF | Số trang:6

947
lượt xem
497
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

TÀI LIỆU THAM KHẢO VỀ LẬP TRÌNH VI ĐIỀU KHIỂN - GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051

Chủ đề:
Lưu

Nội dung Text: GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051 - CHƯƠNG I

  1. I H C L C H NG GIÁO TRÌNH L P TRÌNH C CHO H VI I U KHI N 8051 CHƯƠNG 1: NGÔN NG C CHO H VI I U KHI N 8051 1.1.C u trúc m t chương trình: // ính kèm các file #include #include //Khai báo bi n toàn c c unsigned char x,y; int z; long n=0; //Khai báo và nh nghĩa các hàm void Hàm1(void) { … //Các câu l nh } void Hàm2(unsigned char x) { … //Các câu l nh } //Hàm chính b t bu c chương trình nào cũng ph i có void main(void) { … //Các câu l nh } Các câu l nh trong hàm chính có th có l i g i các hàm ã khai báo trên ho c không Khi có l i g i hàm nào thì chương trình nh y n hàm ó th c hi n hàm ó xong con tr l i quay v chương trình chính(hàm main) th c hi n ti p các hàm ho c câu l nh. Các câu l nh trong C k t thúc b ng d u “;” Các l i gi i thích ư c t trong d u: M u b ng “/*” k t thúc b ng “*/” N u l i gi i thích trên 1 dòng thì có th dùng d u: “//” Khi l p trình nên gi i thích các câu l nh kh i l nh làm gì v sau khi chương trình l n d s a l i. Biên so n: Nguy n Bá Thu n Page 1 of 6
  2. I H C L C H NG GIÁO TRÌNH L P TRÌNH C CHO H VI I U KHI N 8051 2.2.Các lo i bi n trong C: D n g bi n S Bit S Byte Mi n giá tr -128 n +127 c ha r 8 1 0 n 255 unsigned char 8 1 -32,768 n +32,767 sh o r t 16 2 0 n 65,535 uns i g n e d sh o r t 16 2 -32,768 n +32,767 int 16 2 0 n 65,535 uns ig n e d int 16 2 -2,147,483,648 n+2,147,483,647 long 32 4 0 n 4,294,697,295 unsigned long 32 4 Khai báo bi n C u trúc : Ki u bi n Tên bi n V D: unsigned char x; Khi khai báo bi n có th gán luôn cho bi n giá tr ban u. VD : Thay vì: unsigned char x; x=0; Ta ch c n : unsigned char x=0; Có th khai báo nhi u bi n cùng m t ki u m t lúc V D: unsigned int x,y,z; N goài ra dùng cho vi i u khi n trình d ch chuyên d ng còn h tr các lo i bi n sau: D n g bi n S Bi t S Byt e Mi n gi á tr bit 1 0 0;1 sbit 1 0 0;1 0 n 255 sfr 8 1 sf16 16 2 0 n 65,535 N goài ra ,chúng ta có th nh nghĩa bi n ki u bít hay ki u SFR (special function register) Bit Kiemtra; Sfr P10=0x90; VD: Bit Kiemtra; Sfr P10=0x90; Biên so n: Nguy n Bá Thu n Page 2 of 6
  3. I H C L C H NG GIÁO TRÌNH L P TRÌNH C CHO H VI I U KHI N 8051 Các SFR không c n ph i h c thu c ch c n bi t, và chúng ư c khai báo trong thư vi n A T89X51.H và AT89X52.H 2.3.Hàm trong C: H àm trong C có c u trúc như sau Có 2 lo i hàm H àm tr l i giá tr : C u trúc: Ki u giá tr hàm tr l ii Tên hàm (Bi n truy n vào hàm) { // Các l nh x lý ây } V D : unsigned char Cong(unsigned char x, unsigned char y) { // Các l nh x lý ây } H àm không tr l i giá tr C u trúc: void Tên hàm (Bi n truy n vào hàm) { // Các câu l nh x lý ây } V D: void Cong(unsigned char x, unsigned char y) { // Các câu l nh x lý ây } H àm có th truy n vào bi n ho c không VD H àm không có bi n truy n vào: unsigned char Tênhàm(void) { // Các câu l nh x lí ây } Biên so n: Nguy n Bá Thu n Page 3 of 6
  4. I H C L C H NG GIÁO TRÌNH L P TRÌNH C CHO H VI I U KHI N 8051 H àm có bi n truy n vào: void Tênhàm(unsigned char x) { // Các câu l nh x lí ây } S bi n truy n vào tùy ý(mi n b nh ), ngăn cách b i d u “,” Ví d : V oid TênHàm(unsigned char x, unsigned char y, unsigned char z) { // Các câu l nh x lí ây } N goài ra riêng cho vi i u khi n ph n ph m Keil C còn có m t lo i hàm ó là hàm ng t: C u trúc: V oid Tênhàm(void) interrupt ngu nng t using băngthanhghi { } H àm ng t không ư c phép tr l i giá tr hay truy n tham bi n vào hàm. Tên hàm b t kì Interrupt là t khóa ch hàm ng t N gu n ng t t 0 t i 5 theo b ng vector ng t Interrupt Flag Vector Address System Reset RST 0000H External 0 IE 0 0003H Timer 0 TF 0 000BH External 1 IE 1 0013H Timer 1 TF 1 001BH Serial Port R1 or T1 0023H Timer 2 TF2 or EXF2 002BH Không tính ng t reset h th ng b t u m t ng t ngoài 0 Bă ng thanh ghi trên ram ch n t 0 n3 Biên so n: Nguy n Bá Thu n Page 4 of 6
  5. I H C L C H NG GIÁO TRÌNH L P TRÌNH C CHO H VI I U KHI N 8051 2.4.Các toán t cơ b n: Phép gán: = VD: x=y; // x ph i là bi n y có th là bi n ho c giá tr nhưng ph i phù h p ki u Phép c ng: + Phép tr : - Phép nhân: * Phép chia: / Các toán t logic: B ng : == And: & & Or: || N ot: ! D ch trái: < < D ch Ph i: >> 2.5.Các c u trúc l nh r nhánh, ki m tra thư ng dùng: Câu l nh r nhánh if: C u trúc: if ( i uki n) { // Các câu l nh x lí } Gi i thích: Nu i uki n úng thì x lí các câu l nh bên trong còn sai thì nh y qua Câu l nh l a ch n switch: C u trúc: switch(Bi n) { case giatr 1: { // Các câu l nh break; } case giatr 2: { // Các câu l nh break; } case giatr 3: { // Các câu l nh break; } … case giatr n: { // Các câu l nh break; } } Gi i thích: tùy vào bi n có giatri1 thì th c hi n các câu l nh sau ó tương ng r i thoát kh i c u trúc nh l nh break. Câu l nh vòng l p xác nh for: C u trúc: for( n=m; nl), còn n là bi n Biên so n: Nguy n Bá Thu n Page 5 of 6
  6. I H C L C H NG GIÁO TRÌNH L P TRÌNH C CHO H VI I U KHI N 8051 Th c hi n l p các câu l nh (l-m) l n Câu l nh vòng l p không xác nh while: C u trúc: While( i u ki n ) { //Các câu l nh } Gi i thích: Th c hi n l p các câu l nh khi i u ki n úng, n u câu l nh sai thi thoát kh i vòng l p 2.6. B ti n x lý: #define : Dùng nh nghĩa. Ví d : #define dung 1 #define sai 0 có nghĩa là dung có giá tr b ng 1. Trong chương trình có th có o n code như sau: bit kiemtra if (bit==dung) { // Các câu l nh} if (bit==sai) { // Các câu l nh} Vi c này giúp l p trình d s a l i hơn Biên so n: Nguy n Bá Thu n Page 6 of 6
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2