Tải bản đầy đủ (.docx) (24 trang)

THIẾT KẾ MẠCH CẢM BIẾN NHIỆT sử dụng 8088

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 (340.45 KB, 24 trang )

MỤC LỤC
MỤC LỤC…………………………………………………………………………….1
CHƯƠNG I: BỘ VI XỬ LÝ INTEL 8088………………………………………… 2
1.1 Cấu trúc bên trong và hoạt động của bộ vi xử lý 8088………………………… 2
1.1.1 Sơ đồ khối của bộ vi xử lý
8088…………………………………………… 2
1.1.2 Cấu trúc bên trong của 8088……………………………………………… 2
1.1.3 Các chế độ địa chỉ của 8088…………………………………………………4
1.2 Khung của chương trình hợp ngữ……………………………………………… 6
PHẦN II: CÁC LOẠIDÙNG TRONG MẠCH CẢM BIẾN NHIỆT…………… 8
2.1 Vi xử lý 8088………………………………………………………………………8
2.1.1 Các tín hiệu của 8088……………………………………………………… 8
2.2 Mạch tạo xung nhịp 8284
…………………………… 11
2.3 Mạch phối ghép vào/ra song song lập trình được
8255……………………… 12 2.4 Bộ chuyển đổi tương tự số
ADC0804………………………………………… 13
2.5 Giới thiệu về IC cảm biến LM35……………………………………………… 14
2.6 Một số mạch được dùng khác………………………………………………… 15
PHẦN III: NỘI DUNG THIẾT KẾ MẠCH CẢM BIẾN NHIỆT …………… 17
3.1 Lưu đồ thuật toán chương trình……………………………………………… 17
3.1.1 Giải thuật chương trình đọc A/D và chương trình đổi số nhị phân ra BCD 18
3.1.2 Giải thuật toán xuất ra LED………………………………………………… 19
3.2 Code chương trình………………………………………………………………19
3.3 Sơ đồ mạch nguyên lý………………………………………………………… 21
PHẦN IV: KẾT LUẬN………………………………………………………………22
1
CHƯƠNG I: BỘ VI XỬ LÝ INTEL 8088
1.1 Cấu trúc bên trong và hoạt động của bộ vi xử lý 8088.
1.1.1 Sơ đồ khối của bộ vi xử lý 8088.
1.1.2 Cấu trúc bên trong của 8088.


a) Các thanh ghi đoạn.
- Thanh ghi đoạn mã CS (code segment).
- Thanh ghi đoạn dữ liệu DS (data segment).
- Thanh ghi đoạn ngăn xếp SS (stack segment).
- Thanh ghi đoạn dữ liệu phụ ES (extra segment).
2
Các thanh ghi đoạn 16 bit này chỉ ra địa chỉ đầu của 4 đoạn trong bộ nhớ, dung
lượng lớn nhất của mỗi đoạn này là 64Kbyte và tại một thời điểm nhất định bộ vi xử
lý chỉ làm việc với 4 đoạn nhớ 64Kbyte này.
Nội dung của thanh ghi đoạn sẽ xác định địa chỉ của ô nhớ nằm ở đầu đoạn. Địa
chỉ này gọi là địa chỉ cơ sở.Địa chỉ của các ô nhớ khác nằm trong đoạn được tính bằng
cách cộng thêm vào địa chỉ cơ sở 1 giá trị được gọi là địa chỉ lệch.Độ lệch này được
xác định bởi các thanh ghi 16 bit khác đóng vai trò thanh ghi lệch.
Địa chỉ vật lý = Thanh ghi đoạn X 16 + Thanh ghi lệch
b) Các thanh ghi đa năng.
- AX (Accumulator): thanh chứa. Các kết qua của các thao tác thường được chứa ở
đây. Nếu kết quả là 8 bit thì thanh ghi được coi là Acc.
- BX (Base): thanh ghi cơ sở. Thường chứa địa chỉ cơ sở .
- CX (Count): bộ đếm. Chứa số lần lặp trong trường hợp các lệnh LOOP, CL
thường chứa số lần dịch hoặc quay trong các lệch dịch hoặc quay thanh ghi.
- DX (Data): thanh ghi dữ liệu. Chứa địa chỉ các cổng trong các lệnh vào\ra dữ liệu
trực tiếp.
c) Các thanh ghi con trỏ và chỉ số.
- IP (instruction pointer): con trỏ lệnh. Luôn trỏ vào lệnh tiếp theo sẽ được thực
hiện nằm trong đoạn mã CS. Địa chỉ đầy đủ của lệnh tiếp theo này ứng với CS:IP
được xác định như trên.
- BP (base pointer): con trỏ cơ sở. Luôn trỏ vào 1 dữ liệu nằm trong đoạn ngăn xếp
SS. Địa chỉ đầy đủ của 1 phần tử trong đoạn ngăn xếp tương ứng SS:BP được xác
định như trên.
- SP (stack pointer):con trỏ ngăn xếp. Luôn trỏ vào đỉnh hiện thời của ngăn xếp

