Tải bản đầy đủ (.doc) (147 trang)

giới thiệu về z80 và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.8 MB, 147 trang )

Luận văn tốt nghiệp
LỜI NÓI ĐẦU
Ngày nay với sự phát triển của xã hội cùng với sự phát triển của
khoa học kỹ
thuật, cho nên nhu cầu về thông tin trở nên thiết yếu đối với con người
trong cuộc sống cũng như trong hoạt động sản xuất kinh doanh. Để đáp ứng
nhu cầu trên, quang báo là hình thức cung cấp thông tin hữu ích không thể
thiếu trong cuộc sống hằng ngày. Do đó quang báo ngày càng phát triển
tinh vi hơn, đa dạng hơn, từ việc thiết kế quang báo với văn bản được ghi
chết trong ROM, đến việc thiết kế một KIT vi xử lý để điều khiển.
Quang báo là hình thức thông báo trên bảng đèn. Bảng đèn quang
báo gồm nhiều Ma Trận LED ghép lại, mỗi một Ma Trận biểu diễn một kí
tự. Tùy chiều dài của bảng đèn mà có thể hiển thò những bản tin có độ dài
khác nhau. Các từ trong văn bản sẽ lần lượt xuất hiện và chạy dần từ phải
sang trái. Khi văn bản đã hiển thò đến từ cuối cùng thì từ đầu tiên lại bắt
đầu xuất hiện trở lại. Quá trình đó cứ tiếp tục lại mãi.
Bên cạnh đó, với sự ra đời của máy tính điện tử đặc biệt là máy vi
tính, chúng có những tính năng ưu việt như khả năng xử lý dữ liệu nhanh
chóng, độ tin cậy cao, lưu trữ lượng thông tin lớn và quan trọng hơn cả là
máy tính có thể kết hợp với nhiều thiết bò ngoại vi tùy theo mục đích ứng
dụng cụ thể, mà việc trao đổi và điều khiển trở nên đơn giản, chúng phụ
thuộc vào phần mềm điều khiển. Dựa vào tính đa dạng và mềm dẻo của
máy tính người ta tìm cách ứng dụng nó vào mục đích quảng cáo, chẳng hạn
như dùng trong quang báo. Nhờ vậy, việc thiết kế phần cứng cho quang báo
trở thành ít phức tạp hơn, nhưng độ tin cậy cao hơn. Trong thực tế để hiển
thò các văn bản, người ta dùng các kiểu chữ là các Ma Trận LED 5x7, 5x8,
8x12 hoặc 8x14 tuỳ thuộc vào mục đích sử dụng và độ phân giải.
Theo cách nghó đó việc thiết kế mạch quang báo kết hợp giữa KIT vi
xử lý và máy tính được chúng em trình bày trong luận văn này. Phần mềm
điều khiển viết bằng ngôn ngữ PASCAL. Ở đây máy tính đóng vai trò
truyền dữ liệu và điều khiển còn KIT vi xử lý có nhiệm vụ lưu trữ và thực


hiện chương trình quang báo. Việc kết hợp giữa hai thiết bò làm cho quang
báo trở nên đa dạng, phong phú, độ tin cậy cao và dễ dàng sử dụng. Ngoài
ra Kit vi xử lý còn có thể thực hiện chương trình quang báo độc lập với máy
tính nếu như điều kiện thực tế không cho phép.
Mặt dù đã dành nhiều thời gian để thực hiện đề tài nhưng do kiến
thức và tay nghề có hạn nên không tránh khỏi thiếu sót, chúng em rất
mong sự góp ý của q thầy cô và các bạn để luận văn được hoàn hảo hơn.
Chúng em chân thành cảm ơn thầy Nguyễn Xuân Đông, cùng tất cả
q thầy cô đã trao dồi cho chúng em lượng kiến vô cùng q báu để hoàn
thành tốt luận văn đã được giao.
-1-
Luận văn tốt nghiệp
Cám ơn các bạn sinh viên đã có những góp ý q báu trong việc thực
hiện
luận văn này.
Sinh viên thực hiện
Nguyễn Thanh Tuấn
Nguyễn Ngọc Khánh
-2-
Luận văn tốt nghiệp
CHƯƠNG 1:
TỔNG QUAN KỸ THUẬT VI XỬ LÝ
I.1.Lòch sử phát triển vi xử lý.
I.1.1.Giới thiệu chung về hệ thống vi xử lý.
Vi xử lý là sự kết hợp của hai kỹ thuật công nghệ quan trọng:Đó là
máy tính dùng kỹ thuật số và các vi mạch điện tử. Hai công nghệ này kết
hợp lại với nhau và các nhà nghiên cứu đã chế tạo ra vi xử lý.
Chức năng chính của vi xử lý là xử lý dữ liệu chứa trong bộ nhớ. Để
làm được điều này vi xử lý phải có các mạch logic cho việc xử lý dữ liệu và
cần phải có chương trình. Chương trìng là tập hợp các lệnh. Vi xử lý thực

hiện một lệnh với trình tự như sau:
• Đón lệnh từ bộ nhớ.
• Giải mã lệnh
• Thực hiện lệnh.
I.1.2.Năng lực của vi xử lý.
Khi nói đến năng lực của Microprocessor có nghóa là nói đến khả năng
xử lý dữ liệu, có 3 thông số để đánh giá năng lực của Microprocessor.
•Chiều dài của từ dữ liệu của Microprocessor.
•Số lượng các ô nhớ mà Microprocessor có thể truy xuất được.
•Tốc độ mà Microprocessor có thể thực hiện một lệnh.
I.2.Các khái niệm cơ bản về cấu trúc của vi xử lý.
I.2.1.Chiều dài từ dữ liệu.
Microprocessor đầu tiên có chiều dài từ dữ liệu là 4 bit, tiếp theo là
các Microprocessor 8 bit, 16 bit, 32 bit và 64 bit. Mỗi Microprocessor có chiều
dài từ dữ liệu khác nhau có một khả năng ứng dụng khác nhau, các
Microprocessor có chiều dài từ dữ liệu lớn, tốc độ làm việc nhanh, khả năng
truy suất bộ nhớ lớn được dùng trong các công việc xử lý dữ liệu, điều khiển
phức tạp, các Microprocessor có chiều dài từ dữ liệu nhỏ hơn, khả năng truy
suất bộ nhớ nhỏ hơn, tốc độ làm việc thấp hơn được sử dụng trong các công
việc điều khiển và xử lý đơn giản chính vì thế các Microprocessor này vẫn
tồn tại.
I.2.2.Khả năng truy suất bộ nhớ.
Dung lượng bộ nhớ mà Microprocessor làm việc quyết đònh đến tốc độ
làm việc của Microprocessor. Các Microprocessor đầu tiên bò giới hạn về khả
năng truy xuất bộ nhớ. Microprocessor 4004 có 14 đường điạ chỉ nên có thể
truy xuất được 2
14
= 16.384 ô nhớ, vi xử lý 8 bit có 16 đường điạ chỉ nên có
thể truy xuất được 2
16

