Đề cương bài giảng ứng dụng lập trình c cho vi điều khiển 8051

80 206 0
Đề cương bài giảng  ứng dụng lập trình c cho vi điều khiển 8051

Đ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

cng ng dng lp trỡnh C cho vi iu khin 8051 Bi 1: Ngụn ng C Trỡnh dch Keil C I Ngụn ng C cho vi iu khin 1, Gii thiu ngụn ng C Trong k thut lp trỡnh vi iu khin núi chung, ngụn ng lp trỡnh c s dng thng chia lm loi: Ngụn ng bc thp v Ngụn ng bc cao Ngụn ng bc cao l cỏc ngụn ng gn vi ngụn ng ngi hn, ú vic lp trỡnh bng cỏc ngụn ng ny tr nờn d dng v n gin hn Cú th k n mt s ngụn ng lp trỡnh bc cao nh C, Basic, Pascal dú C l ngụn ng thụng dng hn c k thut vi iu khin V bn cht, s dng cỏc ngụn ng ny thay cho ngụn ng bc thp l gim ti cho lp trỡnh viờn vic nghiờn cu cỏc lnh v xõy dng cỏc cu trỳc gii thut Chng trỡnh vit bng ngụn ng bc cao cng s c mt phn mm trờn mỏy tớnh gi l trỡnh biờn dch (Compiler) chuyn sang dng hp ng trc chuyn sang mó mỏy Khi s dng ngụn ng C ngi lp trỡnh khụng cn hiu sõu sc v cu trỳc ca b vi iu khin Cú ngha l vi mt ngi cha quen vi mt vi iu khin cho trc s xõy dng c chng trỡnh mt cỏch nhanh chúng hn, khụng phi mt thi gian tỡm hiu kin trỳc ca vi iu khin ú V vic s dng li cỏc chng trỡnh ó xõy dng trc ú cng d dng hn, cú th s dng ton b hoc sa cha mt phn Ngụn ng C 2.1 Kiu d liu 2.1.1 Kiu d liu C Kiu Char Unsigned char Int Unsigned int Long Unsigned long Float S Byte 1 2 4 Khong giỏ tr -128 +127 255 -32768 - +32767 - 65535 -2147483648 - +2147483647 4294697295 * Khai bỏo bin: - Cỳ phỏp: Kiu_d_liu Vựng_nh Tờn_bin _at_ ia_ch; Vớ d: Unsigned char data x; - Khi khai bỏo bin cú th gỏn luụn cho bin giỏ tr ban u Vớ d: Thay vỡ: unsigned char x; x = 0; Ta ch cn: unsigned char x = 0; - Cú th khai bỏo nhiu bin cựng mt kiu mt lỳc Vớ d: unsigned int x,y,z,t; - Ch nh vựng nh: t khoỏ Vựng_nh cho phộp ngi dựng cú th ch vựng nh s dng lu tr cỏc bin s dng chng trỡnh Cỏc vựng nh cú th s dng l: CODE, DATA, DATAB, IDATA, PDATA, XDTA Khi khụng khai bỏo vựng nh trỡnh dch Keil C s mc nh ú l vựng nh DATA Vựng nh CODE DATA BDATA IDATA PDATA XDATA í ngha B nh mó ngun chng trỡnh B nh d liu gm 128 Byte thp ca RAM vi iu khin B nh d liu cú thờ nh a ch bit, nm vựng nh DATA B nh d liu gm 128 Byte cao ca RAM vi iu khin ch cú mt s dũng vi iu khin sau ny B nh d liu ngoi gm 256 Byte, c truy cp bi a ch t trờn P0 B nh d liu ngoi cú dung lng cú th lờn n 64 KB, c truy cp bi a ch t trờn P0 v P2 * nh ngha li kiu - Cỳ phỏp: typedef Kiu_d_liu Tờn_bin; - Ten_bin sau ny s c s dng nh mt kiu d liu mi v cú th dựng khai bỏo cỏc bin khỏc Vớ d: typedef int m5[5]; Dựng tờn m5 khai bỏo hai bin tờn a v b cú kiu d liu l mng chiu phn t: m5 a,b; 2.1.2 Kiu d liu Keil C Kiu S bit Bit Sbit Sfr Sfr16 16 - bit : dựng khai bỏo cỏc bin cú giỏ tr hoc mt hay cỏc bin logic trờn vựng RAM ca vi iu khin Khi khai bỏo bin kiu bit trỡnh dc Keil C s mc nh vựng nh s dng l BDATA ` - sbit, sfr, sfr16: dựng nh ngha cỏc cho cỏc ghi chc nng hoc cỏc cng trờn vi iu khin dựng truy nhp cỏc on d liu bit, bit, 16 bit 2.1.3 Mng Mng l mt hp nhiu phn t cựng mt kiu giỏ tr v chung mt tờn Cỏc phn t ca mng phõn bit vi bi ch s hay s th t ca phn t dóy phn t Mi phn t cú vai trũ nh mt bin v lu tr c mt giỏ tr c lp vi cỏc phn t khỏc ca mng Mng cú th l mng mt chiu hoc mng nhiu chiu Khai bỏo: - Cỳ phỏp: Tờn_kiu Vựng_nh Tờn_mng[s_phn_t_mng]; Khi b trng s phn t mng ta s cú mng cú s phn t bt kỡ Vớ d: Unsigned int data a[5],b[2] [3]; Vi khai bỏo trờn ta s cú: mng a l mng mt chiu phn t Mng b l mng hai chiu, tng s phn t l Ch s ca mng bt u t s Mng cú bao nhiờu chiu phi cung cp y by nhiờu ch sụ Vớ du: phn t mng b[0] [1] l ỳng Khi vit b[0] l sai 2.1.4 Con tr Khi ta khai bỏo mt bin, bin ú s c cp phỏt mt khong nh bao gm mt s byte nht nh dựng lu tr giỏ tr a ch u tiờn ca khong nh ú chớnh l a ch ca bin c khai bỏo Con tr l mt bin dựng cha a ch m khụng cha giỏ tr, hay giỏ tr ca tr chớnh l a ch khong nh m nú tr ti Vi cỏc vựng nh c th tr ti vựng nh ú chim dung lng ph thuc vo ln ca vựng nh ú Con tr tng quỏt khụng xỏc nh trc vựng nh s cú dung lng ln nht vỡ vy tt nht nờn s dng tr c th Loi tr Con tr tng quỏt Con tr XDATA Con tr CODE Con tr DATA Con tr IDATA Con tr PDATA Kớch thc byte byte byte byte byte byte Khai bỏo bin tr: - Cỳ phỏp: Kiu_D_liu Vựng_nh *Tờn_bin; - Vớ d: int *int_ptr; long data *long_ptr; - khụng ch rừ vựng nh tr s c coi l tr tng quỏt 2.1.5 Kiu d liu cu trỳc Kiu d liu cu trỳc l mt hp cỏc bin, cỏc mng v c cỏc kiu cu trỳc khỏc c biu th bi mt tờn nht kiu d liu cu trỳc dựng lu tr cỏc giỏ tr, thụng tin cú liờn quan n nh ngha v khai bỏo bin cu trỳc: - nh ngha: typedef struct { Khai bỏo cỏc bin thnh phn; } Tờn_kiu_cu_trỳc; - Khai bỏo: Tờn_kiu_cu_trỳc Vựng_nh Tờn_bin; Vớ d: typedef struct { char day; char month; int year; } Date_type; Date_type date,date_arr[5]; 2.2 Phộp toỏn Phộp gỏn kớ hiu: = - Cỳ phỏp: Bin_1 = Bin_2; Trong ú Bin_2 cú th l giỏ tr xỏc nh cng cú th l bin 2.2.1 Phộp toỏn s hc Phộp toỏn ý ngha Vớ d + Phộp cng X=a+b Phộp tr X=a-b * Phộp nhõn X=a*b / Phộp chia ly phn X=a/b nguyờn (a=9, b=2 X=4) % Phộp chia ly phn d a%b (a=9, b=2 X=1) 2.2.2 Phộp toỏn Logic AND: && OR: || NOT: ! 2.2.3 Cỏc phộp toỏn so sỏnh: Phép toán ý nghiã > So sánh lớn >= < b 4>5 có giá trị a>=b 6>=2 có giá trị a[...]... thoại create new project hiện ra như sau: Đánh tên và chuyển đến thư m c bạn lưu project.bạn nên tạo mỗi một thư m c cho 1 project rồi chọn save Hộp thoại sau hiện ra: Trong này c 1 loạt c c hãng điện tử sản xuất 8051 bạn lập trình cho con nào thì chọn con đấy, kích chuột vào dấu + để mở rộng c c con IC c a c c hang ở đây ta lập trình cho AT8 9C5 1 c a hang ATMEN nên ta chọn như trên Khi chọn chip thì... thi c c cổng, c c thanh ghi c c bạn chon trong peripherals C c bạn thấy 1 c a sổ nhỏ Parallel Port xuất hiện đó là c i để mô phỏng cho 1 c ng c a AT8 9C5 1 dấu tick tương đương chân ở m c cao (5V), không tick chân ở m c thấp 0V.trong menu peripherals c n c c c ngoại vi kh c như timer, interrupt, serial Để chạy chương trình c c bạn ấn chuột phải vào màn hình soạn thảo, rồi ấn F11.mỗi làn ấn sẽ chạy... đư c sử dụng bởi LCD để chốt dữ liệu c a nó Khi dữ liệu đư c cấp đến chân dữ liệu thì 1 xung m c cao xuống thấp phải đư c áp đến chân này để LCD chốt dữ liệu trên c c chân dữ liệu Xung này c độ rộng tối thiểu 450ns - Chân DB0-DB7: đây là đường dữ liệu 8 bít, đư c dùng để gửi thông tin lên LCD ho c đ c nội dung c c thanh ghi trong LCD Để hiển thị c c chữ c i và c c con số, chúng ta gửi mã ASCII c a c c. .. Nt Chân 15 và 16 là A và K Nó đư c nối với 2 chân c a 1 con Led dùng để sáng LCD trong bóng tối chúng ta không sử dụng - Sơ đồ ghép nối LCD với vi điều khiển: 2 Nguyên lí hoạt động c a LCD - Chân VCC, Vss, và VEE: c c chân VCC và VSS c p dương nguồn 5v và mass tương ứng Chân VEE đư c dùng để điều khiển độ tương phản - Chân chọn thanh ghi RS(Register Select): c 2 thanh ghi trong LCD chân RS đư c dùng... lập t c 1 bảng hiện ra 1 số tính năng c a chip c c bạn c thể nhìn thấy: 8051 based fully static 24Mhz … nhập OK, chọ c u trả lời NO khi đư c hỏi “copy standard 8051 startup code to project and addfile to project” vì nếu chon YES chỉ làm cho file lập trình c a bạn thêm nặng Để tạo một file code c c bạn chọ file→new ho c ấn ctrl+N như sau: C a sổ text1 hiện ra Tiếp theo bạn chọn File → save As ho c. .. 1lấn rồi nhấn Close nếu bạn nhấn Add 2 lần nó sẽ thong báo là file đã add bạn chỉ vi c OK rồi nhấn Close Đư c như sau: Bây giờ trong hình nhìn thấy trong Source Group 1 c file VIDU .C c c bạn nhấp chuột phải vào vùng soạn thảo file VIDU .C để thêm file thư vi n Chon Insert “#include” Phần cuối c ng c a c ng vi c khởi tạo là c c bạn vi t lời giải thích cho dự án c a mình phần này rất c n thiết... để người kh c hiểu mình làm gì trong project này và khi mình c n sử dụng lại code đ c lại c n biết nó là c i gì 2.2 Soạn thảo chương trình C c bạn vi t thử 1 chương trình làm ví dụ khi vi t xong mỗi dòng lệnh nên giải thích dòng lệnh đó làm gì Ví dụ: 2.3 Biên dịch một chương trình Sau khi soạn thảo xong nhấn Ctrl+S để nhớ Nhớ xong c c bạn biên dịch chương trình bắng c ch ấn phím F7 ho c chọn Build... Giả thích: th c hiện lặp c c câu lệnh khi điều kiện đúng nếu điều kiện sai thì thoát khỏi vòng lặp + Vòng lặp không x c định do while: C u tr c: do { // c c câu lệnh } while(dieu_kien); Giả thích: th c hiện lặp c c câu lệnh sau đó kiểm tra điều kiện nếu đúng, nếu sai thì thoát khỏi vòng lặp II Trình biên dịch Keil C (compiler) 2.1 Khởi tạo cho Project Để tạo 1 project mới chọn project → New project như... /*===========cac chuong trinh con cua LCD==========*/ /* kiem tra su san sang cua LCD */ void wait(void) { RS=0; //chon thanh ghi lenh RW=1; //đoc tu LCD LCDdata=0xff; //gia tri 0xff while(BF) //kiem tra co ban { EN=0; //dua xung cao xuong thap đe chot EN=1; //dua chan cho phep len cao } } /* thiet lap lenh cho LCD */ void LCDcontrol(unsigned char x) { RS=0;//chon thanh... dùng để chọn thanh ghi nếu RS=0 thì thanh ghi mã lệnh đư c chọn để cho phép người dùng gửi 1 lệnh lên chẳng hạn như xoá màn hình, đưa con trỏ về đầu dòng… Nếu RS=1 thì thanh ghi dữ liệu đư c chọn cho phép người dùng gửi dữ liệu c n hiển thị lên LCD - Chân đ c/ ghi (R/W): đầu vào đ c/ ghi cho phép người dùng đ c thông tin từ LCD khi R/W=1 ho c ghi thông tin lên LCD - Chân cho phép E(Enable): chân cho phép ... bớt, c dựng gi thụng tin lờn LCD hoc c ni dung c c ghi LCD hin th c c ch c i v c c s, chỳng ta gi mó ASCII ca c c ch c i t A n Z , a n z v c c ch s t n n c c chõn ny bt RS=1 - Bng mó lnh ca LCD:... c ng c hin thi c c cng, c c ghi c c bn chon peripherals C c bn thy ca s nh Parallel Port xut hin ú l c i mụ phng cho cng ca AT8 9C5 1 du tick tng ng chõn mc cao (5V), khụng tick chõn mc thp... no chng trỡnh 2.3.2 Ch th tin x lý C c ch th tin s lý khụng phi l c c lnh ca ngụn ng C m l c c lnh giỳp cho vic son tho chng trỡnh ngun C trc biờn dch Khi dch mt chng trỡnh C thỡ khụng phi chớnh

Ngày đăng: 04/12/2015, 01:40

Từ khóa liên quan

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

Tài liệu liên quan