1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1

29 371 0

Đ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 29
Dung lượng 7,64 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Toàn bộ code examples dưới đây được chúng tôi xây dựng trên nền tảng phần cứng của E51DK1 sử dụng vi điều khiển vi điều khiển 89V51RB2 đang khá phổ biến trên thị trường hiện nay và phá

Trang 1

Hướng dẫn lập trình 8051 cơ bản trên Kit

LCD(Text ), nút nhấn… Hay nâng cao một chút là giao tiếp voi bộ nhớ EEPROM và RTC

trên sản phẩm kit phát triển 8051 là E51DK1 sản phẩm của do Titans Technology phân phối Để đặt mua Kit thí nghiệm đa năng E51DK1 hoặc xem các sản phẩm khác, hãy vào

website www.titans.com.vn

Rất vui được phục vụ các bạn trong quá trình hoc tập và nghiên cứu Thân.

II Lập trình giao tiếp các ngoại vi trên 8051:

1 Giới thiệu về kit phát triển 8051

E51DK1 là kit phát triển cho dòng VĐK 8051 do Titans Technology phân phối E51DK1

gồm 1 main board chính đính kèm chung voi các ngoại vi như: LCD,UART,Matrix

Button,ADC,EEPROM,RTC E51DK1 cho phép ta thực hành thí nghiệm với các ngoại vi,

ứng dụng thông thường,bao gồm các khối chính như hình sau:

Trang 2

1

Hình 1: Kit phát triển 8051 E51DK1

Thông tin các khối trên E51DK1:

1 : Khối vi điều khiển 8051 gói

2 : Khối vi điều khiển 8051 gói

3 : Khối đo nhiệt độ

Toàn bộ code examples dưới đây được chúng tôi xây dựng trên nền tảng phần cứng của

E51DK1 sử dụng vi điều khiển vi điều khiển 89V51RB2 (đang khá phổ biến trên thị trường

hiện nay) và phát triển với trình biên dịch Keil C giúp các bạn tiếp cận với việc lập trình vi

điều khiển tối ưu và nhanh nhất có thể,trình biên dịch/tools sẽ được cung cấp trong đĩa CD

ROM khi các bạn mua sản phẩm

Trang 3

2

Sử dụng Console trên PC:

Hấu hết các demo chúng tôi đính kèm sẽ xuất các kết quả trên màn hình Terminal của PC

để các bạn dễ theo dõi.Do đó khi các bạn mua sản phẩm chúng tôi đã đính kèm phần mềm

“Siow” để hỗ trợ chức năng này Để sử dụng Siow chúng ta thực hiện các bước sau:

 Khởi động chương trình “Siow”

Hình 10 :Khởi động chương trình Siow (Terminal trên PC)

 Chọn tab Configuration  “Set port options” để cấu hình cổng COM

Trang 4

3

Hình 11 :Bảng cấu hình thông số cổng COM

 + ComPorts: chọn cổng COM mà PC của bạn nhận diện (như trong hình

PC của mình là COM 4)

 + Baud rate: chọn tốc độ Baud là 19200 để test example code

 + Software flow control: chọn như hình trên

 + Parity: None

 + Data bits: 8 bit

 + Stop bit: 1

 + Hardware flow control: như hình trên

2 Example điều khiển bàn phím ma trận 4x4:

a) Mô tả phần cứng:

E51DK1 trang bị 1 bàn phím ma trận 4x4 hỗ trợ phát triển các ứng dụng điều khiển đòi hỏi sử dụng nhiều nút nhấn và giảm thiểu việc chiếm chân pin của vi điều khiển.

Trang 5

4

Hình 2 : khối bàn phím ma trận của E51DK1

Khối bàn phím được kết nối với vi điều khiển như sau:

Hình 3 : sơ đồ kết nối bàn phím ma trận với vi điều khiển 8051

Trang 6

b) Mô tả example demo:

Mở folder “E51DK1-test-KeyPad”, chạy file “E51DK1.uvproj”,nhấn F7 để build project và nạp file “E51DK1.hex” Trên màn hình Console sẽ xuất hiện các dòng giới

thiệu,sau đó bạn lần lượt nhấn các phím trên khối bàn phím ma trận và xem kết quả trên màn hình

Các hàm chính được sử dụng trong demo:

main( ) Hàm chính của hệ thống InitSerial() Khởi tạo giao tiếp UART (cổng

InitSerial(); // Initialize serial port init_LCD();

DelayMs(250);

lcd_puts(1,"www.Hlab.com.vn");

lcd_puts(2,"E51DK1 Demo rev1.0");

while(1) {

menu();

} }

Trang 7

6

//================ DEMO =======================================//