= 65.536 ô nhớ, Microprocessor 16 bit có 20 đường điạ
chỉ nên có thể truy suất 2
20
= 1.024.000 ô nhớ, Microprocessor 32 bit như 386
hay 68020 có thể truy suất 4 G ô nhớ, Microprocessor có khả năng truy xuất
bộ nhớ càng lớn nên có thể xử lý các chương trình lớn. Tùy theo ứng dụng cụ
thể mà chọn một Microprocessor thích hợp.
-3-
Luận văn tốt nghiệp
I.2.3.Tốc độ làm việc của microprocessor
Tần số xung clock cung cấp cho Microprocessor làm việc quyết đònh
đến tốc độ làm việc của Microprocessor. Microprocessor có tốc độ làm việc
càng lớn thì khả năng xử lý lệnh càng nhanh. Tần số xung Clock làm việc
của các Microprocessor được cho bởi các nhà chế tạo
I.2.4. Các thanh ghi của Microprocessor.
Các thanh ghi là một phần quan trọng trong cấu trúc của
Microprocessor. Các thanh ghi bên trong của Microprocessor dùng để xử lý
dữ liệu. Nếu Microprocessor có số lượng thanh ghi nhiều thì người lập chương
trình có thể viết các chương trình điều khiển Microprocessor đơn giản hơn,
làm tăng tốc độ xử lý chương trình. Nếu Microprocessor có số lượng thanh
ghi ít thì chương trình sẽ phức tạp hơn, tốc độ xử lý chương trình chậm hơn.
Vậy số lượng các thanh ghi bên trong Microprocessor cũng ảnh hưởng đến
tốc độ và khả năng xử lý chương trình.
I.2.5.Các lệnh của Microprocessor.
Tập lệnh của Microprocessor là một trong những yếu tố cơ bản để
đánh giá tốc độ làm việc của Microprocessor. Nếu Microprocessor có nhiều
mạch điện logic bên trong để thực hiện thì số lệnh điều khiển của
Microprocessor càng nhiều, khi đó Microprocessor càng lớn và độ phức tạp
càng lớn. Ví dụ so sánh 2 tập lệnh của 2 Microprocessor 8 bit là 8051 và Z80
thì 8051 có 111 lệnh khác nhau còn Z80 có 158 lệnh. Tập lệnh của một

Microprocessor càng nhiều rất có ích khi lập trình hay viết chương trình cho
Microprocessor.
I.2.6.Cấu trúc truy xuất bộ nhớ.
Một phần quyết đònh sự mềm dẻo trong lập trình là số lượng các kiểu
truy suất bộ nhớ khác nhau của Microprocessor, Microprocessor có nhiều kiểu
truy suất bộ nhớ sẽ có khả năng xử lý càng nhanh và cấu trúc các mạch điện
bên trong càng phức tạp. Microprosesor có chiều dài từ dữ liệu càng lớn thì
có số lượng các kiểu truy xuất bộ nhớ càng lớn.
I.2.7.Các mạch điện giao tiếp bên ngoài của Microprocessor.
Ngoài giao tiếp với bộ nhớ, Microprocessor có các mạch điện giao tiếp
với các mạch điện bên ngoài để điều khiển hay mở rộng khả năng điều
khiển. Các mạch điện bên ngoài là các IC và được gọi là IC ngoại vi. Mỗi IC
có một chức năng riêng, tùy thuộc vào yêu cầu điều khiển mà chọn các IC
ngoại vi.
-4-
Luận văn tốt nghiệp
Hình 1.1: Sơ đồ tổng quát của một hệ thống vi xử lý
I.3.Cấu trúc bên trong của bộ vi xử lý.
Một bộ vi xử lý gồm có hai phần chính là đơn vò thực hành EU
(execution unit) và đơn vò tương thích BUS là BIU.
+ EU thực hiện tất cả các phép tính toán số học và logic.
+ BIU thì thu nhận lệnh và dữ liệu từ bộ nhớ. Các lệnh này dùng để
điều khiển hoạt động CPU.
I.3.1.Đơn vò thực hiện.
EU là nơi xảy ra các quá trình xử lý dữ liệu trong bộ vi xử lý. Ở đây
có đơn vò số học và logic (ALU – ARITHMETIC LOGIC UNIT) cộng với các
thanh ghi xử lý số liệu và lưu trữ các kết quả trung gian. EU nhận dữ liệu
và các lệnh do BIU thu được rồi xử lý các thông tin đó. Dữ liệu đã được xử lý
trong EU lại được chuyển ra bộ nhớ hoặc thiết bò ngoại vi thông qua BIU.
Như vậy EU không liên hệ trực tiếp với bên ngoài mà không phải thông qua

