Đồ án tốt nghiệp công nghệ điện tử lập trình c cho họ vi điều khiển 8051 - Pdf 62

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

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à
sản xuất c ủa con người. Thực tế hiện nay là hầ u hết các thiết bị điện dân dụng hi ện nay
đều có sự góp mặt của Vi Điều Khiển và vi xử lí . Ứng dụng vi điều khiển trong thiết kế
hệ thống làm giả m chi phí thiết kế và hạ giá thành sản phẩm đồng thời nâng cao tính ổn
định của thiết bị và hệ thống.Trên thị trường có rấ t nhiều họ vi điều khiển: họ 8051 của
Intel, 68HC11 của Motorola, Z80 của hãng Zilog, PIC của hãng Microchip, H8 của
Hitachi,vv…
Vi ệc phát triển ứng dụng các hệ vi xử lý đòi hỏi những hiểu biết cả về ph ần cứng
cũng như phần mềm, nhưng cũng chính vì vậy mà các hệ vi xử lý được sử dụng để giải
quyết những bài toán rất khác nhau. Tính đa dạng của các ứng dụng phụ thuộc vào việc
lựa chọn các hệ vi xử lý cụ thể cũng như vào kỹ thuật lập trình.
Ngày nay các bộ vi xử lý có mặt trong rất nhiều thiết bị điện tử hiện đại: từ đầu
đĩa CD, máy thu hình, máy ghi hình, dàn âm thanh HiFi, bộ điều khiển lò sưởi cho đến
các thiết bị điều khiển dùng trong công nghiệp. Lĩnh vực ứng dụng của các hệ vi xử lý


9
9
9
9
9
9
9
9
9
9
9
9
9
9

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


I.4 SƠ ĐỒ KHỐI

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 4


Đồ Án Tốt Nghiệp
Hình 1.2
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#