nằm trong đoạn ngăn xếp SS. Địa chỉ đầy đủ của đỉnh ngăn xếp ứng với SS:SP được
xác định như trên.
- SI (source index): chỉ số gốc hay nguồn. Chỉ vào dữ liệu trong đoạn dữ liệu DS
và địa chỉ đầy đủ ứng với DS:SI được xác đinh như trên.
- DI (destination index): chỉ số đích. Chỉ vào dữ liệu trong đoạn dữ liệu DS và địa
chỉ cụ thể ứng với DS:DI được xác định như trên.
d) Các thanh ghi cờ.
x x x x O D I T S Z x A x P x C
x: không được định nghĩa.
Hình 1.2 Sơ đồ thanh ghi cờ của 8088.
- C hoặc CF (carry flag): cờ nhớ. CF=1 khi cờ nhớ hoặc mượn từ MSB.
- P hoặc PF (parity flag): cờ parity. Phản ánh tính chẵn lẻ của tổng số bit 1 có trong
kết quả. PF=1 khi tổng số bít 1 trong kết quả là chẵn.
- A hoặc AF (auxiliary carry flag): cờ nhớ phụ. AF=1 khi có nhớ hoặc mượn từ 1
số BCD thấp (4 bít thấp) sang 1 số BCD cao (4 bít cao).
- Z hoặc ZF (zero flag): cờ rỗng. ZF=1 khi kết quả bằng không.
3
- S hoặc SF (sign flag): cờ dấu. SF=1 khi kết quả âm.
- O hoặc OF (overflow flag): cờ tràn. OF=1 khi kết quả là 1 số bù hai vượt ra ngoài
giới hạn biểu diễn.
*) Các cờ điều khiển.
- T hoặc TF (trap flag): cờ bẫy. TF=1 khi CPU làm việc ở chế độ chạy từng lệnh .
- I hoặc IF (interrupt enable flag): cờ cho phép ngắt. IF=1 khi CPU cho phép các
yêu cầu ngắt.
- D hoặc DF (direction flag): cờ hướng. DF=1 khi CPU làm việc với chuỗi ký tự
theo thứ tự từ phải sang trái.
1.1.3 Các chế độ địa chỉ của 8088.
- Chế độ địa chỉ thanh ghi (register addressing mode).
Dùng các thanh ghi bên trong CPU như là các toán hạng để chứa dữ liệu cần thao
tác.Vì vậy khi thực hiện lệnh có thể đạt tốc độ truy nhập cao hơn so với các lệnh có

truy nhập bộ nhớ.
- Chế độ địa chỉ tức thì (immediate addressing mode).
Toán hạng đích là một thanh ghi hay 1 ô nhớ, còn toán hạng nguồn là một hằng số. Ta
nạp dữ liệu cần thao tác vào bất kỳ thanh ghi nào (trừ thanh ghi đoạn và thanh cờ)
hoặc vào bất kỳ ô nhớ nào trong đoạn dữ liệu DS.
- Chế độ địa chỉ trực tiếp (direct addressing mode).
Một toán hạng chứa địa chỉ lệch của ô nhớ dùng chứa dữ liệu còn toán hạng kia
chỉ có thể là thanh ghi mà không được là ô nhớ.
- Chế độ địa chỉ gián tiếp qua thanh ghi (register indirect addressing mode).
Một toán hạng là 1 thanh ghi được sử dụng để chứa địa chỉ lệch của ô nhớ chứa
dữ liệu, còn toán hạng kia chỉ có thể là thanh ghi không phải là ô nhớ.
- Chế độ địa chỉ tương đối cơ sở (base relative addressing mode).
Các thanh ghi cơ sở như BX và BP và các hằng số biểu diễn các giá trị dịch chuyển
được dùng để tính địa chỉ hiệu dụng của toán hạng trong các vùng nhớ DS và SS.
- Chế độ địa chỉ tương đối chỉ số (indexed relative addressing mode).
Thanh ghi chỉ số như SI và DI và các hằng số biểu diễn các giá trị dịch chuyển được
dùng để tính địa chỉ của toán hạng trong vùng nhớ DS.
- Chế độ địa chỉ tương đối chỉ số cơ sở (base indexed relative addressing mode).
Ta dùng thanh ghi cơ sở lẫn thanh ghi chỉ số để tính địa chỉ toán hạng.
1.1.4 Một số tập lệnh của vi xử lý 8088 thường dùng.
- AAA – ASCII (Chỉnh sau khi cộng 2 số ở dạng ASCII)
Dữ liệu được truyền từ các thiết bị đầu cuối đến máy tính thường dưới dạng mã ASII.
Bộ vi xử lý 8088 cho phép cộng luôn các số đó với điều kiện phải chỉnh lại kết quả có
trong AL bằng lệnh AAAthu được kết quả là số BCD không gói.
Cập nhật: AF, CF.
4
Không xác định: OF, PF: SF, ZF.
3.4 Kết luận.
Lệnh này đối 2 số BCD không gói ở AH và AL đang số hệ hai tương đương để
tạu AL. Việc này phải thực hiện trước khi làm phép chia 1 số BCD không gói (gồm 2

chữ số) để trong AX cho 1 số BCD không gói khác. Kết quả và số dư cũng là các số
BCD không gói.
Không xác định: Tất cả các cờ.
- AAM – ASCII (Chỉnh sau khi nhân 2 số ở dạng ASCII).
Lệnh này dùng để đổi 1 số hệ hai, là tích của hai số BCD không gói, có trong AL
sang số BCD không gói để tại AX.
Cập nhật: PF, SF, ZP.
Không xác định: AF, CF, OF.
- ASS – ASCII (Chỉnh sau khi trừ 2 số ở dạng ASCII).
Lệnh này dùng để đổi 1 số hệ hai, là hiệu của 2 số BCD không gói, có ở AL sang
số BCD không gói.
Cập nhật: AF, CF.
Không xác định: OF, PF, SF, ZP.
- ADD (Cộng hai toán hạng).
Viết lệnh: ADD Đích, gốc.
Mô tả: Đích  Đích+Gốc
Trong đó toán hạng đích và gốc có thể tìm được theo các chế độ địa chỉ khác nhau,
nhưng phải chứa dữ liệu có cùng độ dài và không được phép đồng thời là 2 ô nhớ và
cùng không được là thanh ghi đoạn.
Cập nhật: AF, CF, OF, PF, SF, ZP.
- AND (Và 2 toán hạng).
Viết lệnh: AND Đích, gốc.
Mô tả: Đích  Đích^Gốc
Trong đó toán hạng đích và gốc có thể tìm được theo các chế độ địa chỉ khác nhau,
nhưng phải chứa dữ liệu có cùng độ dài và không được phép đồng thời là 2 ô nhớ và
cùng không được là thanh ghi đoạn. Phép AND thường dùng để che được lại 1 vài bit
nào đó của 1 toán hạng bằng cách nhân logic toán hạng đó với toán hạng tức thì có các
bit 0/1 ở chỗ cần che đi/giữ nguyên tương ứng.
Xóa: CF, OF
Cập nhật: PF, SF, ZP, PF chỉ có nghĩa khi toán hạng là 8 bit.

