You are on page 1of 14

LỜI MỠ ĐẦU

Với sự phát triển không ngừng của khoa học kỹ thuật ngày nay đòi
hỏi có 1 thiết bị giúp con người giải quyết công việc 1 cách tự
động. Một vi điều khiển duy nhất có thể là đủ để điều khiển một
robot di động nhỏ, một máy giặt tự động. Ngày nay, vi điều khiển
rất rẻ và dễ dàng có sẵn mà người ta thường sử dụng chúng thay vì
các mạch logic đơn giản như cho mục đích đạt được một số thiết
kế linh hoạt

Bài tiểu luận chia làm 3 PHẦN


Phần 1: giới thiệu chung về vi điều khiển 8051

Phần 2: sơ lược về cấu trúc của 8051

Phần 3: giới thiệu về vi điều khiển 8052


PHẦN 1: GIỚI THIỆU CHUNG VỀ HỌ VI ĐIỀU KHIỂN 8051

Vào năm 1971 tập đoàn Intel đã giới thiệu 8080, bộ vi xử lí thành
công đầu tiên, tiếp đó không lâu Motorola, RCA, MOS
Technology và Zilog cũng đã giới thiệu các bộ vi xử lí tương tự :
6800, 1801, 6502 và Z80. Bản thân các vi mạch này tuy không có
nhiều hiệu quả sử dụng nhưng khi là một phần của một máy tính
đơn board (Single Board Computer), chúng trở thành thành phần
trung tâm trong các sản phẩm có ích dùng để nghiên cứu và thiết
kế.

Năm 1976 Intel giới thiệu bộ vi điều khiển( Micro Controller)


8748, một chip tương tự như các bộ vi xử lí và là chip đầu tiên
trong họ vi điều khiển MCS-48. 8748 là một vi mạch chứa trên
17000 transistor bao gồm một CPU, 1K byte EPROM, 64 byte
RAM, 27 chân xuất nhập và một bộ định thời 8 bit. Sự ra đời của
IC này và các IC khác, của họ MCS-48 đã nhanh chóng trở thành
chuẩn công nghiệp trong các ứng dụng hướng điều khiển (Control
Oriented Application).

Độ phức tạp, kích thước và khả năng của bộ vi điều khiển được
tăng thêm môt bậc quan trọng vào năm 1980 khi Intel công bố chip
8051, bộ vi điều khiển đầu tiên của họ vi điều khiển MCS-51. So
với 8048, chip 8051 chứa trên 60000 transistor bao gồm 4K byte
ROM, 128 byte RAM, 32 đường xuất nhập, 1 port nối tiếp và 2 bộ
định thời 16 bit.
PHẦN 2: SƠ LƯỢC VỀ CẤU TRÚC VI ĐIỀU KHIỂN 8051

8052 là một phiên bản của họ 8051. 8052 có tất cả các thông số kỷ
thuật của 8051, ngoài ra còn có thêm 128 byte RAM, 4KB ROM
và một bộ định thời nữa. Như vậy, 8052 có tổng cộng 256 byte
RAM, 8KB ROM và ba bộ định thời

1. Tổ chức bộ nhớ

Các vi điều khiển thuộc họ 8051 đều tổ chức thành 2 không gian
chương trình và dữ liệu. Kiến trúc vi xử lý 8 bit của 8051 này cho
phép truy nhập và tính toán nhanh hơn đối với không gian dữ liệu
nhờ việc phân chia 2 không gian bộ nhớ chương trình và dữ liệu
như trên. Tuy nhiên bộ nhớ ngoài được truy nhập bởi hệ thống 16
bit địa chỉ vẫn có thể thực hiện nhờ thanh ghi con trỏ.

Bộ nhớ chương trình (ROM, EPROM) là bộ nhớ chỉ đọc, có thể


mở rộng tối đa 64Kbyte.

Cấu trúc vi điều khiển 89C51

