LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051 - Pdf 33

BỘ CÔNG NGHIỆP
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
#"
Đồ Án Tốt nghiệp

Đề Tài:

LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051

Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
2
PHẦN I

TỔNG QUAN về ĐỀ TÀI

I. ĐẶT VẤN ĐỀ:
Ngày nay, những ứng dụng của Vi điều khiển đã đi sâu vào đời sống sinh hoạt và

9 Giới thiệu phần mềm Keil Software µViSion 2
9 Ứng dụng ngôn ngữ C và Assembly điều khiển lập trình led.
• Ứng dụng cho led đơn, led 7 đoạ
n, led ma trận…
9 Kết luận và hướng phát triển của đề tài.

Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
3PHẦN II
NỘI DUNG ĐỀ TÀI
CHƯƠNG 1:
GIỚI THIỆU BỘ VI ĐIỀU KHIỂN 89C2051 và 89C51

I.GIỚI THIỆU BỘ VI ĐIỀU KHIỂN 89C2051

I.1 CÁC ĐẶC ĐIỂM
9 Tương thích với các sản phẩm của họ MSC-51.
9 2K byte bộ nhớ Flash lập trình được.
9 Khả năng :1000 chu kì ghi/xóa.
9 Tầm điện áp hoạt động từ 2,7 V đến 6V
9 Tầm tần số hoạt động từ 0 Hz đến 21 MHz
9 2 mức khóa bộ nhớ chương trình (program memory).
9
RAM bên trong (internal RAM) có dung lượng 128 x 8 bit.
9 15 đường I/O lập trình được.
9 2 bộ định thời /đếm 16 bit.
9 6 nguồn (nguyên nhân ) ngắt.

Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
4
I.3 CẤU HÌNH CHÂN

Hình 1.1

I.4 SƠ ĐỒ KHỐI

Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
5
Hình 1.2

9 RAM ADDR. REGISTER: thanh ghi địa chỉ RAM .
9 RAM: vùng nhớ truy cập ngẫu nhiên (RAM).
9 FLASH: vùng nhớ FLASH.
9 B REGISTER:thanh ghi B.
9 ACC: thanh chứa.
9 STACK POINTER: con trỏ vùng nhớ xếp chồng.
9 PROGRAM ADDRESS REGISTER: thanh ghi địa chỉ chương trình.

chip precision analog comparator).
Các mạch đệm ngõ ra (output buffer) của port 1 có thể hút dòng 20mA và kích trực tiếp
các bộ hiện thị LED. Khi các logic 1 được ghi đến các chân của port 1, các chân này có thể được
sử dụng làm các ngõ vào. Khi các chân từ P1.2 đến P1.7 đượ
c sử dụng làm các ngõ vào và được
kéo xuống mức thấp từ bên ngoài, chúng sẽ cung cấp dòng (I
IL
) do các mạch kéo lên bên trong.
Port 1 cũng nhận dữ liệu chương trình hay dữ kiệu mã (code data) trong thời gian lập trình
và kiểm tra bộ nhớ Flash.
Port 3
Các chân của port 3 từ P3.0 đến P3.5, P3.7 là chân I/O hai chiều với các mạch kéo lên bên
trong. P3.6 được nối dây cứng làm ngõ vào nối đến ngõ ra của mạch so sánh trên chip và không
thể truy cập như một chân I/O có mục đích tổng quát. Các mạch đệm ngõ ra của port 3 có thể hút
dòng 20mA.Khi các logíc được ghi đến các chân của port 3, các chân này được kéo lên mức cao
bởi các mạch kéo lên bên trong và có thể đượ
c sử dụng làm các ngõ vào. Khi là các ngõ vào, các
chân nào của port 3 được kéo xuống mức thấp bởi mạch bên ngoài sẽ cung cấp dòng (I
IL
) do các
Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
6
mạch kéo lên. Các chân của port 3 còn được sử dụng cho các chức năng đặc biệt khác của
AT89C2051 như được liệt kê dưới đây ( bảng 11,1). Port 3 cũng nhận một số tín hiệu điều khiển
để lập trình và kiểm tra bộ nhớ Flash.