- CALL (Gọi chương trình con).
- DEC (Giảm toán hạng đích đi 1).
Viết lệnh: DEC Destination.
Mô tả: Đích  Đích - 1
Trong đó toán hạng đích có thể tìm theo các chế độ địa chỉ khác nhau.
5
Nếu Đích=00H thì Đích-1=FFH mà không làm ảnh hưởng tới cờ CF.
Cập nhật: AF, OF, PF, SF, ZP.
- INC (tăng toán hạng đích thêm 1).
Viết lệnh: INC Đích
Mô tả: Đích  Đích + 1
Trong đó toán hạng đích có thể tìm theo các chế độ địa chỉ khác nhau.
Nếu Đích=FFH thì Đích+1=00H mà không làm ảnh hưởng tới cờ CF.
Cập nhật: AF, OF, PF, SF, ZP.
- JMP (Nhảy không điều kiện đến 1 đích nào đó)
JMP NHAN
1.2 Khung của chương trình hợp ngữ.
a) Khai báo quy mô sử dụng của bộ nhớ.
Kích thước của bộ nhớ dành cho đoạn mã và đoạn dữ liệu trong trương trình được xác
định nhờ hướng dẫn chương trình dịch MODEL.
MODEL Kiểu kích thước bộ nhớ
Kiểu kích thước Mô tả
Tiny (hẹp) Mã lệnh và dữ liệu gói gọn trong 1 đoạn
Small (nhỏ) Mã lệnh gói trong 1 đoạn và dữ liệu gói trong 1 đoạn.
Medium (trung bình) Mã lệnh không gói gọn trong 1 đoạn và dữ liệu nằm trong 1
đoạn.
Compact (gọn) Mã lệnh gói gọn trong 1 đoạn và dữ liệu không gói gọn trong 1
đoạn.
Lagre (lớn) Mã lệnh không gói gọn trong 1 đoạn và dữ liệu không gói gọn
trong 1 đoạn và không có mảng nào lớn hơn 64KB.

Huge (đồ sộ) Mã lệnh và dữ liệu không gói gọn trong 1 đoạn và các mảng
có thể lớn hơn 64KB.
b) Khai báo đoạn ngăn xếp.
Dành ra 1 vùng nhớ đủ lớn.
Stack Kích thước
Kích thước sẽ quyết định số byte dành cho ngăn xếp.Nếu ta không khai báo kích
thước thì chương trình sẽ tự động gán kích thước có giá trị là 1KB nhưng quá
lớn.Thông thường thì sử dụng 100-256 byte là đủ.
c) Khai báo đoạn dữ liệu.
Đoạn dữ liệu chứa toàn bộ các định nghĩa cho các biến của chương trình.Việc khai
báo đoạn dữ liệu nhờ hướng dẫn chương trình dịch DATA, việc khai báo biến và hằng
được thực hiện tiếp ngay sau đó bằng các lệnh thích hợp.
d) Khai báo đoạn mã.
Việc khai báo đoạn mã được thực hiện nhờ hướng dẫn chương trình dịch CODE.Bên
trong đoạn mã các dòng lệnh phải được tổ chức 1 cách hợp lý, dùng ngữ pháp dưới
6
dạng 1 chương trình chính (CTC) và nếu cần thì kèm theo1 chương trình con (ctc) và
chúng được gọi ra bằng lệnh CALL.
Một thủ tục được định nghĩa bằng các lệnh giả PROC và ENDP lần lượt là bắt đầu 1
thủ tục và kết thúc nó.
Tên CTC Proc
;Các lệnh của than chương trình chính
CALL Tên ctc
;gọi ctc
TÊN_CTC Endp
7
PHẦN II: CÁC LOẠIDÙNG TRONG MẠCH CẢM BIẾN NHIỆT
2.1 Vi xử lý 8088.
2.1.1 Các tín hiệu của 8088.
+ AD0-AD7 [I/O tín hiệu vào và ra]: Các chân dồn kênh cho các tín hiệu phần thấp

của của bus dữ liệu và bus địa chỉ. Xung ALE sẽ báo cho mạch biết khi nào trên các
đường đó có tín hiệu dữ liệu (ALE=0) hoặc địa chỉ (ALE=1).
+ A8-A15 [O]: Các bit phần cáo của bus địa chỉ.
+ A16/S3, A17/S4, A18/S5, A19/S6 [O]: Các chân dồn kênh của địa chỉ, phần cao
và trạng thái. Địa chỉ A16-A19 sẽ có mặt tại các chân đó khi ALE=1 và ALE=0 thì
các chân đó có tín hiệu trạng thái S3-S6.
S3 S
4
Truy cập đến
0 0 Đoạn dữ liệu phụ
0 1 Đoạn ngăn xếp
1 0 Đoạn mã hoặc không đoạn nào
1 1 Đoạn dữ liệu
Bit S6=0 liên tục, bit S5 phản ánh giá trị bit IF của thanh ghi cờ. Bit S3 và S4 kết
hợp với nhau để chỉ ra việc truy nhập cảu các thanh ghi đoạn.
+ [O]: Xung cho phép đọc. Khi =0 thì bus dữ liệu nhận số liệu từ bộ nhớ hoặc thiết
bị ngoại vi.
+ READY [I]: tín hiệu báo cho CPU biết tình trạng sẵn sang của thiết bị ngoại vi
hoặc bộ nhớ. READY=1 thì CPU thực hiện ghi/đọc mà không cần kèm thêm các chu
kỳ đợi. Còn khi thiết bị ngoại vi hay bộ nhớ có tốc độ chậm ta đưa READY=0 để báo
CPU chờ bằng cách chèn thêm các chu kỳ đợi.
+ INTR [I]: tín hiệu yêu cầu ngắt che được. Khi có yêu cầu ngắt mà cờ cho phép
ngắt IF=1 thì CPU kết thúc lệnh đang làm dở. Sau đó đi vào chu trình chấp nhận ngắt
và đưa ra bên ngoại tín hiệu INTA=0.
+ [I]: tín hiệu tại chân này được kiểm tra bởi lệnh WAIT. Khi CPU thực hiện lệnh
WAIT mà lúc đó có tín hiệu TEST=1, nó sẽ chờ cho đến khi tín hiệu TEST=0 thì mới
thực hiện lệnh tiếp theo.
+ NMI [I]: tín hiệu yêu cầu ngắt không che được. Tín hiệu này không bị khống chế
bởi cờ IF và nó sẽ được CPU nhận biết bằng tác động của sườn lên của xung yêu cầu
ngắt nhận được yêu cầu này CPU kết thúc lệnh đang là dở, sau đó chuyển đang thực