BIU.
I.3.2.Đơn vò tương thích Bus.
BIU gồm các mạch phát điạ chỉ và điều khiển Bus, dãy chứa lệnh và
con trỏ lệnh. Nó có nhiệm vụ bảo đảm cho Bus được sử dụng hết dung lượng
để tăng tốc độ các thao tác.
I.3.3. Bus đòa chỉ, Bus dữ liệu, Bus điều khiển.
a> Bus đòa chỉ
Một đòa chỉ ứng với môït vò trí duy nhất trong bộ nhớ. Đòa chỉ rất cần
thiết để có thể truy xuất chính xác đến vò trí cần thao tác. Mỗi bộ vi xử lý
đều có số Bus đòa chỉ khác nhau tương ứng dung lượng nhớ mà CPU có thể
truy suất tới.
b> Bus dữ liệu
-5-
Luận văn tốt nghiệp
Bus dữ liệu (Data Bus) để chuyển thông tin từ CPU đến bộ nhớ và các
bộ phận khác (thao tác ghi), nhận dữ liệu vào CPU (thao tác đọc). Bus dữ
liệu vừa thu vừa phát thông tin nên được xem là Bus dữ liệu hai chiều. Tuy
nó không thể đồng thời thu và phát thông tin cùng một lúc.
c> Bus điều khiển
Các đường dây của Bus điều khiển dùng để xác đònh một lệnh thực
hiện vào lúc nào và như thế nào, xác đònh các thao tác đọc, viết bộ nhớ, xác
đònh chế độ hoạt động của CPU.
I.4.Cấu trúc CPU Z80.
I.4.1.Cấu tạo căn bản CPU Z80.
CPU Z80 có những đặc điểm sau:
• 8 bit tác động song song.
• 158 loại bệnh căn bản.
• Có 22 thanh ghi bên trong.
• Có tính năng ngắt (interrupt).
• Có thể nối trực tiếp với RAM tónh hoặc RAM động mà hầu như

không cần mạch phụ trợ bên ngoài.
• Tốc độ của lệnh Fetch là 1,6µs (Z – 80), 1µs (Z – 80A), 0,76µs (Z –
80B).
• Chỉ cần dùng một nguồn điện +5V duy nhất.
• Tất cả các chân xuất tín hiệu ra và nhập tín hiệu vào đều thuộc
loại TTL.
 Cấu trúc bên trong của CPU Z80
-6-
Luận văn tốt nghiệp
Các thanh ghi thường dùng
Thanh ghi chủ yếu Thanh ghi bổ trợ
Accumulator
A
Flag
F
Accumulator
A’
Flag
F’
B C B’ C’
D E D’ E’
H L H’ L’
Các thanh ghi chuyên dùng
Interrupt vector
Register I
Memory refesh
Register R
Index register IX
Index register IY
Stack Pointer SP

Program counter PC
I.4.2. Các thanh ghi của CPU -Z80.
a> Các thanh ghi đa năng: Bao gồm A, B, C, D,E, H, L.
Các thanh ghi đa năng có độ dài bằng số bit của BUS dữ liệu, chúng có
những chức năng sau:
• Là nơi CPU trao đổi dữ liệu, chứa dữ liệu được đọc từ bên ngoài
hay gởi dữ liệu ra.
• Là nơi chứa các toán hạng, kết quả của một phép toán.
b>Thanh ghi F (8bit):
Đây là thanh ghi cờ, và còn một thanh ghi cờ phụ là F’. Khác với các
thanh ghi trên, mỗi bit của thanh ghi cờ độc lập với nhau và được CPU
phản ánh tình trạng của kết quả sau một phép toán nào đó. Mỗi bit được
gọi là một cờ và người sử dụng có thể kiểm tra bằng cờ.
S Z X H X P/V N C
Cấu trúc thanh ghi cờ CPU Z80
+ Cờ ZERO (cờ Z):
Sau một phép toán kết quả bằng 0 thì cờ Z = 1 và nếu kết quả khác 0 thì cờ
Z = 0.
+ Cờ CARRY (cờ C):
Cờ này phản ánh số nhớ hay số mượn sau một lệnh cộng hoặc trừ. Cờ
này là cờ hiệu ở bit cao nhất của bộ tích lũy.
+ Cờ SIGN (cờ S):
Đây là cờ dấu hay cờ âm, phản ánh được đặt tính về dấu.
Nếu S = 0 :Kết quả phép toán là dương.
Nếu S= 1 :Kết quả phép toán là âm.
Nói cách khác cờ S chính là giá trò của bit MSB của thanh ghi.
-7-
Luận văn tốt nghiệp
+ Cờ PARITY hay cờ OVER LOW (cờ P hay cờ V):
Đây là cờ cực tính hay cờ âm, cờ này tùy theo tác vụ thực hiện mà có ý

nghóa P hay V.
Nếu phép tính là lý luận thì cờ này là P.
Nếu phép tính là số học cờ thì này là V.
Tất cả các cờ trên, người sử dụng có thể kiểm tra được. Ngoài ra
thanh ghi còn có hai cờ người sử dụng không thể kiểm tra được, các cờ này
dùng cho phép tính BCD.
+ Cờ CPU (cờ H):
Cờ này có tác dụng nhờ cờ Carry nhưng nó chỉ phản ánh số nhớ hay
số mượn sinh ra ở bit thứ tư.
+ Cờ SUBTRACT (cờ N):
Cờ này dùng cho phép tính DAA, cho cả hai phép cộng hoặc trừ.
c> Nhóm các thanh ghi phụ: A’, B’, C’, D’,E’, H’, L’
Sáu thanh ghi còn lại không phải là bộ tích lũy có thể được sử dụng
riêng như những thanh ghi 8 bit: B, C, D, G, H, L. Hay chúng có thể được
ghép cặp và sử dụng như những thanh ghi 16bit: BC, DE, HL.
d> Z80 còn có hai nhóm thanh ghi đặt biệt: có chức năng cố đònh người
lập trình không thể dùng nó cho một chức năng khác.
* Nhóm thanh ghi đặt biệt thứ nhất gồm có: thanh ghi vector ngắt
(I), thanh ghi làm tươi bộ nhớ (R), thanh ghi chỉ số (IX) và (IY), con trỏ
ngăn xếp (SP), thanh ghi PC (bộ đếm chương trình), thanh ghi I và thanh
ghi R là các thanh ghi có độ dài 8 bit, các thanh ghi còn lại có độ dài 16bit.
+Thanh ghi PC (program counter) :
Nguyên tắc đối với một bộ vi xử lý và thi hành một lệnh đặt tại đòa
chỉ là nội dung của thanh ghi PC. Như vậy, thanh ghi PC chứa đòa chỉ của
lệnh tại một thời điểm nào đó. Lúc mới cấp điện hay Reset CPU, thanh ghi
PC sẽ chứa một giá trò nào đó và đây chính là đòa chỉ để CPU bắt đầu thi
hành chương trình. Thanh ghi PC sẽ tự động tăng 1 sau mỗi byte, đặt biệt
giá trò của một thanh ghi PC có thể được nạp theo ý muốn của người sử
dụng. Điều này cho phép chương trình điều khiển có thể nạp lại.
+Thanh ghi SP (stack pointer) :

