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

HƯỚNG DẪN SỬ DỤNG KIT 8051

110 743 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 110
Dung lượng 13,25 MB

Nội dung

hướng dẫn lập trình 8051

Trang 1

BKIT HARDWARE CLUB www.bkit4u.com 1

Mục lục

Giới thiệu kit thí nghiệm BK89IT 4

Mô hình lập trình C trong vi điều khiển 5

Bài 1 : Hướng dẫn cài đặt Keil C và Flash Magic 6

1.1 Cài đặt Keil C 6

1.2 Cài đặt Flash Magic 11

1.3 Cấu hình cho Flash Magic 16

Bài 2 : Truy xuất Port I/O 22

2.1 Tạo project trên Keil C 22

2.2 Viết chương trình đơn giản 32

2.2.1 Kết nối phần cứng 32

2.2.2 Viết chương trình 33

2.2.3 Nạp chương trình 34

2.2.4 Các lỗi xảy ra khi nạp chương trình 35

Bài 3 : Điều khiển đơn giản Led 7 đoạn 38

3.1 Kết nối phần cứng: 38

3.2 Viết chương trình 39

3.2.1 Hàm init_main() 39

3.2.2 Hàm main() 39

3.3 Một số lỗi lập trình quan trọng 41

Bài 4 : Ngắt Timer 42

4.1 Khai báo ngắt timer 42

4.2 Viết chương trình 43

4.2.1 Hàm init_timer1() 43

4.2.2 Hàm start_timer1() 43

4.2.3 Hàm timer1_isr() 43

4.2.4 Hàm delay_ms(unsigned int duration) 44

4.2.5 Hàm stop_timer1() 44

Bài 5 : Dùng ngắt timer viết ứng dụng LED RIVER 45

5.1 Kết nối phần cứng 45

5.2 Viết chương trình 45

Bài 6 : Chống rung cho phím 47

6.1 Nguyên lý chống rung 47

6.2 Kết nối phần cứng 48

6.3 Viết chương trình 49

6.3.1 Hàm initKey() 49

6.3.2 Hàm getKey() 49

Bài 7 : Quét led điều khiển Led 7 đoạn 51

7.1 Nguyên lý quét led 7 đoạn 51

7.2 Kết nối phần cứng 52

7.3 Viết chương trình 52

7.3.1 Hàm init_led7() 52

7.3.2 Hàm clear_led7() 53

7.3.3 Hàm set_position(unsigned int pos) 53

7.3.4 Hàm get_position() 53

Trang 2

7.3.5 Hàm put_Number(unsigned int num) 54

7.3.6 Hàm put_string(char strNum[]) 54

7.3.7 Hàm scan_led7 54

Bài 8 : Điều khiển Ma trận led 56

8.1 Nguyên lý điều khiển ma trận led 56

8.2 Kết nối phần cứng 56

8.3 Viết chương trình 56

8.3.1 Hàm init_led_matrix() 57

8.3.2 Hàm scan_led_matrix() 57

8.3.3 Hàm update_display_led_matrix() 57

Bài 9 : Chạy chữ trên Ma trận led 59

9.1 Nguyên lý chạy chữ trên ma trận led 59

9.2 Kết nối phần cứng 60

9.3 Viết chương trình 60

9.3.1 Hàm set_message(char strMsg[]) 60

9.3.2 Hàm main() 61

Bài 10 : Ngắt ngoài 62

10.1 Nguyên lý điều khiển ngắt ngoài 62

10.2 Kết nối phần cứng 62

10.3 Viết chương trình 62

10.3.1 Hàm init_ext_int0() 62

10.3.2 Hàm init_ext_int1() 62

10.3.3 Hàm ext0_isr() 63

10.3.4 Hàm ext1_isr() 63

Bài 11 : Điều khiển encoder 64

11.1 Nguyên lý điều khiển encoder 64

11.2 Kết nối phần cứng 65

11.3 Viết chương trình 65

Bài 12 : Giao tiếp UART 67

12.1 Nguyên lý giao tiếp UART 67