hiện chương trình phục vụ ngắt kiểu INT2.
+ RESET [I]: tín hiệu khởi động lại 8088. Khi RESET=1 kéo dài ít nhất trong
khoảng thời gian là 4 chu kỳ đồng hồ thì 8088 bị buộc phải khởi động lại: nó xóa các
8
thanh ghi DS, ES, SS, IP và FR về 0 và bắt đầu thực hiện chương trình tại địa chỉ
CS:IP=FFFF:0000H.
+ CLK [I]: tín hiệu xung đồng hồ nhịp. Xung nhịp có độ rỗng là 77a và cấp nhịp
làm việc cho CPU.
+ Vcc [I]: chân nguồn. Tại đây CPU được cung cấp 5V, 340mA.
+ GND [O]: chân nguồn để nối với điểm 0V của nguồn nuôi.
+ MN/MX [I]: chân điều khiển hoạt động của CPU theo chế độ MIN/MAX.
*) Chế độ MIN.
B H E
3 4
R D
3 2
L O C K
2 9
R Q / G T 0
3 1
R Q / G T 1
3 0
N M I
1 7
T E S T
2 3
M N
3 3
R E A D Y
2 2

C L K
1 9
R S T
2 1
I N T R
1 8
A D 0
1 6
A D 1
1 5
A D 2
1 4
A D 3
1 3
A D 4
1 2
A D 5
1 1
A D 6
1 0
A D 7
9
A 8
8
A 9
7
A 1 0
6
A 1 1
5

A 1 2
4
A 1 3
3
A 1 4
2
A 1 5
3 9
A 1 6 / S 3
3 8
A 1 7 / S 4
3 7
A 1 8 / S 5
3 6
A 1 9 / S 6
3 5
S 0
2 6
S 1
2 7
S 2
2 8
Q S 0
2 5
Q S 1
2 4
U 6
8 0 8 8 M I N
+ IO/ [O] (28): tín hiệu này phân biệt thời điểm đã định phần tử nào trong các thiết
bị vào ra (IO) hoặc bộ nhớ được chọn làm việc với CPU. Trên bus địa chỉ, lúc đó sẽ

có các địa chỉ tương ứng với các thiết bị đó.
+ WR [O] (29): xung cho ghi chép. Khi CPU đưa ra WR=0 thì trên bus dữ liệu các
dữ liệu đã ổn định và chúng sẽ được ghi vào bộ nhớ hoặc thiết bị ngoại vi tại thời
điểm đột biến WR=1.
+ INTA [O] (24): tín hiệu báo cho các mạch bên ngoài biết CPU chấp nhận yêu
cầu ngắt INTR. Lúc này CPU đưa ra /=0 để báo là nó đang chờ mạch ngoài đưa vào
số liệu ngắt trên bus dữ liệu.
+ ALE [O] (25): xung cho phép chốt địa chỉ. Khi ALE=1 có nghĩa là trên bus dồn
kênh AD có các địa chỉ thiết bị hay ô nhớ.
+ DT/ [O] (27): tín hiệu điều khiển các đệm 2 chiều của bus dữ liệu để chọn chiều
chuyển vận của trên bus D.
+ DEN [O] (26): tín hiệu báo cho bên ngoài biết lúc này biết là trên bus dồn kênh
AD có dữ liệu ổn định.
+ HOLD [I] (31): tín hiệu yêu cầu treo CPU để mạch ngoài thực hiện việc trao đổi
dữ liệu với bộ nhớ bằng cách thâm nhập trực tiếp. Khi HOLD=1, CPU 8088 tự tách
ra khỏi hệ thống bằng cách treo tất cả các bus A, bus D, bus C của nó để bộ điều khiển
DMA có thể lấy được quyền điều khiển hệ thống công việc trao đổi dữ liệu.
9
+ HLDA [O] (30): tín hiệu báo cho bên ngoài biết yêu cầu treo CPU để dùng các
bus đã được chấp nhận và CPU 8088 đã treo các bus A, bus D và 1 số tín hiệu bus C.
+ [I] (34): tín hiệu trạng thái. Tín hiệu này giống như trong chế độ MAX và được
dùng kết hợp với IO/ và DT/ để giải mã các chu kỳ hoạt động của bus.
IO/ DT/ SS
0
Chu kỳ điều khiển của bus
0 0 0 Đọc mã lệnh
0 0 1 Đọc bộ nhớ
0 1 0 Ghi bộ nhớ
0 1 1 Bus rỗi (nghỉ)
1 0 0 Chấp nhận yêu cầu ngắt

1 0 1 Đọc các thiết bị ngoại vi
1 1 0 Ghi các thiết bị ngoại vi
1 1 1 Dừng
*) Chế độ MAX.
B H E
3 4
R D
3 2
L O C K
2 9
R Q / G T 0
3 1
R Q / G T 1
3 0
N M I
1 7
T E S T
2 3
M X
3 3
R E A D Y
2 2
C L K
1 9
R S T
2 1
I N T R
1 8
A D 0
1 6

A D 1
1 5
A D 2
1 4
A D 3
1 3
A D 4
1 2
A D 5
1 1
A D 6
1 0
A D 7
9
A 8
8
A 9
7
A 1 0
6
A 1 1
5
A 1 2
4
A 1 3
3
A 1 4
2
A 1 5
3 9