Đây là thanh con trỏ nhà hầm.
Nhà hầm (STACK): trong quá trình làm việc của CPU có thể xuất
hiện một yêu cầu như cất một thanh ghi hoặc một giá trò nào đó. Nó sẽ cất
những giá trò này được chọn là một vùng nhớ này gọi là nhà hầm.
+Thanh ghi vector ngắt I (interrupt vecror) :
Dùng trong khi phục vụ ngắt quãng cho phép chương trình phục vụ
ngắt quãng đặt ở trong bộ nhớ. Thanh ghi vector ngắt sẽ lưu trữ byte đòa
chỉ cao của một vector ngắt và byte đòa chỉ thấp sẽ được cung cấp từ thiết bò
yêu cầu ngắt bên ngoài. Người lập trình phải nạp byte đòa chỉ cao vào thanh
ghi I trước khi sử dụng ngắt. Thanh ghi I có độ dài từ dữ liệu 8 bit.
+Thanh ghi R (memory refresh) :
-8-
Luận văn tốt nghiệp
Đây là thanh ghi phục vụ việc làm tươi bộ nhớ. Trong CPU Z 80 có
chứa một bộ nhớ đệm để có làm tươi dễ dàng bộ nhớ động. Thanh ghi R sẽ
tự động tăng sau mỗi lần lấy lệnh. Dữ liệu trong thanh R được gửi ra phần
thấp của Bus đòa chỉ cùng với tín hiệu làm tươi trong khi CPU giải mã và
thực hiện lệnh vừa được lấy ra. Do đó việc làm tươi không làm chậm chương
trình và đối với người lập chương trình thì điều đó coi như không có.
+Thanh ghi IX và thanh ghi IY (index register) :
Đây là các thanh ghi chỉ sử dụng trong kiểu đònh vò chỉ số, hai thanh
ghi này kết hợp với một giá trò tương đối có độ dài 8 bit làm tăng khả năng
truy xuất bộ nhớ có điạ chỉ khác với điạ chỉ đang chứa trong thanh chỉ số.
* Nhóm thanh ghi đặt biệt thứ hai là các flipflop điều khiển ngắt.
Z80 có hai ngắt NMI và INT, ngắt NMI là ngắt không thể ngăn được,
ngắt INT là ngắt có thể ngăn được bởi người lập trình.
Ngắt không ngăn được NMI được tác động bởi yêu cầu ngắt NMI từ
bên ngoài, khi tác động đến ngõ vào ngắt này, vi xử lý sẽ nhảy đến đòa chỉ
0066
H

để thực hiện chương trình, đòa chỉ này cố đònh.
Ngắt có thể ngăn được INT bởi lệnh DI và có thể cho phép bởi lệnh EI.
Trạng thái hiện tại của ngắt này được thiết lập trong flip flop IFF1. Khi
người lập trình cho phép ngắt INT, IFF1 được set ở mức logic 1, khi người
lập trìng không cho phép ngắt INT thì IFF1 được reset về 0.
I.4.3.Bộ xử lý logic và số học ALU
Các lệnh logic và số học 8 bit của Z80 được thực hiện trong ALU,
ALU trao đổi với thanh ghi qua Bus dữ liệu bên trong. Các loại hàm mà
ALU thực hiện bao gồm:
ADD: lệnh cộng.
SUBTRACT: lệnh trừ.
LOGICAL AND: Lệnh AND thực hiện phép AND.
LOGICAL OR: Lệnh OR thực hiện phép logic OR.
LOGICAL EXCLUSIVE OR ( Lệnh XOR): thực hiện phép logic XOR.
COMPARE: Phép so sánh.
LEFT OR RIGHT SHIFTS OR ROTATOR: Lệnh quay vòng và dòch.
INCREMENT: Lệnh tăng 1.
DECREMENT: Lệnh giảm 1.
SET BIT: Lệnh thiết lập bit trạng thái.
RESET BIT: Lệnh đặt lại bit trạng thái.
TEST BIT: Lệnh kiểm tra bit.
-9-
Luận văn tốt nghiệp
I.4.4. Sơ đồ chân CPU Z80.
Hình 1.2: Sơ đồ chân và sơ đồ logic CPU-Z80
I.5. Bộ nhớ bán dẫn.
I.5.1.Bộ nhớ - Các bộ nhớ thông dụng.
Bộ nhớ là nơi lưu trữ dữ liệu để microprocessor xử lý.Các bộ nhớ của
Microprocessor là các IC, các IC nhớ này có thể đọc dữ liệu ra, ghi dữ liệu
vào hoặc chỉ đọc dữ liệu ra.

