Chatbox

Các bạn vui lòng dùng từ ngữ lịch sự và có văn hóa,sử dụng Tiếng Việt có dấu chuẩn. Chúc các bạn vui vẻ!
23/11/2010 22:11 # 1
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


 Để góp phần hổ trợ cho nhóm lập trình robot đặc biệt là các bạn mới làm quen và góp phần xây dựng hộp robocon phát triển không chi cho những sinh viên tham gia robocon mà cho những ai quan tâm , sau đây mình sẽ post một số bài giới thiệu về ngôn ngữ lập trình cho robot rất chi là căn bản, đây là các tài liệu thu thập và biên soạn, xin được nhắc lại là rất chi là cơ bản, chổ nào không cơ bản các bạn cứ chém. hehe


 

 


 
Các thành viên đã Thank nghien_rbc vì Bài viết có ích:
23/11/2010 22:11 # 2
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


 TÌM HIỂU EMBEDDED C CHO VI ĐIỀU KHIỂN

 

    Ưu điểm của C so với Assembly.

Nhiều lập trình viên thường quen lập trình cho các chíp của họ 8051 bằng hợp ngử. do bản chất của hợp ngử là ngôn ngữ mã gợi nhớ và khi dịch sẽ ánh xạ 1-1 sang ngôn ngử máy, việc lập trình bằng hợp ngữ thường gặp khó khăn, nhất là đối với các chương trình lớn cũng như đối với các phiên bản cải tiến và nâng cao của họ 8051. Chương trình viết bằng hợp ngử thường khó đọc và khó bảo trì so với chương trình viết bằng ngôn ngử cấp cao.

            Ngôn ngữ C cho phép người thiết kế hệ thống viết chương trình tương đồng nhiều hơn với suy nghỉ của con người so với chương trình viết bằng hợp ngử. Người thiết kế hệ thống có thể tập trung nhiều thời gian hơn vào việc thiết kế các giải thuật của hệ thống thay vì phải tập trung vào việc thực hiện riêng rẻ các giải thuật. Điều này sẽ làm giảm một cách đáng kể thời gian phát triển hệ thống và làm giảm thời gian gở rối vì chương trình sẽ dễ hiểu hơn.

            Bằng cách sử dụng ngôn ngữ giống như C người lập trình không cần phải am tường kiến trúc của bộ vi điều khiển. Điều này có nghĩa là một người chưa quen với bộ vi điều khiển cho sẳn có thể xây dựng một đề tài nhanh hơn vì tổ chức bên trong của một bộ vi điều khiển đích có thể không cần nghiên cứu. Ngoài ra chương trình được phát triển bằng C sẽ dễ dàng sử dụng lại với các hệ thống khác so với chương trình được phát triển bằng hợp ngữ.



 

 


 
Các thành viên đã Thank nghien_rbc vì Bài viết có ích:
23/11/2010 23:11 # 3
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


 Cấu trúc chương trình C cho vi điều khiển

a.         Phần đầu tiên là liệt kê các header file mà ta dùng bằng từ khóa

#include"tên header file"

hoặc

#include< tên header file>

Khi ta viết theo cách thứ nhất thì trình biên dịch sẽ tìm kiếm file .h hoặc .c này trong thư mục hiện tại chứa dự án, nếu không có thì sẽ tìm kiếm trong thư mục Inc trong thư mục cài đặt KeilC.

Viết theo cách thứ hai thì trình biên dịch sẽ tìm luôn trong thư mục /INC luôn.

Để có thể sử dụng đúng các file .h cho các vi điều khiển của mình thì ta mở thư mục /inc trong thư mục này có các thư mục con như tên của hãng sản xuất. Ví dụ như của Atmel thì tìm trong thư mục /Atmel thì sẽ thấy được file regx51.h

b.         Định nghĩa các macro cho chương trình sáng sủa. Việc định nghĩa này được dùng bằng từ khóa #define

 

Ví dụ: Định nghĩa led1 là P1_0 tức là led1 được nối với chân 0 của Port 1.

 

#define led1 P1_0

 

c. Các hàm ngắt như ngắt timer0, timer1, ngắt nối tiếp, ngắt ngoài:

Ví dụ dùng ngắt nối tiếp là ngắt 4 trong bảng vector ngắt thì hàm sẽ có dạng như sau:

 

void inter_4(void) interrupt 4 using 2

{

// làm gì thì làm ở đây

}

Cú pháp các ngắt khác cũng tương tự chỉ thay số 4 bằng số thứ tự của ngắt trong bảng vector ngắt.

 

d.  Các hàm con như Delay, khởi tạo,.. như:

void delay( unsigned char time)

{

//code viết ở đây

}

 

e. Chương trình chính:

void main(void)

{

// viết mã ở đây

}

Đối tượng của chương trình là vi điều khiển nên hàm main không có giá trị trả về và không có tham số đưa vào.

Kết luận, chương trình của chúng ta sẽ có dạng như sau:

// liệt kê header file

#inlucde"tên header file"

// các marco

#define led1 P1_0

// các hàm ngắt

void inter_1 interrupt 1 using 3{

}

// các hàm bình thường

void delay( unsigned char time){

}

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

void main(void){

//lenh      

}



 

 


 
23/11/2010 23:11 # 4
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


 Về hàm ngắt:


Trong 8051 có 5 nguyên nhân sinh ra ngắt: ngắt ngoài 0, timer0, ngắt ngoài 1, timer1, ngắt nối tiếp.

Địa chỉ của ngắt trong bảng vector ngắt = 8 * số thứ tự ngắt + 3, số thứ tự ngắt = 0,1,2,3,4 như kí hiệu trong file đó. Như vậy địa chỉ trong RAM từ 0x03 đến 0x30 là dành cho bảng vector ngắt.

Cú pháp của hàm thực hiện ngắt như sau, hàm này không có tham số, không có kiểu trả về nên là dạng

void tenham(void)

Cú pháp chính như sau:

 

void inter0(void) interrupt 0 using 1{

}  // ngắt ngoài 0, dùng bank 1

 

Tương tự với các ngắt khác.Ta thay số 0 bằng số thứ tự các ngắt tương ứng các ngắt tương ứng.

void inter1(void) interrupt 1 using 1{

}

void inter2(void) interrupt 2 using 1{

}

Tiếp tục với 2 ngắt còn lại.

 

Chúng ta lưu ý là để vdk nhảy đến bảng vector ngắt thì cần phải enable ngắt đó.

 

Ví dụ: Muốn ngắt nối tiếp thì phải cho như sau:

EA = 1;// cho phép dùng ngắt

ES = 1;// dùng ngắt nối tiếp

Hàm ngắt là một hàm không có tham số, không có kiểu trả về. Vì thực chất các biến mà hàm này thao tác chính là các biến toàn cục (các thanh ghi, các port).

Cấu trúc một hàm ngắt như sau:

 

void tenham(void) interrupt a using b{

// code

}

 

Tên hàm: tùy chọn.

a : là thứ tự của ngắt trong bảng vector ngắt

a = 0 : ngắt ngoài 0

a = 1 : ngắt timer0

a = 2 : ngắt ngoài 1

a = 3 : ngắt timer1

a = 4 : ngắt nối tiếp

 

b: là bank được chọn dùng để thực hiện hàm ngắt. Do 8051 có 4 bank là bank 0, 1, 2, 3. Do đó : b có thể là một trong các giá trị 0,1,2,3.

Lưu ý: nếu không viết thêm using b thì mặc định là hàm ngắt thực hiện tại bank0.

Do đó, một thí dụ về hàm ngắt nối tiếp sẽ có dạng như sau:

void inter4(void) interrupt 4 using 2{

// mã thực hiện hàm

}

Và sau đây là một đoạn chương trình tạo một xung ở chân P1.0 và khi nhận được dữ liệu nối tiếp thì chuyển sang port P2. Tần số thạch anh là 11.0592 MHz. Dùng AT89C51

 

# include "regx51.h"

 

// ham gay tre

void delay(int time){

            while(time--){

                        unsigned char j = 122;

                        while(j--);

            };

}

 

// ham thiet lap ban dau

void init(){

            EA = 1; // cho phep dung ngat

            ES = 1; // dung ngat noi tiep

            // Thiet lap tan so bus

            TMOD = 0x02; // dung timer1, che do 8 bit tu nap lai

            TH1 = 253;  // chon tan so bus = 9600

            TR1 = 1 ; // khoi dong timer1

}

 