A 1 6 / S 3
3 8
A 1 7 / S 4
3 7
A 1 8 / S 5
3 6
A 1 9 / S 6
3 5
S 0
2 6
S 1
2 7
S 2
2 8
Q S 0
2 5
Q S 1
2 4
U 7
8 0 8 8 M A X
+ , , [O]: các chân trạng thái dùng trong chế độ MAX để ghép với mạch điều khiển
bus 8288. Các tín hiệu này được 8288 dùng để tạo ra các tín hiệu điều khiển trong các
chu kỳ hoạt động của các tín hiệu điều khiển.
Chu kỳ điều khiển của bus Tín hiệu
0 0 0 Chấp nhận yêu cầu ngắt INTA
0 0 1 Đọc thiết bị ngoại vi IORC
0 1 0 Ghi thiết bị ngoại vi IOWC,
0 1 1 Dừng Không
1 0 0 Đọc mã lệnh MRDC
1 0 1 Đọc bộ nhớ MRDC

1 1 0 Ghi bộ nhớ MWTC,
1 1 1 Bus rỗi không
10
+ / và /: các tín hiệu yêu cầu dùng bus của các bộ xử lý khác hoặc thông báo chấp
nhận treo của CPU để cho phép các bộ vi xử lý khác dùng bus. /có mức ưu tiên cao
hơn /.
+ : tín hiệu cho CPU đưa ra để cấm các bộ vi xử lý khác trong hệ thống dùng bus
trong khi nó đang thi hành 1 lệnh nào đó.

+ QS0 và QS1 [O]: tín hiệu thông báo các trạng thái khác nhau của đệm lệnh.
QS
1
QS0 Trạng thái đệm lệnh
0 0 Không hoạt động
0 1 Đọc byte mã lệnh đầu tiên từ đệm lệnh
1 0 Đệm lệnh rỗng
1 1 Đọc byte tiếp theo từ đệm lệnh.
2.2 Mạch tạo xung nhịp 8284.
Cho dù làm việc trong chế độ MIN và MAX, CPU 8088 luôn cần xun nhịp từ bộ tạo
mạch xung nhịp 8284.
A E N 1
3
A E N 2
7
E F I
1 4
R E A D Y
5
C L K
8

R E S E T
1 0
P C L K
2
O S C
1 2
X 1
1 7
X 2
1 6
A S Y N C
1 5
C S Y N C
1
F / C
1 3
R D Y 1
4
R D Y 2
6
R E S
1 1
U 5
8 2 8 4
+ , : tín hiệu cho phép chọn đầu vào tương ứng RDY1. RDY2 làm tín hiệu báo tình
trạng sẵn sàng của bộ nhớ hoặc thiết bị ngoại vi.
+ RDY1, RDY2: cùng với , dùng để gây ra các chu kỳ đợi ở CPU.
+ chọn đồng bộ 2 tầng hoặc đồng bộ 1 tầng cho tín hiệu RDY1, RDY2. Trong chế
độ đồng bộ 1 tầng =1 thì tín hiệu RDY có ảnh hưởng đến tín hiệu READY tới tân
sườn xuống của xung đồng hồ tiếp theo. Còn chế độ đồng bộ 2 tầng =0 tín hiệu RDY

chỉ có ảnh hưởng tới tín hiệu READY khi có sườn xuống của xung đồng hồ tiếp theo.
+ READY: nối đến đầu vào READY của CPU tín hiệu này đồng bộ với các tín
hiệu RDY1, RDY2.
+ X1, X2: nối với 2 chân của thạch anh với tần số fx thạch anh này là 1 bộ phận
của 1 mạch dao động bên trong 8284 có nhiệm vụ tạo xung chuẩn dùng làm tín hiệu
đồng bộ cho toàn hệ thống.
11
+ F/: dùng chọn nguồn tín hiệu chuẩn cho 8284. Khi chân này ở mức cao thì xung
đồng hồ bên ngoài sẽ được dùng làm xung nhịp cho 8284, ngược lại thì xung đồng hồ
của mạch dao động bên trong dùng thạch anh sẽ được chọn để làm xung nhịp.
+ EFI: lối vào cho xung từ bộ dao động ngoài.
+ CLK: xung nhịp f
CLK
=f
X
/3 với độ rỗng là 77% nối đến chân CLK của 8088.
+ PCLK: xunh nhịp f
PCLK
=f
X
/6 với độ rỗng là 50% dành cho thiết bị ngoại vi.
+ OSC: xung nhịp đã được khuếch đại có tần số bằng f
X
của bộ dao động.
+ : chưa khởi động, nối với mạch RC để 8284 có thể tự khởi động khi bật nguồn.
+ RESET: nối vào RESET của 8088 và là tín hiệu khởi dộng lại cho toàn hệ.
+ CSYNC: nối vào cho xung đồng bộ chung khi trong hệ thống có các 8284 dùng
dao động ngoài tại chân EFI. Khi dùng mạch dao động trong thì phải nối đất chân này
2.3 Mạch phối ghép vào/ra song song lập trình được 8255.
D 0

3 4
D 1
3 3
D 2
3 2
D 3
3 1
D 4
3 0
D 5
2 9
D 6
2 8
D 7
2 7
P A 0
4
P A 1
3
P A 2
2
P A 3
1
P A 4
4 0
P A 5
3 9
P A 6
3 8
P A 7

3 7
P B 0
1 8
P B 1
1 9
P B 2
2 0
P B 3
2 1
P B 4
2 2
P B 5
2 3
P B 6
2 4
P B 7
2 5
P C 0
1 4
P C 1
1 5
P C 2
1 6
P C 3
1 7
P C 4
1 3
P C 5
1 2
P C 6