Bảng 1.1
RST
Ngõ vào reset (thiết lập lại trạng thái ban đầu). Tất cả các chân I/O được reset đến mức

10pF đối với các bộ
cộng hưởng gốm.
Hình 1.4: Cấu hình kích xung clock bên ngoài.
Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
7

I.7CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT SFR

Bảng 1.2 Các giá trị khi reset và bản đồ các SFR của AT89C2051
Một bản đồ vùng nhớ trên chip được gọi là không gian thanh ghi chức năng đặc biệt SFR
(special function registor) được trình bày ở bản trên đây (bảng 1.2). Lưu ý rằng không phải tất cả
địa chỉ đều bị chiếm bởi các thanh ghi này, các địa chỉ không bị chiếm có thể không được thực
hiện trên chip. Các truy cập đọc đến các địa ch
ỉ này trong trường hợp tổng quát, sẽ trả về dữ liệu
ngẫu nhiên và các truy cập ghi sẽ có tác động không rõ ràng.
Phần mêm của người sử dụng không nên ghi các logic 1 đến các vị trí nhớ không được liệt
kê vì chúng có thể được sử dụng trong các sản phẩm tương lai để đáp ứng các đặt tính mới.
Trong trường hợp đó, các giá trị do reset hoặc các giá trị không tích cực của các bit mới sẽ luôn
luôn bằng 0.
I.8 CÁC GIỚI H
ẠN TRÊN MỘT SỐ LỆNH

AT89C2051 là một thành viên tiết kiệm và có hiệu quả về giá thành của họ vi đièu khiển
đang phát triển của Atmel. Chip này chứa 2K bộ nhớ chương trình Flash. Chip này hoàn toàn
tương thích với kiến trúc MCS-51và có thể được lập trình bằng cấch sử dụng tập lệnh MCS-51.
tuy nhiên, có vài cân nhắc mà ta ohải chú ý khi sử dụng một số lập trình của chip này.

và việc thưc thi chương trình bên ngoài cũng không được hỗ trợ.
Như vậy không có lệnh MOVX [. . . ] nào chứa trong chương trình.
Một trình dịch hợp ngữ (assembler) điển hình c
ủa 89C51 vẫn dịch các lệnh này,ngay cả
khi chúng được viết dưới dạng vi phạm các giới hạn đã đề cập ở trên. Người sử dụng bộ vi điều
khiển phải có trách nhiệm phải biết các tính chất vật lý và giới hạn của linh kiện đang được sử
dụng và điều chỉnh các lệnh được sử dụng một cách thích hợp.
Các giới hạn trên đ
ây cho ta thấy các khuyết điểm của At89C2051.
I.9 CÁC BIT KHOÁ BỘ NHỚ CHƯƠNG TRÌNH

Với chip AT89C2051 ta có 2 bit khoá (lock bit), các bit này có thể để lại không lập trình
(U) hoặc có thể lập trình (P) đẻ nhận thêm được các tính chất được liệt kê ở bảng 11.3.

Các bit khoá chương trình
LB1 LB2
Loại bảo vệ
1 U U Không có tính chất khoá chương trình.
2 P U Việc lập trình thêm nữa cho bộ nhớ Flash bị cấm.
3 U U Tương tự chế độ 2, việc kiểm tra cũng bị cấm.

Lưu ý: các bit khoá chỉ có thể bị xoá bằng thao tác xoá chip
Bảng 1.3:Các chế độ bảo vệ của bit khoá.
I.10 CHẾ ĐỘ NGHỈ