Bộ nhớ dữ liệu (RAM) tồn tại độc lập so với bộ nhớ chương
trình. Họ vi điều khiển 8051 có bộ nhớ dữ liệu tích hợp trên chip
nhỏ nhất là 128byte và có thể mở rộng với bộ nhớ dữ liệu ngoài lên
tới 64kByte. Với những vi điều khiển không tích hợp ROM trên
chip thì vẫn có RAM trên chip là 128byte. Khi sử dụng RAM
ngoài, CPU đọc và ghi dữ liệu nhờ tín hiệu trên các chân RD và
WR. Khi sử dụng cả bộ nhớ chương trình và bộ nhớ dữ liệu bên
ngoài thì buộc phải kết hợp chân RD và PSEN bởi cổng logic
AND để phân biệt tín hiệu truy xuất dữ liệu trên ROM hay RAM
ngoài.

Bộ nhớ chương trình:

H ình 1: Cấu trúc bộ nhớ chương trình

H ình 2: Địa chỉ các ngắt trên bộ nhớ chương trình

Hình 1 mô tả cấu trúc bộ nhớ chương trình. Sau khi khởi động,
CPU bắt đầu thực hiện chương trình ở vị trí 0000H. Hình 2 mô tả
địa chỉ ngắt mặc định trên bộ nhớ chương trình. Mối khi xảy ra
ngắt, con trỏ của CPU sẽ nhảy đến đúng địa chỉ ngắt tương ứng và
thực thi chương trình tại đó. Ví dụ ngắt ngoài 0 sẽ có địa chỉ là
0003H, khi xảy ra ngắt ngoài 0 thì con trỏ chương trình sẽ nhảy
đến đúng địa chỉ 0003H để thực thi chương trình tại đó. Nếu trong
chương trình ứng dụng không xử dụng đến ngắt ngoài 0 thì địa chỉ
0003H vẫn có thể dùng cho mục đích khác (sử dụng cho bộ nhớ
chương trình). Bởi vậy khi lập trình bằng ngôn ngữ Assembly,
phần đầu chương trình bao giờ cũng phải cho chương trình nhảy
đến địa chỉ cao hơn địa chỉ chứa các ngắt và mã lệnh viết cho các
ngắt thì phải viết đúng địa chỉ của các ngắt tương ứng.

Bộ nhớ dữ liệu:

Cấu trúc bộ nhớ dữ liệu

Cấu trúc bộ nhớ dữ liệu trong và bộ nhớ dữ liệu ngoài của họ vi


điều khiển 8051. CPU sẽ dùng đến các chân RD và WR khi truy
cập đến bộ nhớ dữ liệu ngoài.

Cấu trúc bộ nhớ dữ liệu trong chip, được chia thành 3 khối là 128
byte thấp, 128 byte cao và 128 byte đặc biệt.
Hình 3 Cấu trúc bộ nhớ trong

Hình 3 mô tả cấu trúc 128 byte thấp của bộ nhớ dữ liệu của họ
vi điều khiển 8051. 32 byte đầu tiên (00H-1FH) được sử dụng cho
4 bộ 8 thanh ghi R0-R7. Hai bit của thanh ghi đặc biệt PSW sẽ lựa
chọn 1 trong 4 bộ thanh ghi mà vi điều khiển sẽ dùng trong khi
thực thi chương trình.

Cấu trúc 128 byte thấp của bộ nhớ dữ liệu trong

8051 chứa 210 vị trí bit được định địa chỉ trong đó 128 bit chứa
trong các byte ở địa chỉ từ 20H đến 2FH (16 byte x 8 bit = 128 bit)
và phần còn lại chứa trong các thanh ghi đặc biệt. Ngoài ra 8051
còn có các port xuất/nhập có thể định địa chỉ từng bit, điều này
làm đơn giản việc giao tiếp bằng phần mềm với các thiết bị
xuất/nhập đơn bit.

