Để cho phép giao tiếp nối tiếp thành công UART, cần thiết đáp ứng quy định cụ thể các tiêu chuẩn RS232. Nó chủ yếu đề cập đến cấp điện áp theo yêu cầu của tiêu chuẩn này. Tiêu chuẩn phù hợp trong tin nhắn là -10V cho logic (1), trong khi +10 V là cho logic (0). Vi điều khiển chuyển đổi dữ liệu một cách chính xác vào định dạng nối tiếp, nhưng điện áp cung cấp điện của nó chỉ là 5V. Vì nó không dễ dàng chuyển đổi 0V vào 10V và 5V vào-10V, hoạt động này cho cả truyền và nhận bên trái. Ở đây, MAX232 của Maxim được sử dụng bởi vì nó là phổ biến rộng rãi, giá rẻ và đáng tin cậy.
Sơ đồ bên dưới cho thấy làm thế nào để nhận được tin nhắn được gửi bởi một máy tính. Bộ đếm thời gian T1 tạo ra tỷ lệ boud. Vì khi tinh thể thạch anh 11,0592 MHz được sử dụng ở đây, nó rất dễ dàng để có được tốc độ truyền tiêu chuẩn tới 9600 baud. Mỗi dữ liệu nhận được ngay lập tức được chuyển đến chân cổng P1
58 trang |
Chia sẻ: Tiểu Khải Minh | Ngày: 22/02/2024 | Lượt xem: 105 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Vi xử lý - Phần 2, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
C68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 187
Thì khi đó A7 = 0000FFFBH
Lệnh di chuyển dữ liệu MOV
Di chuyển dữ liệu theo byte hoặc theo từ , từ dài ( long word) giữa thanh ghi dữ liệu, thanh ghi
địa chỉ và ô nhớ
Ví dụ: MOVE.B #29H,D3
MOVE.W D3,D6
MOVE.L (A0)+, D0
Lệnh chuyển dữ liệu vào thanh ghi địa chỉ MOVEA (Mode Address)
Ví dụ MOVEA.W #9F00H,A2
Lệnh chuyển dữ liệu nhiều thanh ghi MOVEM (move multiple registers)
Dùng truyền dữ liệu từ bộ nhớ vào các toán hạng là các thanh ghi dữ liệu, các thanh ghi địa chỉ
Lệnh chuyển dữ liệu tới thiết bị MOVEP (move peripheral data)
Dùng vào ra với ½ BUS dữ liệu, sử dụng các toán hạng từ hoặc từ dài, không có mã điều kiện
nào thay đổi khi thực hiện lệnh
6.1.2 Nhóm lệnh số học
Bao gồm các lệnh cộng trừ 8, 16 hoặc 32 bit; các lệnh nhân có dấu và không dấu có giá trị 16
bit, các lênh chia các số 16 hoặc 32 bit cho các số có giá trị 8 hoặc 16 bit; các lệnh xóa lấy bù 2
giá trị 32bit. Nhóm lệnh này còn thực hiện với dấu mở rộng
Lệnh cộng nhị phân ADD (add binary)
Cộng các giá trị 8, 16 hoặc 32 bit. Trong hai toán hạng phải có một thanh ghi dữ liệu
Lệnh cộng địa chỉ ADDA (add address)
Cộng dữ liệu với thanh ghi địa chỉ, chỉ có dữ liệu word và long word đƣợc sử dụng
Ví dụ : A0 = CE001A2BH, A3 = 00140300H
ADDA.W A0,A3
Khi đó A3 = 00141D2BH, chỉ có từ thấp A3 thay đổi , A0 không thay đổi
Lệnh cộng giá trị tức thời ADDI (Add immemdiate)
Cộng toán hạng tức thời có độ dài 8, 16, hoặc 32 bit vào toán hạng đích
Lệnh cộng nhanh ADDQ (add quick)
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 188
Tƣơng tự lệnh ADDI, khác ở chỗ toán hạng tức thời có giá trị từ 1 đến 8, khi cộng một giá trị
tức thời vào một thanh ghi địa chỉ thì cả 32 bit thanh ghi đều thay đổi.
Lệnh cộng mở rộng ADDX (add extended)
Chỉ có 2 chế độ địa chỉ là thanh ghi dữ liệu cộng với thanh ghi dữ liệu
Lệnh xóa CLR (Clear an operand)
Lệnh này ghi 0 đến toán hạng, 3 kích thƣớc dữ liệu đều đƣợc sử dụng
Ví dụ : CLR.B D0 ; xóa 8 bít thấp D0
CLR.W A4 ; Xóa 16 bit thấp của D4
CLR.L ARRAY ; xóa 4 byte trong bộ nhớ bắt đầu từ địa chỉ ARRAY
Lệnh chia có dấu DIVS (sign divide)
Thực hiện chia có dấu 32 bit trong toán hạng đích cho số 16 bit trong toán hạng nguồn, thƣơng
số chứa trong 16 bit thấp của toán hạng đích, số dƣ chứa trong 16 bit cao của toán hạng đích.
Dấu của số trừ luôn cùng dấu với số chia
Lệnh chia không dấu DIVU ( unsign divide)
Tƣơng tự lệnh DIVS nhƣng thực hiện với số nhị phân không dấu
Lệnh nhân có dấu MULS ( sign multiply )
Thực hiện nhân 2 số có dấu 16 bit, toán hạng đích là thanh ghi dữ liệu
Lệnh nhân không dấu MULU (unsign multiply)
Tƣơng tự lệnh MULS nhƣng thực hiện với số nhị phân không dấu
Lệnh trừ nhị phân SUB (Subtract binary )
Thực hiện trừ nhị phân trong toán hạng đích, thanh ghi dữ liệu trong toán hạng nguồn
Lệnh trừ địa chỉ SUBA ( subtract address )
Toán hạng đích là thanh ghi địa chỉ, chỉ dùng dữ liệu word hoặc long word
Lệnh trừ nhanh SUBQ (subtract quick )
Sử dụng khi trừ đi giá trị từ 1 đến 8, tất cả các kiểu dữ liệu đều có thể sử dụng
6.1.3 Nhóm lệnh logic
Bao gồm các lệnh AND. OR XOR và NOT thực hiện giá trị 8,16 hoặc 32 bit trong các thanh
ghi dữ liệu, trong bộ nhớ và thanh ghi CCR hoặc SR
Lệnh logic AND
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 189
Thực hiện AND giữa hai toán hạng, tất cả kích thƣớc dữ liệu đều có thể sử dụng
Lệnh ANDI (and immediate)
Tƣơng tự lệnh AND nhƣng toán hạng nguốn là một số tức thời
Lệnh logic OR
Tƣơng tự nhƣ lênh AND nhƣng OR hai dữ liệu
Lệnh ORI ( Or immediate )
Thực hiện OR toán hạng đích với toán hạng nguồn
Lệnh EOR
Thực hiện logic XOR giữa hai toán hạng
Lệnh EORI
Thực hiện EOE với toan hạng tức thời
Lênh NOT
Lấy bù 1 toán hạng đích, các cờ đều bị tác động
6.1.4 Nhóm lệnh quay và dịch
Thực hiện 8, 16 hoặc 32 bit trong thanh ghi dữ liệu hoặc bộ nhớ. Khi quay dịch một thanh ghi
dữ liệu cần chỉ thị số bit sẽ quay.
Khi dịch 8 bit có thể sử dụng toán hạng tức thời, ví dụ nhƣ sau
ALS.B #4,D2 ; dịch trái số học 4 bit
LSR.W #6,D1 ; dịch phải logic 6 bit
ROL.L #3,D5 ; quay trái 3 bit
ROXR.B #5,D4 ; Quay phải với cờ X 5 bit
Khi quay lớn hơn 8 bit số lầm đếm dịch phải nằm trong thanh ghi dữ liệu
ASL.L D2,D3 ; Dịch trái D3 với D2 bit
ASL Arithmetic Shift left: Dịch trái số học
X/C Operand 0
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 190
ASL Arithmetic Shift Right: Dịch phải số học
LSL logic shift left : Dịch trái logic
LSR logic shift right : dịch phải logic
6.1.5 Nhóm lệnh xử lý bit
Xử lý 8 hoặc 32 bit trong thanh ghi dữ liệu hoặc bộ nhớ
Lệnh kiểm tra 1 bit và thay đổi giá trị BCHG (text a bit and change )
Một bit trong toán hạng đích sẽ đƣợc kiểm tra và hiệu chỉnh cờ Z, nếu bit = 0 thì Cờ ZF = 1 và
ngƣợc lại. Nhƣ vậy Z là bù của bit kiểm tra
Lệnh kiểm tra và xóa bit BCLR (text a bit and clear )
Tƣơng tự nhƣ lệnh BCHG nhƣng sau kiểm tra bit text về 0, cờ Z giống nhƣ BCHG
Lệnh kiểm tra và lập bit BSET (text a bit and set )
Tƣơng tự nhƣ 2 lệnh trên nhƣng sau khi kiểm tra bit lên 1
6.1.6 Nhóm lệnh BCD
Gồm cộng trừ lấy âm (bù 10), các dữ liệu 8 bit ( 2 số BCD ) các toán hạng có thể nằm trong
thanh ghi dữ liệu hoặc bộ nhớ
Lệnh cộng thập phân với dấu mở rộng ABCD (add decimal with extend )
Dùng cộng 2 số BCD với nhau, dùng cờ X để cộng chính xác hơn, thực hiện với các toán hạng
byte có 2 chế độ địa chỉ là trực tiếp thanh ghi
Lệnh lấy âm của một số mở rộng NBCD (negative decimal with extend )
Lệnh này thực hiện toán hạng byte, muốn có số âm thì lấy bù 10
Lệnh trừ thập phân có dấu mở rộng SBCD (subtract decimal with extend )
X/C Operand
X/C Operand 0
X/C Operand 0
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 191
Giống nhƣ ABCD chỉ có hai thanh ghi địa chỉ dữ liệu, toán hạng đích trừ đi toán hạng nguồn
6.1.7 Nhóm lệnh điều khiển chƣơng trình
Bao gồm rẽ nhánh (nhảy có điều kiện ), nhảy không điều kiện, lệnh lập byte lệnh gọi và quay
về từ chƣơng trình con
Có 16 mã thực hiện chƣơng trình bao gồm
CC: Carry clear cờ C xóa
CS: carry set cờ C lập
EQ equal bằng
F: never true (faul) – Sai
GE: Greater than or Equal – lớn hơn hoặc bằng
GT : Greater than – lớn hơn
HI: high – Cao
LE: less or equal – nhỏ hơn hoặc bằng
LS low or the same - nhỏ hơn hoặc bằng
LT: less than – nhỏ hơn
MI : minus – âm
NE: not equal – không bằng
PL: plus – dƣơng
T: allways true – đúng
VC overflow clear – VF = 0
VS overflow set – VF = 1
Lệnh rẽ nhánh theo BCC (branch condition )
Nếu cờ C = 1 tất cả các lệnh đều sử dụng trừ lệnh T và F
Lệnh kiểm tra điều kiện, giảm và rẽ nhánh DBCC
Thực hiện chức năng lặp và kết thúc theo 2 cách: theo điều kiện và theo số đếm
Lệnh lập theo điều kiện SCC ( set according to condition )
Trƣớc tiên kiểm tra điều kiện, nếu đúng byte toán hạng đích lên 1, nếu sai xóa về 0
Lệnh rẽ nhánh BRA ( branch always)
Chuyển đến nhãn chỉ thị đây là lệnh dùng địa chỉ tƣơng đối
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 192
Lệnh rẽ nhánh tới chƣơng trình con BSR (branch to subroutine)
Tƣơng tự nhƣ BRA nhƣng địa chỉ sau lệnh cất vào đỉnh ngăn xếp làm địa chỉ quay về từ
chƣơng trình con
Lệnh nhảy JMP (Jump)
Chuyển không điều kiện tới bất kỳ vị trí nào trong bộ nhớ
Lệnh nhảy tới chƣơng trình con JSR (jump to subroutine)
Giống lệnh JMP nhƣng địa chỉ quay về từ chƣơng trình con đƣợc cất vào đỉnh ngăn xếp
Lệnh quay về và phục hồi các mã điều kiện RTR (reture and restore condition codes )
Phục hồi thanh ghi mã điều kiện và PC từ đỉnh ngăn xếp
Lệnh quay về từ chƣơng trình con RTS ( return from subroutine )
Nạp thanh ghi PC vào đỉnh ngăn xếp, không có mã điều kiện bị ảnh hƣởng
6.1.8 Nhóm lệnh hệ thống
Bao gồm lệnh phân quyền hệ thống, hiệu chỉnh giá trị trong các thanh ghi hệ thống nhƣ SR ,
USP, các lệnh bẫy (TRAP)
Lệnh AND số tức thời với thanh ghi trạng thái ANDI SR (and immediate to status
register )
Dùng thay đổi giá trị trong thanh ghi trạng thái, khi AND với bit 0 sẽ bị xóa, AND với 1 thì
không đổi
Lệnh EORI SR
Giống nhƣ ANDI SR nhƣng với cổng logic XOR
Lệnh ORI SR
Giống nhƣ ANDI SR nhƣng với cổng logic OR
Lệnh chuyển dữ liệu vào thanh ghi trạng thái MOVE to SR
Chuyển giá trị 16 bit vào thanh ghi trạng thái
Lệnh Reset thiết bị bên ngoài RESET (reset external devicer )
Làm đƣờng Reset của MCU tích cực
Lệnh quay về từ ngoại lệ RTE (return from exception )
Dùng kết thúc chƣơng trình ngoại lệ, phục hồi thanh ghi trạng thái và bộ đếm chƣơng trình
Lệnh ngừng STOP (load status register and stop)
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 193
Dò tìm trƣớc Stop thì chế độ dò tìm thực hiện, khi có REST bên ngoài xử lý reset và thoát khỏi
trạng thái treo, nếu ngắt ngoài xảy ra khi đang stop nó bị bỏ qua khi mức ƣu tiên của nó cao
hơn mức hiện hành
Lệnh lƣu CCR
Cất dữ liệu vào thanh ghi CCR
Ví dụ MOVE CCR, D2 ; cất nội dung CCR vào byte thấp D2
6.2 Trình dịch hợp ngữ.
Trình dịch hợp ngữ, còn gọi là phần mềm biên dịch, compiler, là một chƣơng trình máy
tính làm công việc dịch một chuỗi các câu lệnh đƣợc viết bằng một ngôn ngữ lập trình (gọi
là ngôn ngữ nguồn hay mã nguồn), thành một chƣơng trình tƣơng đƣơng nhƣng ở dƣới dạng
một ngôn ngữ máy tính mới (gọi là ngôn ngữ đích) và thƣờng là ngôn ngữ ở cấp thấp hơn, nhƣ
ngôn ngữ máy. Chƣơng trình mới đƣợc dịch này gọi mã đối tƣợng.
Hình 6-1 Mô hình biên dịch lý tƣởng
Một chƣơng trình viết bằng hợp ngữ bao gồm một chuỗi các lệnh (instructions) dễ nhớ tƣơng
ứng với một luồng các chỉ thị khả thi (executable) mà khi đƣợc dịch bằng một trình hợp dịch,
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 194
chúng có khả năng nạp đƣợc vào bộ nhớ đồng thời thực thi đƣợc. Ví dụ, bộ vi xử lý x86/IA-
32 có thể thực hiện đƣợc chỉ thị nhị phân sau (thể hiện ở dạng ngôn ngữ máy):
10110000 01100001 (thập lục phân: 0xb061)
Lệnh trên tƣơng đƣơng với một chỉ thị hợp ngữ dễ nhớ hơn sau:
mov al, 061h
Chỉ thị lệnh trên có nghĩa là: gán giá trị thập lục phân 61 (97 dạng thập phân) cho thanh ghi
trong bộ vi xử lý có tên là "al". Thuật từ ―mov‖ là mã thực thi (operation code / opcode), đƣợc
ngƣời thiết kế tập lệnh đặt tên thay thế cho từ ―move‖, các đối/ tham số của lệnh theo sau và
ngăn cách với opcode bởi một dấu phảy ―,‖.
Trình hợp dịch thực hiện chuyển đổi hợp ngữ sang ngôn ngữ máy và trình phân
dịch (disassembler) thực hiện quá trình trên ngƣợc lại. Không giống các ngôn ngữ bậc cao, các
chỉ thị hợp ngữ cơ bản thƣờng có mối liên hệ tƣơng ứng 1-1 với các chỉ thị ngôn ngữ máy. Tuy
nhiên trong một số trƣờng hợp, một trình hợp dịch có thể bổ sung các lệnh giả (pseudo-
instructions) vào tập lệnh ngôn ngữ máy nhằm cung cấp các chức năng đƣợc dùng thƣờng
xuyên. Hầu hết các trình hợp dịch đa chức năng đều cung cấp thêm một tập macro phong phú
để nhà sản xuất thiết bị và lập trình viên có thể tạo các mã lệnh và các dãy dữ liệu phức tạp.
Mỗi kiến trúc máy tính đều có ngôn ngữ máy riêng và do đó cũng có hợp ngữ riêng, chúng
phân biệt với nhau bằng số lƣợng và kiểu của các lệnh mà chúng hỗ trợ. Chúng cũng có thể
khác nhau về số lƣợng và kích cỡ của các thanh ghi cũng nhƣ cách thể hiện các kiểu dữ liệu
trong bộ lƣu trữ (bộ nhớ). Hầu hết các máy tính công dụng chung đều có khả năng thực hiện
cùng chức năng nhƣng cách mà chúng thực hiện thì khác nhau, điều đó phản ánh sự khác nhau
giữa các hợp ngữ tƣơng ứng với mỗi kiểu máy tính.
6.3 Khuôn dạng của chƣơng trình hợp ngữ.
Trong chƣơng trình nguồn trƣớc hết cần khởi động các tham số cần thiết cho bộ vi xử lý nhƣ:
nạp giá trị cho con trỏ ngăn xếp, nạp giá trị cho bộ đếm chƣơng trình, khởi động giá trị cho
vector cơ sở. Ví dụ : đoạn chƣơng trình sau khởi động vector reset
Org $0000h ; bắt đầu từ địa chỉ 000 của bộ nhớ
DW $0000h ; khởi động SP = $4000
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 195
DW $4000h
DW $0000h
DW $4000h ; khởi động SP = $4000
Các giá trị vector cho reset
Địa chỉ Reset vector
$0000 Byte cao của SP
$0002 Byte thấp của SP
$0004 Byte cao của PC
$0006 Byte thấp của PC
Khuôn dạng chƣơng trình ngắt
INT
{ các lệnh xử lý ngắt }
RTE ; Quay về chƣơng trình ngắt
6.4 Đánh giá biểu thức trong thời gian dịch.
Để hợp dịch các chƣơng trình hợp ngữ trên máy tính, đầu tiên các chƣơng trình soạn thảo gồm
các lệnh gợi nhớ theo đúng cú pháp quy định của chƣơng trình hợp dịch. Từ khai báo của
chƣơng trình sau kkhi hợp dịch tạo ra tập tin có đuôi .EXE
Tùy theo mỗi câu lệnh mà thời gian dịch sang ngôn ngữ máy có thể là 1 chu kỳ xung, 2 chu kỳ
xung hay thời gian dịch lớn hơn nhiều.
6.5 Các chỉ dẫn.
Chỉ thị lệnh trong hợp ngữ nói chung là đơn giản, không giống nhƣ trong ngôn ngữ bậc cao.
Mỗi chỉ thị lệnh điển hình thƣờng bao gồm một mã lệnh (operation/ opcode hay đơn giản là
instruction) theo với một hoặc nhiều toán hạng (operands), hoặc không có toán hạng nào. Hầu
hết các chỉ thị lệnh đều tham khảo tới một giá trị đơn hoặc cặp giá trị. Mỗi chỉ thị lệnh thƣờng
đƣợc mã hóa tƣơng ứng trực tiếp với một chỉ thị ngôn ngữ máy khả thi đơn lẻ. Những thành
phần thông thƣờng có trong hầu hết các hợp ngữ gồm có:
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 196
o Các định nghĩa dữ liệu (Data definitions). Các chỉ thị phụ cho phép lập trình viên dành
riêng một vùng nhớ cho các câu lệnh ngôn ngữ máy tham khảo tới. Vùng nhớ này thƣờng
đƣợc khởi tạo bằng các ký tự, chuỗi và các kiểu dữ liệu cơ sở khác
o Nhãn (Labels). Các định nghĩa dữ liệu đƣợc tham chiếu tới bằng cách sử dụng các định
danh (nhãn hoặc ký hiệu) do lập trình viên chỉ định. Chúng có thể là các hằng số,
các biến hay các thành phần của cấu trúc. Nhãn cũng có thể đƣợc gán cho các vùng mã
thực thi nhƣ địa chỉ bắt đầu của một thủ tục hoặc đích nhảy tới của lệng GOTO. Hầu hết
các trình hợp dịch đều có khả năng quản lý các nhãn một cách linh hoạt, giúp cho lập trình
viên thao tác trên nhiều không gian tên khác nhau, tự động tính độ lệch địa chỉ trong các
cấu trúc dữ liệu và tham chiếu tới các nhãn chứa giá trị định trƣớc hay kết quả của một tính
toán.
o Chú dẫn (Comments). Giống nhƣ nhiều ngôn ngữ máy tính khác, hợp ngữ cũng hỗ trợ việc
thêm các chú dẫn vào trong mã nguồn, chúng sẽ đƣợc trình hợp dịch bỏ qua trong quá trình
biên dịch
o Tập lệnh bó (Macros). Hầu hết các trình hợp dịch đều nhúng ngôn ngữ macro vào tập lệnh
chính. Lập trình viên dùng macro để tránh phải lặp lại những đoạn mã tƣơng tự, trong quá
trình tiền biên dịch tùy vào các đối số của macro mà các lệnh trong thân macro sẽ đƣợc sửa
đổi và chèn vào vị trí gọi macro. Ngoài ra macro cũng đƣợc nhà sản xuất thiết bị dùng để
đóng gói các phép tính đặc biệt ví dụ nhƣ:
o Các bộ vi xử lý 8 bit thƣờng dùng macro để tăng hoặc giảm một giá trị 16 bit lƣu trong hai
byte liên tục, đây là phép toán thƣờng phải thực hiện trong trong ba hoặc bốn chỉ thị lệnh
đơn lẻ. (bộ vi xử lý MOS Technology 6502)
o Nhà sản xuất cũng hỗ trợ các macro để dùng cho các giao tiếp hệ thống nhƣ các thao tác
vào/ra (I/O) hay các yêu cầu cấp thấp từ hệ điều hành. Trong các máy tính lớn của IBM,
các thƣ viện macro khổng lồ cung cấp các phƣơng thức truy xuất và các dịch vụ hệ thống
khác
o Những tính năng trên đƣợc mƣợn từ các thiết kế ngôn ngữ bậc cao nên đã đơn giản hóa
những vấn đề trong lập trình và bảo trì mã nguồn cấp thấp. Mã nguồn hợp ngữ thô cũng có
thể tạo ra bằng các trình biên dịch ngôn ngữ bậc cao (compiler) hoặc bằng các trình phân
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 197
dịch mã máy (disassembler), nhƣng chúng thƣờng không có chú dẫn cũng nhƣ các định
danh dễ hiểu nên rất khó đọc.
o Ngoài các đặc tính cơ bản ở trên, tuy nhiên vài hợp ngữ cũng có những tính năng ngoại lệ
nhƣ:
o Nhiều trình hợp dịch bao gồm các ngôn ngữ macro rất phức tạp, cho phép phối hợp với các
phần tử của ngôn ngữ bậc cao nhƣ các biến tƣợng trƣng, các lệnh điều kiện, các thao tác
chuỗi và các phép tính số học. Do đó một macro có thể thay thế một lƣợng lớn các lệnh
hợp ngữ hoặc các định nghĩa dữ liệu dựa trên các tham số của nó. Nó có thể dùng để sinh
ra các cấu trúc kiểu bản ghi hay các vòng lặp ―mở‖ (unrolled) hoặc dựa trên các tham số
phức tạp nó có thể giải quyết trọn vẹn một thuật giải.
6.6 Các điều khiển của trình dịch hợp ngữ.
Tùy vào mỗi kiến trúc xử lý mà tập lệnh đƣợc xác lập bởi các đặc thù riêng:
o Các thanh ghi dùng cho tính toán số học
o Cách bố trí bộ nhớ và tính địa chỉ
o Cách điều khiển rẽ nhánh
o Các kiểu đánh địa chỉ đặc thù dùng để giải các toán hạng
Nhiều lệnh phức hợp đƣợc tạo dựng bằng cách kết hợp nhiều chỉ thị đơn giản với nhau, các chỉ
thị này tuân theo nguyên lý máy tính Von Neumann, tức là thực thi tuần tự và rẽ nhánh theo
lệnh phân luồng. Một số lệnh điển hình có mặt trong hầu hết các tập lệnh gồm có:
o Lệnh gán
- Gán cho một thanh ghi (một vùng nhớ tạm thời trong CPU) một giá trị hằng số xác
định
- Chuyển dữ liệu từ một vùng nhớ sang một thanh ghi hoặc ngƣợc lại. Thao tác này dùng
để chuẩn bị dữ liệu cho một tính toán sau đó hoặc để lƣu kết quả của một tính toán
trƣớc đó.
- Đọc /ghi dữ liệu từ/vào các thiết bị phần cứng
o Lệnh cho tính toán
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 198
- Cộng, trừ, nhân hoặc chia các giá trị chứa trong các thanh ghi và lƣu kết quả vào một
thanh ghi
- Thực hiện các phép thao tác bit ―và‖/‖hoặc‖ (AND/OR) trên một cặp thanh ghi, hoặc
phép phủ định bit trên một thanh ghi
- So sánh nhỏ hơn/lớn hơn/ bằng nhau giữa hai giá trị lƣu trong hai thanh ghi
o Lệnh điều khiển rẽ nhánh
- Nhảy tới một vị trí trong chƣơng trình và thực thi các lệnh ở đó
- Nhảy tới một vị trí khác nếu một điều kiện nhất định đƣợc thỏa mãn
- Nhảy tới một vị trí nhƣng lƣu lại vị trí của lệnh tiếp theo để làm điểm nhảy trở về
(thƣờng là một lời gọi hàm)
Một số máy tính bao gồm các chỉ thị lệnh phức hợp trong tập lệnh của chúng. Một lệnh phức
hợp thƣờng thực hiện những tác vụ cần nhiều chỉ thị lệnh trên nhiều máy khác nhau, chúng
thực hiện trong nhiều bƣớc, điều khiển nhiều đơn vị chức năng. Danh sách minh họa một số
lệnh phức hợp:
- Lƣu lại nhiều thanh ghi trên ngăn xếp chỉ một lần
- Di chuyển các khối vùng nhớ lớn
- Các phép toán dấu phảy động phức tạp (sine, cosine, square root, etc.)
- Các lệnh ALU liên kết với một toán hạng từ bộ nhớ thay vì với một thanh ghi
Một kiểu lệnh phức hợp đƣợc dùng phổ biến ngày nay là các phép toán SIMD hay các lệnh
vector (vector instruction) có khả năng thực hiện cùng một phép toán số học trên nhiều phần
của dữ liệu trong cùng một thời điểm. Các lệnh SIMD (single instruction multile data) cho
phép thực hiện song song nhiều thuật toán liên quan đến xử lý âm thanh, hình ảnh và video một
cách dễ dàng.
6.7 Hoạt động liên kết.
Trình liên kết đƣợc gọi bởi dấu nhắc hệ thống nhƣ sau
RL51 input_list [TO output_ file] [location_controls]
input_list - danh sách ngỏ vào: là danh sách các modul hay tập tin đối tƣợng tái định vị đƣợc
phân cách bởi dấu phẩy
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 199
output_ file - Tập tin kết quả: là tên của modul đối tƣợng tuyệt đối đƣợc tạo ra. Nếu tên đối
tƣợng này không đƣợc cung cấp thì tên sẽ là tên ngỏ vào đầu tiên của tập tin cung cấp không có
phần mở rộng
location_controls - Các điều khiển vị trí: thiết lập vị trí địa chỉ ban đầu cho các segment đã
đƣợc đặt tên
6.8 Macro.
Tƣơng tự nhƣ các vi điều khiển 8051, chip điều khiển 32 bit của MCU 68332 cũng sử dụng
Macro nhằm mục đích đạt các lợi ích khi sử dụng Macro:
- Chƣơng trình nguồn dùng macro dễ đọc hơn
- Chƣơng trình nguồn ngắn hơn
- Việc dùng macro sẽ giảm lỗi
- Ngƣời lập trình không cần xử lý các chi tiết cấp thấp
6.9 Lập trình cho TPU.
Để lập trình cho TPU chúng ta cần lập trình cho các thanh ghi điều khiển của TPU nhƣ thanh
ghi định cấu hình TPUMCR, các thanh ghi chọn chức năng kênh CFSR, các thanh ghi thứ tự
host HSRR0, HSSR1, các thanh ghi yêu cầu phục vụ host, các thanh ghi ƣu tiên kênh, các
thanh ghi tham số RAM, các thanh ghi điều khiên kênh CCR. Nếu sử dụng ngắt TPU phải khởi
động các thahnh ghi ngắt và vector ngắt
SYNCR EQU $FFFA04
SYPCR EQU $FFFA21
CFSR3 EQU $FFFE12
TPUMCR EQU $FFFE00
HSQR1 EQU $FFFE16
HSSR1 EQU $FFFE1A
CPR1 EQU $FFFE1E
ORG $400 ; bắt đầu chƣơng trình tại 400
INITSYS:
MOVE.B #$7F,(SYNCR).L ; lập clock hệ thống 16,78MHz
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 200
CLR.B (SYPCR).L ; cấm phần mềm wachtdog
CNTLREG:
MOVE.W #$0009,(CFSR3).L ; chọn chức năng kênh
MOVE.W #$00C0,(TPUMCR).L ; đếm 238ns
MOVE.W #$0000,(HSQR1).L ; các bit HSQ = 0 cho chức năng PWM
PRAM
MOVE.W #$0092,($FFFF00).L ; Thanh ghi điều khiển kênh
MOVE.W #$2000,($FFFF04).L ; Bộ đếm cao TCR1 = #$2000
MOVE.W #$4000,($FFFF06).L ; Bộ đếm chu kỳ TCR1 = #$4000
START:
MOVE.W #$0002,(HSSR1).L ; Khởi động yêu cầu phục vụ host
MOVE.W #$0003,(CPR1).L ; cho kênh ƣu tiên ở mức cao
6.10 Lập trình xuất nhập.
Các chân của tín hiêu SIM có thể lập trình để tạo thành 2 cổng vào ra đa dụng E và F. Các
thanh ghi dữ liệu cổng, định hƣớng truyền dữ liệu cho cổng và gán chân cho cổng cho phép
truy cập các cổng này
PORT E0, PORT E1 – thanh ghi dữ liệu cổng E - Địa chỉ $YFFA11, $YFFA13
Thanh ghi dữ liệu cổng E bao gồm 2 địa chỉ $YFFA11, $YFFA13. Thanh ghi này có thể đọc /
ghi bất cứ lúc nào và giá trị không bị ảnh hƣởng bởi lệnh Reset.
DDRE – thanh ghi hƣớng dữ liệu cổng E - # YFFA15.
Cứ 1 bit thanh ghi này bằng 1 thì chân cổng E tƣơng ứng của nó sẽ là cổng ra và khi bit bằng 0
thì định nghĩa chân vào. Thanh ghi này cũng có thể đọc / ghi mọi thời điểm
PEPAR – thanh ghi gán chân cổng E- # YFFA17
Các bit trong thanh ghi cổng E sử dụng để điều khiển chức năng mỗi chân của cổng này. Khi
một bit trong thanh ghi này đƣợc lập, chân cổng E tƣng ứng là tín hiệu điều khiển BUS, khi
thanh ghi PEPAR xóa về không, chân tƣơng ngsvowis nó là đƣờng vào ra đƣợc điều khiển
bằng PORTE và DDRE
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 201
6.11 Lập trình cho QSM.
QSM có hai khối nhỏ SCI và QSPI, khi sử dụng khối nào thì lập trình khối đó:
6.11.1 Lập trình cho khối SCI
Chƣơng trình khởi động SCI có thể thực hiện nhƣ sau:
SCI INITIALIZATION:
Hai địa chỉ cuối nạp địa chỉ tác động của ký tự cuối cùng của đoạn dữ liệu truyền vào thanh ghi
địa chỉ A1.
MOVE.L A0,A1
ADDA..L #$5,A1
Ba lệnh tiếp theo kiểm tra dữ liệu truyền có trống hay không bằng cách xét bit TDRE trong
thanh ghi trạng thái SCI (SCSR).
Nếu TDRE = 0 thì TDR không gởi dữ liệu đến bộ dịch truyền
Nếu TDRE = 1 thì việc truyền dữ liệu đƣợc thực hiện
6.11.2 Lập trình khởi động cho khối QSPI
QSPI của QSM là bus truyền nối tiếp đồng bộ với các thiết bị ngoại vi bên ngoài và các MCU
khác. Module này có một hàng đợi, con trỏ hàng đợi có thể lập trình đƣợc cho phép truyền 16
ký tự dữ liệu một cách tự động và trong chế độ Wap – around sẽ cho phép truyền liên tục tới
hoặc từ hàng đợi mà không cần sự điều khiển của CPU. Hàng đợi có nhiều ứng dụng trong việc
biến đổi A/D. Một số lƣu ý khi sử dụng QSPI
- Lập bit SPE cho phép QSPI cần thực hiện cuối cùng của quá trình khởi động
- Cần khởi động các thanh ghi định hƣớng truyền dữ liệu DDRQS và thanh ghi dữ liệu của
cổng PORTQS, ngay cả khi chân tín hiệu đƣợc gán cho chức năng QSPI bằng thanh ghi
gán chân tín hiệu PQSPAR
- Tín hiệu chọn ngoại vi sẽ tác động khi thực hiện một lệnh trong RAM lệnh, tác động mức
cao hay thấp tùy theo bit tƣơng ứng trong PORTQS
6.12 Lập trình cho TPURAM.
TPURAM có 6 chế độ hoạt động
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 202
- Hoạt động trong chế độ bình thƣờng khi đƣợc cấp nguồn VBDD , khi đó nó có thể truy xuất
dữ liệu theo byte, từ hay từ dài, các byte cao luôn nằm ở địa chỉ chẵn truy xuất chỉ trong
một chu kỳ BUS ( bằng hai chu kỳ clock ) của hệ thống. Từ kép truy xuất bằng hai chu kỳ
BUS
- Chế độ chờ (Standby) nhằm giữ nguyên các giá trị trong TPURAM khi mất nguồn VDD.
Các giá trị trong RAM đƣợc giữ nguyên với nguồn Vstby để không làm mất dữ liệu. Trong
chế độ này các truy xuất từ RAM sẽ không đúng.
- Chế độ Reset cho phép CPU thực hiện hoàn tất chu kỳ BUS hiện hành trƣớc khi hệ thống
Reset
- Chế độ kiểm tra, RAM đƣợc nối tới khối SIM sử dụng để nhà sản xuất kiểm tra MCU
- Khi bit STOP của thanh ghi TRAMMCR đƣợc ghi vào giá trị 1, TPURAM chuyển qua chế
độ STOP, TPURAM không hoạt động, nhƣng các dữ liệu vẫn duy trì
- TPURAM có thể chạy các vi lệnh trong ROM của TPU do các đoạn mã lệnh của ngƣời
dùng và các chế độ mô phỏng đƣợc chính xác.
6.13 Lập trình sử dụng ngắt.
Các CPU32 cung cấp tám mức độ ƣu tiên ngắt (0-7), bảy vector ngắt tự động, và 200 vectơ
ngắt chuyển nhƣợng. Tất cả các ngắt với ƣu tiên ít hơn bảy có thể đƣợc che khuất bởi ngắt ƣu
tiên (IP) trong thanh ghi trạng thái. Các CPU32 xử lý ngắt nhƣ một loại không đồng bộ ngoại
lệ. Ngắt đƣợc dựa trên các trạng thái của các tín hiệu yêu cầu ngắt iIRQ [07:01] và giá trị mặt
nạ IP. Mỗi của các tín hiệu tƣơng ứng với một ƣu tiên ngắt. IRQ1 có ƣu tiên thấp nhất, và các
IRQ7 có ƣu tiên cao nhất.
Lĩnh vực IP bao gồm ba bit, giá trị nhị phân 000 đến 111 cho tám mặt nạ ƣu tiên. Mặt nạ ngăn
chặn một yêu cầu ngắt của một ƣu tiên thấp hơn hoặc bằng với giá trị mặt nạ (trừ IRQ7) từ việc
công nhận và xử lý. Khi IP chứa 000, ngắt không đƣợc phép đeo mặt nạ. Trong quá trình xử lý
ngoại lệ, lĩnh vực IP đƣợc thiết lập các ƣu tiên của ngắt đƣợc phục vụ.
Tín hiệu yêu cầu ngắt có thể đƣợc cho phép bởi các thiết bị bên ngoài hoặc các module vi điều
khiển. yêu cầu đƣờng dây đƣợc kết nối trong nội bộ bằng một cổng NOR có dây - đồng thời
yêu cầu của các ƣu tiên khác nhau có thể đƣợc thực hiện. Khẳng định nội bộ của một tín hiệu
yêu cầu ngắt không ảnh hƣởng đến trạng thái logic của chân MCU tƣơng ứng.
Chƣơng 6:Lập trình hợp ngữ trên họ VĐK 32-bit MC68332 Khoa Kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 203
Yêu cầu ngắt ngoài đƣợc chuyển đến CPU thông qua bus ngoài và SIM điều khiển ngắt logic.
CPU xử lý yêu cầu ngắt bên ngoài từ SIM
Ngoài IRQ [06:01] là đầu vào hoạt động tích cực mức thấp. IRQ7 là một đầu vào hoạt động
tích cực mức thấp. IRQ7 đòi hỏi cả một cạnh lên và một mức điện áp.
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 204
CHƢƠNG 7
CÁC VI MẠCH HỖ TRỢ VIỆC THIẾT KẾ HỆ THỐNG DỰA TRÊN CÁC HỌ TRÊN.
( 6 TIẾT)
Các thiết bị ngoại vi là hết sức cần thiết trong việc thiết kế một hệ thống điều khiển, các IC
thƣờng đƣợc giao tiếp với vi xử lý/ vi điều khiển
- IC chuyển đổi tƣơng tự sang số và ngƣợc lại ( ADC/ DAC )
- IC nhớ ( RAM / ROM )
- IC giải mã
- IC đệm
Nội dung chính chƣơng 7 gồm:
7.1 IC chuyển đổi tƣơng tự sang số ADC
7.2 IC chuyển đổi số sang tƣơng tự DAC
7.3 Vi mạch nhớ ROM
7.4 Vi mạch nhớ RAM
7.5 Vi mạch cổng đệm
7.5 Giải mã địa chỉ
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 205
7.1 IC chuyển đổi tƣơng tự sang số ADC
Bộ chuyển đổi tƣơng tự sang số – ADC (Analog to Digital Converter) lấy mức điện thế vào
tƣơng tự sau đó một thời gian sẽ sinh ra mã đầu ra dạng số biểu diễn đầu vào tƣơng tự.
Quá trình chuyển đổi A/D nhìn chung đƣợc thực hiện qua 4 bƣớc cơ bản, đó là: lấy mẫu; nhớ
mẫu; lƣợng tử hóa và mã hóa. Các bƣớc đó luôn luôn kết hợp với nhau trong một quá trình
thống nhất.Một số IC chuyển đổi tƣơng tự sang số điển hình nhƣ: 0808, 0809
7.1.1 Vi mạch 0809
Vi mạch 0809 là IC biến đổi ADC loại CMOS chuyển tƣơng tự sang 8 bit số, bộ chọn 8 kênh
và bộ logic điều khiển tƣơng thích. IC 0809 loại trừ khả năng cần thiết điều chỉnh điểm 0 bên
ngoài và khả năng điều chỉnh tỷ số làm tròn. ADC 0809 dễ dàng giao tiếp với các bộ vi xử lý.
Hình 7-1 Hình dáng & Sơ đồ chân IC ADC-0809
7.1.2 Vi mạch 0808
Hình 7-2 Sơ đồ chân IC 0808
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 206
IC ADC 0808 là IC có 8 ngõ vào tƣơng tự, Điện áp tham chiếu có thể đƣợc thiết lập bằng cách
sử dụng chân Vref + và Vref-.
7.1.3 Ứng dụng
ADC có nhiều ứng dụng trong thực tế, sơ đồ kết nối IC 0808/0809 với vi xử lý nhƣ sau
Hình 7-3 Giao tiếp của IC 0809 với vi xử lý
7.2 IC chuyển đổi số sang tƣơng tự DAC
IC chuyển đổi số sang tƣơng tự (digital-to-analog converters: DAC) bao gồm loại 8-bit, 10-bit,
12-bit, 14-bit, 16-bit, 18-bit và độ phân giải 20-bit. Các ứng dụng chuyển đổi DAC phổ biến
trong truyền thông, công nghiệp, tiêu dùng và nhiều hơn nữa
7.2.1 Vi mạch AD7524
IC AD7524 ( IC CMOS) là IC chuyên dụng dùng để chuyển đổi từ số sang tƣơng tự. AD7524
là bộ chuyển đổi D/A 8 bit, dùng mạng R/2R ladder.
Hình 7-4 Hình dạng và sơ đồ chân IC AD7524
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 207
Vi mạch AD7524 có đầu vào 8 bit, có thể bị chốt dƣới sự điều khiển của đầu vào CHỌN
CHIP ̅̅̅̅ và đầu vào ghi ̅̅ ̅̅ ̅ khi cả hai đầu vào điều khiển này đều ở mức thấp, thì 8 đầu vào
dữ liệu D7 – D0 sinh ra dòng tƣơng tự OUT1 và OUT2 (thƣờng OUT2nối đất).
7.2.2 Vi mạch DAC 0830
DAC 0830 là IC thuộc họ CMOS. Là bộ chuyển đổi D/A 8 bit dùng mạng R/2R ladder. Có thể
giao tiếp trực tiếp với các vi xử lý để mở rộng hoạt động chuyển đổi D/A.
Hình 7-5 Sơ đồ chân và hình dạng IC 0830
7.2.3 Ứng dụng
Ứng dụng của IC AD7524 thƣờng dùng giao tiếp với các vi xử lý và vi điều khiển để chuyển
đổi tín hiệu số sang tƣơng tự nhằm điều khiển các đối tƣợng cần điều khiển.
Hình 7-6 Giao tiếp AD7524 với 8051
Ứng dụng của IC 0830 để điều khiển volume có sơ đồ nhƣ hình sau
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 208
Hình 7-7 Mạch ứng dụng điều khiển volume của IC 0830
7.3 Vi mạch nhớ ROM
Bộ nhớ ROM ( Read Only Memory - Bộ nhớ chỉ đọc ): đây là bộ nhớ cố định, dữ liệu không bị
mất khi mất điện, bộ nhớ này thƣờng dùng để nạp các chƣơng trình BIOS ( Basic Input Output
System - Chƣơng trình vào ra cơ sở ) đây là chƣơng trình phục vụ cho quá trình khởi động máy
tính và chƣơng trình quản lý cấu hình của máy.
ROM là một mạch tổ hợp có n ngõ vào và m ngõ ra . Các ngõ vào đƣợc gọi là địa chỉ
(address input) và thƣờng đặt là A0A1An-1 . Các ngõ ra đƣợc gọi là các ngõ ra dữ liệu (data
output) và thƣờng đặt tên là D0D1D2Dm-1.
Hình 7-8 Sơ đồ khối của ROM
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 209
7.3.1 Các loại ROM đặc trƣng
MROM ROM mặt nạ (Mask Programed ROM): nhà sản xuất đã ghi (lập trình) các vị trí nhớ
của nó theo yêu cầu của khách hàng. Một phím âm bản, gọi là mặt nạ đƣợc sử dụng để kiểm
soát các mối nối điện trên chip
PROM ROM cho phép lập trình (Programmable ROM – PROM): chỉ lập trình đƣợc một lần vì
cầu chì đứt không thể nối lại đƣợc từ bên ngoài. Nên khi nạp chƣơng trình sai hay muốn đổi
chƣơng trình thì ta phải dùng một PROM mới, điều này gây phức tạp và tốn kém chi phí.
EPROM ROM lập trình xóa đƣợc (Erasable PROM – EPROM): cho phép ngƣời sử dụng có
thể lập trình và xóa đƣợc. Đây là loại ROM rất tiện cho ngƣời sử dụng vì có thể dùng đƣợc
nhiều lần bằng cách xóa bằng tia cực tím U.V. (Ultra Violet) và nạp lạ i
EEPROM ROM lập trình và xóa đƣợc bằng điện (Electrically Erasable PROM – EEPROM)
hay Electrically Alterable PROM, EAPROM: Những khuyết điểm của EPROM đƣợc khắc
phục với sự ra đời của EEPROM. EEPROM giữ lại cấu trúc cổng thả nổi của EPROM, nhƣng
có thêm một lớp oxit rất mỏng phía trên cực máng của ô nhớ MOSFET. Sự bổ sung này hình
thành nên đặc điểm chính của EEPROM đó là khả năng xóa bằng điện
FLASH ROM : có tốc độ truy xuất nhanh, có mật độ tích hợp cao nhƣng giá thành thấp, Hầu
hết các FLASH ROM sử dụng cách xóa đồng thời cả khối dữ liệu nhƣng rất nhanh (hàng trăm
ms so với 20 min của U.V. EPROM
7.3.2 Một vài bộ nhớ ROM
Hình 7-9 Sơ đồ chân và bảng trạng thái của M2764A
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 210
IC EPROM M27C62A là loại EPROM có dung lƣợng lớn 8Kx8 và thời gian truy xuất là
150ns. Đây là loại EPROM đang phổ biến trên thị trƣờng, có hai dạng vỏ khác nhau để ngƣời
dùng có thể chọn lựa tuỳ theo nhu cầu.
7.4 Vi mạch nhớ RAM
RAM là bộ nhớ truy xuất bất kỳ còn gọi là bộ nhớ đọc viết (RWM: read write memory). Nghĩa
là mọi địa chỉ nhớ đều cho phép dễ dàng truy cập nhƣ nhau. Trong máy tính RAM đƣợc dùng
nhƣ bộ nhớ tạm hay bộ nhớ nháp.Thông tin trên RAM chỉ mang tính tạm thời trong một thời
gian nào đó và sẽ bị mất khi mất điện .
Ƣu điểm chính của RAM: đọc hay viết dữ liệu lƣu trữ ở RAM bất cứ lúc nào.
Nhƣợc điểm của RAM: do RAM là một dạng bộ nhớ ‗‗bốc hơi‘‘ nên khi mất điện, dữ liệu
sẽ bị xóa do đó cần nguồn nuôi nhƣ pin dự phòng (back up batterry).
RAM có thể chia làm 2 loại : RAM động (DRAM) và RAM tĩnh (SRAM)
IC MCM6206BA: là loại RAM tĩnh có cấu tạo CMOS, dung lƣợng 32K x 8 bit
Hình 7-10 Sơ đồ chân IC 6206
IC MCM6264C: là IC SRAM thực tế hiện đang có mặt trên thị trƣờng là MCM6264C CMOS
8Kx8 với chu kỳ đọc và chu kỳ ghi là 12ns, công suất tiêu thụ ở chế độ standby chỉ là 100mW
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 211
Hình 7-11 Sơ đồ chân và hình dạng IC 6264
IC DRAM TMS44100: Trên thị trƣờng đang có mặt IC DRAM TMS44100 4Mx1 của hãng
Texas Intruments. Đây là lạo RAM động có tốc độ cao
Hình 7-12 Sơ đồ chân và chức năng của các chân IC 44100
Bộ nhớ RAM là bộ nhớ không thể thiếu trong bất kỳ hệ thống máy tính nào, CPU chỉ có thể
làm việc đƣợc với dữ liệu trên RAM vì chúng có tốc độ truy cập nhanh, toàn bộ dữ liệu hiển thị
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 212
trên màn hình cũng đƣợc truy xuất từ RAM. Khi ta khởi động máy tính để bắt đầu một phiên
làm việc mới, hệ điều hành cùng với các trình điều khiển phần cứng đƣợc nạp lên bộ nhớ
RAM. Khi ta chạy bất kể một chƣơng trình ứng dụng nào, thí dụ PhotoShop thì công cụ của
chƣơng trình này cũng đƣợc nạp lên bộ nhớ RAM.
7.5 Vi mạch cổng đệm
Rất nhiều trƣờng hợp cần phải sử dụng Mạch đệm để phối hợp trở kháng của một Ngõ ra với
nhiều Ngõ vào phía sau hoặc phải sử dụng Mạch đệm có điều khiển để phối hợp tuần tự luân
phiên giữa các Ngõ ra song song để tránh bị tranh chấp Ngõ ra có thể gây chập mạch giữa các
Ngõ ra ở mức Logic L với các Ngõ ra ở mức Logic H
IC 74244: tích hợp tám cổng đệm cơ bản
Trong mỗi IC 74244 có chứa 2 nhóm mỗi nhóm có 4 Mạch Đệm đƣợc phối hợp với 2 Chân
lệnh Điều khiển là chân số 1 và chân số 19 sao cho khi hai chân này đƣợc đặt ở mức thấp (tức
là 0V hay còn gọi là mức Low = L) thì nó mới cho phép các Ngõ ra hoạt động(có Tín hiệu ra
theo sự xuất hiện của Tín hiệu vào).
Ngƣợc lại, nếu các Chân Điều khiển bị đặt ở mức cao (5V hay còn gọi là mức High = H) thì
Ngõ ra bị khống chế (ở trạng thái Trở kháng cao tức là hở mạch với mạch ngoài).
Hình 7-13 Sơ đồ chân và cấu trúc của IC 74244
Chƣơng 7:Các vi mạch hỗ trợ việc thiết kế hệ thống dựa trên các họ trên
Chủ biên: Nguyễn Đức Lợi Trang 213
7.6 Giải mã địa chỉ
74LS138 là IC MSI giải mã 3 đƣờng sang 8 đƣờng hay tách kênh 1 đƣờng sang 8 đƣờng
thƣờng dùng và có hoạt động logic tiêu biểu, nó còn thƣờng đƣợc dùng nhƣ mạch giải mã địa
chỉ trong các mạch điều khiển và trong máy tính.
Hình 7-14 Sơ đồ chân và kết nối dạng khối của IC 74LS138
Hình 7-15 Sơ đồ giao tiếp với IC nhớ
IC 74138 chỉ cho phép các Ngõ ra biến đổi theo sự thay đổi của các Bit ngõ vào khi và chỉ khi
G1 = 1 và G2 = 0. Nếu G2 = 1 hoặc G1 = 0 thì các Ngõ ra đều bị khóa ở mức cao. Khi các
Chân lệnh cho phép xuất kết quả đến Ngõ ra thì trong bất kỳ trƣờng hợp nào cũng chỉ có một
Yn trong 8 Ngõ ra (từ Y0 đến Y7) đƣợc đặt ở mức thấp sao cho giá trị n của Ngõ ra tƣơng đƣơng
với giá trị của Ngõ vào.
Chú ý: Có 2 chân Điều khiển G2 gồm G2A và G2B và đƣợc gọi chung là G2 là 2 đƣờng điều
khiển độc lập nhƣng có cùng tính năng điều khiển nhƣ nhau.
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 214
CHƢƠNG 8 : THIẾT KẾ CÁC HỆ THỐNG. ( 6 TIẾT)
Thực hiện các mạch giao tiếp của vi xử lý với các thiết bị ngoại vi nhƣ:
- Giao tiếp với Led đơn
- Giao tiếp Led 7 thanh
- Giao tiếp với OPTO
- Giao tiếp với Rơle
- Giao tiếp với LCD
Trình bày các sơ đồ kết nối và cách thực hiện giao tiếp phần cứng
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 215
8.1 Nguồn cung cấp – Reset
Vi điều khiển cần có nguồn ổn áp +5V DC, có thể dùng IC ổn áp 3 chân 7805
Hình 8-1 Mạch nguồn cung cấp ổn áp 5 volt DC
8.2 Xung đồng hồ
Mặc dù vi điều khiển đã tích hợp sẵn bên trong bộ dao động, nó không thể hoạt động mà không
có hai tụ điện bên ngoài và tinh thể thạch anh giúp ổn định hoạt động và xác định tần số của nó
(tốc độ hoạt động của vi điều khiển). Tất nhiên, không phải lúc nào cũng có thể áp dụng giải
pháp này, một trong số đó là cung cấp tín hiệu đồng hồ từ một nguồn đặc biệt thông qua
invertor.
Hình 8-2 Sơ đồ tín hiệu xung nối với vi điều khiển
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 216
8.3 Thiết bị chuyển mạch
Không có thiết bị chuyển mạch đơn giản hơn là công tắc Switch và nút nhấn Push. Đây là cách
đơn giản nhất để phát hiện sự xuất hiện của một điện áp trên chân vào của vi điều khiển
Giải pháp đơn giản cho vấn đề này là kết nối một mạch RC đơn giản để ngăn chặn sự thay đổi
điện áp nhanh chóng. Các giá trị của các thành phần không thể xác định chính xác. Trong hầu
hết các trƣờng hợp, nó đƣợc khuyến cáo sử dụng các giá trị thể hiện trong hình bên dƣới.
Hình 8-3 Mạch RC dùng chống dội khi chuyển mạch
Nếu ổn định hoàn toàn là cần thiết thì các biện pháp triệt để nên đƣợc thực hiện. Đầu ra của các
mạch, thể hiện trong hình (RS flip-flop), sẽ thay đổi trạng thái logic của nó chỉ sau khi phát
hiện các xung đầu tiên kích hoạt. Giải pháp này là tốn kém (chuyển đổi SPDT), nhƣng hiệu
quả.
Hình 8-4 Mạch Flipflop dùng chống dội khi chuyển mạch
8.4 Giao tiếp với OPTOCOUPLER
Một optocoupler là một thiết bị thƣờng đƣợc sử dụng để vi điều khiển tránh khả năng nguy
hiểm hoặc điện áp trong môi trƣờng xung quanh.
Optocouplers thƣờng có một, hai hoặc bốn nguồn ánh sáng (điốt LED) trên đầu vào. Đối diện
với điốt, có một số yếu tố nhạy cảm với ánh sáng (phototransistors, photo_thyristors hoặc
photo_triacs).
Các optocouplers thƣờng đƣợc sử dụng nhất có phototransistors trên kết quả đầu ra của họ
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 217
Hình 8-5 Mạch giao tiếp dùng OPTO
Optocoupler sử dụng một đƣờng truyền quang học ngắn để chuyển một tín hiệu giữa các yếu tố
của mạch, trong khi vẫn giữ cách điện. Bằng cách này, các vi điều khiển và thiết bị điện tử
khác đắt tiền đƣợc hoàn toàn bảo vệ khỏi điện áp cao và nhiễu là nguyên nhân phổ biến nhất
làm huỷ hoại, gây tổn hại hoặc hoạt động không ổn định của các thiết bị điện tử trong thực tế.
8.5 Giao tiếp với Rơle
Rơ le là một công tắc điện để mở và đóng dƣới sự kiểm soát của một mạch điện.
Hình 8-6 Sơ đồ cấu tạo của Rơle đơn giản
Do đó nó đƣợc kết nối với chân ra của vi điều khiển và sử dụng để bật / tắt các thiết bị điện áp
cao nhƣ động cơ, máy biến áp, máy sƣởi, bóng đèn, hệ thống ăng-ten.
Có nhiều loại khác nhau của rơle nhƣng tất cả đều hoạt động theo cùng một cách. Khi dòng
điện chạy qua cuộn dây, rơle đƣợc vận hành bởi một nam châm điện để mở hoặc đóng một
hoặc nhiều bộ kết nối. Tƣơng tự nhƣ optocouplers, rơle không có kết nối mạ (tiếp xúc điện)
giữa đầu vào và đầu ra mạch.
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 218
Hình 8-7 Mạch xuất từ vi điều khiển qua Rơle
8.6 Mạch giao tiếp với Led đơn
Giá trị đặc trƣng của các điốt thƣờng đƣợc sử dụng nhất đƣợc hiển thị trong bảng dƣới đây.
Nhƣ đã thấy, có ba loại chính của đèn LED. Những tiêu chuẩn có độ sáng ful ở hiện tại của
20mA. Điốt hiện tại thấp đƣợc độ sáng ful lúc mƣời lần thấp hơn hiện tại trong khi điốt siêu
sáng tạo ra ánh sáng tập trung hơn so với những tiêu chuẩn.
Cách tính điện trở hạn dòng cho led đơn
Hình 8-8 Sơ đồ nối Led với điện trở hạn dòng
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 219
Bảng 8.1: Thông số của LED
8.7 Mạch giao tiếp với LED 7 thanh
Led 7 thanh bao gồm nhiều led tích hợp bên trong, các led đƣợc nối chung nhau 1 chân. Trong
thực tế có 2 loại led 7 thanh là led 7 thanh A-nốt chung và led 7 thanh Ka-tốt chung.
Hình 8-9 Hình dạng và sơ đồ chân của Led 7 thanh
COLOR TYPE
TYPICAL
CURRENT
ID (MA)
MAXIMAL
CURRENT
IF (MA)
VOLTAGE
DROP UD
(V)
Infrared - 30 50 1.4
Red Standard 20 30 1.7
Red Super Bright 20 30 1.85
Red Low Current 2 30 1.7
Orange - 10 30 2.0
Green Low Current 2 20 2.1
Yellow - 20 30 2.1
Blue - 20 30 4.5
White - 25 35 4.4
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 220
Led loại A-nốt chung, các led sẽ có chung nhau chân nguồn (chân dƣơng), chân còn lại của led
nào đƣợc nối đất thì led đó sẽ sáng. Led loại Ka-tốt chung, các led sẽ nối chung nhau chân đất
(chân âm), chân còn lại của led nào đƣợc nối nguồn thì led đó sẽ sáng.
Hiển thị kết nối với vi điều khiển thƣờng chiếm một số lƣợng lớn các giá trị I / O pins, có thể là
một vấn đề lớn, đặc biệt nếu nó là cần thiết để hiển thị số nhiều chữ số
Hình 8-10 Mạch điều khiển với nhiều Led 7 thanh
Lần đầu tiên một byte đơn vị đại diện đƣợc áp dụng trên một cổng vi điều khiển và một T1
đƣợc kích hoạt cùng một lúc. Sau một thời gian, T1 tắt, một byte đại diện cho hàng chục đƣợc
áp dụng trên một cổng và T2 đƣợc kích hoạt. Quá trình này đƣợc lặp đi lặp lại theo chu kỳ ở
tốc độ cao cho tất cả các chữ số và transistor tƣơng ứng.
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 221
Hình 8-11 Sơ đồ diễn tả vi điều khiển làm sáng số 5 trên Led 7 đoạn
8.8 Giao tiếp với màn hình tinh thể lỏng Liquid Crystal Displays (LCD)
Một màn hình LCD đƣợc sản xuất đặc biệt để đƣợc sử dụng với vi điều khiển, có nghĩa là nó
không thể đƣợc kích hoạt bằng mạch IC tiêu chuẩn. Nó đƣợc sử dụng để hiển thị thông điệp
khác nhau trên một màn hình hiển thị tinh thể lỏng thu nhỏ. Nó sẽ hiển thị tất cả các chữ của
bảng chữ cái, chữ cái Hy Lạp, dấu chấm câu, ký hiệu toán học vv Ngoài ra, nó có thể hiển thị
các biểu tƣợng tạo ra bởi ngƣời sử dụng. Tính năng hữu ích khác bao gồm chuyển đổi tự động
thông báo (trái và phải), xuất hiện con trỏ, đèn nền LED, vv
Hình 8-12 Sơ đồ chân của LCD
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 222
Bảng 8.2 Chức năng các chân của LSD
CHỨC
NĂNG
SỐ
CHÂN
TÊN
MỨC
LOGIC
MÔ TẢ
Ground 1 Vss - 0V
Power
supply
2 Vdd - +5V
Contrast 3 Vee - 0 – Vdd
Control of
operating
4 RS
0
1
D0 – D7 are interpreted as commands
D0 – D7 are interpreted as data
5 R/W
0
1
Write data (from controller to LCD)
Read data (from LCD to controller)
6 E
0
1
From 1 to
0
Access to LCD disabled
Normal operating
Data/commands are transferred to
LCD
Data /
commands
7 D0 0/1 Bit 0 LSB
8 D1 0/1 Bit 1
9 D2 0/1 Bit 2
10 D3 0/1 Bit 3
11 D4 0/1 Bit 4
12 D5 0/1 Bit 5
13 D6 0/1 Bit 6
14 D7 0/1 Bit 7 MSB
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 223
Một màn hình LCD bao gồm hai dòng, mỗi dòng có chứa 16 ký tự. Mỗi ký tự bao gồm 5x8
hoặc 5x11 điểm ma trận
Hình 8-13 Các điểm sáng trên LCD
Màn hình hiển thị độ tƣơng phản phụ thuộc vào điện áp cung cấp điện cho dù tin nhắn đƣợc
hiển thị trong một hoặc hai dòng. Vì lý do này, thay đổi điện áp 0-VDD đƣợc áp dụng trên chân
đánh dấu là Vee. Biến trở tinh chỉnh điện thế thƣờng đƣợc sử dụng cho mục đích đó. Một số
màn hình LCD có tích hợp đèn nền (đèn LED màu xanh hoặc màu xanh lá cây). Khi đƣợc sử
dụng trong quá trình hoạt động, một điện trở hạn chế hiện nay nên đƣợc nối tiếp kết nối với
một trong các chân cung cấp điện đèn nền (tƣơng tự nhƣ đèn LED).
Hình 8-14 Kết nối LCD có điện trở hạn dòng
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 224
Tùy thuộc vào có bao nhiêu dòng đƣợc sử dụng để kết nối màn hình LCD với vi điều khiển, có
chế độ màn hình LCD 8-bit và 4-bit. Chế độ màn hình LCD 8-bit sử dụng kết quả đầu ra D0-
D7 để truyền dữ liệu. Mục đích chính của chế độ LED 4-bit là để tiết kiệm các chân I / O của
vi điều khiển. Chỉ có 4 bit cao hơn (D4-D7) đƣợc sử dụng cho truyền thông, trong khi bit khác
có thể để lại không có liên quan. Mỗi dữ liệu đƣợc gửi đến màn hình LCD trong hai bƣớc sau:
bốn bit cao hơn đƣợc gửi đầu tiên (thƣờng là thông qua các đƣờng D4-D7), sau đó bốn bit thấp
hơn. Khởi tạo cho phép màn hình LCD để liên kết và giải thích bit nhận đƣợc một cách chính
xác. Dữ liệu hiếm khi đƣợc đọc từ màn hình LCD (nó chủ yếu chuyển từ vi điều khiển với màn
hình LCD), do đó thƣờng có thể tiết kiệm thêm chân I / O bằng cách đơn giản kết nối chân R /
W xuống đất. Tiết kiệm nhƣ vậy có giá của nó, tin nhắn sẽ đƣợc hiển thị bình thƣờng, nhƣng
nó sẽ không thể đọc cờ busy vì nó không thể đọc màn hình hiển thị.
Hình 8-15 Sơ đồ kết nối LCD với vi điều khiển
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 225
8.9 Giao tiếp với RS232
Để cho phép giao tiếp nối tiếp thành công UART, cần thiết đáp ứng quy định cụ thể các tiêu
chuẩn RS232. Nó chủ yếu đề cập đến cấp điện áp theo yêu cầu của tiêu chuẩn này. Tiêu chuẩn
phù hợp trong tin nhắn là -10V cho logic (1), trong khi +10 V là cho logic (0). Vi điều khiển
chuyển đổi dữ liệu một cách chính xác vào định dạng nối tiếp, nhƣng điện áp cung cấp điện của
nó chỉ là 5V. Vì nó không dễ dàng chuyển đổi 0V vào 10V và 5V vào-10V, hoạt động này cho
cả truyền và nhận bên trái. Ở đây, MAX232 của Maxim đƣợc sử dụng bởi vì nó là phổ biến
rộng rãi, giá rẻ và đáng tin cậy.
Sơ đồ bên dƣới cho thấy làm thế nào để nhận đƣợc tin nhắn đƣợc gửi bởi một máy tính. Bộ
đếm thời gian T1 tạo ra tỷ lệ boud. Vì khi tinh thể thạch anh 11,0592 MHz đƣợc sử dụng ở đây,
nó rất dễ dàng để có đƣợc tốc độ truyền tiêu chuẩn tới 9600 baud. Mỗi dữ liệu nhận đƣợc ngay
lập tức đƣợc chuyển đến chân cổng P1.
Hình 8-16 Sơ đồ giao tiếp vi xử lý với Max 232
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 226
8.10 Giao tiếp với bàn phím
Vi xử lý có thể giao tiếp với các bàn phím bên ngoài
Hình 8-17 Giao tiếp với phím đơn
Hình 8-18 Giao tiếp với module bàn phím
Chƣơng 8:Thiết kế các hệ thống Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 227
Thuật toán đọc bàn phím
- Khởi tạo cho cổng P2 = 0xFF
- Lần lƣợt cho hàng bằng 0
- Với mỗi hàng kiểm tra cột, nếu cột nào bằng 0 thì phím tƣơng ứng với hàng và cột đó
đƣợc bấm.
- Với mỗi phím đƣợc bấm lƣu lại kết quả ( để sử dụng sau này – nếu có )
Tài liệu tham khảo Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 228
PHỤ LỤC
Bài tập – thực hành
Phần bài tập sau mỗi chƣơng và thực hành trên KIT vi điều khiển 89C51 đƣợc giáo viên bộ
môn biên soạn riêng ( không ghép chung trong cuốn giáo trình này )
Các em tìm đọc:
Bài tập các họ vi điều khiển/ vi xử lý từ cơ bản đến nâng cao
Tài liệu hƣớng dẫn thực tập vi điều khiển trên KIT 89C52
Hƣớng dẫn lập trình mô phỏng Model Sim
Tài liệu tham khảo Khoa kỹ thuật Điện – Điện tử
Chủ biên: Nguyễn Đức Lợi Trang 229
TÀI LIỆU THAM KHẢO
[1] Rolin D. McKinl, ―Introduction to Microcontrollers‖, 2005
[2] Muhammad Ali Mazidi ,Janice Gillispie Mazidi,: ―The 8051 Microcontroller and
Embedded Systems Using Assembly and C‖ (Second Edition), 2010
[3] M68300 famaly MC68332 User‘s manual Motorola, INC. 1995
[4] Pentice Hall , ―The 8088/8086 family : Designing, programming and interfacing‖ , 1987
[5] Technical summary 32-bit modular microcontroller Motorola, INC. 1996
[6] Sharon Darley, Mark Maiolanie and Charles Melear An introduction to the MC68331
and MC68332, 1996
[7] Tống Văn On, ― Họ vi điều khiển 8051‖
[8] Hệ vi điều khiển 8051-NXB Lao động & Xã Hội, 2001. (Bản dịch quyển ―The 8051
Microcontroller‖, I.Scott Mackenzie, NXB Prentice Hall ( 2nd Ed.) 1995
[9] Bài thí nghiệm vi xử lý ( hệ vi điều khiển 8051 ) Bộ môn Kỹ thuật điện tử – Đại học
Bách khoa TP HCM.
Một số trang Web
Các file đính kèm theo tài liệu này:
- giao_trinh_vi_xu_ly_phan_2.pdf