I.5.2.Hoạt động tổng quát của một bộ nhớ.
• Nhận đòa chỉ để lựa chọn đúng ô nhớ cần truy xuất.
• Nhận tín hiệu điều khiển để thực hiện việc truy xuất có nghóa là
nhận dữ liệu vào hay gởi dữ liệu ra.
• Nhận dữ liệu để lưu trữ vào ô nhớ khi thực hiện chức năng ghi.
• Gởi dữ liệu ra khi thực hiện chức năng đọc.
• Kiểm tra tín hiệu cho phép để biết bộ nhớ này có được phép truy
xuất hay không.
I.5.3.Phân loại bộ nhớ.
Thông thường bộ nhớ có thể được phân thành hai loại tổng quát
là:
* ROM(read only memory): bộ nhớ chỉ đọc
* RAM(random access memory): bộ nhớ truy suất ngẫu nhiên
a>ROM.
Đây là loại bộ nhớ không thay đổi thì các dữ liệu được lưu trữ trong
ROM không bò mất đi hay hư hỏng khi bò mất nguồn điện. ROM cũng có
nhiều dạng khác nhau người ta phân chúng thành 3 loại tiêu biểu :
-10-
Luận văn tốt nghiệp
+ MASKABLE ROM (ROM mặt nạ): Đây là loại ROM do nhà sản
xuất nạp sẳn chương trình, khi đã nạp chương trình thì các bit trong ROM
này không thay đổi được nữa.
+ PROGRAMMABLE ROM (PROM): Loại ROM này người sử dụng có
thể nạp chương trình bằng một thiết bò gọi là thiết bò đốt PROM. Khi đã
nạp chương trình thì các bit dữ liệu trong PROM không thể thay đổi được.
+ ERASABLE PROGRAMMABLE ROM (EPROM): Đây là loại ROM
mà người sử dụng có thể nạp chương trình và các chương trình đó có thể
xoá hay thay đổi được bằng một thiết bò chuyên dùng.
b> RAM (RANDOM ACCESS MEMORY).
RAM là bộ nhớ truy xuất ngẫu nhiên có nghóa là bất kỳ ô nhớ nào

cũng dễ dàng truy xuất như những ô nhớ khác.
RAM được dùng trong máy vi tính để lưu trữ tạm thời chương trình
và dữ liệu, nội dung các ô nhớ trong RAM thay đổi liên tục khi
Microprocessor thực hiện chương trình. Điều này đòi hỏi chu kỳ đọc, ghi
phải nhanh để RAM không làm giảm tốc độ hoạt động của hệ thống.
Khuyết điểm của RAM là dữ liệu lưu trữ trong RAM sẽ mất đi khi
máy tính mất điện, điều này có thể được cải thiện bằng cách dùng nguồn
pin.
Bộ nhớ RAM được chia làm hai loại SRAM và DRAM.
+ STATIC RAM(SRAM): Đây là loại RAM lưu trữ dữ liệu mãi mãi nếu
nguồn nuôi không bò mất đi. SRAM thực chất là hàng flip flop, trong đó mỗi
flip flop là một phần tử nhớ đại diện cho 1 bit.
+ DYNAMIC RAM (DRAM) : Đây là loại RAM luôn được làm tươi.
Cấu trúc cơ sở của 1 tế bào nhớ của DRAM là một tụ điện giữa cực chắn và
cực nền của một Transistor. Dưới tác dụng của dòng rỉ, điện thế trong tụ bò
giảm dần vì vậy phải luôn nạp điện cho mỗi tụ với chu kỳ nạp là 2ns. Việc
nạp điện cho tụ như vậy gọi là quá trình làm tươi DRAM. Quá trình làm
tươi DRAM bao gồm việc đọc dữ liệu ra khỏi ô nhớ rồi viết trở lại. Trong
thời gian làm tươi thì không được truy xuất ô nhớ nào đó.
-11-
Luận văn tốt nghiệp
c> Sơ đồ chân và sơ đồ logic EPROM 2764
Hình 1.3: Sơ đồ chân và sơ đồ logic EPROM 2764
Bảng trạng thái làm việc của EPROM 2764.
MODE CE\ OE\ PGM\ V
PP
V
CC
OUTPUT
Read V

IL
V
IL
V
IH
V
CC
V
CC
D
OUT
Stand by V
IH
X X V
CC
V
CC
High Z
Program V
IL
X V
IL
V
PP
V
CC
D
IN
Program Verify V
IL

V
IL
V
IH
V
PP
V
CC
D
OUT
Program Inhibit V
IH
X X V
PP
V
CC
High Z
I.5.4. Khảo sát họ SRAM.
a> Cấu trúc của SRAM.
SRAM được chế tạo theo kỹ thuật MOST. Dữ liệu trong SRAM sẽ tồn
tại nếu không ngắt nguồn nuôi RAM. Dung lượng SRAM cũng phụ thuộc
vào số đường đòa chỉ.
Tương tự như bộ nhớ ROM, bộ nhớ RAM cũng có một số thanh ghi,
mỗi thanh ghi lưu trữ một từ dữ liệu duy nhất và có một đòa chỉ duy nhất.
Hình 1.4: Cấu trúc bên trong của RAM
-12-
Luận văn tốt nghiệp
b> Sơ đồ chân và sơ đồ logic SRAM 6264
Hình 1.5: Sơ đồ chân và sơ đồ logic RAM 6264
Bảng sau cho ta các chế độ hoạt động, căn bản của RAM 6264 phụ

thuộc vào trạng thái của các chân điều khiển.
MODE WR\ CS\ CS OE\ OUTPUT
Not Select X H X X High Z
Not Select X X L X High Z
Output Disable H L H H High Z
Read H L H L Dout
Write L L H H Din
-13-
Luận văn tốt nghiệp
I.6.Khảo sát các ic ngoại vi và ứng dụng.
I.6.1.Khảo sát khảo sát vi mạch giao tiếp 8255A.
a> Cấu trúc phần cứng 8255A.
8255A là IC ngoại vi được chế tạo theo công nghệ LSI dùng để giao
tiếp song song giữa Microprocessor và thiết bò điều khiển bên ngoài.
Hình 1.6:Sơ đồ chân và sơ đồ logic 8255A
Tên các chân 8255A:
D
7
– D
0
Dữ liệu Bus (Bi – Direction)
RESET Reset input
CS\ Chip Select
RD\ Read input
WR\ Write input
A
0
, A
1
Port Address

