DANH MỤC TÀI LIỆU
Lập trình thiết bị vi điều khiển
Ch ng 1 : Ôn l i v ngôn ng C theo chu n ANSI ươ ạ ề
1.1. C u trúc c b n c a m t ch ng trình C ơ ả ươ
Tr c tiên ta xét ví du: Vi t ch ng trình C hi n dòng thông báo “ Chào cácướ ế ươ
b n đ n v i ch ng trình C” ra màn hình.ạ ế ớ ươ
C th ch ng trìnhụ ể ươ
/* Ch ng trình thí d */ươ ụ
// my first program in C
#include <stdio.h>
#include <conio.h>
void main()
{
clrscr();/* Câu l nh xoá màn hình*/
printf(“Chào các b n đ n v i ch ng trình C!”);ạ ế ớ ươ
getch();
}
Khai báo t p tiêu đệ ề
Trong ngôn ng l p trình C khi s d ng các hàm chu n trong các th vi n ư
chu n chúng ta ph i khai báo t p tiêu đ (header file) ch a các hàm nguyên m u
t ng ng các hàm đó, các l nh đ c b t đ u b ng #include theo sau là t p tiêu đươ ượ ắ ầ
Có hai cách vi t nh sau:ế ư
Cách 1: #include <[đ ng d n\] tentep>ườ ẫ
Ví d : #include <a:\Baitap\Bai1.C>
#include <stdio.h>
Cách 2: #include “[đ ng d n\]tentep”ườ ẫ
Ví d : #include “a:\Baitap\Bai2.C”
#include <conio.h>
Cách 1 t đ ng tìm tentep trong th m c INCLUDEự ộ ư
Cách 2 t đ ng tìm tentep trong th m c hi n th i n u không có thì tìm trongự ộ ư ế
th m c INCLUDE ư ụ
Trong thí d trên chúng ta có s d ng hàm printf(...) là hàm chu n đ c khai ử ụ ượ
báo trong t p tiêu đ stdio.h và hàm getch(), clrscr() đ c khai báo trong t p tiêu đệ ề ượ ệ ề
1
conio.h. Do đó trong ch ng trình có hai dòng khai báo sau đ u ch ng trình:ươ ở ầ ươ
#include <stdio.h>
#include <conio.h>
Chú thích và d u k t thúc câu l nhấ ế
Trong ngôn ng l p trình C nh ng ph n đ c vi t trong /*...*/ đ c g i làữ ậ ượ ế ượ
ph n chú thích. M i ký t n m trong /*...*/ khi d ch ch ng trình dich b qua, ta ự ằ ươ
đ c phép dùng chúng đ minh ho cho các thành ph n ch ng trình làm choượ ầ ươ
ch ng trình d hi u, m ch l c. L i chú thích có th xu t hi n b t kỳ đâu trongươ ể ấ ệ ấ
ch ng trình và có th tr i trên nhi u dòng khác nhau trong ch ng trình.ươ ể ả ươ
Trong ch ng trình vi t b ng ngôn ng C m i câu l nh có th vi t trên m tươ ế ằ ể ế
hay nhi u dòng và ph i k t thúc b ng d u ch m ph y(;). ả ế
1.2. Các y u t c b n c a ngôn ng C - ANSI ế ố ơ
1.2.1 B ch vi t ữ ế
Ngôn ng C đ c xây d ng trên b ký t sau:ữ ượ
Các ch cái hoa: A B C .... Z
Các ch cái th ng:a b c ... zữ ườ
Các ch s :0 1 2... 9ữ ố
Các d u ch m câu: , . ; : / ? [ ] { } @ # $ % ^ * & ( ) + - = < > ‘ “...ấ ấ
Các d u ngăn cách không nhìn th y nh d u cách, d u nh y cách tab, d u ư
xu ng dòng
D u g ch n i d i _ ố ướ
1.2.2 T khoá
Là nh ng t có m t ý nghĩa hoàn toàn xác đ nh trong ch ng trình:ữ ừ ươ
Ví d : void struct class while ....
Không đ c dùng t khoá đ đ t tên cho các h ng, bi n, m ng, hàm ....ượ ể ặ ế
T khoá ph i vi t b ng ch th ng ế ằ ữ ườ
Ví d t khoá vi t đúng: structụ ừ ế
Ví d t khoá vi t sai: Structụ ừ ế
2
1.2.3 Tên
Là m t dãy ký t đ c dùng đ ch tên h ng, tên bi n, tên m ng, tên hàm...Tên ự ượ ế
đ c t o thành t các ch cái a..z, A..Z, ch s 0..9, d u g ch d i. Tên khôngượ ữ ố ướ
đ c b t đ u b ng ch s , ch a các kí t đ c bi t nh d u cách, d u phép toán...ượ ữ ố ư
Tên không đ c đ t trùng v i t khoá.ượ ớ ừ
Ví d : Giai_Phuong_Trinh_Bac2
abc123
Chú ý:
-Trong ngôn ng l p trình C tên đ c phân bi t ch hoa và ch th ngữ ậ ượ ườ
-Thông th ng ch hoa th ng đ c dùng đ đ t tên cho các h ng, còn các đ iườ ườ ượ
l ng khác thì dùng ch th ng.ượ ữ ườ
2.1.4 M t s ki u d li u c b n ữ ệ ơ ả
- Ki u ký t (Char)ể ự
a M t giá tr ki u char chi m m t byte và bi u di n đ c m t ký t trong b ng ị ể ế ượ
mã ASCII.
- Ki u s nguyên ể ố
M t giá tr ki u s nguyên là m t ph n t c a m t t p các s nguyên mà máy tính ử ủ
có th bi u di n. Trong ngôn ng l p trình C có nhi u ki u d li u s nguyên v i
d i giá tr khác nhau c th : ụ ể
Ki uPh m vi bi u di n ể ễ Kích th c(byte)ướ
Char -128 -> 127 1
Unsigned char 0->255 1
Int -32768->32767 2
Unsigned int 0->65535 2
Short int -32768->32767 2
Unsigigned Short 0-> 32767 2
Long Int -2147483648->-2147483647 4
Unsigigned Long 0-> 4294967295 4
- Ki u s th c ố ự
M t giá tr ki u s th c là m t ph n t c a m t t p các s th c mà máy tính có ị ể ố ự ầ ử ố ự
th bi u di n. Trong ngôn ng l p trình C có nhi u ki u d li u s th c v i d iể ể ố ự ớ ả
giá tr khác nhau c th : ụ ể
Ki uPh m vi bi u di n ể ễ Kích th c(byte)ướ
3
Float 3.4E-38 -> 3.4E+38 4
Double 1.7E-311 -> 1.7E3+311 8
Long double 3.4E-4932->3.4E+4932 10
- Khai báo h ng, bi n, m ng ế ả
+ Khai báo h ng
+ H ng s th c ố ự
Đ c vi t theo hai cách sau:ượ ế
- D ng th p phân g m:Ph n nguyên, d u ch m th p phân, ph n th p phân ầ ậ
Ví d :34.2-344.122
- D ng khoa h c(d ng mũ) g m: Ph n đ nh tr và ph n mũ. Ph n đ nh tr là s ầ ị ầ ị
nguyên hay s th c d ng th p phân, ph n mũ b t đ u b ng E hay e theo sau là số ự
nguyên
Ví d : 1234.54E-122
+ H ng s nguyênằ ố
- H th p phân bình th ngệ ậ ườ
VD: 545
- H c s 8(Octal) ơ ố
B t đ u b ng s 0 và ch bi u di n s d ng ố ươ
Ví d : 024=2010
- H c s 16(Hecxa) ơ ố
B t đ u b ng 0x ắ ầ
Ví d : 0xAB = 16310
+ H ng ký tằ ự
Là m t ký t riêng bi t đ c đ t trong hai d u nháy đ n ệ ượ ơ
Ví d : ‘a’‘9’ .....
Chú ý: H ng ký t bi u th mã c a ký t đó trong b ng mã ASCII. Do v y m t
h ng ký t cũng có th tham gia vào các phép toán.ằ ự
Ví d :
‘A’+10 có giá tr (65+10=75)
+ H ng xâu ký tằ ự
- Là m t dãy các ký t đ t trong hay d u nháy “......” ự ặ
- Xâu ký đ c l u tr trong m t m ng ô nh li n nhau song còn thêm ô nh cu iượ ư
cùng ch a mã là 0(ký hi u là ‘\0’ ) ứ ệ
4
Ví d : “Nguyen Van Anh”
+ Cách khai báo m t h ngộ ằ
Cách 1:#define Tenhang Giatri
Ví d : #define MAX 100
Cách 2: const kieu_du_kieu ten_hang=gia_tri_hang;
Ví d : const int n=20;
S khác nhau gi a đ nh nghĩa h ng s dùng #define và const ch : ữ ị ở ỗ
* V i const đây là h ng s c đ nh, m t h ng s th c s và ch có m t h ng ộ ằ ố ự ộ ằ
s ch a trong ô nh .ố ứ
* V i #define khi g p h ng s này ch ng trình d ch s l p giá tr h ng s này ằ ố ươ ằ ố
vào trong bi u th c c n tính v i s l n tho i mái. Đi u đó có nghĩa là m i khi g p ố ầ
h ng này máy s l p đ ô nh ch a h ng s này vào đó. ẽ ắ
+ Khai báo bi nế
- Các bi n tr c khi s d ng ph i khai báo theo m u sau:ế ướ ử ụ
kieu_du_lieu danh_sach_cac_bien_can_khai_bao;
Ví d : int x,y;
float a;
- Khi khai báo m t bi n ta có th kh i đ u giá tr cho nó theo m u sau: ế ở ầ
kieu_du_lieu ten_bien = gia_tri;
Ví d : float x=5.;
int n=10;
- Đ l y đ a ch c a m t bi n ta dùng toán t & c th nh sau:ể ấ ế ư
&ten_bien
Ví d : &x l y đ a ch c a bi n a ỉ ủ ế
&n l y đ a ch c a bi n n ỉ ủ ế
+ Khai báo xâu ký t .
char str[10]
+ Các ph n t c a m ng là m t ký t ử ủ
+ Xâu bao gi cũng k t thúc b ng ph n t ký hi u là NUL(‘\0’) ế ầ ử
M t h ng xâu ký t đ c đ t trong d u nháy kép ự ượ
VD: “DHSPKT” đ l u gi xâu này thì h th ng ph i dùng 1 m ng có 7 ô nh .ể ư
5
D H S P K T \0
ký t đ n ‘a’ự ơ
xâu ký t “a”
VD: char ch[10]=”DHSPKT”
- Khai báo m ng
M ng là m t dãy bi n liên ti p cùng tên nh ng khác nhau b i ch s . T t c các ế ế ư ỉ ố
bi n này có cùng m t ki u là ki u c a m ng.ế ể ủ
+ Cách khái báo m ng
- Đ i v i m ng m t chi uố ớ
kieu_du_lieu ten_mang[kich_thuc_mang];
- Đ i v i m ng hai chi uố ớ
kieu_du_lieu ten_mang[kich_thuc_hang][kich_thuoc_cot];
- Đ i v i m ng nhi u chi uố ớ
kieu_du_lieu ten_mang[kich_thuc_1][kich_thuoc_2]...[kich_thuoc_n];
Ví d :
int a[10];
float x[3][5];
char x[30];
+ Cách th c truy nh p các ph n t c a m ng ử ủ
M i ph n t c a m ng đ c truy nh p thông qua tên và ch s t ng ng, ph n t ượ ố ươ
đ u tiên có ch s là 0. ỉ ố
Cách truy nh p
- M ng m t chi u: ộ ề tenmang[chiso]
- Mang hai chi u:tenmang[chisodong][chisocot]
Ví d :m[0]
m[5]
- bi n con trế ỏ
Ta có th s d ng tên con tr ho c d ng khai báo c a nó trong các bi u th c ể ử
Ví d :
float *px;
6
a
a \0
thông tin tài liệu
Tài liệu cung cấp những kiến thức về lập trình thiết bị vi điều khiển
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×