I.5 MÔ TẢ CHÂN
VCC
Chân cấp điện áp Vcc cho chip.
GND
Chân nối đất.
Port 1
Port 1 là port I/O (port nhập/xuất: input/output port) hai chiều 8-bit. Các chân củ a port
từ P1.2 đến P1.7 cung cấp các mạch kéo lên bên trong (internal pull-ups). Các chân P1.0 và
P1.1 yêu cầu các mạ ch kéo lên bên ngoài . P1.0 và P1.1 cũng còn được sử dụng làm ngõ
vào dương (AIN0) và ngõ vào âm (ÁIN), theo thứ tự, của mạch so sánh tương tự chính xác
trên chip (on – 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 (IIL) 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

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 5


cộng hưởng gốm.

Hình 1.4: Cấu hình kích xung clock bên ngoài.

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 6


Đồ Án Tốt Nghiệp
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.
Tất cả các lệnh liên quan đến các hoạt động nhảy và r ẽ nhánh s ẽ bị giới hạn, chẳn hạn như
địa chỉ đíh rơ i vào trong không gian nhớ của chip, không gian này là 2K byte với
AT89C2051. Vấn đề này là trách nhiệm của nguowif lập trình phần mềm.

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
1
U
U
2
P
U
3
U
U

Loại bảo vệ
Không có tính chất khoá chương trình.
Việc lập trình thêm nữa cho bộ nhớ Flash bị cấm.
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 phép hoăc bằng cách reset phần cứng.

để 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 VCC 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.
7. Để kiểm tra dữ liệu đã lập trình, giảm thấp RST từ 12V xuống mức logic cao ‘H’ và thiết
lập các chân từ P3.3 đến P3.7 đến các mức logic thích hợp. Dữ liệu xuất có thể được đọc ở
các chân của port 1.
8. Để lập trình một byte ở vị trí địa chỉ kế tiếp, đưa một xung đến XTAL1 để tăng bộ đếm
địa chỉ bên trong (internal address counter). đặt dữ liệu mới đến các chân của port 1.
9. Lập lại các bước từ 6 đến 8, thay đổi dữ liệu và tăng bộ đếm địa chỉ cho toàn bộ dải byte
hoăc cho đến khi kết thúc tập tin đối tượng (object file).
10.Trình tự ngắt nguồn điện.
Thiết lập XTLA1 đến mức thấp (‘L’)

đ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 thủ tục như viêc kiểm tra bình thường các vị trí nhớ 000H, 001H, 002H, ngoại trừ các
chân P3.3 và chân P3.5 phải được kéo xuống mức logic thấp. Các giá trị được trả về như sau:
(000H) = 1EH chỉ ra được sản xuất bởi Atmel.
(001H) = 21H chỉ ra 89C2051.
I.13CÁC CHẾ ĐỘ LẬP TRÌNH FLASH
Các chế độ lập trình Flash được tóm tắt ở bảng 1.4.

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 10


Đồ Án Tốt Nghiệp
Lưu ý: 1. Bộ đếm địa chỉ PEROM bên trong được reset về 000H ở cạnh lên của RST và
được tăng bởi xung dương ở chân XTAL 1.
2. việc xóa chip yêu cầu xung PROG kéo dài 10ms.
3. Chân P3.1 được kéo xuống mức thấp trong thời gian lập trình để chỉ ra RDY/BSY
Write code data: ghi dữ liệu chương trình.
Read code data: đọc dữ liệu chương trình.
Write lock : ghi các bit khóa.
Chip erase : xóa chip.
Read signature byte : đọc byte chữ ký

SEE FLASH PROGRAMMING MODE TABLE:xem bảng chế độ lập trình Flash.
PGM DATA: dữ liệu chương trình.

Min

Max

11.5

12.5
250

1.0
1.0
1.0
10
10
1

110
1.0

Đơn
vị
V
µA
µs
µs
µs
µs
µs
µs
µs

ms
µs
ns

Bảng 11.5 Các đặt điểm lập trình và kiểm tra Flash.
TA = 0 C đến 70 C, VCC = 5.0 ± 10%.
Chỉ sử dụng ở chế độ lập trình 12 V.
0

0

I.15 CÁC ƯỚC LƯỢNG CỰC ĐẠI TUYỆT ĐỐI
0
0
Tầm nhiệt độ hoạt động:
từ -55 C đến +125 C.
0
0
Tầm nhiệt độ tích trữ:
từ -66 C đến +150 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.


12
83.3
30
30
20
20

Đơn vị

VCC=4.0V đến 6.0V
Min
Max
0
24
41.6
15
15
20
20

MHZ

ns
ns
ns
ns
ns

Bảng 1.5 Các thông số của mạch kích xung clock bên ngoài.
ĐỊNH THỜI PORT NỐI TIẾP: ĐIỀU KIỆN KIỂM TRA CHẾ ĐỘ THANH GHI DỊCH


Đơn
vị
µs

10tCLCL
– 133
2tCLCL –
177
0

ns

700

ns
ns
10tCLCL
– 133

Bảng 1.6 Các điều kiện kiểm tra chế độ định thời thanh ghi dịch

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 13

ns


Đồ Án Tốt Nghiệp

Hình 1.10: ICC ở chế độ tích cực.
ICC Ở CHẾ ĐỘ NGHỈ VÀ CHẾ ĐỘ GIẢM CÔNG SUẤT

Hình 1.11: (a) ICC ở chế độ nghỉ ,(b) ICC ở chế độ giảm công suất.

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 15


Đồ Án Tốt Nghiệp
Packaging Information

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 16


Đồ Án Tốt Nghiệp

II.Giới thiệu về Vi Điều Khiển AT89C51
™ MSC51 là một họ Vi Điều Khiển (Microcontroller) do hãng Intel sản
xuất.Các IC của họ MSC51 tiêu biểu là 8051 và 8031. Đặc biệt, vi điều
khiển 89C51 sản xuất gần đây mang các đặc điểm sau:
9 4Kbytes EEPROM.
9 128 bytes RAM.
9 4 Port I/O (Input/Output).
9 2 bộ định thời Timer 16 bits.
9 Giao tiếp nối tiếp.
9 64Kbytes không gian bộ nhớ chương trình mở rộng.

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
Connect).Chỉ khi nào cho EA\ ở mức thấp thì lúc đó:
PSEN\ sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của
chương trình được lấy từ EPROM qua bus dữ liệu và được chốt vào
thanh ghi lệnh của 8951 để giải mã lệnh.
PSEN\ ở mức thụ động (mức cao) nếu thi hành chương trình trong
ROM nội của 8951.
™ CÁC CHÂN NGUỒN:
AT8951 hoạt động ở nguồn đơn +5V.Vcc được nối vào chân 40, và Vss
(GND) được nối vào chân 20.

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 18


Đồ Án Tốt Nghiệp

Chương 2: Giới thiệu chung về phần mềm Keil Software
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.

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 19


Đồ Án Tốt Nghiệp

II.1 CHU TRÌNH PHÁT TRIỂN PHẦN MỀM
Khi chúng ta sử dụng phần mềm Keil µVision , chu trình phát triển phần mềm
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.

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

• 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 .

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 21


Đồ Án Tốt Nghiệp
Assembler 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)
Configuration files for Monitor-51 (for Classic 8051 Devices).(cấu hình cho Monitor51)
Configuration files for Monitor-390 (for Dallas Contiguous Mode) .(cấu hình cho
monitor-390)
RTX51 Tiny Version 2 Real-Time Operation System.(hệ thống bộ định thời)

Thư mục µVision



Chú ý:
• Ta có thể lựa chọn Bộ kết nối mở rộng (LX51) và trình Assembler mở rộng
(AX51) trong hộp thoại.Linker và Assembler mở rộng sẵn sàng trong the Keil
Professional Developer's Kit và đưa cho chúng ta những đặc tính bổ sung .
• Khi ta tạo ra một Procject mới , uVision có thể tự động thêm mã khởi động CPU
• Trên một vài thiết bị , môi trường uVision cần những tham số bổ sung mà ta phải
thiết lập.Đọc những thông tin này một cách cẩn thận được cung cấp dưới sụ mô tả
của hộp thoại này, từ đó có thể có những chỉ dẫn bổ sung cho cấu hình thiết bị.

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 24


Đồ Án Tốt Nghiệp

Ta có thể tạo ra một t ập tin nguồn mới với menu option File – New. Điều này mở
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.

SVTH:Lê Văn Long & Đặng Đức Trung CDDT6K

Trang 25


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