Trong chế đọ nghỉ CPU sẽ tự ngủ, trong khi tất cả các ngoại vi khác trên chip điều hoạt
động và điều duy trì trạng thái ở chế độ tích cực. Chế đọ này được yêu cầu bởi phần mềm. Nội
dung của RAM trên chip và tất cả tren các thanh ghi chức nă
ng đặc biệt điều giữ nguyên không
thay đổi trong thời gian ở chế độ này. Chế độ nghỉ có thể được kết thúc bởi cách ngắt bất kì được

I.12 LẬP TRÌNH FLASH
AT89C2051 trên thị trường có dải nhớ chương trình PEROM trên chip la 2K byte ở
trạng thái đã được xóa (nghĩa là toàn bộ
nội dung của các byte là FFH) và sẳn sàng được lập
trình. Dải nhớ chương trình được lập trình một byte cho mỗi thời điểm. Một khi dãi này đã được
lập trình, để lập trình lại bất kì byte nào không trống, toàn bộ dải nhớ được xóa bằng điện.
Bộ điếm địa chỉ bên trong
AT89C2051 có một bộ đếm địa chỉ PEROM bên trong, bộ đếm này luôn luôn được thiết
lập là 00H ở c
ạnh lên của RST và được tăng lên bằng cách áp dụng xung đang trở thành mức
dương (positve going pluse) đến chân XTAL1.
Giải thuật chương trình
Để lập trình AT89C2051, theo trình tự sau đây.
1. Trình tự cấp điện:
Cấp điện giữa các chân V
CC
và GND
Thiêt lập RST và XTLA1 đến mức thấp (GND)
2. Thiết lâp RST lên mức cao (‘H’)
Thiết lập chân P3.2 lên mức cao (‘H’)
3. Áp dụng tổ hợp các mức logic ‘H’ và ‘L’ thích hợp đên các chân P3.3, P3.4, P3.5 và P3.7 để
chọn 1 trong các thao tác lập trình được trình bày trong bảng các chế độ lập trình PEROM
(PEROM proramming modes table).
Để lập trình và kiểm tra dải nhớ chương trình:
4. Đặt dữ liệu của byte chhương trình ( hay còn gọi là byte mã) ở vị trí 00h đến các chân từ P1.0
đến P1.7.
5. Tăng RST lên 12V để cho phép lập trình.
6. Đưa một xung đế
n chân P3.2 để lập trình một byte trong dải PEROM hoặc các bit khóa. Chu
kỳ ghi byte được tự định thời và điển hình chiếm 1.2ms.

Data
Polling có thể bắt đầu bất cứ lúc nào sau khki
một chu kỳ ghi được khởi động.
Ready/
Busy
: Tiến trình lập trình byte cũng có thể giám sát bằng tín hiệu ngõ ra RDY/
BSY
. Chân P3.1 được kéo xuống mức thấp sau khi chân P3.2 trở thành mức cao trong thời gian
lập trình sẽ chỉ ra trạng thái bận (BUSY).
Chân P3.1 được kéo lên mức cao lấn nữa khi việc lập trình kết thúc sẽ chhỉ ra trạng thái
sẳn sàng (READY).
Program verify ( kiểm tra chưong trình ): Nếu các bit khóa LB1 và LB2 đã không được
lập trình, dữ liệu chương trình có thể đọc ngược về thông qua các đường dữ liệu để kiểm tra:
1. Reset bộ đếm địa chỉ bên trong về 00H để
mang RST từ ‘L’ lên ‘H’.
2. Đặt các tín hiệu thích hợp để đọc dữ liệu chương trình và đọc dữ liệu ngõ ra ở các chân của
port 1.
3. Đưa một xung đến chân XTAL 1 để tăng bộ đếm địa chỉ bên trong.
4. Đọc byte dữ liệu kế tiếp ở các chân của port 1.
5. Lập lại các bước 3 và 4 cho đến khi toàn bộ dải nhớ chương trình được đọc.
Các bit khóa khong thể được kiểm tra trực tiếp. Việc kiểm tra các bit khóa s
ẽ nhận được bằng
cách tuân theo các tính chất được cho phép của chúng.
Chip erase (xóa chip): Toàn bộ dải PEROM (2K byte) và hai bit khóa đựơc xóa bằng
điện bằng sử dụng tổ hợp thích hợp các tín hiệu điều khiển và bằng cách giữ cho chân P3.2 ở
mức thấp trong 10ms. Dải nhớ chương trinhd được ghi với tất cả các bit điều là 1 trong thao tác
xóa chip va phải được thực hiện trước khi bất kỳ byte nhớ không trống nào có thể được l
ập trình
lại.
Reading the signature bytes (đọc các byte chữ ký ): Các byte chữ ký được đọc với cùng