// Ham ngat

void inter4(void) interrupt 4 using 2{

            if (RI){  // kiem tra co tran nhan RI.

                        P2 = SBUF;  // lay du lieu tu SBUF

                        RI = 0; // xoa co ngat

                        };

}

 

// ham main

void main(){

            // tao xung tren chan P1.0

            init();

            while(1){

                        P1_0 = 1; 

                        delay(500);

                        P1_0 = 0;

                        delay(500);

            }

}



 

 


 
23/11/2010 23:11 # 5
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


 Các toán tử

- Toán tử gán (=).

Ví dụ:         

b = 5;

a = 2 + b;

a = b =c = 5;

- Các toán tử số học ( + , - , * , / , % )

- Các toán tử gán phức hợp (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)

value += increase; tương đương với value = value + increase;

a -= 5; tương đương với a = a - 5;

a /= b; tương đương với a = a / b;

price *= units + 1; tương đương với price = price * (units + 1);

Tăng và giảm ++ - -

a++; <=> a+=1; <=> a=a+1;

tính chất tiền tố hoặc hậu tố (++a) # (a++) Ex

B=3;

B=3;A=++B;

// A is 4, B is 4

B=3;

A=B++;

// A is 3, B is 4

- Các toán tử quan hệ ( ==, !=, >, <, >=, <= )

== Bằng

!= Khác

> Lớn hơn

< Nhỏ hơn

> = Lớn hơn hoặc bằng

< = Nhỏ hơn hoặc bằng

(7 == 5) sẽ trả giá trị false

(6 >= 6) sẽ trả giá trị true

Tất nhiên thay vì sử dụng các số, ta có thể sử dụng bất cứ biểu thức nào. Cho a=2, b=3 và c=6

(a*b >= c) sẽ trả giá trị true.

(b+4 < a*c) sẽ trả giá trị false

Chú ý rằng = (một dấu bằng) lf hoàn toàn khác với ==

(hai dấu bằng). (==) nhằm so sánh còn (=)gán giá trị của biểu thức bên phải cho biến ở bên trái .

- Các toán tử logic( !, &&, || ).

! NOT                    

&& AND

|| OR

EX:

!(5 == 5) trả về false vì biểu thức bên phải (5 == 5) có giá trị true.

!(6 <= 4) trả về true vì (6 <= 4)có giá trị false.

!true trả về false.

!false trả về true.

( (5 == 5) && (3 > 6) ) trả về false ( true && false ).