PA7 – PA0 Port A
PB7 – PB0 Port B
PC7 – PC0 Port C
8255A giao tiếp với Microprocessor thông qua 3 Bus: Bus dữ liệu 8 bit
D
7
– D
0
, Bus đòa chỉ A
1
A
2
, Bus điều khiển RD, WR, CS, Reset.
-14-
Luận văn tốt nghiệp
Trong sơ đồ khối của 8255A, các Port I/O của 8255A chia ra làm 2
nhóm: Nhóm A gồm Port A và 4 bit cao của Port C, nhóm B gồm Port B và
4 bit thấp của Port C. Để sử dụng các Port của 8255A người lập trình phải
gởi từ điều khiển ra để thanh ghi điều khiển 8255A đònh cấu hình cho các
Port đúng theo yêu cầu mà người lập trình mong muốn.
hình 1.7: Cấu trúc từ điều khiển
I.6.2.Cấu trúc phần mềm 8255A
a> Các nhóm A và B được cấu hình ở Mode 0:
-15-
GROUP B
PORT C (LOWER)
1 = INPUT
0 = OUTPUT
PORT B
0 = MODE 0

1 = MODE 1
MODE SELECTION
0 = MODE 0
1 = MODE 1
GROUP A
PORT C (UPPER)
1 = INPUT
0 = OUTPUT
PORT A
1 = INPUT
0 = OUTPUT
MODE SELECTION
00 =MODE 0
01 = MODE 1
1X = MODE 2
MODE SET FLAG
1 = ACTIVE
D7 D6 D5 D4 D3 D2 D1 D0
Luận văn tốt nghiệp
Từ điều khiển khi 2 nhóm A và B làm việc ở Mode 0:
1 0 1 D
4
D
3
1 D
1
D
0
Ở Mode 0 các Port A, Port B, Port C thấp cà Port C cao là các Port
xuất hoặc nhập dữ liệu độc lập. Do có 4 bit để lựa chọn nên có 16 từ điều

khiển khác nhau cho 16 trạng thái xuất/nhập của 4 Port.
b> Các nhóm A và B được cấu hình ở Mode 1:
 Nhóm A làm việc ở cấu hình Mode 1.
• Port A được cấu hình là Port nhập dữ liệu.
Chức năng của các đường tín hiệu được trình bày ở hình vẽ 1.8
Các đường tín hiệu của Port C trở thành các đường điều khiển/dữ liệu của Port
A.
1 0 1 1 D3 X X X
Hình 1. 8: Chế độ làm việc khi PORT A nhập dữ liệu
Bit PC4 trở thành bit STB
A
( Strobe Input, tác động mức thấp nhất),
được dùng để chốt dữ liệu ở ngõ vào PA7 – PA0 vào mạch chốt bên trong
8255A.
Bit PC5 trở thành bit IBF
A
(Input Buffer Full, tác động mức cao), dùng
để báo cho thiết bò bên ngoài biết dữ liệu đã được chốt vào bên trong.
Bit PC3 trở thành bit INTR
A
(interrupt Request, tác động mức cao), bit
này có mức logic 1 khi 2 bit STB
A
= 1, IBF = 1 và bit INTE
A
(Interrupt
Enable) ở bên trong 8255A bằng 1. Bit INTE
A
được thiết lập mức logic 1 hay
0 dưới sự điều khiển của phần mềm dùng cấu trúc bit Set/Reset của 8255A.

Ở hình vẽ 1.8, bit INTE
A
= 1 dùng để cho phép tín hiệu IBF xuất hiện tại
ngõ ra của INTE
A
cổng AND. Tín hiệu INTR
A
tác động đến ngõ vào ngắt của
Microprocessor để báo cho Microprocessor biết: dữ liệu mới đã xuất hiện ở
Port A. Chương trình phục vụ ngắt đọc dữ liệu vào và xóa yêu cầu ngắt.
Các bit còn lại của Port C: PC6, PC7 là các bit xuất/nhập bình thường tùy
thuộc vào bit D3 trong từ điều khiển hình 1.9. Các bit xxx dùng để thiết lập
cho nhóm B.
-16-
Luận văn tốt nghiệp
• Port A được cấu hình là Port xuất dữ liệu.
Chức năng của các đường tín hiệu được trình bày ở hình vẽ 1.9.
Các đường tín hiệu của Port C trở thành các đường điều khiển/dữ liệu của Port
A.
1 0 1 0 D3 X X X
Hình 1.9: Chế độ làm việc PORT A xuất dữ liệu
Bit PC7 trở thành bit OBF
A
(Output Buffer Full, tác động mức thấp), khi có
dữ liệu Microprocessor gởi ra Port A, tín hiệu OBF
A
sẽ yêu cầu thiết bò bên
ngoài nhận dữ liệu.
Bit BC6 trở thành bit ACK
A

(AcknowLEDge Input, tác động mức
thấp), thiết bò nhận dữ liệu dùng tín hiệu này để báo cho 8255A biết tín
hiệu đã được nhận và sẵn sàng nhận dữ liệu tiếp theo.
Bit PC3 trở thành INTR
A
(Interrupt Request, tác động mức cao), bit
này có mức logic 1 khi 2 bit OBF
A
= 1, ACK
A
= 1 và bit INTE
A
(Interrupt
Enable) ở bên trong 8255A bằng 1. Tín hiệu INTR
A
tác động đến ngõ vào
ngắt của Microprocessor để báo cho Microprocessor biết: thiết bò bên ngoài
đã nhận dữ liệu ở Port A.
Các bit còn lại của Port C: PC4, PC5 là các bit xuất/nhập bình thường
tùy thuộc vào bit D3 trong từ điều khiển hình 1. 8. Các bit xxx được dùng để
thiết lập nhóm B.
-17-
Luận văn tốt nghiệp
 Nhóm B làm việc ở cấu hình mode 1:
• Port B được cấu hình là Port nhập dữ liệu.
Chức năng của các đường tín hiệu được trình bày ở hình vẽ 1.10.
Các đường tín hiệu Port C trở thành các đường điều khiển /dữ liệu
của Port B.
1 X X X X 1 1 X
Hình 1.10: chế độ làm việc khi port B nhập dữ liệu.