I.14 CÁC ĐẶC ĐIỂM LẬP TRÌNH FLASH

hiệu
Thông số Min Max
Đơn
vị
V
PP
Điện áp cho phép lập trình. 11.5 12.5 V
I
PP
Dòng điện cho phép lập trình. 250 µA
t
DVGL
Thời gian từ lúc dữ liệu đến khi PROG ở mức thấp. 1.0 µs
t
GHDX
Thời gian giữ dữ liệu sau khi PROG tích cực. 1.0 µs
t
EHSH
Thời gian P3.4 ( NABLE ) từ ‘H’ lên V
PP
. 1.0 µs
t
SHGL
Thời gian từ lúc thiết lập V
PP
đến khi PROG ở mức thấp. 10 µs
t

0
C đến +125
0
C.
Tầm nhiệt độ tích trữ: từ -66
0
C đến +150
0
C.
Điện áp trên bất kì chân nào so với đất (GND): -1.0 V đến +7 V.
Điện áp cấp điện cực đại: 6.6 V.
Dòng DC ngõ ra: 25.0 mA. CÁC DẠNG SÓNG LẬP TRÌNH VÀ KIỂM TRA FLASH
Hình 1.5 Các dạng sóng lập trình và kiểm tra Flash. hiệu lực.
t
EHQZ

CC
= 5.0 ± 20%; điện dung tải = 80 pF.

hiệu
Thông số Dao động 12 MH
Z

Min Max
Dao động thay đổi
Min Max
Đơn
vị
Thời gian chu kỳ xung clock port
nối tiếp.
1.0 12t
CLCL
µs
Thời gian từ lúc thiết lập dữ liệu
xuất đến cạnh lên của xung clock
700 10t
CLCL

– 133
ns
Thời gian giữ dữ liệu xuất sau cạnh
lên của xung clock.
50 2t
CLCL

177

1/t
CLCL
Tần số dao động. 0 12 0 24 MH
Z

t
CLCL
Chu kỳ xung clock. 83.3 41.6 ns
t
CHCX
Thời gian mức cao. 30 15 ns
t
CLCX
Thời gian mức thấp. 30 15 ns
t
CLCH
Thời gian tăng (cạnh lên). 20 20 ns
t
CHCL
Thơi gian giảm (cạnh xuống). 20 20 ns
Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
14
CÁC DẠNG SÓNG ĐỊNH THỜI CHẾ ĐỘ THANH GHI DỊCH Hình 1.7 Dạng sóng định thời chế độ thanh ghi dịch.

Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
15
I
CC
Ở CHẾ ĐỘ TÍCH CỰC Hình 1.10: I
CC
ở chế độ tích cực.

I
CC
Ở CHẾ ĐỘ NGHỈ VÀ CHẾ ĐỘ GIẢM CÔNG SUẤT

Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
16

Packaging Information


