1.Tóm tắt phần cứng vi điều khiển họ MCS-51 Các họ vi điều khiển họ MCS-51 có đặc điểm chung như sau: -có 4Kbyte bộ nhớ FLASH ROM bên trong để lưu chương trình điều khiển-có 256 byte RAM
Trang 1TRƯỜNG CAO ĐẲNG KỸ THUẬT LÝ TỰ TRỌNG
KHOA ĐIỆN-ĐIỆN TỬ
BÁO CÁO THUYẾT TRÌNH: MÔN VI XỬ LÝ
ĐỀ TÀI:CẤU TRÚC PHẦN CỨNG VÀ BỘ NHỚ HỌ MCS-51
Trang 2I.Giới thiệu chung……… trang 1 1.Tóm tắt phần cứng vi điều khiển họ MCS-51……… trang 1
II.Cấu trúc phần cứng vi điều khiển 8051……….trang 2
1.Cấu trúc bên trong của vi điều khiển ……….trang 2
2.Sơ đồ cấu trúc bên trong của vi điều khiển………trang 23.Khảo sát sơ đồ chân MCS-51 ……… trang 5
4.Ý nghĩa các chân trên MCU 8051 ……… trang 6
5.Kết nối phần cứng của XTAL1 và XTAL2 ……….trang 9
III.Cấu trúc bộ nhớ của vi điều khiển……… trang 9
1.Tổ chức bộ nhớ……….……… trang 9
2.Các bank thanh ghi……… trang 12
3.RAM truy xuất từng bit……… trang 14
4.RAM đa dụng……… trang 14
5.Thanh ghi có chức năng đặc biệt……… trang 15
6.Các byte nhớ có địa chỉ 80H,90H,A0h,B0h ………trang 15
7.Byte nhớ có địa chỉ 81H………trang 15
8.Byte nhớ có địa chỉ 82h và 83h ……… trang 16
9.Byte nhớ có địa chỉ 87H ……… trang 16 10.Byte nhớ có địa chỉ từ 88H đến 8DH………trang 16
Trang 311.Các byte nhớ có địa chỉ từ 98H đến 99H………trang 1612.Các byte nhớ có địa chỉ từ a8h đến b9h ……….trang 1713.Thanh ghi trạng thái chương trình PSW ……….trang 1713.1 Chức năng từng bit trạng thái ……….trang 1813.2.Các bit chon bank thanh ghi xuất ……….trang 1813.3.Cờ tràn OV……….trang 1913.4.Bit parity………trang 1914.Thanh ghi B ……….trang 19TÀI LIỆU THAM KHẢO……… trang 20
Trang 4I.GIỚI THIỆU CHUNG
Vào năm 1980 Hãng Intel giới thiệu một bộ vi điều khiển được gọi
là 8051 Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên chíp,
hai bộ định thời, một cổng nối tiếp và 4 cổng vào - ra I/O Lúc ấy nó đựợc coi là một “hệ thống trên chíp” 8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thể làm việc với 8 bit dữ liệu tại một thời điểm Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để cho xử lý Tiếp theo sau đó là sự ra
đời của chip 8052,8053,8055 với nhiều tính năng được cải tiến
VĐK8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản
xuất khác cùng nghiên cứu sản xuất các phiên bản của 8051 Điều này dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc độ khác nhau và dung
lượng ROM trên chíp khác nhau Nhưng tất cả chúng đều tương thích với
8051 ban đầu về tập lệnh
1.Tóm tắt phần cứng vi điều khiển họ MCS-51
Các họ vi điều khiển họ MCS-51 có đặc điểm chung như sau:
-có 4Kbyte bộ nhớ FLASH ROM bên trong để lưu chương trình điều khiển-có 256 byte RAM nội
-4port xuất/nhập 8 bit
-có khả năng giao tiếp truyền dữ liệu nối tiếp
-có thể giao tiếp với 64 Kbyte bộ nhớ bên ngoài dung để lưu dữ liệu
-có 210 bit có thể truy xuất từng bit.có các lệnh xử lý bit
Trang 5II.Cấu trúc phần cứng vi điều khiển 8051
1.CẤU TRÚC BÊN TRONG CỦA VI ĐIỀU KHIỂN
Sơ đồ khối 8051
-khối điều khiển ngắt:điều khiển các chương trình ngắt khi có tác động ngắt từ yêu cầu của chưng trình hay từ bên ngoài,khi có ngắt thì tùy theo độ ưu tiên mà
vi điều khiển dừng thực hiện lệnh hiện tại để phục vụ ngắt
-khối CPU đây là bộ phận xử lý trung tâm,nó nhận lệnh và dữ liệu để xử lý,là nơi thực hiện hầu hết các phép toán của VĐK,sau khi xử lý xong chương trình
Trang 6dữ liệu,cpu xẽ xuất lệnh điều khiển lên khối còn lại,cpu quyết định toàn bộ hoạt động của VĐK.
-khối dao động: mạch dao động bên trong vi điều khiển sẽ kết hợp với thạch anh bên ngoài tạo ra tần số dao động làm việc chuẩn cho vđk
-khối ROM :là bộ nhớ FLASH ROM dung để lưu chương trình đk của người lập trình từ máy tính nạp vào hoặc từ chip master sang chip slave
-khối RAM:là bộ nhớ truy xuất ngẫu nhiên dùng để lưu kết quả tạm thời của chương trình khi VĐK làm việc
-điều khiển bus:là tập hợp các tuyến truyền dẫn thông tin,có 3 loại bus đó là bus data,bus điều khiển và bus chương trình
-các port I/O: là tập hợp của 32 chân của vđk giao tiếp với mạch điện bên ngoài
có nhiệm vụ xuất,nhập dữ liệu,địa chỉ,lệnh điều khiển các thiết bị ngoại vi
-timer-counter:dùng để khởi tạo mạch đếm thời gian cũng như đếm xung hoặc đếm sự kiện ngoài
-port nối tiếp:là ngõ xuất nhập dữ liệu nối tiếp phục vụ cho việc VĐK giao tiếp qua cổng com,thực hiện ghi và xóa chương trình
2.sơ đồ cấu trúc bên trong của VĐK
-khối ALU đi kèm với các thanh ghi temp1,temp2 và thanh ghi trạng thái PSW-bộ điều khiển logic(timing and control)
-vùng nhớ RAM nội và vùng nhớ FLASH ROM lưu trữ chương trình
-mạch tạo dao động nội kết hợp với tụ thạch anh để tạo dao động
-khối xử lý ngắt,truyền dữ liệu,khối timer/counter
-thanh ghi A,B,dptr,và 4 port0,port1,port2,port3 có chốt và đệm
-thanh ghi bộ đếm chương trình PC (program counter)
-con trỏ dữ liệu dprt (data pointer)
-thanh ghi con trỏ ngăn xếp SP (stack pointer)
-thanh ghi lệnh IR (instruction register)
Trang 7-ngoài ra còn có 1 số các thanh ghi hỗ trợ để quản lý địa chỉ bộ nhớ ram nội bên trong cũng như các thanh ghi quản lý địa chỉ truy xuất bộ nhớ bên ngoài.
Cấu trúc bên trong của VĐK
Trang 83.KHẢO SÁT SƠ ĐỒ CHÂN MCS-51
Trang 9SƠ ĐỒ CHÂN MCS-51
4.Ý nghĩa các chân trên MCU 8051
Trang 10Chân VCC: Chân số 40 là VCC cấp điện áp +5V cho Vi điều khiển
Chân GND: Chân số 20 nối GND
Port 0 (Cổng 0)
Port 0 là một port hai chức năng trên các chân 32–39 Trong các thiết kế cỡ nhỏ (không dùng bộ nhớ mở rộng) nó có chức năng như các đường I/O Đối với các thiết kế lớn với bộ nhớ mở rộng, nó được dồn kênh giữa bus địa chỉ và bus dữ liệu
Port 1 (Cổng 1)
Port 1 là cổng dành riêng cho nhập/xuất trên các chân 1–8 Các chân được ký hiệu P1.0, P1.1, P1.2, có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần Port 1 không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị ngoài
Port 2 (Cổng 2)
Port 2 là một cổng công dụng kép trên các chân 21–28 được dùng như các
đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng
Port 3 (Cổng 3)
Port 3 cũng là một cổng công dụng kép trên các chân 10–17 Các chân của port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của 8051/8031
Các chức năng chuyển đổi ở Port 3
Chân RESET (RST) (Chân 9)
Trang 11Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho
vi điều khiển Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở
mức 1
TRẠNG THÁI CỦA TẤT CẢ CÁC THANH GHI TRONG VĐK SAU KHI RESET HỆ THỐNG ĐƯỢC TÓM TẮT TRONG BẢNG TRÊN
Chân XTAL1 và XTAL2 (Chân 18 và 19)
Hai chân này có vị trí chân là 18 và 19 được sử dụng để nhận nguồn xung clock
từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo
nguồn xung clock ổn định
Chân cho phép bộ nhớ chương trình PSEN\: (Chân 29)
Dùng để truy xuất bộ nhớ chương trình ngoài Chân này thường được nối với chân OE\ (outputenable) của ROM ngoài Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này kích hoạt ở mức 0 Khi thực thi một chương trình
ở ROM nội, chân này được duy trì ở mức logic không tích cực (logic 1)
Trang 12Chân ALE: (Chân 30)
Là chân cho phép chốt địa chỉ khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và các đường dữ liệu khi kết nối chúng với IC chốt
Hình kết nối VĐK với ic chốt truy xuất bộ nhớ ngoài
Chân EA: ( Chân 31)
Là chân dùng để xác định chương trình thực hiện được lấy từ ROM
nội hay ROM ngoại Khi EA nối với logic 1(+5V) thì Vi điều khiển thực
hiện chương trình lấy từ bộ nhớ nội Khi EA nối với logic 0(0V) thì Vi điều khiển thực hiện chương trình lấy từ bộ nhớ ngoại
5.Kết nối phần cứng của XTAL1 và XTAL2
Trang 13Mạch dao động được đưa vào hai chân này thông thường được kết nối với dao động thạch anh như sau:
C1=C2= 30pF dùng ổn định dao động cho thạch anh.
Kết nối phần cứng của chân RESET
Việc kết nối chân RESET đảm bảo hệ thống bắt đầu làm việc khi Vi
điều khiển được cấp điện, hoặc đang hoạt động mà hệ thống bị lỗi cần tác
động cho Vi điều khiển hoạt động trở lại, hoặc do người sử dụng muốn
quay về trạng thái hoạt động ban đầu
Vì vậy chân RESET được kết nối như sau:
Kết nối phần cứng của chân RESET
III.CẤU TRÚC BỘ NHỚ CỦA VI ĐIỀU KHIỂN:
Trang 141.TỔ CHỨC BỘ NHỚ:
Vi điều khiển 89C51 có bộ nhớ nội bên trong và có them khả năng giao tiếp với
bộ nhớ bên ngoài nếu bộ nhớ bên trong không đủ khả năng lưu trữ chương trình
Bộ nhớ nội bên trong gồm có 2 loại bộ nhớ:bộ nhớ dữ liệu và bộ nhớ chương trình bộ nhớ dữ liệu có 256 byte,bộ nhớ chương trình có dung lượng 4kbyte
Bộ nhớ mở rộng bên ngoài cũng được chia ra làm 2 loại bộ nhớ:bộ nhớ dữ liệu
và bộ nhớ chương trình.khả năng giao tiếp là 64kbyte cho mỗi loại.hình sau minh họa khả năng giao tiếp bộ nhớ của vi điều khiển 89c51:
Bộ nhớ bên trong
CODE memory
Trang 15RAM bên trong 89c51 được phân chia như sau:
-các bank thanh ghi có địa chỉ từ 00H đến 1FH
-RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH
-RAM đa dụng từ 30H đến 7FH
-các thanh ghi chức năng đặc biệt từ 80H đến FFH
CODE Memory
FFFF FFFF
Enable
Via PSEN
DATA memory
Enable Via
RD & WR
0000 0000
Trang 16CẤU TRÚC BỘ NHỚ RAM BÊN TRONG VĐK
Trang 172.Các bank thanh ghi:
Các bank thanh ghi có địa chỉ byte từ 00H đến 1FH, có 8 thanh ghi trong mỗi bank, các thanh ghi được đặt tên từ R0-R7, các thanh ghi này được đặt mặc định trong bank 1
Có 4 bank thanh ghi và tại mỗi thời điểm chỉ có một bank thanh ghi được truy xuất với các thanh ghi từ R0 đến R7, để thay đổi việc truy xuất các thanh ghi trên các bank thanh ghi, người dùng phải thay đổi giá trị các bit chọn bank trong thanh ghi trạng thái PSW bằng các câu lệnh trong chương trình
Các lệnh dùng các thanh ghi từ R0 đến R7 mất khoảng không gian lưu trữ ít hơn và thời gian thực hiện nhanh hơn so với các lệnh dùng các ô nhớ RAM khác, ngoài ra các thanh ghi này còn có thêm một số chức năng đặc biệt khác, vì
lí do này các dữ liệu sử dụng thường thường được người viết chương trình đưa vào lưu trong các thanh ghi này
Ngoài ra, có thể truy xuất thanh ghi trên các bank thanh ghi như với các ô nhớ bình thường khác Ví dụ: nguời dùng có thể truy xuất đến thanh ghi R7 bằng ô nhớ 07H
Người lập trình dùng vùng nhớ 4 bank thanh ghi để lưu trữ dữ liệu phục vụ cho việc xử lý dữ liệu khi viết chương trình
Chức năng chính của 4 bank thanh ghi này là nếu trong hệ thống có sử dụng nhiều chương trình thì chương trình thứ nhất có thể sử dụng hết các thanh ghi R0 đến R7 của bank 0 ,khi chuyển sang chương trình thứ 2 để xử lý một công việc gì đó và vẫn sử dụng các thanh ghi R0 đến R7 để lưu trữ cho việc sử lý dữ liệu mà không làm ảnh hưởng đến các dữ liệu R0 đến R7 trước đây và không cần phải thực hiện công việc cất dữ liệu thì cách nhanh nhất là gán nhóm thanh ghi R0 đến R7 cho bank1 là xong.tương tự có thể mở them hai chương trình nữa
và gán cho các bank 3 và bank 4
Trang 18Minh họa cách gán bank thanh ghi cho nhóm thanh ghi R
Địa chỉ trực tiếp Vùng nhớ 4 bank thanh
ghi1F
3.RAM truy xuất từng bit:
Trên RAM nội có 210 ô nhớ bit được định địa chỉ và có thể truy xuất đến từng bit, các bit nhớ này cũng được định địa chỉ bằng các số thập lục phân- số Hex Trong đó có 128 bit nằm trong các ô nhớ có địa chỉ byte từ 20H đến 2FH, các bit nhớ còn lại chứa trong nhóm thanh ghi có chức năng đặc biệt
Mặc dù các bit nhớ và ô nhớ (byte) cùng được định bằng số Hex, tuy nhiên chúng sẽ được nhận dạng là địa chỉ bit hay địa chỉ byte thông qua các câu lệnh tương ứng dành cho các bit nhớ hoặc các ô nhớ này
4.RAM đa dụng:
Vùng nhớ ram đa dụng gồm có 80 byte có địa chỉ từ 30H đến 7FH,vùng nhớ này không có gì đặc biệt so với 2 vùng nhớ trên,vùng nhớ bank thanh ghi 32 byte từ 00H đến 1 FH cũng có thể dùng làm vùng nhớ ram đa dụng mặc dù các
ô nhớ này đã có chức năng như đã trình bày
B a
Trang 19Mọi địa chỉ trong vùng ram đa dụng đều có thể truy xuất tự do dùng kiểu địa chỉ trực tiếp hoặc gián tiếp.
5.Thanh ghi có chức năng đặc biệt:
Các thanh ghi nội của 89c51 được truy xuất ngầm định bời các lệnh
Các thanh ghi trong 89c51 được định dạng như một phần của RAM trên chip vì vậy mỗi thanh ghi sẽ có một địa chỉ.cũng như các thanh ghi R0 đến R7,vđk 89c51 có 21 thanh ghi có chức năng đặc biệt nằm ở vùng trên của RAM nội có địa chỉ từ 80H đến FFH
Trong 128 ô nhớ có địa chỉ từ 80H đến FFH thì chỉ có 21 thanh ghi có chức năng đặc biệt được xác định địa chỉ
6.Các byte nhớ có địa chỉ 80H,90H,A0h,B0h:
Là các port của 89c51 bao gồm port 0 có địa chỉ 80H,port1 có đại chỉ
90H,port2 có địa chỉ A0H và port 3 có địa chỉ B0h,tất cả các port này đều có thể truy xuất từng bit nên rất thuận tiện trong điều khiển IO,địa chỉ của các bit được đặt tên với ô bắt đầu chính là địa chỉ của các port tương ứng ví dụ như bit đầu tiên của port 0 là 80H cũng chính là địa chỉ bắt đầu của port 0.người lập trình không cần nhớ địa chỉ các bit trong các port vì phần mềm lập trình cho phép truy xuất bằng tên từng bit dễ nhớ như sau: P0.0 chính là bit có địa chỉ 80H của port 0
Ngoại trừ thanh ghi A có thể truy xuất ngầm,đa số các thanh ghi có chức năng đặc biệt SFR có thể địa chỉ hóa từng bit hoặc byte
7.Byte nhớ có địa chỉ 81H:
Là thanh ghi con trỏ ngăn xếp SP-có chức năng quản lý địa chỉ của bộ nhớ ngăn xếp.Bộ nhớ ngăng xếp dùng để lưu trữ tạm thời các dữ liệu trong quá trình thực hiện chương trình của VĐK
Các lệnh lien quan đến ngăn xếp bao gồm các lệnh cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp
Lệnh cất dữ liệu vào ngăn xếp xẽ làm tăng SP trước khi ghi dữ liệu vào
Sau lệnh lấy ra khỏi ngăn xếp xẽ làm giàm SP
Trang 20Bộ nhớ ngăn xếp của 89C51 nằm trong RAM nội và bị giới hạn về cách truy xuất địa chỉ-chỉ cho phép truy xuất địa chỉ gián tiếp.Dung lượng của bộ nhớ ngăn xếp lớn nhất là 128 byte ram nội của 89c51.
Khi reset 89c51 thì thanh ghi SP xẽ mang giá trị mặc định là 07H và giữ liệu và
dữ liệu đầu tiên được cất vào ô nhớ ngăn xếp có địa chỉ 08H
Nếu phần mềm ứng dụng không khởi tạo SP một giá trị mới thì bank1 có thể cả bank 2 và 3 không dùng được vì vùng nhớ này đã được dùng làm ngăn xếpNgăn xếp được truy xất trực tiếp bằng các lệnh PUSH và POP để lưu trữ tạm thời và lấy lại dữ liệu hoặc truy xuất ngầm bằng lệnh gọi chương trình
con(ACALL,LCALL) và các lệnh trở về(RET,RET1) để lưu trữ địa chỉ của bộ đếm chương trình khi bắt đầu thực hiện chương trình con và lấy lại địa chỉ khi kết thúc chương trình con
8.Byte nhớ có địa chỉ 82h và 83h.
Là 2 thanh ghi dpl (byte thấp) có địa chỉ là 82h và dph (byte cao) có địa chỉ 83H,hai thanh ghi này có thể sử dụng độc lập để lưu trữ dữ liệu và có thể kết hợp lại tạo thành 1 thanh ghi 16 bit có tên là dptr và gọi là con trỏ dữ liệu
Được dùng để lưu địa chỉ 16bit khi truy xuất dữ liệu của bộ nhớ dữ liệu bên ngoài
9.Byte nhớ có địa chỉ 87H.
Là thanh ghi pcon (power control) có chức năng điều khiển công suất khi vđk làm việc hay ở chế độ chờ,khi vđk không còn xử lý gì nữa thì người lập trình có thể lập trình cho vđk chuyển sang chế độ chờ để giảm bớt công suất tiêu thụ nhất là nguồn cung cấp cho vđk là pin
10.Byte nhớ có địa chỉ từ 88H đến 8DH:
Là các thanh ghi phục vụ cho 2 timer/counter T1,T0
Thanh ghi TCON (timer control): thanh ghi ĐK timer/counter
Thanh ghi TMOD (timer mode) :thanh ghi lựa chọn mode hoạt động cho
timer/counter
Thanh ghi TH0 và TL0 kết hợp lại tạo thành 1 thanh ghi 16bit có chức năng lưu trữ xung đếm cho timer/counter T0 tương tự cho 2 thanh ghi TH1 và TL1 kết