12.2 Giao tiếp UART với máy tính 68

12.3 Viết chương trình 69

12.3.1 Thanh ghi điều khiển truyền nhận nối tiếp 69

12.3.2 Dùng Timer1 tạo Baud rate 71

12.3.3 Chương trình truyền nhận UART trên 8051 71

12.4 Kiểm tra truyền nhận UART 74

12.5 Xây dựng chương trình trên PC 74

12.5.1 Load các cổng COM của PC lên ComboBox 78

12.5.2 Kết nối cổng với cổng COM 79

12.5.3 Gửi dữ liệu 80

12.5.4 Nhận dữ liệu 81

Bài 13 : Giao tiếp PS2 với bàn phím 85

13.1 Nguyên lý giao tiếp PS2 85

13.2 Kết nối phần cứng 86

13.3 Viết chương trình 87

Trang 3

BKIT HARDWARE CLUB www.bkit4u.com 3

14.1 Khái niệm PWM 88

14.2 Lập trình PWM trên 89V51 89

Bài 15 : Giao tiếp LCD character 90

15.1 Chức năng các chân của LCD 90

15.2 Kết nối màn hình LCD 91

15.3 Các vùng nhớ của LCD 91

15.3.1 Display Data Ram (DDRAM) 91

15.3.2 Character Generator Ram (CGRAM) 91

15.3.3 Bộ nhớ CGROM 92

15.4 Các lệnh cơ bản của LCD 93

15.5 Kết nối LCD với vi điều khiển 94

15.6 Khởi tạo LCD 95

15.7 Kết nối phần cứng 97

15.8 Viết chương trình 98

15.8.1 Các hàm cơ bản 98

15.8.2 Khởi tạo LCD chế độ 4 bit 98

15.8.3 Xoá màn hình 99

15.8.4 Thiết lập vị trí con trỏ 99

15.8.5 In kí tự ra màn hình 100

Bài 16 : Giao tiếp I2C – DS1307 101

16.1 Các đặc điểm của DS1307 101

16.2 Nguyên lý hoạt động 101

16.3 Các tín hiệu Input và Output 102

16.4 RTC và sơ đồ địa chỉ Ram 103

16.5 Thông tin thời gian và lịch 103

16.6 Thanh ghi điều khiển (Control Register) 104

16.7 Bus dữ liệu nối tiếp 104

16.8 Giao thức I2C và RTC DS1307 105

16.8.1 Kết nối phần cứng 105

16.8.2 Start và Stop truyền dữ liệu 105

16.8.3 Truyền 1 byte dữ liệu 107

16.8.4 Giao tiếp với DS1307 108

Trang 4

Giới thiệu kit thí nghiệm BK89IT

Các chức năng của board thí nghiệm BK89IT :

v 8 nút nhấn : nối với P3

v 8 led 7 đoạn : hỗ trợ quét led, P0 để gửi dữ liệu và P2 để chọn led

v Led ma trận 2 màu : P0 gửi dữ liệu mà đỏ, P2 gửi dữ liệu xanh, P1 để chọn cột hiển thị

v Giao tiếp với bàn phím PS2

v Giao tiếp COM

v 4 chân dùng để kết nối encoder

v Cấu hình bằng switch : Switch 1 cho Port 1, 2 cho Port 3, 3 cho led ma trận và 4 cho led 7 đoạn

v Cấp nguồn ngoài hoặc USB

v Mạch nạp onboard

Trang 5

BKIT HARDWARE CLUB www.bkit4u.com 5