Hãy nhớ rằng : trên các chân này chưa có điện trở kéo dương, do đó khi
cần chúng ta cần nhớ đến đặc điểm này.
• Port 1: port 1 là một port I/O trên các chân 1-8.
• Port 2: port 2 là một port công dụng kép trên các chân 21-28.
• Port 3: port 3 là mộ
t port công dụng kép trên các chân 10-17. Các
chân này đều có nhiều chức năng, các công dụng chuyển đổi có liên
hệ tới các đặc tính đặc biệt của 8051 ở bảng sau:

Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
18

 CÁC TÍN HIỆU ĐIỀU KHIỂN:
Chip AT89C51 có các tín hiệu điều khiển cần phải lưu ý như sau:
• Tín hiệu vào EA\ trên chân 31 thường đặt lên mức cao ( +5V) hoặc
mức thấp (GND)
Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong
khoảng địa chỉ thấp (4K hoặc tối đa 8k đối với 89C52).
Nếu ở mức thấp, chương trình được thi hành từ bộ nhớ m
ở rộng (tối
đa đến 64Kbyte).
Ngoài ra người ta còn dùng EA\ làm chân cấp điện áp 12V khi lập
trình EEPROM trong 8051.
• CHÂN PSEN (Program store enable):
PSEN là chân tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển cho
phép chương trình mở rộng, PSEN thường được nối đến chân OE\
(Output Enable) của một EPROM hoặc ROM để cho phép đọc các
bytes mã lệnh.
Hãy nhớ rằng : bình thường chân PSEN\ sẽ được thả trống ( No

Phần mềm Keil SoftWare 8051 công cụ phát triển được liệt kê ở dưới là những
chương trình mà để biên tập mã C, tập hợp những tập tin assembly, liên kết và định vị
những đoạn chương trình hướng đối tượng, những thư viện , khởi tạo file HEX, và trình
gỡ lỗi.

• µVision
®
là một môi trường phát triển tích hợp mà kết hợp quản lý project ,soạn
thảo mã nguồn và trình gỡ lỗi trong môi trường mạnh.
• Cx51
ANSI tối ưu bộ biên dịch C và tạo ra những đoạn chương trình hướng đối
tượng định vị lại từ mã nguồn C.
• Ax51
Macro Assembler tạo ra những đaọn chương trình hướng đối tượng định vị
lại 8051 mã nguồn assembly.
• BL51
bộ kết nối / dò tìm định vị lại những đoạn chương trình hướng đối tượng
được tạo ra từ C51 và A51 vào những đoạn chương rình hướng đối tượng tuyệt
đối.
• LX51
mở rộng bộ kết nối / bộ dò tìm hộ trợ những phương án thiết bị mở rộng và
cung cấp nhựng đặc tính bổ sung.LX51 hỗ trợ tất cả các phương án của Cx51 và
Ax51.
• LIBx51
trình quản lý thư viện kết hợp những đoạn chương trình hướng đối tượng
vào trong những thư viện mà có thể được sử dụng bởi bộ kết nối.
• OHx51
bộ biến đổi sang file HEX . tạo ra những file HEX từ những đoạn
chương trình hướng đối tượng tuyệt đối.
• RTX51 Tiny

cũng giống như chu trình phát triển bao phần mểm khác.
1. Khởi tạo project , lựa chọn chip từ cơ sở dữ liệu thiết bị , thiết đặt những công cụ
định hình.
2. Tạo ra những tập tin nguồn C hoặc assembly.
3. Xây dựng những ứng dụng với Project Manager.
4. Kiểm tra lỗi tập tin nguồ
n.
5. Kiểm tra những ứng dụng được liên kết.

Sơ đồ khối sau đây minh họa chu trình phát triển phần mểm µVision/ARM đầy
đủ .Mỗi phần được mô tả ở bên dưới.
II.2 µVision IDE

µVision IDE kết hợp quản lý dự án , trình biên tập với sự sửa chữa lỗi, cài đặt tùy
chọn, phương tiện, và giúp đỡ trực tuyến. Sử dụng µVision để tạo ra những tập tin nguồn
và tổ chức chúng vào trong những dự án ứng dụng. µVision IDE tự dộng biên tập, lắp
ráp, và liên kết những ứng dụng nhúng.

C51 Compiler & A51 Macro Assembler (Trình biên tập C51 và trình hợp ngữ A51 )

Những tập tin nguồn đượ
c tạo ra bởi µVision IDE và được đưa qua C51 hoặc
A51.Trình biên tập và trình lắp ráp xử lý những tập tin nguồn và tạo ra những tập tin đối
tượng định vị lại được.
Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
21

ối lý tưởng phù hợp và
tin cậy.Trình gỡ lỗi bao gồm một simulator high-speed để chúng ta mô phỏng 8051.
Những thuộc tính của chip mà chúng` ta sử dụng thì tự động định hình khi chúng ta lụa
chọn từ Device Database. Trình sửa lỗi cung cấp vài phương pháp để cho chúng ta kiểm
tra các thiết bị phần cứng
• Thiết đặt MON51 trên hệ thống và tải chương trình của bạn sử dụng giao diện
Monitor-51 tớ
i trình gỡ lỗi.
• Sử dụng giao diện GDI để kèm theo trình gỡ lỗi tới hệ thống

Bản dưới đây liệt kê những thư mục công cụ phát triển phần mềm Keil . Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
22Assembler Source Template and Include files for the Macro Assembler.( file nguồn
assembly và những file cho trình dịch Macro Assembler)
Executable files of the µVision/C51 tool chain.( những tập tin chạy của µVision/C51)
Example programs ( những chương trình ví dụ)
Configuration files for Flash Monitor and pre-configured versions.( Cấu hình cho
Flash Monitor và những phiên bản định hình
On-Line documentation for µVision/C51.(tài liệu trực tuyến cho µVision/C51)
Include files for the C compiler.(những tập tin cho trình biên tập C)
Files for ISD51 In-System Debugger and pre-configured versions.(những file hỗ trợ
ISD51 trình gỡ lỗi
Run-time libraries and CPU startup files.(thư viện và CPU khởi động sắp xếp nhưng
file)

Đồ Án Tốt Nghiệp
SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K Trang
23
II.3 GIAO DIỆN NGƯỜI DÙNG
II.4 Create a Procject (Tạo một Procject )µVision là một ứng dụng Windows và chương trình được kích hoạt khi click lên
biểu tượng (icon)

Create a Project File (tạo ra một dự án)

Để tạo một hồ sơ mới ta lựa chọn từ µVision menu Project – New Project…một
hội thoại Windows hiện ra và hỏi bạn đặt tên cho cho Project mới vừa khởi tạo.Chúng
gợi ý rằng ta nên sử dụng một Folder riêng cho mỗi Project.Đơn giản hơn để tạo một
Project mới chọn bi
ểu tượng để tạo ra một Procject mới . µVision tạo ra một Procject
mới với tên PROCJECT1.UV2 chứa đựng một tên nhóm và hồ sơ mặc định. Ta có thể
thấy tên này trong Project Workspace – Files .
Khi ta tạo ra một Procject mới uVision hỏi ta lựa chọn CPU cho Procject .hộp thoại
lựa chọn thiết bị xuất hiện cho ta thấy cơ sở dữ liệu thiết bị uVision , chỉ cần lụa chọn bộ

một cửa sổ biên tập, nơi mà ta có thể biên soạn mã nguồn. uVision những cú pháp màu
khi ta lưu file với hộp thoại (File –Save As…) dưới tên *.C. Ví dụ chúng ta lưu dưới tên
Main.C
Khi ta đã tạo tập tin nguồn , ta có thể thêm file tới Procject . Những đề xuất
uVision vài cách để thêm tập tin nguồnvào một Procject. Ví dụ như ta có thể
lựa chọn
nhóm Procject Workspace-Files và click chuột phải để mở menu. Tùy chọn Add files
được mở ra. Chọn file MAIN.C mà ta đã tạo ra.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status