Chức năng của các bit điều khiển giống như nhóm A hoạt động ở Mode 1.
• Port B được cấu hình là Port xuất dữ liệu
Chức năng của đường tín hiệu được trình bày ở hình vẽ 1.11.
Các đường tín hiệu Port C trở thành các đường điều khiển/dữ liệu
của Port B.
1 X X X X 1 0 X
Hình 1.11: Chế độ làm việc khi PORT B xuất dữ liệu
Chức năng của các bit điều khiển giống như nhómA hoạt động ở
Mode 1.
Các bit xxx được dùng để thiết lập cho nhóm A, bit D0 không có tác dụng
trong trường hợp cả 2 nhóm làm việc ở mode 1.
c> Nhóm A của 8255A làm việc ở Mode 2.
Mode 2 là kiểu hoạt động Strobed Bi – directional 10, sự khác biệt
với các Mode 1 là Port có hai chức năng xuất nhập dữ liệu.
Từ điều khiển khi hai nhóm A hoạt động ở Mode 2:
1 1 X X X X X X
Chức năng của các đường tín hiệu được trình bày ở hình vẽ 1.12.
Các đường tín hiệu của Port C trở thành các đường điều khiển/dữ liệu của
Port A.
1 0 1 1 D
3
X X X
-18-
Luận văn tốt nghiệp
Hình 1.12: Nhóm A làm việc ở chế độ xuất/nhập dữ liệu
Bit PC7 trở thành bit OBF
A
, PC6 trở thành ACKA, PC4 thành bit
STB
A

, PC5 thành bit IBF
A
và bit PC3 trở thành bit INTR
A
. khi OBF
A
= 1,
INTE
1
= 1 hoặc IBF
A
= 1, INTE
2
= 1.
Các bit PC
2,1,0
còn lại có thể là các bit I/O tùy thuộc vào các bit điều
khiển của nhóm B. Chú ý khi nhóm A làm việc ở Mode2, nhóm B chỉ được
phép hoạt động ở Mode 0.
Cấu hình này còn cho phép Set / Reset từng bit của Port C. từ điều
khiển này khác với từ điều khiển cấu hình là bit D7 = 0.
-19-
Luận văn tốt nghiệp
Hình 1.13:Dạng set và reset bit
Bit D0 dùng để Set/Reset bit INTE, khi D0 = 1 thì INTE = 1 (cho
phép ngắt), khi D
0
= 0 thì INTE = 0 (không cho phép ngắt). 3 bit D1D2D3
dùng để chọn 1 bit của Port C, gán mức logic của bit D0 cho bit của Port đã
chọn.

Trong thực tế Port A và Port B thường được cấu hình với mode khác
nhau. Ví dụ nhóm A hoạt động ở Mode 2, nhóm B làm việc ở Mode 0.
-20-
Luận văn tốt nghiệp
CHƯƠNG 2:
PHƯƠNG PHÁP GIAO TIẾP VỚI THIẾT BỊ NGOẠI VI
Giao tiếp giữa máy tính với thiết bò ngoại vi là việc trao đổi dữ liệu
giữa máy tính với một hay nhiều thiết bò ngoại vi (với môi trường ngoài).
Máy tính có nhiều cổng vào ra (I/O) để thực hiện chức năng trên. Các cổng
vào ra gồm:
- cổng nối tiếp ( port com).
- Cổng song song ( cổng máy in).
- Khe cắm trong máy tính (Slot card).
II.1/Giao tiếp qua cổng nối tiếp RS232
Cổng nối tiếp RS232 là giao diện phổ biến rộng rãi nhất, nó còn gọi
là cổng COM 1 , còn cổng COM 2 thường dùng tự do cho ứng dụng khác.
Cổng này truyền dữ liệu dưới dạng nối tiếp theo một tốc độ do người lập
trình quy đònh ( thường là 1200;2400;4800;9600 bps…). Loại truyền này có
khả năng dùng cho những khoảng cách lớn.
Cổng nối tiếp RS232 không phải là một hệ thống bus, nó cho phép
dễ dàng tạo ra liên kết dưới hình thức điểm giữa hai máy cần trao đổi
thông tin với nhau.
Chiều dài dữ liệu truyền đi có thể là 5,6,7 hoặc 8 bit, và kèm theo
các bit start, stop, parity để tạo thành một khung truyền (frame). Do việc
truyền dữ liệu là nối tiếp nên tốc độ truyền bò hạn chế nên nó thường
không được sử dụng torng những ứng dụng cần tốc độ truyền cao.
Khung truyền dữ liệu như sau:
Star
t bit
D0 D1 D2 D3 D4 D5 D

6
D7 Parit
y bit
Sto
p
bit
- Hình dạng của cổng nối tiếp ở máy tính:
Chân (loại 9
chân)
Chân (loại 25
chân)
Chức năng
1 8 DCD_Data carrier detect _Lối
vào
2 3 RxD_Receive Data _Lối
vào
3 2 TxD_Transmit Data
_Lối ra
4 20 DTR_Data Terminal Ready _Lối
-21-
Luận văn tốt nghiệp
ra
5 7 GND
_Nối đất
6 6 DSR _Data Set Ready
_Lối vào
7 4 RTS _Request To Send _Lối
ra
8 5 CTS_Clear To Send
_Lối vào