( (5 == 5)

-> Các toán tử thao tác bit ( &, |, ^, ~, <<, >> ).

& AND Logical AND

| OR Logical OR

^ XOR Logical exclusive OR

~ NOT Đảo ngược bit

<< SHL Dịch bit sang trái

>> SHR Dịch bit sang phải



 

 


 
23/11/2010 23:11 # 6
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


Thứ tự ưu tiên của các toán tử



 

 


 
23/11/2010 23:11 # 7
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


 .  Các kiểu dữ liệu.

Các kiểu biến chuẩn:



Kiểu dữ liệu của Keil C

 

 



 

 


 
23/11/2010 23:11 # 8
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


 Tập lệnh cơ bản của Keil C.

 

- Cấu trúc lệnh điều kiện (if, if…else).

- Các lệnh vòng lặp (for, while, do…while).

- Các lệnh rẻ nhánh và lệnh nhảy (continue, goto, break).

- Cấu trúc lựa chọn (switch).



 

 


 
25/11/2010 10:11 # 9
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
Phản hồi: [Lập trình robocon] Căn bản


Các bạn có thể dễ dàng nhận thấy lập trình robocon bằng ngôn ngữ C chẳng khác gì là lập trình một chương trình chạy trên PC là mấy, những bạn nào đã học lập trình C đều có thể dễ dàng nắm bắt sau một thời gian làm quen.
Đối với giải thuật thường có trong chương trình của robot các bạn có thể vào topic này để tham khảo

http://forum.duytan.edu.vn/sites/index.aspx?p=forum_thread&forum=517&thread=15147#p0


còn ở topic này mình sẽ lần lượt posst các bài hướng dẫn cơ bản để làm quen với lập trình C nhúng bằng phần mềm keil C. Các bạn sẽ thấy là không có gì khó khăn.
Lập trình vẫn luôn là phần sau cùng và có phần dễ hơn các công đoạn khác trong chế tạo robot mà..............


 

 


 
25/11/2010 22:11 # 10
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
Phản hồi: [Lập trình robocon] Căn bản


Tutorial 1: Giới thiệu cơ bản phần lập trình C cho vi điều khiển 

Đây là bài hướng dẫn lập trình C cơ bản nhất cho hệ thống nhúng, các chương trình soạn thảo bằng phần mêm keil C và được chạy mô phỏng trên phần mềm Proteus và Topview Simulator. Thực hành thành thao với các bài tập cơ bản này bạn sẻ có thể bước vào lập trình robot.

Đầu tiên phải cài đặt các phần mềm nói trên gồm Keil C (uv2 hoặc uv3), Proteus 7.0 và Topview Simulator.

* Giới thiệu qua về chú chíp vi điều khiển dùng để lập trình mô phỏng

 

 

- Chúng ta sẻ lập trình và mô phỏng trên chip 89C51, các robot của chúng ta lập trình trên con 89V51. hai con này cũng của họ 8051 nên các tính năng khá giống nhau. ở hình trên ta thấy chíp AT89C51 có 32 chân từ P0.0 à P0.7, P1.0 à P1.7, P2.0 à P2.7, P3.0 à P3.7 là các chân có thể lập trình IO (input/output – các thiết bị vào ra như LED đơn LED 7 đoạn, phím bấm, loa …là các thiết bị hay gặp trong robot)

 

1. Sử dụng phần mềm KEIL C(uv2) keil C là phần mềm để chúng ta soạn thảo chương trình.

 

Tạo project: vào projectà new project

 

 

à

à

à

Tạo file.c để sọan thảo: vào File à New à đựt tên file.c và lưu vào cùng thư mục chứ file.uv2

à

Add file.c và dự án

Kích chuột phải vào Source Group 1

à

à

Tạo file .hex

Kích chuột phải vào target 1

à

 

Soạn thảo à bấm F7 để biên dịch và tạo file hex hoặc kich vào biểu tượng 

 



 

 


 
25/11/2010 23:11 # 11
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


 Tutorial 1: Giới thiệu cơ bản phần lập trình C cho vi điều khiển (tiếp)


2.                        Sử dụng phần mềm Proteus

Proteus là phần mềm mô phỏng có mạch nguyên lý ( Cái này cài lên chủ yếu để xem các mạch đã thiết kế còn việc tự thiết kế thì khá khó khăn với anh em nào biết ít về điện tử)

Ví dụ:

-   Một phím bấm nối với chân P1.0

-   Một đèn Led đơn nói với chân P3.0

-   Một Led 7 đoạn nối với P2 từ P2.0 à P2.6

Yêu cầu: Lúc đầu Led đơn sáng, nhấn nút thì Led 7 đoạn bắt đầu sáng số 0, nếu tiếp tục nhấn thì số tăng lên, nếu tăng tới 9 thì lặp lại về 0 đồng thời khi Lé 7 đoạn sáng số chẳn thì Led đơn tắt nếu lẻ thì Led đơn sáng.

 

-   

 

 

Cách load file.hex vào chương trình:  Nhấp đúp vào chíp vi điều khiển

à

Chọn file và ok thế là xong



 

 


 
25/11/2010 23:11 # 12
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


Tutorial 1: Giới thiệu cơ bản phần lập trình C cho vi điều khiển (tiếp)
 3. sử dụng phần mềm Topview Simulator

-phần mềm Topview Simulator không có sơ đồ mạch nhưng mô phỏng bằng cách thiết lập các chân của vi điều khiển tới các thiết bị

à

Chọn chíp mô phỏng

à

Ví dụ cho việc thiết kế mạch như ở ví dụ trên:

à thiết lập Led đơn và Led 7 đoạn

à

thiết lập phím bấm

 

à

Để xem các thiết lập vửa rồi : vào View

à Kết quả là :

à

Cách load file.hex vào để chạy chương trình

à cách chạy mô phỏng : kích vào nút Go dừng lại thì kích vào nút Stop và Reset
 

 

à thế là xong.



 

 


 
25/11/2010 23:11 # 13
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


  Tutorial 1: Giới thiệu cơ bản phần lập trình C cho vi điều khiển (tiếp)


4. Lập trình

a) lập trình cho Led đơn: Led đơn nối với chân P3.0 của VĐK, theo sơ đồ mạch trên thì Led đơn tích cực mức 1 (sáng) và tắt ở mức 0.