Mô hình lập trình C trong vi điều khiển

} void private_function() {

T2 = 0x00;

} void scan_led7() {

} void private_function() {

v File h : Khai các hàm và extern các biến toàn cục

v File c : Hiện thực các hàm được khai báo trong file h

Khi muốn sử dụng module này, ta chỉ cần include file h là có thể gọi được các hàm được khai báo trong file h

Trang 6

Bài 1 : Hướng dẫn cài đặt Keil C và Flash Magic

Mục đích :

Cài đặt Keil C để soạn thảo chương trình

Cài đặt Flash Magic để nạp chương trình

Cấu hình cho Flash Magic

1.1 Cài đặt Keil C

Keil C là chương trình hỗ trợ khá đầy đủ để người dùng soạn thảo chương trình dành cho các vi điều khiển thuộc họ 8051 Để cài đặt bạn tiến hành theo các bước như sau:

Bước 1 : Click vào file c51v815.exe trong CD đi kèm, màn hình sau sẽ xuất hiện

Trang 7

BKIT HARDWARE CLUB www.bkit4u.com 7

Bước 2 : Chọn Next, màn hình sau sẽ xuất hiện

Bước 3 : Click chọn I agree và chọn Next, màn hình sau sẽ xuất hiện

Trang 8

Bước 4 : Bạn có thể để mặc định và chọn Next Tuy nhiên bạn có thể thay đổi

Destinatioin Folder, là thư mục chứa 1 số thư viện hỗ trợ trong việc lập trình trên Keil C Màn hình sau xuất hiện để bạn điền 1 số thông tin cá nhân

Trang 9

BKIT HARDWARE CLUB www.bkit4u.com 9

Bước 5 : Chọn Next để bắt đầu cài đặt

Bước 6 : Khi cài đặt xong, màn hình sau xuất hiện và bạn nhấn Finish để hoàn tất

quá trình cài đặt

Trang 10

Bước 7 : Trang web sau hiển thị để giới thiệu về KeilC phiên bản này

Các bước cấu hình cho Keil C để dịch chương trình ra file Hex sẽ được trình bày trong bài thực hành tiếp theo

Trang 11

BKIT HARDWARE CLUB www.bkit4u.com 11

1.2 Cài đặt Flash Magic

Đây là chương trình dùng để nạp file Hex cho 89V51 Để cài đặt bạn làm theo các bước sau :

Bước 1 : Double click vào file FlashMagic.exe, màn hình sau sẽ xuất hiện

Bước 2 : Chọn Next

Trang 12

Bước 3 : Click chọn I accept và chọn Next

Trang 13

BKIT HARDWARE CLUB www.bkit4u.com 13

Bước 4 : Bạn có thể để mặc định và chọn Next, hoặc thay đổi đường dẫn của thư mực cài đặt nếu bạn muốn Khi click Next màn hình sau sẽ xuất hiện

Bước 5 : Để mặc định và chọn Next

Trang 14

Bước 6 : Chọn Next

Trang 15

BKIT HARDWARE CLUB www.bkit4u.com 15 Bước 7 : Chọn Install để cài đặt

Bước 8 : Khi cài đặt xong màn hình sau sẽ xuất hiện, bạn nhấn Finish để kết thúc cài đặt

Trang 16

1.3 Cấu hình cho Flash Magic

Bước 1 : Khởi động Flash Magic từ màn hình Desktop (hoặc vào Start\Program Files\Flash Magic và chọn Flash Magic), màn hình sau sẽ xuất hiện

Trang 17

BKIT HARDWARE CLUB www.bkit4u.com 17

Bước 2 : Bạn chọn Baud Rate là 9600, Device là chip tương ứng mà bạn dùng Check chọn Verify after programming và Erase blocks used by Hex File

Trang 18

Bước 3 : Chọn menu Option và chọn Advance Option, màn hình sau sẽ xuất hiện :

Trang 19

BKIT HARDWARE CLUB www.bkit4u.com 19

Bước 4 : Chọn qua tab Hardware Config và check chọn Assert DTR and RTS

while COM Port open Nhấn OK để đóng cửa số này lại

Bước 5 : Xem cổng COM đang là cổng nào Bạn thu nhỏ Flash Magic lại, trên

màn hình Desktop, từ biểu tượng My Computer, click phải chuột và chọn Manage

Trang 20

Bước 6 : Màn hình sau xuất hiện, bạn chọn Device Manager

Bước 7 : Cắm dây cổng COM nếu bạn đang dùng USB to COM, mở rộng Ports (COM &LPT), bạn sẽ biết được tên cổng COM đang dùng (trong ví dụ này là COM 9)

Trang 21

BKIT HARDWARE CLUB www.bkit4u.com 21

Bước 9 : Kích hoạt lại Flash Magic và chọn cổng COM tương ứng

Trang 22

Bài 2 : Truy xuất Port I/O

Mục đích:

Tạo project đơn giản trong Keil C và cấu hình cho Keil C

Điều khiển Port 1 và Port 3

Nạp chương trình bằng Flash Magic

Yêu cầu:

Viết chương trình để nhấn nút 1 đèn thứ 1 sáng, nút 2 đèn thứ 2 sáng,…

2.1 Tạo project trên Keil C

Bước 1 : Kích hoạt Keil uVision3, cửa sổ Keil C hiện ra

Bước 2 : Chọn Project và chọn New uVision Project…

Trang 23

BKIT HARDWARE CLUB www.bkit4u.com 23

Bước 3 : Chọn đường dẫn và gõ tên project và khung File name, chọn Save, khung cửa số sau đây xuất hiện

Trang 24

Bước 4 : Chọn chip tương ứng với board của bạn, trong board của chúng tôi sử

dụng 89V51RB2 Browse tới NXP, và chọn P89V51RB2

Trang 25

BKIT HARDWARE CLUB www.bkit4u.com 25

Bước 5 : Sau khi nhấn OK, màn hình sau sẽ xuất hiện, bạn chọn No

Bước 6 : Project được tạo ra như sau:

Trang 26

Bước 7 : Cấu hình để tạo ra file Hex, bạn chọn menu Project, chọn Option for Target

Trang 27

BKIT HARDWARE CLUB www.bkit4u.com 27

Bước 8 : Màn hình sau xuất hiện

Trang 28

Bước 9 : Chọn tab Output, và click chọn Click Hex File

Bước 10 : Chép thư file REG51F.H (nếu cài mặc định sẽ nằm trong thư mục

C:\Keil\C51\INC\Philips hoặc bạn có thể copy trong CD đi kèm) là file define các thanh ghi của 89V51 vào cùng cấp với file project

Trang 29

BKIT HARDWARE CLUB www.bkit4u.com 29

Bước 11 : Bạn có thể chọn và nhấn Delete Source Group1 do Keil C tự tạo ra, và

tự tạo Group mới cho mình Chọn Target, click phải chuột và chọn New Group, 1 group mới được tạo ra, đổi tên thành Main cho gợi nhớ Trong tất cả các bài demo, group này sẽ chứa file main.c, là file chính để chạy chương trình

Trang 30

Bước 11 : Tạo mới 1 file bằng cách chọn menu File rồi chọn New Chọn tiếp menu File rồi chọn Save, khung cửa sổ sau sẽ hiện lên, bạn nhập tên file vào và nhấn Save

Bước 12 : Click phải vào group Main, và chọn Add Files to Group Main

Trang 31

BKIT HARDWARE CLUB www.bkit4u.com 31

Bước 13 : Chỉ đường dẫn đển file main.c mà bạn vừa tạo, nhấn Add rồi nhấn tiếp Close

Trang 32

Bước 14 : Click vào dấu + của Main, bạn sẽ thấy file main.c đã được thêm vào project

2.2 Viết chương trình đơn giản

Keil C hỗ trợ compiler của C chuẩn, nên cấu trúc chương trình của nó hoàn toàn giống C chuẩn Bạn có thể tìm hiểu thêm về lập trình C để nâng cao khả năng tổ chức 1 chương trình C Tuy nhiên, đi theo trình tự của các bài thí nghiệm này, bạn cũng có thể nắm được 1 cấu trúc của chương trình C chuẩn viết cho 89V51

Yêu cầu của bài thí nghiệm này là với nút 1 được nhất, thì đèn led 1 sáng, nút 2 được nhấn thì đèn 2 sáng,…

2.2.1 Kết nối phần cứng

Gạt switch 1 lên ON để kích hoạt Port 1

Gạt switch 2 lên ON để kích hoạt Port 3

Các nút nhấn được nối với P3 (Port 3) của vi điều khiển theo trình tự nút 1 nối với P3.0, nút 2 nối với P3.1, v.v… Các nút nhấn tích cực 0

Trang 33

BKIT HARDWARE CLUB www.bkit4u.com 33

Đây là kiểu kết nối phím đơn giản nhất, các giải pháp kết nối phím khác tốt hơn

sẽ được trình bày ở bài chống rung cho phím

Các đèn led được nối với P1 (Port 1) của vi điều khiển, đèn 1 nối với P1.0, đèn 2 nối với P1.1, v,v… Các đèn tích cực mức 1

2.2.2 Viết chương trình

Trong file main.c, bạn viết code như sau :

#include <REG51F.H>

void main() {

while(1) {

P1 = ~P3;

} }

Do P3 tích cực mức 0, nút 1 được nhấn giá trị của nó sẽ là 1111 1110 = 0xFE,

~P3 lúc đó sẽ là 0000 0001 = 0x01 P1 tích cực mức 1 nên P1 = 0x01 thì đèn 1 sẽ sáng

Chọn menu Project và chọn Build Target hoặc nhấn F7 để dịch chương trình Nếu

có lỗi, Keil C sẽ thông báo để bạn sửa, nếu không có lỗi file Hex sẽ được tạo ra cùng cấp với file project

Trang 34

2.2.3 Nạp chương trình

Bước 1 : Kết nối mạch nạp với board thông qua jack 4, với chân số 1 là VCC, chân 2 là GND, chân 3 là TX và chân 4 là RX

Bước 2 : Gắn nguồn cho kit thí nghiệm

Bước 3 : Khởi động Flash Magic

Bước 4 : Chọn menu ISP và chọn Erase Flash Pages để xoá code cũ trong 89V51RB2 Bạn cần phải làm bước này trước khi nạp chương trình cho các dòng 8051 không tự xoá Màn hình sau sẽ hiện lên :

Bạn dùng thêm tổ hợp phím Shift để có thể chọn được nhiều Pages, và nhấn Erase Khi màn hình sau hiện lên, bạn nhấn nút Reset trên board để tiếp tục (nên nhấn và giữ trong khoảng 2 giây)

Bước 5 : Khi cửa sổ sau hiện lên, nhấn OK để tiếp tục

Trang 35

BKIT HARDWARE CLUB www.bkit4u.com 35

Bước 6 : Nhấn Browse để chọn đường dẫn tới file Hex cần nạp rồi nhấn Start

Bước 7 : Khi thấy Status là Finished, bạn có thể nhấn nút Reset trên board để bắt đầu chạy chương trình của bạn

2.2.4 Các lỗi xảy ra khi nạp chương trình

Dưới đây là 1 số lỗi phổ biến khi nạp chương trình Kinh nghiệm để tìm lỗi là kiểm tra qua hết các lỗi thông dụng dưới đây hoặc dựa vào các thông báo lỗi để phán đoán

Chưa cấu hình Flash Magic

Trang 36

Để khắc phục lỗi này, bạn chọn vào menu Opition/ Advance Option , chọn qua tab Hardware Config và check chọn Assert DTR and RTS while COM Port open Nhấn

OK để đóng cửa số này lại

Chọn sai cổng COM

Chọn sai tốc độ Baud

Ở lỗi này, Flash Magic hiển thị thông báo yêu cầu bạn nhấn reset, nhưng khi nhấn reset thì thông báo trên xuất hiện, bạn chỉnh lại tốc độ Baud là 9600

Trang 37

BKIT HARDWARE CLUB www.bkit4u.com 37

Để khắc phục lỗi này, trước khi nạp bạn nhấn đè nút Reset, mọi thao tác vẫn diễn

ra bình thường cho đến khi cửa sổ yêu cầu bạn nhấn nút Reset, bạn giữa thêm vài giây rồi thả ra Cách thứ 2 là rút nguồn của board ra, cho đến khi Flash Magic yêu cầu bạn nhấn Reset thì cắm nguồn vào

Nếu như đã kiểm tra qua hết các lỗi kia mà chương trình vẫn chưa nạp được, thì nguyên nhân có thể là bạn cắm ngược chiều mạch nạp, phần mềm Flash Magic bị lỗi, IC MAX 232 bị hư hoặc hư vi điều khiển

Trang 38

Bài 3 : Điều khiển đơn giản Led 7 đoạn

Gạt switch 2 lên ON để kích hoạt Port 3 là các nút nhấn

Gạt switch 4 lên ON để kích hoạt Led 7 đoạn

Port 2 dùng để chọn led 7 đoạn nào sẽ được sáng và Port 0 là dữ liệu cho led 7 đoạn đó

Trang 39

BKIT HARDWARE CLUB www.bkit4u.com 39

Với kết nối phần cứng như vậy, để hiện thị số 5 thì dữ liệu xuất ra sẽ là 0x6D

(0110 1101) Tương tự, giá trị cho các số từ 0 đến 9 sẽ là :

unsigned char led7_data[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

3.2 Viết chương trình

3.2.1 Hàm init_main()

Do đăc điểm của phần cứng, trong hàm main, bạn phải dùng thêm hàm init_main,

để gán các Port 0,1,2 với giá trị 0x00

void init_main() {

Trang 40

//P0.4 : e P2.0 : Led 5 //P0.5 : f P2.0 : Led 6 //P0.6 : g P2.0 : Led 7 //P0.7 : dot P2.0 : Led 8 unsigned char led7_data[10] =

{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

init_main();

while(1) {

if((P3 & 0x01) == 0) // P3 = 1111 1110 {

P0 = led7_data[0];

P2 = 0x01;

} else if((P3 & 0x02) == 0)// P3 = 1111 1101 {

P0 = led7_data[1];

P2 = 0x02;

} else if((P3 & 0x04) == 0)// P3 = 1111 1011 {

P0 = led7_data[2];

P2 = 0x04;

} else if((P3 & 0x08) == 0) // P3 = 1111 0111 {

P0 = led7_data[3];

P2 = 0x08;

} else if((P3 & 0x10) == 0) // P3 = 1110 1111 {

P0 = led7_data[4];

P2 = 0x10;

} else if((P3 & 0x20) == 0) // P3 = 1101 1111 {