char demo_scankey() {

unsigned char but_value,old_but_value;

char c;

while(1) { KeyPad_Port=0xff;

//quet hang 1

if(KeyRow0==0)

{ while(KeyRow0==0);

but_value='1';

} else if(KeyRow1==0)

{ while(KeyRow1==0);

but_value='2';

}

else if(KeyRow2==0) {

while(KeyRow2==0);

but_value='3';

}

else if(KeyRow3==0) {

while(KeyRow3==0);

but_value='A';

} //quet hang 2

but_value='4';

}

else if(KeyRow1==0) {

while(KeyRow1==0);

Trang 8

7

but_value='5';

}

else if(KeyRow2==0) {

while(KeyRow2==0);

but_value='6';

}

else if(KeyRow3==0) {

while(KeyRow3==0);

but_value='B';

} //quet hang 3

but_value='7';

}

else if(KeyRow1==0) {

while(KeyRow1==0);

but_value='8';

}

else if(KeyRow2==0) {

while(KeyRow2==0);

but_value='9';

}

else if(KeyRow3==0) {

while(KeyRow3==0);

but_value='C';

} //quet hang 4 KeyCol0=1;

KeyCol1=1;

KeyCol2=1;

KeyCol3=0;

if(KeyRow0==0) {

while(KeyRow0==0);

but_value='*';

}

else if(KeyRow1==0) {

while(KeyRow1==0);

but_value='0';

Trang 9

8

}

else if(KeyRow2==0) {

while(KeyRow2==0);

but_value='#';

}

else if(KeyRow3==0) {

while(KeyRow3==0);

but_value='D';

} if(but_value!=0) {

if(but_value!=old_but_value) {

//neu nhan phim esc thi quay lai demo chinh if(kbhit())//lay fim nhan non-block

{ c=getc();

if(c=='e') return 0;

}

E51DK1 có tích hợp 1 “Text LCD 16x2” rõ nét hỗ trợ cho việc debug hay hiển

thị các thông số trong quá trình lập trình.

Trang 11

10

b) Mô tả firmware:

Mở folder “E51DK1-test-LCD”, chạy file “E51DK1.uvproj”,nhấn F7 để build project và nạp file “E51DK1.hex” Trên màn hình Console sẽ xuất hiện các dòng giới

thiệu,sau đó bạn quan sát màn hình LCD để xem kết quả

Các hàm chính được sử dụng trong demo:

main( ) Hàm chính của hệ thống init_LCD( ); Khởi tạo text LCD Tham khảo trong file lcd.c lcd_puts(unsigned char

line_display, unsigned

char *AC)

Xuất kí tự lên LCD Tham khảo trong file “lcd.c”

Code giao tiếp LCD 16x2

InitSerial(); // Initialize serial port init_LCD();

DelayMs(250);

lcd_puts(1," Titans.com.vn");

lcd_puts(2,"E51DK1 Demo rev1.0");

while(1) {

} }

//================ LCD =======================================//

void init_LCD(void) {

Trang 12

void lcd_puts(unsigned char line_display, unsigned char *AC) {

Trang 13

Để truy xuất kênh ADC, ta truy xuất qua port P1 Cụ thể như sau:

Hình 7: Sơ đồ kết nối của ADC

Trang 14

thiệu và xem kết quả ADC trên màn hình.

Để thực hiện các chức năng trên,trong example ta sử dụng các hàm sau:

main( ) Hàm chính của hệ thống InitSerial() Khởi tạo giao tiếp UART

(cổng COM) unsigned char

InitSerial(); // Initialize serial port init_LCD();

DelayMs(250);

lcd_puts(1,"www.Hlab.com.vn");

lcd_puts(2,"E51DK1 Demo rev1.0");

while(1) {

menu();

Trang 15

14

}

//================ ADC DEMO=============================//

void menu() {

if(kbhit())//lay fim nhan non-block {

}

Ghi chú : Code đã lược bỏ một số hàm phụ,để có source code đầy đủ, vui lòng xem trong CDROM

Trang 16

15

5 Example Giao tiếp UART:

a) Mô tả phần cứng:

E51DK1 trang bị 1 bộ ngoại vi giao tiếp nối tiếp UART (RS232) có thể sử dụng

cho việc giao tiếp với máy tính,các ngoại vi khác,cảm biến…

Hình 8 :Khối RS232

Để truy xuất UART,ta sử dụng cấu hình theo phần cứng giữa UART và chip 8051 như sau:

Trang 17

 Để sử dụng Terminal các bạn làm theo các bước sau:

Để thực hiện các chức năng trên,trong example ta sử dụng các hàm sau:

main( ) Hàm chính của hệ thống Tham khảo trong file

“main.c”,cấu hình và chạy

chương trình chính InitSerial(void) Khởi tạo UART(cổng COM) Tham khảo trong file

“serial.c”

void putc(char chr) xuất 1 byte qua UART Tham khảo trong file

Trang 18

17

“serial.c”

char getc(void) Lấy 1 byte dữ liệu Tham khảo trong file

“serial.c”

Printf( ) Xuất 1 chuỗi dữ liệu

Code Giao tiếp UART

InitSerial(); // Initialize serial port DelayMs(250);

while(1) {

menu();

} }