Để thuận tiện, ta sẻ định nghĩa chân P3.0 như sau:

sbit LED = P3^0;

b) phím bấm nối với chân P1.0, nếu chân P1.0 bằng 0 tức là phím đang được nhấn, ngược lại nếu bằng 1 thì phím chưa được nhấn.

Ta cũng định nghĩa chân P1.0 như sau

sbit sw1 = P1^0;

c) lập trình cho Led 7 đoạn

Led 7 đoạn chẳng qua là 8 led đơn ghép lại ta có các led a,b,c,d,e,f,g, ghép lại với nhau và nối với VĐK theo thứ tự sau:

 

ở ví dụ này Led 7 đoạn tích cực ở mức 0 để đèn sáng số 0 ta làm như sau

à giá trị đưa vào P2 như sau 11000000 = C0H

d) chương trình

#include"REGX51.h"                       // khai báo thư viện của VDK

sbit sw1 = P1^0;                                // định nghĩa chân P1.0

sbit LED = P3^0;                               // định nghĩa chân P3.0

unsigned char i,a;      // khai báo a,i kiểu unsighned char tức là a và i có

// giá trị từ 0 à 255

void delay(unsigned int x) { // hàm delay tạo thời gian trể tùy vào tham số x

// truyền vào

  while(x--);

}

 

 unsigned char led_sang[10] =

{0xC0,0xF9,0xA4,0xb0,0x99 ,0x92,0x82,0xf8,0x80 ,0x98};

 //Mảng chứa giá trị sáng của Led 7 đoạn (0à9)

void main (void) // hàm chính

{  

i=0;

a=0;

sw1 = 1;//input

for(;;){

 if(sw1==0)

  {

   P2=led_sang[i];   // HIEN THI LED 7 DOAN

   i=i+1;

   if (i==10) i=0;

  

   a=i%2;                      //KIEM TRA SO CHAN LE

   if (a==0)

   LED = 1;                   //NEU CHAN THI BAT LEN

   if (a==1)

   LED=0;                     //LE THI TAT DI

   delay(50000);

  }

 }

}



 

 


 
25/11/2010 23:11 # 14
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


  Toàn bộ lý thuyết , code và các file cần thiết các bạn có thể tải về ở file đính kèm dưới đây
File đính kèm Bạn phải đăng nhập mới thấy link download


 

 


 
25/11/2010 23:11 # 15
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
[Lập trình robocon] Căn bản


 Một số tài liệu tham khảo về lập trình C nhúng đây, trong đó có code chương trình robocon nửa. Nhóm lập trình chuẩn bị từ từ mà nhai nha. Mình cứ post chúng lên hết đây, rồi sẻ có lúc phải xài thôi
File đính kèm Bạn phải đăng nhập mới thấy link download
Bạn phải đăng nhập mới thấy link download


 

 


 
26/11/2010 08:11 # 16
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
Phản hồi: [Lập trình robocon] Căn bản


Trong loạt bài tiếp theo sẽ là một loạt các ví dụ để các ban làm quen với các thao tác lập trình với bàn phìm led đơn, led 7 đoạn, động cơ...Nói chung là những thiết bị rất quen thuộc đối với lập trình robocon. tất cả đều viết trên Keil C và mô phỏng bằng Top view hoặc Protues


 

 


 
26/11/2010 09:11 # 17
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
Phản hồi: [Lập trình robocon] Căn bản


Trước tiên là phải cài đặt keil C đã, đây là keil uv3 

KEIL C - HƯỚNG DẪN CÀI ĐẶT

 
Keil C là chương trình biên dịch C cho vi điều khiển 8051 phổ biến nhất thế giới hiện nay.

PHẦN MỀM : DOWNLOAD HERE