9 22 RI _Ring Indicator
_Lốivào
BẢNG 1: chân của cổng nối tiếp máy tính
- Đòa chỉ cơ bản của cổng nối tiếp COM 1 là 3F8h
- Đòa chỉ cơ bản của cổng nối tiếp COM 2 là 2F8h
II.2/Giao tiếp qua khe cắm máy tính (Slot-card).
Trong máy vi tính trên board mạch hệ thống thường chế tạo sẵn các
khe cắm nhằm mụch đích mở rộng bộ nhớ cũng như mở rộng phạm vi ứng
dụng của máy vi tính bằng cách gắn thêm các board mạch mở rộng vào các
khe cắm này.
Mỗi slot đều có các bus dữ liệu , bus đòa chỉ và các đường tín hiệu điều
khiển như :CLK,IOW,IOR,AEN,ALE,RESET.Do đó việc thiết kế các Slot-
Card từ các đầu cắm Slot sẽ đơn giản, số linh kiện kèm theo ít, và tận
dụng được các nguồn điện của máy tính (+5v,-5v,+12v,-12v) nên giá thành
sẽ rẻ đi, dễ dàng đưa tín hiệu điều khiển ra ngoài và tốc độ truyền nhanh.
Bên cạnh những ưu điểm đó, Slot cũng có một số những nhược điểm
như sau:
-Slot-Card phải cắm vào các Slot trên board mạch hệ thống
nên phải gỡ nắp máy.
-Phạm vi truyền tín hiệu gần và cáp truyền phức tạp.Trong
một số trường hợp không thực hiện được.
Vì vậy khi sử dụng Slot- Card để giao tiếp với thiết bò ngoại vi cần
cân nhắc kỹ ưu khuyết điểm. Tùy theo mụch đích sử dụng mà ta chọn
phương án thích hợp nhất.
Trong máy tính, đòa chỉ dùng để sử dụng card mở rộng là từ 300h -
31Fh.
II.3/Giao tiếp qua cổng máy in (LPT)
Cổng nối giữa máy tính và máy in còn gọi là cổng song song.Việc nối
máy in với máy tính được thực hiện hiện qua ổ cắm 25 chân ở phía sau
máy tính, nhưng đây không chỉ là chổ nối với máy in mà khi sử dụng may

tính vào việc điều khiển thiết bò ngoại vi thì việc ghép nối cũng được thực
hiện qua ổ cắm này. Cổng này truyền dữ liệu song song, tốc độ truyền cao.
Cổng có các đường dẫn tương thích với TTL.
-22-
Luận văn tốt nghiệp
II.3.1/Mô tả cổng máy in
Cổng máy in có tất cả 17 đường dẫn bao gồm 12 đường dẫn ra và 5
đường dẫn vào. Các đường dữ liệu từ D0 - D7 là những đường dẫn một
chiều và là đường dẫn ra. Các đường tín hiệu vào ra có chốt.
- hình dạng của cổng máy in:
-các đường dẫn tín hiệu được mô tả như sau:
chân số 1(STROBE):Chân ra, khi máy tính đưa tín hiệu này ra thì nó báo
cho máy in đọc dữ liệu vào để in.Xung tác động ở mức thấp.
Chân 2 - 9 (DATA): các chân ra dữ liệu của máy tính.
Chân 10 ( ACK) : chân vào để báo cho máy tính biết là dữ liệu đã nhận
được và yêu cầøu máy tính gởi dữ liệu tiếp theo.
Chân 11 (BUSY) : chân vào để báo cho máy tính biết là máy in đang bận
không thể nhận tiếp dữ liệu từ máy tính gởi ra. Chân này tác động ở mức
cao.
Chân 12 (PE) :chân vào để báo cho máy tính biết là máy in hết giấy. Chân
này tác động ở mức cao.
Chân 13 (SLCT): chân vào để báo máy tính đang ở trạng thái lựa
chọn.Chân này tác động ở mức cao.
Chân 14 (AF) :chân ra tác động ở mức thấp.Khi tác động thì máy tự động
dòch thêm một dòng sau khi in.
Chân 15 (ERROR) : chân vào tác động mức thấp để báo máy in đang bò lỗi.
Chân 16 (INIT) : chân ra tác động mức thấp để đặt lại máy in.
Chân 17 ( SLCTIN) : chân ra tác động mức thấp để báo máy in đưa dữ liệu
vào.
Chân 18 - 25 (GND): là chân nối mass.

Trong 17 đường dẫn tín hiệu thì có 5 vào, vì vậy việc bắt tay giữa máy tính
và máy in được thực hiện chẳng hạn như khi máy in không còn đủ chổ
trống trong bộ nhớ thì nó đưa đến máy tính một trạng thái (BUSY =1) tức
là báo máy in đang bận không nên gởi dữ liệu ra nữa.
II.3.2/Sự trao đổi với các đường dẫn tín hiệu.
D7 D6 D5 D4 D3 D2 D1 D0
a/Thanh ghi dữ liệu
-23-
Hình2.1: Cổng máy in
Chân 2 -9
Luận văn tốt nghiệp
D7 D6 D5 D4 D3 D2 D1 D0
b/ Thanh ghi điều khiển
-24-
Chân 1
Chân 14
Chân 16
Chân 17
Chân IRQ-ENABLE
Luận văn tốt nghiệp
D7 D6 D5 D4 D3 0 0 0
Error (chân 15)
SLCT(chân 13)
PE(chân 12)
ACK(chân 10)
Busy(chân 11)
c/ Thanh ghi trạng thái
Hình 2.2 : Thanh ghi cổng máy in của máy tính PC
Các đường dẫn tín hiệu của cổng máy in được sắp xếp thành 3 thanh
ghi:thanh ghi dữ liệu, thanh ghi trạng thái và thanh ghi điều khiển. Thông

qua 3 thanh ghi này cho phép trao đổi thông tin giữa môi trường ngoài và
bộ nhớ máy tính.
- đòa chỉ htanh ghi dữ liệu với đòa chỉ cơ bản của cổng máy in 378h.
- đòa chỉ thanh ghi trạng thái là 379h.
- đòa chỉ thanh ghi điều khiển là 37Ah.
Muốn truy xuất dữ liệu qua cổng máy in thì ta phải biếùt được đòa chỉ cơ bản
của các thanh ghi dữ liệu gọi là đòa chỉ cơ bảb của cổng máy in.
Đòa chỉ cơ bản của cổng máy in LPT1 là 378h đòa chỉ cơ bản của cổng máy
in LPT2 là 278h.
II.4/Chọn cổng giao tiếp với KIT vi xử lý.
Tuy có nhiều phương pháp giao tiếp với thiết bò ngoại vi được trình
bày ở trên, nhưng chúng em chọn phương pháp giao tiếp song song qua
cổng máy in LPT1,vì phương pháp này đơn giản, dễ thiết kế phần cứng,
tốc độ truyền nhanh, thích hợp truyền dữ liệu trong khoảng cách gần, các
đường tín hiệu vào ra ở mức TTL tương thích với KIT vi xử lý.
-25-

×