Vùng RAM đa mục đích có 80 byte đặt ở địa chỉ từ 30H đến
7FH, bên dưới vùng này từ địa chỉ 00H đến 2FH là vùng nhớ có
thể được sử dụng tương tự. Bất kỳ vị trí nhớ nào trong vùng RAM
đa mục đích đều có thể được truy xuất tự do bằng cách sử dụng các
kiểu định địa chỉ trực tiếp hoặc gián tiếp.
Bất kỳ vị trí nhớ nào trong vùng RAM đa mục đích đều có thể
được truy xuất tự do bằng cách sử dụng các kiểu định địa chỉ trực
tiếp hoặc gián tiếp.

Cũng như các thanh ghi từ R0 đến R7, ta có 21 thanh ghi chức
năng đặc biệt SFR chiếm phần trên của Ram nội từ địa chỉ 80H
đến FFH

PHẦN 3: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 8052

8052 là một phiên bản của họ 8051. 8052 có tất cả các thông số kỷ
thuật của 8051, ngoài ra còn có thêm 128 byte RAM, 4KB ROM
và một bộ định thời nữa. Như vậy, 8052 có tổng cộng 256 byte
RAM, 8KB ROM và ba bộ định thời.

256 BYTES CỦA RAM NỘI

Các tiêu chuẩn 8.051 vi điều khiển chứa 128 bytes of Internal
RAM có sẵn cho nhà phát triển như là bộ nhớ làm việc cho các
biến và / hoặc cho các hoạt động ngăn xếp. Hướng dẫn tham khảo
các địa chỉ trong khoảng 00h qua 7Fh tham khảo nội bộ của 8.051
RAM, trong khi các địa chỉ trong khoảng 80h qua FFh tham khảo
đặc biệt chức năng ghi (SFRs).

Mặc dù có 8052 256 bytes of Internal RAM, phương pháp nêu


trên của referrencing họ vẫn còn đúng sự thật. Bất kỳ địa chỉ giữa
00h và 7Fh đề cập đến nội bộ nhớ RAM trong khi đó địa chỉ trong
khoảng 80h qua FFh tham khảo SFRs.

Của 8.052 bổ sung nội RAM chỉ có thể được gọi bằng cách gián
tiếp. Gián tiếp giải quyết luôn luôn đề cập đến nội bộ nhớ RAM,
không bao giờ để SFR một.
Vì vậy, để đọc giá trị chứa trong nội địa chỉ 90h RAM, nhà phát
triển sẽ cần phải code một cái gì đó dọc theo dòng của những điều
sau đây:

MOV R0, # 90h; Thiết lập địa chỉ gián tiếp đến 90h MOV A, @
R0; Đọc nội dung của RAM nội trỏ đến bởi R0

Đoạn mã trên đầu tiên giao 90h giá trị cho R0 đăng ký. Nó sau đó
đọc, gián tiếp, các nội dung của địa chỉ chứa trong R0 (90h). Như
vậy, sau khi hai hướng dẫn có thực hiện, các ắc sẽ chứa giá trị của
nội địa chỉ 90h RAM.

Điều rất quan trọng để hiểu rằng mã ở trên là không giống như
sau:

MOV A, 90h; Đọc nội dung của SFR 90h (P1)

hướng dẫn này sử dụng trực tiếp giải quyết; nhớ lại rằng trực tiếp
giải quyết RAM khi đọc nội địa chỉ được trong khoảng 00h qua
7Fh, và đọc một SFR khi địa chỉ được trong khoảng 80h đến FFh.
Vì vậy trong trường hợp ví dụ này, thứ hai, đọc hướng dẫn di
chuyển giá trị của SFR 90h-đó sẽ xảy ra là P1 (I / O Port 1).

NEW SFRs CHO BA hẹn giờ'S 8.052

