1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn sử dụng keil

17 899 11
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 631,5 KB

Nội dung

Cài đặt chương trình Keil: Nhấn vào file cài đặt và cứ nhấn Next là được sau đó là Crack nó để dùng miễn phí. Crack như sau: Chạy File: Keil_lic-v3.2_2.exe Chọn như trên hình rồi nhấn Generate, sau đó copy hết kí tự trong ô LIC0. Vào Start/Programs/Keil uVision3. Paste các kí tự lúc nãy vào ô New License ID Code rồi nhấn Add LIC thế là xong. Lập trình với Keil: Đầu tiên tạo 1 Project mới: Project/New Project. Đặt cho nó 1 cái tên: vidu nhấn Enter.

Trang 1

Tranpic www.trannghiaelec.sg.tf diễn đàn www.08tdt.com 0902.902.287

Cài đặt chương trình Keil:

Nhấn vào file cài đặt và cứ nhấn Next là được sau đó là Crack nó để dùng miễn phí

Crack như sau:

Chạy File: Keil_lic-v3.2_2.exe

Chọn như trên hình rồi nhấn Generate, sau đó copy hết kí tự trong ô LIC0

Vào Start/Programs/Keil uVision3.

Chọn như trên hình ta được :

Trang 2

Paste các kí tự lúc nãy vào ô New License ID Code rồi nhấn Add LIC thế là xong.

Lập trình với Keil:

Đầu tiên tạo 1 Project mới: Project/New Project Đặt cho nó 1 cái tên: vidu nhấn Enter

Trang 3

Tranpic www.trannghiaelec.sg.tf diễn đàn www.08tdt.com 0902.902.287

Nhấn Ok, nhấn Yes

Ta được:

Để tạo được File hex cần làm như sau:

Trang 4

Tạo File nguồn mới: File/New Nhấn Save đặt cho nó 1 cái tên nhớ sau cái tên phải có .c, ví dụ như: bai1.c

Sau đó bắt đầu như sau:

Rồi nhấn Add xong thì tắt hộp thoại đi.

Phần chuẩn bị đã xong Bắt đầu lập trình Sau khi lập trình xong nhấn F7 để biên dịch Nếu có lỗi thì chương trình sẽ thông báo ở dưới:

Trang 5

Tranpic www.trannghiaelec.sg.tf diễn đàn www.08tdt.com 0902.902.287

Chương trình báo là đã tạo File hex, 0 lỗi, 0 cảnh báo Vậy là tốt, đôi khi có 1 vài Warning như ko

có lỗi cũng ko sao vẫn ok(warning và có thể khai báo biến mà ko dùng, có chương trình con chưa được gọi… tùy vào từng cảnh báo)

#include<AT89X52.h> //đây là dòng thông báo thư viện chip AT89, X là chung cho họ S và C

Void ten_chương _trình_con()

{

Các câu lệnh viết ở đây

}

Trang 6

Void ngat() interrupt x

{

Chương trình phục vụ ngắt viết ở đây

}

Main() //chương trình chính Chữ main là bắt buộc

{

Các câu lệnh viết ở đây

}

Sau khi viết chương trình có thể chạy từng câu lệnh để tìm lỗi bằng cách nhấn vào biểu tượng sau

Có thể vào đây để xem trạng thái các Port:

Trang 7

Tranpic www.trannghiaelec.sg.tf diễn đàn www.08tdt.com 0902.902.287

Nhấn F10 hoặc F11 để bắt đầu chạy các câu lệnh (nhấn 1 cái chạy 1 câu lệnh)

Muốn xem các biến thay đổi như thế nào thì:

Trang 9

Tranpic www.trannghiaelec.sg.tf diễn đàn www.08tdt.com 0902.902.287

Click chuột vào<type F2 to edit> rồi nhấn F2 sau đó ghi tên biến cần theo dõi vào đây, ô value sẽ hiển thị giá trị của biến

Bảng giá trị các kiểu giá trị:

Ví dụ: cho các led sáng dồn nhau:

#include<AT89X52.h>

void delay(unsigned char loop) //chương trình tạo thời gian trễ loop ms

{

unsigned char x,y; //khai báo biến x,y thuộc kiểu usigned char

for(x=0;x<loop;x++) //lặp lại cho đến khi x=loop

Trang 10

for(y=0;y<33;y++); //nhảy tại chỗ }

}

main()

{

unsigned char dem=0;

P2=255;

while(1)

{

P2=~(++dem); //đếm tăng lên1, P2 bằng giá trị bù của đếm sau khi tăng.

//nếu viết là dem++ thì P2=bù dem rồi dem mới tăng 1.

} }

Nhấn vào biểu tượng chạy debug hoặc nhấn Ctrl+F5 để chạy từng câu lệnh và sửa lỗi cho chương trình

Mở Port 2 lên để xem trạng thái của các chân Port 2

Trang 11

Tranpic www.trannghiaelec.sg.tf diễn đàn www.08tdt.com 0902.902.287

Các phép so sánh:

Các phép logic:

Trang 12

Chú ý: && hoặc || là phép logic tức nó chỉ trả về giá trị 1 hoặ 0, còn khi chỉ &hoặc | lại là phép

toán AND hoặc OR trên các bit của biến

Các phép toán đặc biệt:

>> n Dịch trái n lần a>>3( tức là sẽ dịch các bít của a qua trái 3 lần)

tương đương với x=a, rồi a+1

tương đương với a+1, rồi x=a

Các phép toán:

Phép gán: a=8; //gán cho a giá trị là 8