1 1
P C 7
1 0
R D
5
W R
3 6
A 0
9
A 1
8
R E S E T
3 5
C S
6
U 1 8
8 2 5 5
Các chân có ý nghĩa khá rõ ràng. Chân Reset phải được nối với tín hiệu reset chung
của toàn hệ. CS được nối với mạch tạo xung chọn thiết bị để đặt mạch 8255 vào 1 địa
chỉ cơ sở nào đó.Các tín hiệu địa chỉ A0, A1 sẽ chọn ra 4 thanh ghi bên trong 8255. 1
thanh ghi để ghi từ điều khiển cho hoạt động 8255 (CWR) và 3 thanh ghi khác ứng
với các cổng port là PA, PB, PC cũng chính là các địa chỉ cơ sở của 8255.
Có 2 loại từ điều khiển cho 8255A:
+ Từ điều khiển định nghĩa cấu hình cho các cổng PA, PB, PC.
+ Từ điều khiển lập/ xóa từng bit ở đầu ra của PC.
A1 A0 Chọn ra
1 x x Không chọn
0 0 0 PA
0 0 1 PB
0 1 0 PC

12
0 1 1 CWR
a) Từ điều khiển định nghĩa cấu hình.
1 MA1 MA0 A CA MB B CB
Nhóm A:
- Chọn chế độ: MA1 MA0
00: Mode 0
01: Mode 1
1x: Mode 2
- PA: A=1: [I], A=0: [O].
- PC
H
(cao): CA=1: [I], CA=0: [O].
Nhóm B:
-PC
L
(thấp): CB=1: [I], CB=0: [O].
- PB: B=1: [I], B=0: [O].
Chọn chế độ: MB=0: Mode 0, MB=1: Mode 1.
b) Từ điều khiển lập/xóa bit ra PC
i
.
0 0 0 0 S/R
- D4  D6: mã hóa PC
i
.
000:PC
0
… 111:PC
7

- D7:S/R=1: lập PC
i
, S/R=0: xóa PC
i
2.4 Bộ chuyển đổi tương tự số ADC0804.
+ I N
6
- I N
7
V R E F / 2
9
D B 7
1 1
D B 6
1 2
D B 5
1 3
D B 4
1 4
D B 3
1 5
D B 2
1 6
D B 1
1 7
D B 0
1 8
C L K R
1 9
V C C / V R E F

2 0
C L K I N
4
I N T R
5
C S
1
R D
2
W R
3
U 4
A D C 0 8 0 4
+ (1): là chân chọn chip, đầu vào tích cực ở mức thấp được sử dụng để kích hoạt
chip ADC0804 và chân này ở mức thấp.
+ (2): là tín hiệu vào, tích cực ở mức thấp. Các bộ chuyển đổi đầu vào tương tự
thành số nhị phân và giữ nó ở 1 thanh ghi trong.RD được sử dụng để có dữ liệu đã
được chuyển đổi tới đầu ra của ADC0804. Khi CS=0 nếu có 1 xung cao xuống thấp
áp đến chân RD thì dữ liệu ra dạng số 8bit được đưa tới các chân dữ liệu DB0 
DB7.
+ (3): là chân vào và ở mức tích cực thấp được dùng để báo cho ADC biết bắt đầu
quá trình chuyển đổi. Nếu CS=0 khi WR tạo ra xung cao xuống thấp thì bộ ADC0804
13
bắt đầu quá trình chuyển đổi giá trị đầu vào tương tự V
in
về số nhị phân 8bit. Khi việc
chuyển đổi hoàn tất thì chân INTR được ADC hạ xuống thấp.
+ CLR IN và CLKR: CLK IN (4) là chân nối tới đồng hồ ngoài được sử dụng để
tạo thời gian. Tuy nhiên ADC0804 cũng có 1 bộ tạo xung đồng hồ riêng. Để dùng
đồng hồ riêng thì các chân CLK IN và CLKR(19) được nối với 1 tụ điện và 1 điện trở

khi đó tần số được xác định bằng biểu thức:
F= 1/1.1RC
+ (5): chân ra tích cực mức thấp. Bình thường chân này ở trạng thái cao và khi
việc chuyển đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệu chuyển đổi
sẵn sàng để lấy đi. Sau khi xuống thấp, cần đặt CS=0 và gửi 1 xung cao xuống thấp
tới chân RD để đưa ra dữ liệu.
+ V
in
(+) và V
in
(-) chân (6) và (7): đây là 2 đầu vào tương tự vi sai, trong đó
V
in
=V
in
(+) – V
in
(-). Thông thường V
in
(-) thương nối xuống đất và V
in
(+) được dùng
làm đầu vào tương tự và sẽ được chuyển đổi về dạng số.
+ V
cc
(20): là chân nguồn nuôi +5V. Chân này được dùng làm điện áp tham chiếu
khi đầu vào V
ref
/2 để hở.
+ V

ref
/2 (9): là chân điện áp đầu vào được dùng làm điện áp tham chiếu. nếu chân này
hở thì điện áp đầu vào tương tự cho ADC0804 nằm trong dải 0 đến +5V.
+ D0  D7 (1811): là các chân dữ liệu số (D7 là bít cao nhất MSB và D0 là bít
thấp nhất LSB). Chân này được đệm 3 trạng thái và dữ liệu đã được chuyển đổi chỉ
được truy nhập khi chân CS=0 và chân RD đưa xuống mức thấp.
2.5 Giới thiệu về IC cảm biến LM35.
Đây là cảm biến nhiệt được tích hợp chính xác cao của hãng National Semiconductor.
Điện áp đâu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsisus. Điện áp
ngõ rat hay đổi 10mv (điện áp bước) cho mỗi sự thay đổi 1C.Chúng không cần yêu
cầu cân chỉnh ngoài.
Đặc điểm cơ bản của LM35:
+ Điện áp nguồn từ -0.2V đến +35V.
+ Điện áp ra từ -1V đến +6V.
+ Dải nhiệt độ đo được từ -55độC đến +150độC
+ Điện áp đầu rat hay đổi 10mV mỗi khi có sự thay đổi 1độC.
14
2.6 Một số mạch được dùng khác.
*) Mạch giải mã địa chỉ 74LS138:
A
1
B
2
C
3
Y 0
1 5
Y 1
1 4
Y 2

1 3
Y 3
1 2
Y 4
1 1
Y 5
1 0
Y 6
9
Y 7
7
G 1
6
G 2 A
4
G 2 B
5
U 1 7
7 4 L S 1 3 8
*) Mạch tách tín hiệu địa chỉ từ các tín hiệu dồn kênh (mạch chốt) 74LS373.
D 0
3
D 1
4
D 2
7
D 3
8
D 4
1 3