Ngoài 8.051 của tiểu chuẩn 21 SFRs, việc bổ sung thêm 8.052 một
SFRs thêm 5 liên quan đến 8.052 giờ thứ ba này. Tất cả các SFRs
ban đầu 8.051 chức năng chính xác như chúng làm trong 8.051,
8.052 chỉ cần thêm các SFRs mới, nó không thay đổi định nghĩa
của các SFRs tiêu chuẩn.

Năm SFRs mới trong khoảng C8h để CDh (SFR C9h không được
định nghĩa).
T2CON SFR

Các hoạt động của Timer 2 (T2) được kiểm soát gần như hoàn
toàn bởi các SFR T2CON, tại địa chỉ C8H. Lưu ý rằng kể từ khi
SFR này là chia hết cho rằng đó là 8-bit địa chỉ.

BIT
ĐỊA
BIT NAME CHỈ MÔ TẢ
Timer 2 tràn. bit này được thiết lập khi T2
tràn. Khi T2 ngắt được kích hoạt, bit này sẽ
7 TF2 CFH gây ra những gián đoạn để được kích hoạt. bit
này sẽ không được thiết lập nếu một trong hai
TCLK hoặc RCLK bit được thiết lập.
Timer 2 ngoài Cờ. Do tải lại một hoặc chụp
gây ra bởi một sự chuyển tiếp 1-0 ngày T2EX
6 EXF2 CEH (P1.1), nhưng chỉ khi EXEN2 được thiết lập.
Khi T2 ngắt được kích hoạt, bit này sẽ gây ra
những gián đoạn để được kích hoạt.
Nhận Đồng hồ hẹn giờ 2. Khi bit này được
thiết lập, Timer 2 sẽ được sử dụng để xác định
5 RCLK CDH
các cổng nối tiếp nhận được tốc độ truyền.
Khi rõ ràng, Timer 1 sẽ được sử dụng.
Nhận Đồng hồ hẹn giờ 2. Khi bit này được
thiết lập, Timer 2 sẽ được sử dụng để xác định
4 TCLK CCH
các cổng nối tiếp truyền tốc độ baud. Khi rõ
ràng, Timer 1 sẽ được sử dụng.
Kích hoạt tính năng hẹn giờ 2 ngoài. Khi
được thiết lập, một sự chuyển tiếp 1-0 ngày
3 EXEN2 CBH
T2EX (P1.1) sẽ gây ra ảnh chụp hoặc nạp lại
xảy ra.
Timer 2 Run. Khi được thiết lập, hẹn giờ 2 sẽ
2 TR2 CAH
được bật. Nếu không, nó bị tắt.
Timer 2 Lượt truy cập / Interval Timer. Nếu
rõ ràng, Timer 2 là một khoảng thời gian truy
1 C/T2 C9H
cập. Nếu thiết lập, Timer 2 là tăng thêm 1-0
chuyển về T2 (P1.0).
Timer 2 Capture / Reload. Nếu rõ ràng, tự
động tải lại xảy ra vào giờ 2 tràn, hoặc T2EX
1-0 nếu EXEN2 chuyển tiếp được thiết lập.
0 CP/RL2 C8H
Nếu đặt, ảnh chụp sẽ xảy ra trên một sự
chuyển tiếp 1-0 của T2EX nếu EXEN2 được
thiết lập.

Thơi gian 2 AS A-RATE máy phát điện baud


Thơi gian 2 tháng 5 được sử dụng như một máy phát điện tốc độ
truyền. Điều này được thực hiện bằng cách thiết lập hoặc RCLK
(T2CON.5) hoặc TCLK (T2CON.4).

Với tiêu chuẩn 8.051 Time 1 là hẹn giờ chỉ có thể được sử dụng
để xác định tốc độ truyền của cổng nối tiếp. Ngoài ra, tiếp nhận và
truyền tải tốc độ truyền phải được giống nhau.

