THIẾT KẾ HỆ VI XỬ LÝ 8 BIT.
Trang 13 Bộ nhớ dữ liệu RAM : 8KB ( địa chỉ tuỳ chọn )
4 Cổng vào tơng tự 8 kênh nhận tín hiệu đo nhiệt độ từ 0V5V tơng ứng với nhiệt độ 0100C, các cổng vào ra số liệu và mạch điều khiển
4 So sánh nhiệt độ của từng kênh với giá trị nhiệt
độ trung bình Nếu kết quả lớn hơn hoặc nhỏ hơn giá trị cho phép cho trớc thì gửi tín hiệu báo động cao hoặc thấp tơng ứng với kênh đó Giá trị cho phép này đặt trong một ô nhớ của RAM
5 Chơng trình dừng lại và báo động bằng còi khi xảy ra một trong các trờng hợp sau:
Có ít nhất 4 kênh đo vợt quá hoặc nhỏ hơn giớihạn cho phép so với giá trị trung bình
Giá trị nhiệt độ trung bình lớn hơn hoặc nhỏ hơn giá trị giới hạn MAX, MIN tơng ứng Các giá trị giớihạn MAX, MIN đợc đặt trong 2 ô nhớ của RAM
3 Chọn linh kiện Nghiên cứu và chọn chế độ làm
việc của linh kiện phù hợp với yêu cầu (logic và vậtlý) cho thiết kế ở bớc 2
4 Thiết kế sơ đồ chi tiết cho hệ
Trang 2LờI NóI ĐầU
Vào năm 1971 tập doàn INTEL đã cho ra đời họ vi xử lý
đầu tiên 4004 là vi xử lý 4 bit Và từ đó đến nay nó liên tục phát triển và nâng cao từ họ vi xử
lý 4 bit đầu tiên đến nay là vi xủ lý 32 bit và 64 bit với tần số xung nhịp f=100200 MHz , ngày nay chúng đợc ứng dụng rộng rãi vào trong cuộc sống và đặc biệt là trong các ngành công nghiệp
Bên cạnh họ vi xử lý, vào năm 1976 INTEL giới thiệu bộ vi
điều khiển (microcontroler) 8748, một chip tơng tự nh các bộ
vi xử lý và là chip đầu tiên trong họ vi điều khiển MCS – 48, bao gồm 1 CPU , 1Kbyte EPROM, 64 byte RAM, 27 chân xuất nhập và một bộ định thời 8 bit
Độ phức tạp , kích thớc và khả năng của bộ vi điều khiển đợc tăng lên một bậc quan trọng vào năm 1980 khi INTEL công bố chip 8051, bộ vi điều khiển đầu tiên của họ vi điều khiển MCS –51 Chip này chứa trên 60000 transistor, bao gồm 4 K byte ROM, 128 byte RAM , 32 dờng xuất nhập, 1 port và 2 bộ
định thời 16 bit đây là một số lợng mạch đáng chú ý trong một IC đơn chip Các thành viên mới đựơc thêm vào họ MCS –
51 và các biến thể ngày nay gần nh gấp đôi các đặc trng này
Dới sự phát triển mạnh mẽ đó của công nghệ vi xử lý thì việctìm hiểu nghiên cứu để nắm bắt công nghệ, tìm cách ứng dụng vào thực tế là một công việc quan trọng của sinh
vên,những ngời kỹ s tơng lai
Với kiến thức về vi xử lý đợc học trong hai kỳ, có sự tham khảo trong sách vở, và đặc biệt đợc sự giúp đỡ chỉ bảo tận tình của thày giáo em đã hoàn thành nhiệm vụ thiết kế dùng chip vi điều khiển 8051 áp dụng vào đo nhiệt độ của lò Thông qua bản thiết kế này em đã đợc áp dụng những kiến thức đã học vào công việc thiết kế phần cứng và viết phần mềm cho hệ vi điều khiển
Tuy vậy, đây mới chỉ là phần lý thuyết , em rất muốn thiết
Trang 3và lập trình.Nhng do thời gian có hạn cũng nh kiến thức còn hạn chế nên không thể tránh khỏi những thiếu xót
Em mong thày cô chỉ bảo và giúp đỡ em
Trang 4Thiết kế hệ vi điều khiển 8051
I Giới thiệu vi điều khiển 8051.
Là vi xử lý đơn chíp 8 bit đợc sử dụng cho những ứngdụng công nghiệp, đợc hãng intel công bố vào năm1980
8051 là bộ vi điều khiển đầu tiên của họ vi điềukhiển
MCS –51, với những đặc điểm sau:
Độ dài từ dữ liệu là 8 bit
Rất tiện dùng cho hệ điều khiển
Tập lệnh rất phong phú với 256 lệnh
ROM bên trong là 4 K
RAM bên ngoài là 128 byte
Có 32 đờng vào ra theo hai hớng qua 4port xuấtnhập
( I/O port) 8 bit, và có thể địa chỉ riêng từng ờng
đ- Có 2 bộ định thời 16 bit
Không gian địa chỉ của ROM & RAM có thẻ đến64K
Có 6 nguồn ngắt ,5 vector ngắt với 2 mức u tiên
Đã có bộ giao động bên trong với tần số 12Mhz
Có 2 thanh chứa A & B mỗi thanh 8 bit, trong đó
B thờng dùng cho phép chia
Trang 5Sơ đồ khối của chip 8051
8051 có 2 khoảng địa chỉ độc lập cho bộ nhớ chơngtrình( ROM ) và bộ nhớ dữ liệu( RAM ) Sự độc lập của bộ nhớchơng trình và bộ nhớ dữ liệu cho phép bộ nhớ dữ liệu đợc
xử lí bởi địa chỉ 8 bit Nó có thể đợc lu trữ và thao tácnhanh hơn bởi CPU 8 bit Tuy nhiên địa chỉ 16 bit cũng cóthể đợc phát ra thông qua thanh ghi DPTR
Bộ nhớ chơng trình (ROM,EPROM) là bộ nhớ chỉ có đọc
Bộ nhớ này có thể lên tới 64Kbyte Trong 8051 4Kbyte thấpnhất của bộ nhớ chơng trình là trên chip.Bộ nhớ ngoài có thể
đọc đợc nhờ tín hiệu chốt của chân PSEN
Bộ nhớ dữ liệu RAM độc lập với bộ nhớ chơng trình 128byte thấp nhất của bộ nhớ dữ liệu trên chip và nó có thể truynhập đến 64Kbyte ngoài CPU sẽ phát ra các tín hiệu RD và
WR cần thiết trong suốt quá trình xử lí bộ nhớ dữ liệu
4 Kbyte ROM trong có thể đợc chọn bởi nối chân EA vào mức
0 (nếu bằng 1 thì ROM ngoài ) Khi truy nhập bộ nhớ ngoài sửdụng cổng P0 và P2 làm 16 đờng vào ra Trong đó P0 làm
Trang 6chức năng Bus địa chỉ và Bus dữ liệu, chân ALE xuất hiệntín hiệu chốt địa chỉ( byte thấp của dịa chỉ 16 bit)
b/ Bộ nhớ dữ liệu :
Bộ nhớ dữ liệu đợc chia thành 4 vùng :
- Vùng 1 :Địa chỉ từ 00H đến 1FH là phần thấp nhất
đ-ợc chia thành 4 khối của 8 thanh ghi Các lệnh của
ch-ơng trình sẽ gọi các thanh ghi này từ R0 đến R7 Haibit trong thanh ghi trạng thái (RS0,RS1 ) sẽ lựa chọnkhối 4 này
- Vùng 2: Địa chỉ từ 20H đến 2FH bao gồm 16 byte làvùng ô nhớ địa chỉ theo bit
- Vùng 3: Địa chỉ từ 30H đến 7FH làm chức năng thôngthờng của bộ nhớ RAM
- Vùng các thanh ghi chức năng đặc biệt (SFR).Có 21thanh ghi chức năng đặc biệt chiếm phần trên củaRAM nội từ địa chỉ 80H đến FFH
Bank 3
Bank 2 Bank 1 Bank 0
FF
80 7F 30 2F
20 1F 18 17 10 0F 08 07 00
Trang 7II Sơ đồ khối của hệ thống:
Trang 8
a Bộ vi điều khiển 8051:Có chức năng điều khiển hoạt
động của toàn bộ hệ thống
b Bộ nhớ chơng trình ROM ( Read Only Memory):
Chỉ có thể đọc số liệu viết trong ROM, không thể viết vàotrong quá trình lập trình, khi nguồn nuôi mất thì số liệu trong ROM vẫn còn
ROM đợc dùng để chứa chơng trình điều hành hoặc các chơng trình ứng dụng “ user’s program”
c Bộ nhớ dữ liệu RAM ( Random Access Memory):
Nghĩa là tại thời điểm bất kỳ ngời dùng cũng có thể viết sốliệu vào trong RAM hoặc đọc từ RAM ra bằng lệnh W/RKhi nguồn nuôi mất thì số liệu trong RAM cũng mất, nh vậyRAM đợc dùng để chứa số liệu trao đổi giữa hệ vi điều khiển và thiết bị ngoại vi
d Các cổng vào ra I/O:
Các vi mạch vào ra để làm cổng vào ra số liệu, các vi mạch này sẽ trao đổi trực tiếp số liệu với ngoại vi ( các cảm biến, công tắc tơ, …)
Các thiết bị ngoại vi trao đổi tín hiệu với vi xử lý trực tiếp qua I/O
e Các thiết bị ngoại vi:
Là các sensor đo nhiệt độ để cảm biến nhiệt độ của đối tợng cần đo, thông qua bộ biến đổi A/D biến các đại lợng t-
ơng tự thành thông tin về nhiệt độ đa vào cổng vào ra I/O
để đa vào hệ vi điều khiển xử lý.Bộ hiển thị đèn LED đểhiển thị nhiệt độ đo
Quan hệ về mặt trao đổi thông tin giữa các khối chức năng:
Trang 9EXTERNAL
INTERNAL FFFFH
EA=0 EXTER NAL
EA=1 INTER NAL
PROGRAM MEMORY DATA MEMORY
Từ ngoại vi , các bộ sensor cảm biến nhiệt độ đầu vào của nó là nhiệt độ của đối tợng đo, đầu ra là giá trị điện áp biến thiên từ
0V5V, giá trị biến thiên điện áp này đuợc đa đến bộ biến đổi tơng tự số A/D
Đầu ra của bộ A/D là các tín hiệu số (số hexa) mang thông tin về nhiệt độ
Thông tin này đa đến cổng vào ra I/O , thông qua Data Bus vào vi xử lý
Vi xử lý định địa chỉ và cất số liệu vào bộ nhớ dữ liệu RAM
III Thiết kế bộ nhớ, cổng vào ra, mạch giải mã, mạch chốt, ADC
Các chíp vi điều khiển thờng đợc dùng làm thành
phần trung tâm trong các thiết kế hớng điều khiển, trong đó bộ nhớ có dung lợng giới hạn, không có ổ đĩa và
hệ điều hành Chơng trình điều khiển phải thờng trú trong ROM
Do vậy 8051 có không gian nhớ riêng cho chơng trình và dữ liệu Cả hai bộ nhớ này đều đặt bên trong chip
Trang 10
điện áp 5V, điện áp này đợc đa vào bộ nhớ thông qua chânVpp Địa chỉ của EPROM trong hệ thống là 00000FFFH.Địachỉ này đợc chọn bởi vi mạch giải mã địa chỉ 74138, với đầuchọn chip là
Sơ đồ chân của EPROM
Bộ nhớ ngoài RAM
Bên cạnh bộ nhớ chơng trình EPROM ta còn sử dụng bộ nhớ ngoài RAM có dung lợng 8K byte, có 13 đờng địa chỉ 8 đ-ờng dữ liệu Nó có địa chỉ 20003FFF, địa chỉ này đợc
Ngoài ra còn có đờng chọn vỏ khác là CS2 đợc nối tích cực và
có hai đờngtín hiệu yêu cầu đọc viết là #OE, #WE
Sơ đồ chân của RAM
2732
Trang 11A,B,C là 3 đờng địa chỉ vào , tích cực cao.
E1 ,E2 là các đầu vào cho phép làm viêc , tích cực ở mứcthấp
E3 là các đầu vào cho phép làm viêc , tích cực ở mức cao
Trang 12Sơ đồ chân vi mạch:
74LS138
A2A1A0E3E2E1
Q7Q6Q5Q4Q3Q2Q1Q0
U174LS138
b Mạch chốt 74HC373
Khi port 0 đợc sử dụng làm bus địa chỉ/dữ liệu đa hợp
Chân ALE của VXL xuất hiện tín hiệu dể chốt địa chỉ, tín hiệu này đợc nối vào đầu vào chốt của vi mạch 74HC373 và tín hiệu địa chỉ đợc chốt ở đây trong 1/2 chu kỳ đầu của
bộ nhớ.Chân port 0 sẽ xuất nhập dữ liệu hợp lệ trong suốt 1/2 chu kỳ còn lại
c Bộ chuyển đổi tơng tự số ADC 0809
Bộ ADC 0809 là một thiết bị CMOS tích hợp với một bộchuyển đổi tơng sang số 8 bit, bộ chọn kênh và mật bộ logic
điều khiển tơng thích Bộ chuyển đổi tơng tự số này sửdụng phơng pháp chuyển đổi xấp xỉ Bộ chọn kênh có thểchọn ra kênh cần chuyển đổi bằng 3 chân chọn địa chỉ.Thiết bị này loại trừ khả năng cần thiết điều chỉnh điểmzero bên ngoài và khả năng điều chỉnh tỉ số làm cho ADC
đễ dàng giao tiếp với các bộ vi xử lý
- ý nghĩa các chân:
Trang 13- IN0 – IN7: 8 đầu vào tơng tự
- A,B,C : các tín hiệu chọn kênh
- Các chân 2.1-2.7: là các đầu ra số
- ALE cho phép chốt số liệu đầu vào
- Start: xung cho phép bắt đầu chuyển đổi
- Clk:đầu vào xung clock
- Ref(+): điện áp vào chuẩn +5v
- Ref(-): điện áp vào chuẩn 0
- Vcc: nguồn cung cấp
Các đặc điểm của ADC 0809
- Độ phân giải 8 bít
- Tổng sai số cha chỉnh ±1LSB
- Thời gian chuyển đổi 100 s
- Nguồn cung cấp ± 5 V
- Điện áp vào 0-5V
- Tần số xung clock 10kHz – 1028 kHz
- Dễ dàng giao tiếp với vi xử lý hoặc dùng riêng
- Không cần điều chỉnh zero hoặc thang đo
Nguyên lý hoạt động:
Khi có tín hiệu ALE và Start ở mức tích cực nó sẽchốt tín hiệu ở đầu vào của kênh đợc chọn bởi 3 chânA,B,C và bắt đầu chuyển đổi trong khoảng thời gian100s Sau đó nó phát ra xung EOC báo đã chuyển đổixong
Khi có tín hiệu Enable ( OE ) ở mức tích cực sẽ chophép các thiết bị có đọc số liệu ở đầu ra
Việc lựa chọn các kênh tuân theo quy luật sau:
Trang 14test RBI
g f e d c b a RBO
U1
74LS373
D7 D6 D5 D4 D3 D2 D1 D0
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
U1
74LS244
Ia3 Ia2 Ia1 Ia0
Ya3 Ya2 Ya1 Ya0
OEa
OEb
U1
Trang 15f Mạch chốt 7475:
Đầu vào số liệu D0D3 đợc chốt lại ở đầu ra
Q0Q3 khi có tín hiệu chốt đa vào đầu vào
E01.Tín hiệu đầu ra này đợc giữ lại đến khi
có tín hiệu mới đợc chốt tiếp
74LS75
D3 D2 E23 D1 D0 E01
Q3 Q3
Q2 Q2
Q1 Q1
Q0 Q0
U2
7475
74LS373 74LS244
ADC0809
RAM 8K ROM 8K
FFFF H
6000 H 5FFF H 4000 H 3FFF H 2000h 1FFF H 0000
Trang 16Vi mạch ROM , RAM 8 K nên dùng 13đờng địa chỉ từ A0A12
Từ A13A15 dùng để chọn vùng nhớ cho các vi mạch, nó đợc
đ-a vào đầu vào mạch giải mã 74LS138
Vùng nhớ RAM 8K có địa chỉ từ 2000H3FFFH và đuợc chọn bơi
Trang 17b.Lu đồ chơng trình phục vụ ngắt INT 1 để vào số liệu:
Trang 18c.Lu đồ chơng trình phục vụ ngắt ngoài INT 0 (Dừng
khẩn cấp)
INT 0
Phuc vu ngat INT0
RETI
Trang 19d Ngoài ra còn có các lu đồ chơng trình con tạo chễ,
R6=0
? R7-1R7
Ket qua=0?
DELAY
IN Port , compare MASK
Ket qua=0?
False
False
True True
Trang 21MOV SP,#5FH; Khởỉ tạo đỉnh stack tại 60H
MOV PSW,#0000.1000B; Làm việc với bank 1
Khoi_tao:
MOV R3,#9; Vòng lặp để đo các kênh
MOV R2,#1; số kênh đo đợc
MOV R0,#00H; Phần thấp địa chỉ chọn kênh đo
MOV R1,#40H; Phần cao địa chỉ chọn CS
Trang 22JNZ DATA_INPUT ;Nếu đo cha đủ 8 thì đo tiếp
JZ Khoi_tao ;Nếu đo đủ rồi thì bắt đầu lại từ đầu
Trang 23;**** Chơng trình phục vụ ngắt ngoài INT1 ****
EX1ISR:
MOV A,R2
SUBB A,#8 ; Xem số kênh đo đợc đã đủ 8 cha
JC ĐO ; Nếu cha đủ thì tiếp tục đo
JNC Tinh_TB; Nếu đã đủ rồi thì tính Ttb
Trang 25MOV 40H,#9 ;Thùc hiÖn vßng lÆp 8 lÇn t¬ng øng víi 8 kªnh
Trang 26DIV AB
MOV 31H,A; PhÇn nguyªn 1(31H)
MOV A,B; D 1A
Trang 27MOV @DPTR,A ;Cất số thập phân thứ hai vào ô nhớ tiếp
;**** Thực hiện hiển thị nhiệt độ trung bình ****
Repeat 2: MOV DPTR,#2100H
MOV R5,#1000.0000B ; R5 chứa thứ tự sáng của đèn
MOV R6,#0001.0000B ; R6 điều kiện để kết thúc
MOV R7,#125; Số lần lặp lại của hiển thị 4 đèn
Repeat 1:
MOVX A,@DPTR; đầu tiên hiển thị số hàng chục
MOV #PortC,A
MOV A,R5
RL A ;Chuyển hiển thị đến đèn tiếp theo
MOV #Port B,A
Trang 291 2 3 4 5 6
A B C
D D
C
B
A
Title Number Revision Size
B Date: 9-Jun-2002 Sheet of File: C:\PROTEL\CHIEN1.SCH Drawn By:
A 1 B 2 C 3 E1 4 E2 5 E3 6
Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7
74ALS138
A 1 B 2 C 3 E1 4 E2 5 E3 6
Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7
U?
74ALS138
EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16
INT0
12 INT113
T0
14 T115
P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8
P00 39P01 38P02 37P03 36P04 35P05 34P06 33P07 32P20 21P21 22P22 23P23 24P24 25P25 26P26 27P27 28
PSEN 29ALE/PTXD 3011 RXD 10
8051
D0
3 Q0 2 D1
4 Q1 5 D2
7 Q2 6 D3
8 Q3 9 D4
13 Q4 12 D5
14 Q5 15 D6
17 Q6 16 D7
18 Q7 19 OE 1 LE 11
74HC373
A0 8 A1 7 A2 6 A3 5 A4 4 A5 3 A6 2 A7 1 A8 23 A9 22 A10 19 A11 21 CE 18 OE/VPP 20
D0 9D1 10D2 11D3 13D4 14D5 15D6 16D7 17
2732
A0 10 A1 9 A2 8 A3 7 A4 6 A5 5 A6 4 A7 3 A8 25 A9 24 A10 21 A11 23 A12 2
CS1
20 CS2
26 WE
27 OE22
D0 11D1 12D2 13D3 15D4 16D5 17D6 18D7 19
15 2-7 IN-3 1
14 lsb2-8
17 IN-4 2EOC
7 IN-5 3ADD-A
25 ADD-B IN-6 4
24 ADD-C
23 IN-7 5ALE
22
ref(-) 16ENABLE
9 START
6 CLOCK ref(+) 1210
1Y1 181Y2 161Y3 141Y4 122Y1 92Y2 72Y3 52Y4 31G
1 2G 19
74ALS244
D0
3 Q0 2 D1
4 Q1 5 D2
7 Q2 6 D3
8 Q3 9 D4
13 Q4 12 D5
14 Q5 15 D6
17 Q6 16 D7
18 Q7 19 OE 1 LE 11
74ALS373
A 1 B 2 C 3 E1 4 E2 5 E3 6
Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7
8
74LS30
+5
1 3 5 7
JP?
HEADER 8
1 3 5 7
CS2
Kenh 0 Port Kenh 1 Kenh 2 Kenh 3 Kenh 4 Kenh 5 Kenh 6 Kenh 7
+5 +5 Danger
Start
Stop
+5
+5 +5