D 5
1 4
D 6
1 7
D 7
1 8
O E
1
L E
1 1
Q 0
2
Q 1
5
Q 2
6
Q 3
9
Q 4
1 2
Q 5
1 5
Q 6
1 6
Q 7
1 9
U 1 7
7 4 L S 3 7 3
*) Bộ khuếch đại đệm (mạch đệm) 74LS245.
15

A 0
2
A 1
3
A 2
4
A 3
5
A 4
6
A 5
7
A 6
8
A 7
9
G
1 9
D I R
1
B 0
1 8
B 1
1 7
B 2
1 6
B 3
1 5
B 4
1 4

B 5
1 3
B 6
1 2
B 7
1 1
U 1 7
7 4 L S 2 4 5
*) Bộ nhớ RAM 28C256.
A 0
1 0
A 1
9
A 2
8
A 3
7
A 4
6
A 5
5
A 6
4
A 7
3
A 8
2 5
A 9
2 4
A 1 0

2 1
A 1 1
2 3
A 1 2
2
A 1 3
2 6
A 1 4
1
D 0
1 1
D 1
1 2
D 2
1 3
D 3
1 5
D 4
1 6
D 5
1 7
D 6
1 8
D 7
1 9
C E
2 0
O E
2 2
W E

2 7
U 1 7
2 8 C 2 5 6
*) Mạch giải mã BCD ra LED 7 thanh 7447.
Một trong các phối ghép giữa vi xử lý và đèn LED 7 nét thường thấy là dùng mạch
7447 để giải mã số BCD ra 7 nét và để điều khiển bộ đèn chỉ thị. Đây là kiểu điều
khiển đèn LED ở chế độ hiển thị tĩnh với các đặc điểm khá đơn giản về kết cấu nhưng
lại tốn năng lượng để thắp sáng các nét cảu đèn LED phải có dòng điện liên tục đi
qua.
D 0
7
D 1
1
D 2
2
D 3
6
B I / R B O
4
R B I
5
L T
3
A
1 3
B
1 2
C
1 1
D

1 0
E
9
F
1 5
G
1 4
U 1 7
7 4 4 7
16
PHẦN III: NỘI DUNG THIẾT KẾ MẠCH CẢM BIẾN NHIỆT
3.1 Lưu đồ thuật toán chương trình.
17
3.1.1 Giải thuật chương trình đọc A/D và chương trình đổi số nhị phân ra BCD.
18
3.1.2 Giải thuật toán xuất ra LED.
19
3.2 Code chương trình.
Chương trình hiển thị led 7 thanh trên 8088:
DATA SEGMENT
PORTA EQU 120H
PORTB EQU 121H
PORTC EQU 122H
PORTD EQU 123H
TABLE DB 8CH,0C7H,86H,89H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA ;khởi tạo phân đoạn dữ liệu
MOV DS,AX

MOV AL,80H ;khởi tạo 8255 portb và portc
MOV DX,PORT
OUT DX,AL
MOV BH,04 ; BH = 0 chữ số sẽ được hiển thị
LEA SI,TABLE ; SI = địa chỉ bắt đầu
NEXTDIGIT:MOV CL,08 ; CL = không có các phân đoạn = 08
MOV AL,[SI]
NEXTBIT: ROL AL,01
MOV CH,AL
MOV DX,PORTB ;1bit được gửi portb
OUT DX,AL
MOV AL,01
MOV DX,PORTC ;1xung đồng hồ gửi về portc
20
OUT DX,AL
DEC AL
MOV DX,PORTC
OUT DX,AL
MOV AL,CH
DEC CL
JNZ NEXTBIT
DEC BH
INC SI ;hiển thi số
JNZ NEXTDIGIT
MOV AH,4CH
INT 21H
CODE ENDS
END START
21
3.3 Sơ đồ mạch nguyên lý.

22
A
1
B
2
C
3
D
4
E
5
F
6
G
7
H
8
V C C
9
V E E
1 0
7 S E G 1
7 S E G
R 1 1
R
A
1
B
2
C

3
D
4
E
5
F
6
G
7
H
8
V C C
9
V E E
1 0
7 S E G 2
7 S E G
R 4
R
R 1 2
R
R 5
R
D 0
7
D 1
1
D 2
2
D 3

6
B I / R B O
4
R B I
5
L T
3
A
1 3
B
1 2
C
1 1
D
1 0
E
9
F
1 5
G
1 4
U 1 5
7 4 4 7
31
2 Q 1 A
T R _ 2 _ I S _ N _ A
64
5 Q 1 B
T R _ 2 _ I S _ N _ A
T i t l e

S i z e D o c u m e n t N u m b e r R e v
D a t e : S h e e t o f
< D o c > < R e v C o d e >
< T i t l e >
C
1 1T u e s d a y , J u n e 0 3 , 2 0 1 4
B H E
3 4
R D
3 2
L O C K
2 9
R Q / G T 0
3 1
R Q / G T 1
3 0
N M I
1 7
T E S T
2 3
M X
3 3
R E A D Y
2 2
C L K
1 9
R S T
2 1
I N T R
1 8

A D 0
1 6
A D 1
1 5
A D 2
1 4
A D 3
1 3
A D 4
1 2
A D 5
1 1
A D 6
1 0
A D 7
9
A 8
8
A 9
7
A 1 0
6
A 1 1
5
A 1 2
4
A 1 3
3
A 1 4
2

A 1 5
3 9
A 1 6 / S 3
3 8
A 1 7 / S 4
3 7
A 1 8 / S 5
3 6
A 1 9 / S 6
3 5
S 0
2 6
S 1
2 7
S 2
2 8
Q S 0
2 5
Q S 1
2 4
U 1
8 0 8 8
A 0
1 0
A 1
9
A 2
8
A 3
7