Keil C là chương trình hỗ trợ khá đầy đủ cho lập trình cho vi điều khiển họ 8051 ngoài việc biên dịch bằng ngôn ngữ C bạn cũng có thể biên dịch dưới dạng ASM. Đây cũng là một cách để tìm hiểu thêm về  ngôn ngữ ASM rất tốt cho bạn..

Để tiến hành cài đặt bạn tiến hành làm như sau:

B1: Bạn Click vào flie  c51v815.exe  trong file đính kèm (hoặc CD) màn hình sẽ xuất hiện như sau:

 


B2: Chọn Next màn hình sẽ xuất hiện như sau: 

B3: Click chọn “i agree to all the terms of the preceding License Agreement”sau đó chọn  Next  khi đó màn hình sẽ xuất hiện

B4: Bạn có thề để mặc định và tiếp tục chọn Next. Tuy nhiên bạn cũng có thề thay đổi nội dung thông tin cá nhân ở dưới :


B5: Chọn Next để bắt đầu cài đặt


B6: Sau khi quá trình cài đặt xong bạn chọn Finish để hoàn tất cài đặt.

Sau khi cài đặt xong bạn tiến hành cài key cho phần mềm:

B7:  Bạn mở chương trình Keil C vừa được cài đặt lên vào file => chọn License Managament màn hình sẽ xuất hiện như sau:


 

B8: Sau khi cửa sổ sau xuất hiện, bạn Copy Computer ID (CID) của máy mình  .


 

B9:bạn có thể chạy File Keil_lic-v3.2_2.exe  tích vào Extenal CID code và Pass CID bạn vừa copy được  ở trên  vào đó và chọn Generete 


B10: Chương trình sẽ tạo ra Key thích hợp cho máy bạn, nhiệm vụ của bạn là copy key này.

h


 

B11: Bạn trở lại chương trình Keil C và Pass Key vừa copy vào New License ID Code (LIC):


B12: Cuối cùng ấn vào nút AddLIC chương trình sẽ  hiện lên *** LIC Added Sucessfully ***bạn chọn close để đóng cửa sổ này lại.


Như vậy  bạn đã cài đặt thành công.

                    Chúc các bạn thành công!




 

 


 
Các thành viên đã Thank nghien_rbc vì Bài viết có ích:
29/09/2011 16:09 # 18
hiencaca
Cấp độ: 1 - Kỹ năng: 1

Kinh nghiệm: 1/10 (10%)
Kĩ năng: 0/10 (0%)
Ngày gia nhập: 20/09/2011
Bài gởi: 1
Được cảm ơn: 0
Phản hồi: [Lập trình robocon] Căn bản


Bài hay thế sao không tiếp tuc nữa đi huynh?



 
01/10/2011 10:10 # 19
nghien_rbc
Cấp độ: 6 - Kỹ năng: 5

Kinh nghiệm: 4/60 (7%)
Kĩ năng: 0/50 (0%)
Ngày gia nhập: 16/03/2010
Bài gởi: 154
Được cảm ơn: 100
Phản hồi: [Lập trình robocon] Căn bản


Trích:
Bài hay thế sao không tiếp tuc nữa đi huynh?
 chỉ là những kiến thức đã lâu và khá cơ bản, về một số giải thuật lập trình cơ bản cho robocon thì có thể xem thêm ở đây
http://forum.duytan.edu.vn/sites/index.aspx?p=forum_thread&forum=517&thread=15147#p0

chủ yếu là từ kinh nghiệm sau mấy năm làm robot.
Mong mọi người đóng góp thêm nhiều giải thuật, kiến thức mới hay hơn bổ ích hơn để phong trào robocon trong sinh viên mạnh mẽ hơn, và diễn đàn cũng dc sôi động hơn


 

 


 
06/10/2011 22:10 # 20
phamquyenanh.qb
Cấp độ: 2 - Kỹ năng: 1

Kinh nghiệm: 4/20 (20%)
Kĩ năng: 2/10 (20%)
Ngày gia nhập: 20/09/2010
Bài gởi: 14
Được cảm ơn: 2
Phản hồi: [Lập trình robocon] Căn bản


 Anh nghien_rbc oi có thể nói rõ hơn cho em phần lập trình ngắt không ạ . 
thank anh .




 
Copyright© Đại học Duy Tân 2010 - 2024