For(x=giá trị đầu;x<giá trị cuối,x++)

{

Các câu lệnh } //là vòng lặp từ giá trị đầu đến giá trị cuối( đầu = 0, cuối = 10 thì nó thực

Trang 13

Tranpic www.trannghiaelec.sg.tf diễn đàn www.08tdt.com 0902.902.287

{

Các câu lệnh } //thực hiện các câu lệnh liên tục cho đến khi “điều kiện” ko còn đúng nữa

Ví dụ:

While (x<5) {

X++;

} //như vậy vòng lặp 5 lần và x=5

If (điều kiện)

{

Các câu lệnh } //nếu điều kiện xảy ra thì thực hiện các câu lệnh

Switch (biểu thức)

{

Case n1: câu lệnh1;

Câu lệnh 2;

Break;

Case n2: câu lệnh1;

Câu lệnh 2;

Break;

-} //trong đó n1,n2 là các giá trị tham chiếu cho “biểu thức”

Ví dụ:

Switch (P3) {

Trang 14

Case 1: P1=0; //nếu P3=1 thực hiện các câu lệnh cho đến break

P2=1;

Break;

Case 2:P1=1; //nếu P3=2 thì thực hiện các câu lệnh cho đến break

P2=2;

Break;

}

Chương trình con:

Void ten_chươngtrinhcon(các đối số) //nếu chương trình con không cần nhập giá

trị bên ngoài vào thì không cần đối số {

Unsigned char x=0,y=0; //khai báo biến và gán giá trị ban đầu cho nó Int z=0;

Các câu lệnh viết ở đây }

Để gọi chương trình con thì chỉ cần ten_chươngtrinhcon(giá trị nếu có) với điều kiện chương trình con phải được khai báo hoặc được viết phía trên câu gọi chương trình con

Ngắt:

Void ten_chươngtrinhphucvungat(void) interrupt x

{

Chương trình phục vụ ngắt

Trang 15

Tranpic www.trannghiaelec.sg.tf diễn đàn www.08tdt.com 0902.902.287

Chương trình phục vụ ngắt thì không cần gọi nó Nó sẽ được thực hiện khi xảy ra ngắt Nhưng cần phải cho phép ngắt ở chương trình chính như sau:

Main()

{

Bit đại diện=1;

ITx=1; //cho phép ngắt xảy ra ở cạnh xuống khi dùng ngắt ngoài (x=0 hoặc 1 tùy vào sử

dụng ngắt ngoài nào)

EA=1; //bit cho phép ngắt toàn cục

While(1)

{

}

}

Xem thêm các ví dụ trong đĩa để hiểu rõ hơn

Ví dụ: viết chương trình giải mã ma trận phím:

/* kết nối P0.0 -> P0.3 với chân cắm BCD-7SEG

Khi dùng ic giải mã 74247 thì khi gán cho P0, 1 giá trị bất kì từ 0->9 thì ic tự chuyển sang mã của 7 đoạn

để hiển thị

Nối P2 với chân cắm 7SEG_CONTROL */

#include<AT89X52.h>

unsigned char di_num[5]={0,0,0,0,0}; //mãng chứa 5 chữ số đã nhập vào chương trình disp

Trang 16

//chương trình tạo thời gian trễ “time” us để hiển thị

void delay(unsigned char time)

{

unsigned char x,y;

for(x=0;x<time;x++)

{

for(y=0;y<13;y++);

}

}

//chương trình hiển thị với số cần hiển thị < 65535 do khai báo kiểu unsigned int

void disp(unsigned int so)

{

unsigned char temp=0;

unsigned int so1=0;

// do mỗi led chỉ hiển thị được 1 số cho nên cần tách số cần hiển thị thành các chữ số (17 thì tách ra 1 và 7.) //lưu các chữ số đã tách vào mãng “di_num”

//đoạn chương trình tách số

so1=so; //"so1" được gán giá trị của "so" để trong quá trình tách số không làm thay đổi giá trị "so" ban đầu

for(temp=0;temp<5;temp++) //lặp 5 lần

{

di_num[temp]=so1%10; //giá trị thứ “temp” của mảng “di_num” bằng số dư của phép

chia //“so1” đi 10 so1=so1/10; //"so1" được gán giá trị là thương của phép chia }

//vòng lặp quét led

Trang 17

Tranpic www.trannghiaelec.sg.tf diễn đàn www.08tdt.com 0902.902.287

{

P0=di_num[temp]; //P0 chứ giá trị của chữ số thứ nhất P2=~(1<<temp); //P2 bằng bù của 1 dịch trái "temp" lần

}

}

//chương trình chính

main()

{

while(1) //vòng lặp vô tận

{

}

}

Ngày đăng: 13/08/2013, 08:45

HÌNH ẢNH LIÊN QUAN

Chọn như trên hình ta được: - Hướng dẫn sử dụng keil
h ọn như trên hình ta được: (Trang 1)
Chọn như trên hình rồi nhấn Generate, sau đó copy hết kí tự trong ô LIC0. Vào Start/Programs/Keil uVision3. - Hướng dẫn sử dụng keil
h ọn như trên hình rồi nhấn Generate, sau đó copy hết kí tự trong ô LIC0. Vào Start/Programs/Keil uVision3 (Trang 1)
Bảng giá trị các kiểu giá trị: - Hướng dẫn sử dụng keil
Bảng gi á trị các kiểu giá trị: (Trang 9)
Bảng giá trị các kiểu giá trị: - Hướng dẫn sử dụng keil
Bảng gi á trị các kiểu giá trị: (Trang 9)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w