Với 8.052, tuy nhiên, người sử dụng có thể cấu hình các cổng nối
tiếp để nhận được ở một tốc độ truyền và truyền với nhau. Ví dụ,
nếu RCLK được thiết lập và TCLK được xóa bỏ, dữ liệu nối tiếp
sẽ được nhận tại tốc độ truyền xác định bởi Timer 2 trong khi tốc
độ truyền dữ liệu truyền đi sẽ được xác định bởi Timer 1.

Xác định các giá trị tự động tải lại-một tốc độ truyền cụ thể được
thảo luận trong Serial Port hoạt động; sự khác biệt duy nhất là
trong trường hợp của 2 Thơi gian, các giá trị tự động tải lại, được
đặt trong RCAP2H và RCAP2L, và giá trị là 16-bit giá trị hơn là
một giá trị 8-bit.

Chú ý: Khi Timer 2 được sử dụng như một máy phát điện tốc độ
truyền (hoặc TCLK hoặc RCLK được thiết lập), các Timer 2 tràn
Cờ (tF2) sẽ không được thiết lập.

Thời gian 2 trong tải lại-AUTO MODE

Chế độ đầu tiên trong đó Timer 02 Tháng 5 được sử dụng là Auto-


Reload. Các chế độ tự động tải lại các chức năng giống như Timer
0 và Timer 1 ở chế độ tự động tải lại, ngoại trừ 2 Timer tự động
thực hiện một chế độ relaod tải lại 16-bit đầy đủ (nhớ lại rằng
Timer 0 và Timer 1 chỉ có bit tải lại các giá trị-8 ). Khi tải lại xảy
ra, giá trị của TH2 sẽ được nạp lại với các giá trị chứa trong
RCAP2H và giá trị của TL2 sẽ được nạp lại với các giá trị chứa
trong RCAP2L.
Để hoạt động Timer 2 ở chế độ tự động tải lại, các bit CP/RL2
(T2CON.0) phải rõ ràng. Trong chế độ này, Timer 2 (TH2/TL2)
sẽ được nạp lại với các giá trị nạp lại (RCAP2H/RCAP2L) bất cứ
khi nào Timer tràn 2; đó là để nói, bất cứ khi nào Timer 2 nước
tràn từ FFFFh trở lại 0000h. An tràn của Timer 2 sẽ gây ra các bit
tF2 được thiết lập, mà sẽ gây ra một ngắt được kích hoạt, nếu
Timer 2 ngắt được kích hoạt. Lưu ý rằng tF2 sẽ không được đặt
vào một tình trạng tràn nếu một trong hai RCLK hoặc TCLK
(T2CON.5 hoặc T2CON.4) được thiết lập.

Ngoài ra, bởi cũng thiết lập EXEN2 (T2CON.3), một tải lại cũng
sẽ xảy ra bất cứ khi nào một sự chuyển tiếp 1-0 được phát hiện trên
T2EX (P1.1). Một tải lại xảy ra như là kết quả của một quá trình
chuyển đổi như vậy sẽ gây ra EXF2 (T2CON.6) flag được thiết
lập, kích hoạt một Timer 2 gián đoạn nếu nói gián đoạn đã được
kích hoạt.

Thời gian 2 trong CAPTURE MODE

Một chế độ mới cụ thể cho Timer 2 được gọi là "Capture Mode."
Như tên của nó, chế độ này bắt các giá trị của Timer 2 (TH2 và
TL2) vào SFRs chụp (RCAP2H và RCAP2L). Để đặt Timer 2 ở
chế độ chụp, CP/RL2 (T2CON.0) phải được thiết lập, như phải
được EXEN2 (T2CON.3).

Khi cấu hình như đã đề cập ở trên, một chụp sẽ xảy ra bất cứ khi
nào một sự chuyển tiếp 1-0 được phát hiện trên T2EX (P1.1). Tại
thời điểm chuyển đổi được phát hiện, các giá trị hiện tại của TH2
và TL2 sẽ được sao chép vào RCAP2H và RCAP2L, tương ứng.
Đồng thời, các EXF2 (T2CON.6) bit sẽ được thiết lập, mà sẽ kích
hoạt một ngắt nếu ngắt Timer 2 được kích hoạt.