P0 = led7_data[5];

P2 = 0x20;

} else if((P3 & 0x40) == 0) // P3 = 1011 1111 {

Ngày đăng: 15/05/2014, 13:20

HÌNH ẢNH LIÊN QUAN

Hình  trên  minh  hoạ  mức điện áp của 1 phím nhấn tích cực  mức 0,  ở trạng thái  bình thường, điện áp vi điều khiển nhận vào là 5V còn khi nhấn là 0V - HƯỚNG DẪN SỬ DỤNG  KIT 8051
nh trên minh hoạ mức điện áp của 1 phím nhấn tích cực mức 0, ở trạng thái bình thường, điện áp vi điều khiển nhận vào là 5V còn khi nhấn là 0V (Trang 47)
Sơ đồ nguyên lý của phím trong kit này như sau : - HƯỚNG DẪN SỬ DỤNG  KIT 8051
Sơ đồ nguy ên lý của phím trong kit này như sau : (Trang 48)
Bảng mã make_code và break_code của các phím như sau: - HƯỚNG DẪN SỬ DỤNG  KIT 8051
Bảng m ã make_code và break_code của các phím như sau: (Trang 85)
Hình trên mô tả kết nối LCD với chế độ 16 chân, 2 chân K và A dùng để kết nối  với đèn nền - HƯỚNG DẪN SỬ DỤNG  KIT 8051
Hình tr ên mô tả kết nối LCD với chế độ 16 chân, 2 chân K và A dùng để kết nối với đèn nền (Trang 91)
Sơ đồ địa chỉ của RTC và các thanh ghi Ram của DS1307 như ở hình dưới. - HƯỚNG DẪN SỬ DỤNG  KIT 8051
a chỉ của RTC và các thanh ghi Ram của DS1307 như ở hình dưới (Trang 103)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w