//============== UART =============================//

void menu() {

printf("\n\r Chuong trinh test ngoai vi cua E51-DK1 ");

printf("\n\r De su dung cac ban se su dung 1 Terminal trong Windows:");

printf("\n\r 1 Terminal co the tim thay trong WinXP.");

printf("\n\r 2 Hoac su dung chuong trinh Siow co trong CD-ROM di kem."); printf("\n\r 3 Ngoai ra cac ban co the su dung Terminal cua FlashMagic");

printf("\n\r bang cach vao Tool->Terminal->Select COM port >Baudrate 19200->OK.");

printf("\n\r 4 Tu man hinh Terminal cac ban se su dung ban phim PC de dieu khien.");

}

Trang 19

18

Ghi chú : Code đã lược bỏ một số hàm phụ,để có source code đầy đủ, vui lòng xem trong CDROM

6 Example lập trình giao tiếp chuẩn I2C với EEPROM

và IC ds1307(Real Time Clock) :

a) Mô tả phần cứng:

Khối External EEPROM ngoài của E51DK1 cho phép lưu các thông tin quan

trọng hoặc các thông số mà ta cẩn lưu trữ khi hệ thống đang hoạt động, và vẫn phải duy trì ngay cả khi hệ thống bị mất nguồn.Sử dụng chuẩn I2C thông dụng để giao tiếp nên sẽ tiết kiệm chân cho vi điều khiển

Dùng chung chân giao tiếp I2C với External EEPROM là đồng hồ thời gian thực

ds1307 khối thời gian thực RTC có pin để RTC có thể hoạt động ngay cả khi không

có nguồn cung cấp

Hình 14 :Khối giao tiếp EEPROM / RTC

Để sử dụng chuẩn giao tiếp I2C truy xuất EEPROM / I2C,ta cấu hình theo kết nối sau:

Trang 20

19

Hình 15: Sơ đồ kết nối của EEPROM

Hình 16: sơ đồ kết nối của RTC

Trang 21

tiến hành đọc và ghi EEPROM theo các lệnh trên màn hình Console

Để thực hiện các chức năng trên EEPROM,trong example ta sử dụng các hàm sau:

Ghi dữ liệu vào EEPROM

Tham khảo trong file

“epprom_24Cxx.c”

read_eeprom(unsigned int address)

Đọc dữ liệu từ EEPROM

Tham khảo trong file

InitSerial(); // Initialize serial port DelayMs(250);

while(1) {

menu();

} }

//=================== ==================================//

void menu() {

Trang 22

unsigned char cmd, address,value,a;

while(!eeprom_ready());

while(1) {

do { printf("\n\rRead or Write [r/w]: ");

printf("\n\rRead at " );

putnum(address);

printf(" Value: " );

putnum(read_eeprom( address ));

printf(" -> Press [e] to exit | [c] to continue !");

//neu nhan phim esc thi quay lai demo chinh

do { a=getc();

} while((a!='e')&&(a!='c'));

if(a=='e') return 0;

}

if(cmd=='W' || cmd=='w') { printf("\n\rEnter new value [8bit]: ");

write_eeprom( address, value );

printf("-> Press [e] to exit | [c] to continue !");

//neu nhan phim esc thi quay lai demo chinh

do { a=getc();

} while((a!='e')&&(a!='c'));

if(a=='e') return 0;

}

} }

Trang 23

22

Ghi chú : Code đã lược bỏ một số hàm phụ,để có source code đầy đủ, vui lòng xem trong CDROM

 RTC:

Mở folder tên “E51DK1-test- Ds1307”,chạy file “E51DK1.uvproj”,nhấn F7 để

build project,cuối cùng là nạp file “E51DK1.hex” Sau khi nạp xong file hex các bạn

tiến hành theo dõi kết quả trên màn hình Console

Để thực hiện các chức năng trên EEPROM,trong example ta sử dụng các hàm sau:

InitSerial(); // Initialize serial port DelayMs(250);

while(1) {

menu();

} }

//===================RTC ==================================//

Trang 24

23

