Khi sử dụng mã ngữ thì yêu cầu cần có chương trình dịch từ mã ngữ sang mã máy thông dịch Trang 7 1.1 Khái niệm chung • Bộ vi xử lý và hệ vi xử lý • Bộ VXL là hạt nhân của hệ VXL, nó th
Trang 1Trường Đại học Thủy Lợi KHOA ĐIỆN – ĐIỆN TỬ
KỸ THUẬT VI XỬ LÝ
Trang 2PHẦN I: KỸ THUẬT VI XỬ LÝ
PHẦN II: KỸ THUẬT VI ĐIỀU KHIỂN
KỸ THUẬT VI XỬ LÝ
Trang 3CHƯƠNG 1 GIỚI THIỆU CHUNG HỆ VI XỬ LÝ 1.1 Khái niệm chung
1.2 Sơ đồ khối hệ vi xử lý tối thiểu
1.3 Các hệ thống số dùng trong kỹ thuật
Trang 41.1 Khái niệm chung
• Bộ vi xử lý và hệ vi xử lý
• Bô vi xử lý: (Microprocessor)
– Là bộ xử lý tín hiệu số nằm trên một chip IC (Intergrated Circuit)
– μp xử lý tín hiệu theo chương trình, bao gồm hai loại:
• Loại đa năng
• Loại chuyên dụng: one - chip computer ( microcontroller)
Trang 51.1 Khái niệm chung
• Bộ vi xử lý và hệ vi xử lý
• Hệ vi xử lý:
– Hệ thống số làm việc theo chương trình được lưu giữ trong bộ nhớ và đưa ra các quyết định liên lạc với thế giới bên ngoài thông qua các cổng vào - ra
Trang 61.1 Khái niệm chung
• Ngôn ngữ lập trình bậc cao: C, Basis, chương trình dịch: thông dịch
Trang 71.1 Khái niệm chung
• Bộ vi xử lý và hệ vi xử lý
• Bộ VXL là hạt nhân của hệ VXL, nó thực hiện các phép tính logic và số học, điều khiển toàn bộ hoạt động của hệ:
– Đọc các lệnh từ bộ nhớ và giải mã lệnh - thực hiện lệnh
– Trao đổi số liệu với bộ nhớ và các thiết bị vào / ra
– Có thể được điều khiển từ một số tín hiệu bên ngoài để thực hiện một
số chức năng đặc biệt: thâm nhập bộ nhớ, ngắt, treo
– Có thể coi toàn bộ hệ VXL gồm; bộ VXL, ROM, RAM, cổng vào/ra
và toàn bộ các thanh ghi có thể địa chỉ hoá được
– Các thanh ghi ở bên trong bộ VXL gọi là thanh ghi trong, các thanh ghi ở ROM, RAM, I/O gọi là các thanh ghi ngoài Tập hợp các thanh ghi trong và khả năng trao đổi thông tin giữa chúng gọi là cấu trúc bộ VXL Khả năng biến đổi số liệu chỉ được thực hiện trong các thanh ghi trong Bộ VXL điều khiển và đồng bộ quá trình trao đổi hay biến
Trang 81.2 Sơ đồ khối hệ vi xử lý tối thiểu
• CPU: bộ vi xử lý trung tâm
• ROM: bộ nhớ chương trình
• RAM: Bộ nhớ dữ liệu
• I/O: thiết bị đọc, ghi dữ liệu từ bên ngơài
• Add bus: bus địa chỉ, xác định địa chỉ các thành phần
• Data bus: đường truyền dữ liệu
• Control bus: đường truyền các tín hiệu điều khiển quá trình trao đổi thông tin
Trang 91.3 Các hệ thống số dùng trong kỹ thuật VXL
1.3.1 Các hệ đếm
1 Hệ thập phân
Hàng ngày con người thường dùng hệ đếm cớ số mười
(hệ thập phân) để biểu diễn các giá trị số
Ví dụ:
Số 1234 sẽ bằng 1 nghìn, 2 trăm, 3 chục và 4 đơn vị:
Trang 113 Hệ mười sáu
Ta thấy rằng một số biểu diễn ở hệ nhị phân thì rất dài và khó nhớ nên trong thực tế người ta thường sử dụng hệ mười sáu
Hệ mười Hệ mười sáu
Trang 121.3.2 Chuyển đổi giữa các hệ đếm
Chuyển từ hệ nhị phân sang hệ thập phân
Để đổi từ hệ nhị phân sang hệ thập phân ta áp dụng công thức:
(bnbn-1 b1b0)B = bnx 2n + bn-1x 2n-1 + + b1x21 + b0x 20
Ví dụ:
100011B = 1x25 + 0x24 + 0x23 + 0x22 + 1x21 + 1x20 = 35
Chuyển từ hệ thập phân sang hệ nhị phân
Dùng phương pháp đơn giản sau:
Lấy số cần chuyển chia cho 2 và ghi nhớ phần dư, tiếp theo lấy thương của phép chia trước đó chia cho 2 và ghi nhớ phần dư
Cứ tiếp tục cho đến khi thương bằng 0
Trang 13Ví dụ 1: Đổi số 25 sang hệ nhị phân
25 1 25 chia 2 được 12 dư 1
12 0 12 chia 2 được 6 dư 0
6 0 6 chia 2 được 3 dư 0
3 1 3 chia 2 được 1 dư 1
1 1 1 chia 2 được 0 dư 1
0
Ví dụ 1: Đổi số 42 sang hệ nhị phân
42 0 42 chia 2 được 21 dư 0
21 1 21 chia 2 được 10 dư 1
10 0 10 chia 2 được 5 dư 0
5 1 5 chia 2 được 2 dư 1
2 0 2 chia 2 được 1 dư 0
Trang 141.3.3 Các phép toán số học với số hệ nhị phân
= 1000010
Trang 19PHẦN 2: VI ĐIỀU KHIỂN
CHƯƠNG 1: GIỚI THIỆU CHUNG
Trang 20• Khác nhau về ứng dụng: VXL ứng dụng trong hệ máy tính, VĐK được ứng dụng trong các thiết bị hướng điều khiển vào
ra
• Các đặc trưng của tập lệnh: VXL hoạt động với dữ liệu lớn, còn VĐK chú trọng vào điều khiển xuất nhập
Sự khác nhau giữa VXL và VĐK?
Trang 22RAM, có thể chạy đƣợc nhiều ứng
dụng khác nhau
Phần mềm nạp cố định vào ROM,
để phục vụ một mục đích chuyên dụng
Trang 231.2 Ƣu và khuyết điểm của các thiết kế sử dụng VĐK
Ưu điểm:
• Thiết kế dùng VĐK thực hiện với ít thành phần hơn
• Độ tích hợp cao, dẫn đến các ứng dụng dùng VĐK có thời gian phát triển ngắn
• Giá thành khi sản xuất thấp hơn, công suất tiêu thụ thấp, độ tin cậy cao, dễ dàng thay đổi thiết kế nhờ phần mềm
Khuyết điểm:
Có tốc độ đáp ứng các sự kiện chậm hơn so với các thiết
Trang 241.3 Cấu trỳc chung của họ vi điều khiển
•CPU: Đơn vị xử lý trung tõm
•Timers: Cỏc bộ định thời
•Interrupt control: Điều khiển ngắt
•Serial interface: Giao tiếp nối tiếp
•Parallel interface: Giao tiếp song
song
•Address, data and control: Cỏc bus
địa chỉ, dữ liệu và điều khiển
•RAM: Bộ nhớ đọc/ghi
•ROM: Bộ nhớ chỉ đọc
•External clocks: Cỏc xung clock bờn
ngoài
•External interrupts: Cỏc ngắt ngoài
•Serial device: Thiết bị nối tiếp
•Parallel device: Thiết bị song song
CPU
Address, data, and control buses Timers Interrupt control Serial interface Parallel interface
Serial device
Parallel device
Internal clocks
External interrups External
clock
Hình 1.1: Sơ đồ khối chi tiết của 1 họ vi điều khiển
Trang 25CHƯƠNG 2
TÓM TẮT PHẦN CỨNG
HỌ VI ĐIỀU KHIỂN
Trang 27Interrup
control
Other registers
128 bytes RAM 8032/8052
128 bytes RAM
ROM 0K - 8031/8032 4K - 8051
8K - 8052
Timer 2 ( 8032/8052 ) Timer 1 Timer 0
Serial port /EA
Oscillatior Bus control I/O port
/INT0 Timer2 Timer1 Timer0 Serial port
T2EX* T2* T1* T0*
Trang 282.1 Sơ đồ khối của họ vi điều khiển 8051
•Interrupt control: Điều khiển
•Bus control: Điều khiển bus
•I/O port: Các port xuất/nhập
•Serial port: Port nối tiếp
•Address/data: Địa chỉ/dữ liệu
CPU
Interrup control
Other registers
128 bytes RAM 8032/8052
128 bytes RAM
ROM 0K - 8031/8032 4K - 8051 8K - 8052
Timer 2 ( 8032/8052 ) Timer 1 Timer 0
Serial port
TXD* RXD* P3
P1 P2
P0 ALE /PSEN
/EA RST Oscillatior Bus control I/O port
/INT0 Timer2 Timer1 Timer0 Serial port
T2EX* T2* T1* T0*
Address/data Ilternate pin assign ments for P1 and P3
Trang 302.2 Chức năng các chân
Trang 35+ Các chân khác:
-Chân cho phép bộ nhớ chương trình PSEN: Nối với chân
OE của ROM
-Chân chốt địa chỉ ALE
-Chân truy xuất ngoài EA: EA=0 dùng ROM ngoài
-Chân Reset
-Chân nối với dao động thạch anh XTAL1, XTAL2
P3.0 RxD Chân nhận dữ liệu của port nốI tiếp P3.1 TxD Chân phát dữ liệu của port nốI tiếp
P3.4 T0 Chân vào bộ định thời/đếm0
Trang 365 Chân cho phép bộ nhớ chương trình /PSEN
Đây là tín hiệu điều khiển cho phép ta truy xuất bộ nhớ chương trình ngoài /PSEN ( program store enable)
Xuất ra trên chân 29
Nối với chân cho phép /OE của EPROM (ROM)
Tín hiệu /PSEN ở mức logic '0' trong suốt thời gian tìm nạp lệnh từ bộ nhớ chương trình ngoài
Khi thực hiện một chương trình chứa ở ROM nội, /PSEN được duy trì ở logic không tích cực ('1')
Trang 376 Chân cho phép chốt địa chỉ ALE
Chân xuất tín hiệu cho phép chốt địa chỉ ALE để giải mã đa hợp bus dữ liệu và bus địa chỉ (chân 30)
P0 dùng làm bus địa chỉ/dữ liệu đa hợp, ALE cung cấp tín hiệu
để chốt địa chỉ vào một thanh ghi ngoài trong suốt ½ chu kỳ đầu
Trang 387 Chân truy xuất ngoài /EA
Chân /EA (31) là chân cho phép chọn bộ nhớ chương trình trong hay ngoài
nội
/EA nối với GND thì chương trình thực thi ở ROM ngoài
Đối với các chip không có bộ nhớ chương trình bên trong thì /EA phải được nối với GND
/EA còn được sử dụng làm chân nhận điện áp cấp điện (Vpp) cho việc lập trình EPROM, EEPROM
Trang 398 Chân Reset
Ngõ vào RST (chân 9) là ngõ vào Reset của vi điều khiển
Thiết lập trạng thái ban đầu cho vi điều khiển
Để reset hệ thống thì chân này cần phải đƣợc treo ở mức logic ‘1’ tối thiểu 2 chu kỳ máy
9 Các chân XTAL1 và XTAL2
XTAL1 và XTAL2 (chân 18 và 19) dùng để ghép với thạch
anh bên ngoài để cấp nguồn xung nhịp cho VĐK
10 Vcc và GND
Họ 8051 dùng nguồn một chiều có dải điện áp từ 4V đến 5,5V
Trang 402.3 Một số loại vi điều khiển thuộc họ 8051 khác
Trang 42 Các byte RAM có địa chỉ từ 00h – 7Fh
Các thanh ghi chức năng đặc biệt (SFR) có địa chỉ từ 80h – 0FFh có thể truy xuất trực tiếp
Đối với 8052, 128 byte RAM cao (địa chỉ từ 80h – 0FFh) không thể truy xuất trực tiếp mà chỉ có thể truy
xuất gián tiếp
Bộ nhớ trong bao gồm:
4 KB ROM và 128 byte RAM
Trang 43Do số đường địa chỉ của MCS-51 là 16 bit ( Port 0 chứa
8 bit thấp và Port 2 chứa 8 bit cao ) nên bộ nhớ ngoài
Trang 44Tổ chức bộ nhớ trong
Bộ nhớ trong của MCS-51 gồm ROM và RAM.
RAM bao gồm nhiều vùng có mục đích khác nhau:
Các bank thanh ghi (từ 00h – 1Fh)
Vùng RAM định địa chỉ hóa từng bit (địa chỉ từ
20h – 2Fh)
Vùng RAM đa mục đích (địa chỉ từ 30h – 7Fh )
Các thanh ghi chức năng đặc biệt (từ 80h –
0FFh)
Trang 452.4 Tổ chức bộ nhớ 8051
• Bộ nhớ Ram
Các bank thanh ghi (từ 00h – 1Fh)
Vùng RAM định địa chỉ hóa từng bit (địa chỉ từ
20h – 2Fh)
Vùng RAM đa mục đích (địa chỉ từ 30h – 7Fh )
Các thanh ghi chức năng đặc biệt (từ 80h –
Trang 462.4 Tổ chức bộ nhớ 8051
• Bộ nhớ Ram
Trang 472.4 Tổ chức bộ nhớ 8051
• Các thanh ghi chức năng đặc biệt
Đƣợc cấu hình thành một phần của RAM trên chip
Có địa chỉ từ 80H đến FFH (có 128 địa chỉ)
Chỉ có 21 địa chỉ đƣợc định nghĩa → 21 thanh ghi
Các thanh ghi này đều có thể truy xuất bằng kiểu địa chỉ trực tiếp hoặc bằng tên
Một số thanh ghi chức năng đặc biệt đƣợc định địa chỉ
Trang 48a) Từ trạng thái chương trình PSW
Bảng ý nghĩa các bit cua thanh ghi PSW
Trang 50 Các bit chọn dãy thanh ghi RS0, RS1:
- Để chọn dãy thanh ghi tích cực
- Các bit này bị xoá khi Reset hệ thống và có thể thay đổi bằng phần mềm
Cờ tràn OV: đƣợc set bằng 1 sau phép toán cộng hoặc trừ nếu xuất hiện một tràn số học
Cờ chẵn lẻ P: Bit chẵn lẻ P tự động đƣợc set bằng 1 hay xóa bằng 0 ở mỗi chu kỳ máy để thiết lập kiểm tra chẵn cho thanh chứa
A
Trang 51b) Thanh ghi A, B
Thanh ghi ACC có địa chỉ là E0H
Thanh ghi B có địa chỉ là F0H
Được dùng kết hợp với thanh chứa A trong các phép toán nhân, chia
Lệnh MUL AB: Nhân 2 số 8bit không dấu chứa trong A và
B và chứa kết quả 16bit vào cặp thanh ghi B:A Trong đó B chứa byte cao và A chứa byte thấp của kết quả
Lệnh DIV AB: Chia A bởi B, thương chứa trong A, phần dư
Trang 52 Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP và lệnh lấy ra khỏi ngăn xếp sẽ làm giảm SP
Trang 54e) Các thanh ghi port
SETB P1.7 ;Thiết lập bit P1.7 lên mức cao
CLR P1.6 ; Điều khiển chân P1.6=0V
Trang 55f) Các thanh ghi định thời
8051 có 2 bộ đếm/định thời 16bit để định các khoảng thời gian hoặc đếm các sự kiện
Đƣợc bố trí trong hai thanh ghi TL và TH
Bộ định thời 0 có TL0 ở địa chỉ 8AH, TH0 ở địa chỉ 8CH
Bộ định thời 1 có TL1 ở địa chỉ 8BH, và TH1 ở địa chỉ
8DH
Hoạt động của bộ định thời đƣợc thiết lập bởi
Thanh ghi chế độ định TMOD ở địa chỉ 89H
Trang 56g) Các thanh ghi cổng nối tiếp
Thanh ghi ở địa chỉ 99H làm bộ đệm dữ liệu nối tiếp (SBUF)
SBUF dùng để lưu giữ dữ liệu truyền đi và dữ liệu nhận
Trang 57h) Các thanh ghi ngắt
8051 có một cấu trúc ngắt với 2 mức ƣu tiên và 5 nguyên nhân ngắt
Các ngắt bị vô hiệu hóa sau khi reset hệ thống
Thanh ghi cho phép ngắt IE (địa chỉ A8H)
Mức ƣu tiên ngắt đƣợc thiết lập qua thanh ghi ƣu tiên ngắt IP (địa chỉ B8H)
Trang 58i) Thanh ghi điều khiển nguồn PCON
PCON có địa chỉ ở 87H, không đƣợc định địa chỉ bit
7 SMOD Bit tăng gấp đôi tốc độ baud, khi bit này đƣợc set = 1, tốc
độ baud tăng 2 lần ở các chế độ 1, 2 và 3 của cổng nối tiếp
0 IDL Chế độ nghỉ, thiết lập để tích cực chế độ nghỉ,chỉ ra khỏi
chế độ này bằng 1 ngắt hoặc Reset hệ thống
Trang 602.5 Ghép nối với bộ nhớ chương trình ngoài
• Bộ nhớ chương trình ngoài là bộ nhớ chỉ đọc, được cho phép bởi tín hiệu /PSEN Khi có EPROM ngoài được sử dụng, cả 2 port 0 và port 2 đều không còn là port xuất nhập
Port 0 /EA ALE Port 2 /PSEN
A8 - A15
A0 - A7 D0 - D7
Trang 622.6 Ghép nối với bộ nhớ dữ liệu
• Bộ nhớ dữ liệu ngoài là bộ nhớ đọc/ghi đƣợc cho phép bởi các tín hiệu /RD
và /WR ở các chân P3.7 và P3.6
• Lệnh dùng để truy xuất bộ nhớ dữ liệu ngoài là MOVX, sử dụng hoặc con
trỏ dữ liệu 16 bít hoặc R0, R1 làm thanh ghi chứa địa chỉ
Ví dụ MOVX A, @DPTR; VĐK tự động kích hoạt xung /RD MOVX @DPTR,A; VĐK tự động kích hoạt xung /WR
,
Port 0
/EA ALE
P2.0 P2.1 /RD /WR
/W /OE A9 A8 G
D0 - D7 74HC373
/CS
1K byte A0 - A7
H×nh 2.6: Giao tiÕp víi 1K RAM
Trang 64Giao tiếp bộ nhớ chương trình và dữ liệu ngoài dùng chung
Trang 65CHƯƠNG 2 CÁC THÀNH PHẦN CỦA
HỆ VI XỬ LÝ
Trang 662.1 Hệ thống bus
• Khái niệm:
Nếu số lượng trong hệ thống lớn, việc tổ chức mạng
truyền thông từng đôi một rất phức tạp và không thực hiện được Do đó người ta đưa ra giải pháp sử dụng một nút dùng chung, việc trao đổi thông tin các phần tử đều phải thông qua nút dùng chung đó
Để giải quyết vấn đề xung đột, quản lý nút dùng chung
bằng phương pháp phân kênh theo thời gian (tại một thời điểm chỉ có một cặp được quyền sử dụng, các phần tử còn lại được cách ly)
Trang 672.1 Hệ thống bus
• Tổ chức bus:
– Các phần tử: phần tử ba trạng thái, là mạch logic đặc biệt
có 3 trạng thái sau: 0, 1 và trở kháng cao
– Phương pháp quản lý: quản lý theo địa chỉ
– Phương pháp truy nhập bus:
• Ngẫu nhiên: ứng dụng trong truyền thông quảng bá
số lượng lớn
• Tiền định: dùng cho hệ thống có số lượng ít, tốc độ cao, xác định trước trình tự truy nhập bus (trong hệ thống công nghiệp)
Trang 682.1 Hệ thống bus
• Ưu điểm của tổ chức bus:
– Làm hệ thống đơn giản Nó là hệ thống mở, muốn thêm hay bớt các thành phần vào hệ thống chỉ cần lắp ghép vào, muốn thay đổi nâng cấp hệ thống không cần thay đổi cấu hình của hệ thống
• Nhược điểm:
– Tốc độ trao đổi thông tin bị hạn chế
• Các loại bus:
– Data bus : môi trường truyền dữ liệu
– Address bus : bus địa chỉ, xác định địa chỉ các thành phần trong hệ thống
– Control bus : đường truyền tín hiệu điều khiển
Trang 692.2 Tổ chức vào ra
• Bộ vi xử lý gửi địa chỉ ra bus địa chỉ và tín hiệu thời gian lên bus điều khiển để đồng bộ quá trình đọc ghi dữ liệu từ bên ngoài
• Xung đọc (Read) được sinh ra khi bộ vi xử lý đã sẵn sàng đọc dữ liệu từ bộ nhớ hoặc từ cổng vào/ra
• Xung ghi được sinh ra khi dữ liệu đã ổn định trên bus dữ liệu
• Tín hiệu trạng thái I/O M sinh ra khi bộ vi xử lý đọc hay ghi bộ nhớ hoặc thiết bị ngoại vi
• Thiết bị ngoại vi phát tín hiệu số liệu để đưa đến đầu vào
bộ vi xử lý gọi là thiết bị vào
• Các thiết bị thu nhận số liệu từ hệ vi xử lý gọi là thiết bị ra
Trang 702.2 Tổ chức vào ra
mạch 8282
– I0-I7:tín hiệu vào (input)
– O0-O7: tín hiệu ra (output)
– STB: xung chốt (strode) mức tích cực cao
– OE: cho phép đầu ra (output enable)
mức tích cực thấp
Trang 71Tích cực thấp Bằng 0 khi đầu
Trang 722.2 Tổ chức vào ra
• Xây dựng:
– Giả sử μp cần nhận dữ liệu từ cổng vào có địa chỉ ADD→ thực hiện thao tác đọc (/RD)
– Để thực hiện loại bỏ chức năng chốt của 8282 thì cho tín hiệu STB=VCC
– Đầu ra của 8282 được nối với Data bus
– Tín hiệu ADD được nhận được
Trang 73– Sau khi IO/M=1 ổn định, μp gửi tiếp tín hiệu /RD lên bus điều khiển
– Khi cả 3 tín hiệu ổn định sẽ cho phép dữ liệu từ cổng vào sang data bus