A 4
6
A 5
5
A 6
4
A 7
3
A 8
2 5
A 9
2 4
A 1 0
2 1
A 1 1
2 3
A 1 2
2
A 1 3
2 6
A 1 4
1
D 0
1 1
D 1
1 2
D 2
1 3
D 3
1 5

D 4
1 6
D 5
1 7
D 6
1 8
D 7
1 9
C E
2 0
O E
2 2
W E
2 7
U 3
2 8 C 2 5 6
A
1
B
2
C
3
Y 0
1 5
Y 1
1 4
Y 2
1 3
Y 3
1 2

Y 4
1 1
Y 5
1 0
Y 6
9
Y 7
7
G 1
6
G 2 A
4
G 2 B
5
U 4
7 4 L S 1 3 8
+ I N
6
- I N
7
V R E F / 2
9
D B 7
1 1
D B 6
1 2
D B 5
1 3
D B 4
1 4

D B 3
1 5
D B 2
1 6
D B 1
1 7
D B 0
1 8
C L K R
1 9
V C C / V R E F
2 0
C L K I N
4
I N T R
5
C S
1
R D
2
W R
3
U 5
A D C 0 8 0 4 / L C C
1
2
3
4
U 1 3
N A N D 3

D 0
3 4
D 1
3 3
D 2
3 2
D 3
3 1
D 4
3 0
D 5
2 9
D 6
2 8
D 7
2 7
P A 0
4
P A 1
3
P A 2
2
P A 3
1
P A 4
4 0
P A 5
3 9
P A 6
3 8

P A 7
3 7
P B 0
1 8
P B 1
1 9
P B 2
2 0
P B 3
2 1
P B 4
2 2
P B 5
2 3
P B 6
2 4
P B 7
2 5
P C 0
1 4
P C 1
1 5
P C 2
1 6
P C 3
1 7
P C 4
1 3
P C 5
1 2

P C 6
1 1
P C 7
1 0
R D
5
W R
3 6
A 0
9
A 1
8
R E S E T
3 5
C S
6
U 6
8 2 5 5
V S +
8
V O U T
1
U 7
L M 3 5 / S O
R 1 3
R
R 1
P O T
R 1 4
R

V C C
R 2
R
R 1 5
R
C 1
C A P N P
R 1 6
R
R 1 7
R
R 1 8
R
R 1 9
R
V C C
A E N 1
3
A E N 2
7
E F I
1 4
R E A D Y
5
C L K
8
R E S E T
1 0
P C L K
2

O S C
1 2
X 1
1 7
X 2
1 6
A S Y N C
1 5
C S Y N C
1
F / C
1 3
R D Y 1
4
R D Y 2
6
R E S
1 1
U 8
8 2 8 4
Y 1
Z T A
C 2
C A P N P
C 3
C A P N P
D 0
7
D 1
1

D 2
2
D 3
6
B I / R B O
4
R B I
5
L T
3
A
1 3
B
1 2
C
1 1
D
1 0
E
9
F
1 5
G
1 4
U 1 6
7 4 4 7
12
U 1 2
N O T
V C C

D 1
D I O D E
C 4
C A P N P
R 3
R
R 6
R
D 0
3
D 1
4
D 2
7
D 3
8
D 4
1 3
D 5
1 4
D 6
1 7
D 7
1 8
O E
1
L E
1 1
Q 0
2

Q 1
5
Q 2
6
Q 3
9
Q 4
1 2
Q 5
1 5
Q 6
1 6
Q 7
1 9
U 1 1
7 4 L S 3 7 3
A 0
2
A 1
3
A 2
4
A 3
5
A 4
6
A 5
7
A 6
8

A 7
9
G
1 9
D I R
1
B 0
1 8
B 1
1 7
B 2
1 6
B 3
1 5
B 4
1 4
B 5
1 3
B 6
1 2
B 7
1 1
U 1 0
7 4 L S 2 4 5
V C C
V C C
A 0
1 0
A 1
9

A 2
8
A 3
7
A 4
6
A 5
5
A 6
4
A 7
3
A 8
2 5
A 9
2 4
A 1 0
2 1
A 1 1
2 3
A 1 2
2
A 1 3
2 6
A 1 4
1
D 0
1 1
D 1
1 2

D 2
1 3
D 3
1 5
D 4
1 6
D 5
1 7
D 6
1 8
D 7
1 9
C E
2 0
O E
2 2
W E
2 7
U 9
2 8 C 2 5 6
V C C
V C C
R 7
R
D 0
3 4
D 1
3 3
D 2
3 2

D 3
3 1
D 4
3 0
D 5
2 9
D 6
2 8
D 7
2 7
P A 0
4
P A 1
3
P A 2
2
P A 3
1
P A 4
4 0
P A 5
3 9
P A 6
3 8
P A 7
3 7
P B 0
1 8
P B 1
1 9

P B 2
2 0
P B 3
2 1
P B 4
2 2
P B 5
2 3
P B 6
2 4
P B 7
2 5
P C 0
1 4
P C 1
1 5
P C 2
1 6
P C 3
1 7
P C 4
1 3
P C 5
1 2
P C 6
1 1
P C 7
1 0
R D
5

W R
3 6
A 0
9
A 1
8
R E S E T
3 5
C S
6
U 1 4
8 2 5 5
V C C
R 8
R
R 9
R
R 1 0
R
23
PHẦN IV:KẾT LUẬN.
+ Mạch có dải đo nhiệt độ lớn, từ 0độC đến 99độC.
+ Đáp ứng được sự thay đổi nhiệt độ môi trường.
+ Có thể dùng nhiều loại nguồn khác nhau.
+ Mạch hiển thị LED 7 đoạn nên dễ dàng cho người sử dụng theo dõi nhiệt độ hiển
thị dù trong điều kiện thiếu ánh sáng.
+ Tính ổn định không cao khi mang đi xa hay sử dụng trong khi đang di chuyển.
+ Còn có sai số nhiệt độ đo được do sai số linh kiện và những sai số trong khi tính
toán thiết kế mạch.
+ Mạch có thể được cải tiến có thể đáp ứng với nhu cầu sử dụng khác nhau.

24

×