Lưu ý rằng ngay cả trong chế độ chụp, một tràn của Timer 2 sẽ
cho kết quả tF2 đang được thiết lập và một ngắt được kích hoạt.
Ghi chú 2: Hình thức Capture là một cách hiệu quả để đo thời gian
giữa các sự kiện. Tại thời điểm đó một sự kiện xảy ra, giá trị hiện
tại của Timer 2 sẽ được sao chép vào RCAP2H / L. Tuy nhiên,
Timer 2 sẽ không dừng lại và một ngắt sẽ được kích hoạt. Vì vậy,
thường xuyên bị gián đoạn của bạn có thể sao chép các giá trị của
RCAP2H / L cho một biến tạm giữ mà không cần phải dừng Timer
2. Khi chụp khác xảy ra, bạn có thể làm gián đoạn sự khác biệt
của hai giá trị để xác định thời gian transpired. Một lần nữa, lợi
thế chính là bạn không phải dừng lại 2 giờ để đọc giá trị của nó,
như là trường hợp với timer 0 và timer 1.

2 bộ đếm thời gian gián đoạn

Như là trường hợp với các giờ khác hai, hẹn giờ 2 có thể được cấu
hình để kích hoạt và bị gián đoạn. Trong thực tế, các văn bản nêu
trên cho thấy một số tình huống mà có thể kích hoạt một bộ đếm
thời gian 2 bị gián đoạn.

Để kích hoạt Timer 2 gián đoạn, thiết lập ET2 (IE.5). Bit này của
IE chỉ có giá trị trên 8.052. Tương tự như vậy, các ưu tiên của ngắt
Timer 2 có thể được cấu hình bằng cách sử dụng PT2 (IP.5). Như
mọi khi, hãy chắc chắn cũng đặt EA (IE.7) khi cho phép bất kỳ
gián đoạn.

Sau khi ngắt Timer 2 đã được kích hoạt, một Timer 2 ngắt sẽ được
kích hoạt bất cứ khi nào tF2 (T2CON.7) hoặc EXF2 (T2CON.6)
được thiết lập. Các Timer 2 thường xuyên ngắt phải được đặt tại
002Bh trong bộ nhớ mã.

Chú ý: Cũng giống như các ngắt Serial, Timer 2 ngắt lời không rõ
ràng cờ gián đoạn mà gây ra các gián đoạn. Vì có hai điều kiện mà
có thể kích hoạt một Timer 2 gián đoạn, hoặc tF2 hoặc EXF2 đang
được thiết lập, vi điều khiển các lá cờ một mình để thường xuyên
ngắt lời của bạn có thể xác định nguồn gốc của những gián đoạn và
hành động phù hợp. Nó có thể (và thậm chí có thể xảy ra!) Mà bạn
sẽ muốn làm một điều khi các lỗi tràn bộ đếm thời gian và một cái
gì đó hoàn toàn khác nhau khi chụp hoặc nạp lại được kích hoạt
bởi một sự kiện bên ngoài. Vì vậy, hãy chắc chắn luôn luôn rõ
ràng và EXF2 tF2 trong 2 ngắt Timer của bạn. Không làm như vậy
sẽ gây ra sự gián đoạn để được kích hoạt liên tục cho đến khi các
bit bị xóa.

KẾT LUẬN
Vi điều khiển 8052 là 1 phiên bản của họ 8051. nó là vi điều khiển
mạnh mẻ hơn vi điều khiển 8051 nhờ các tính năng bổ sung của vi
điều khiển 8052.

Read more: http://www.ant7.com/forum/forum_posts.asp?


TID=8980&get=last#ixzz1FR5CoaLx

You might also like