void menu() {

printf("\n\r ham _RTC_INI(), trong ham nay cac ban co the thay doi hoac tuy chinh.");

printf("\n\r -");

_RTC_INI();

_GET_TIME();

while(1) {

}

void _RTC_INI(void) {

Trang 25

24

/********Time Default**************/

TIME.SEC = 0x00 ; TIME.MIN = 0x00 ; TIME.HOUR = 0x19 ; TIME.DAY = 0x04 ; TIME.DATE = 0x10;

TIME.SEC = _RTC_READ(0x00); //GET SECOND TIME.MIN = _RTC_READ(0x01); //GET MIN TIME.HOUR = _RTC_READ(0x02)&0x3f; //GET HOUR TIME.DAY = _RTC_READ(0x03); //GET DAY

TIME.DATE = _RTC_READ(0x04); //GET DATE TIME.MONTH = _RTC_READ(0x05); //GET MONTH TIME.YEAR = _RTC_READ(0x06); //GET YEAR

}

void _convert_time(char *p) {

Trang 26

Trên đây là những demo cũng như chức năng các hàm giao tiếp / cấu hình các ngoại vi cơ bản

trên sản phẩm E51DK1 của Titans Technology.Chúng tôi Hy vọng giúp các bạn có một cái nhìn

tổng quát về vi điều khiển 8 bit nói chung và dòng chip 8051 nói riêng 1 cách đơn giản và nhanh nhất Chúc các bạn thành công

Trang 27

26

Reference

1 Google.com

2 Internet source

Trang 28

27

Mục lục

E51DK1 Examples Tutorial 0

Hướng dẫn lập trình 8051 cơ bản trên Kit thí nghiệm E51DK1 0

I Giới thiệu: 0

II Lập trình giao tiếp các ngoại vi trên 8051: 0

1 Giới thiệu về kit phát triển 8051 0

2 Example điều khiển bàn phím ma trận 4x4: 3

a) Mô tả phần cứng: 3

b) Mô tả example demo: 5

3 Example giao tiếp với Text LCD 16x2: 8

a) Mô tả phần cứng: 8

b) Mô tả firmware: 10

4 Example ADC: 12

a) Mô tả phần cứng: 12

b) Mô tả firmware: 13

5 Example Giao tiếp UART: 15

a) Mô tả phần cứng: 15

b) Mô tả firmware: 16

6 Example lập trình giao tiếp chuẩn I2C với EEPROM và IC ds1307(Real Time Clock) : 18

a) Mô tả phần cứng: 18

b) Mô tả firmware: 20

Reference 26

Mục lục 27

Trang 29

28

Copyright © 2009 Titans Technology Tài liệu này thuộc

chúng tôi hy vọng các bạn khi sử dụng với bất kì mục đích nào bằng bất cứ hình thức nào bao gồm sao chép, in, copy, trích dẫn… cần phải ghi rõ xuất xứ nguồn gốc từ website của chúng tôi

Hãy truy xuất trang web của chúng tôi thường xuyên để có những cập nhật mới nhất

về các thiết bị mới nhất tại website www.titans.com.vn

Nếu có bất cứ ý kiến đóng góp cũng như cần hỗ trợ, tư vấn thêm thông tin về sản

Ngày đăng: 29/02/2016, 09:37

HÌNH ẢNH LIÊN QUAN

Hình 1: Kit phát triển 8051 E51DK1 - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 1 Kit phát triển 8051 E51DK1 (Trang 2)
Hình 10 :Khởi động chương trình Siow (Terminal trên PC) - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 10 Khởi động chương trình Siow (Terminal trên PC) (Trang 3)
Hình 11 :Bảng cấu hình thông số cổng COM - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 11 Bảng cấu hình thông số cổng COM (Trang 4)
Hình 2 : khối bàn phím ma trận của E51DK1 - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 2 khối bàn phím ma trận của E51DK1 (Trang 5)
Hình 3 : sơ đồ kết nối bàn phím ma trận với vi điều khiển 8051 - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 3 sơ đồ kết nối bàn phím ma trận với vi điều khiển 8051 (Trang 5)
Hình 4: Khối LCD 16x2 - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 4 Khối LCD 16x2 (Trang 10)
Hình 5: Sơ đồ kết nối LCD - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 5 Sơ đồ kết nối LCD (Trang 10)
Hình 7: Sơ đồ kết nối của ADC. - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 7 Sơ đồ kết nối của ADC (Trang 13)
Hình 6 : Khối ADC. - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 6 Khối ADC (Trang 13)
Hình 8 :Khối RS232 - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 8 Khối RS232 (Trang 16)
Hình 14 :Khối giao tiếp EEPROM / RTC - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 14 Khối giao tiếp EEPROM / RTC (Trang 19)
Hình 15: Sơ đồ kết nối của EEPROM - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 15 Sơ đồ kết nối của EEPROM (Trang 20)
Hình 16: sơ đồ kết nối của RTC - Hướng dẫn lập trình 8051 cơ bản trên kit thí nghiệm E51DK1
Hình 16 sơ đồ kết nối của RTC (Trang 20)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w