Thiết kế dùng Chip vi điều khiển 8051 áp dụng vào đo nhiệt độ của lò
Trang 13 Bộ nhớ dữ liệu RAM : 8KB ( địa chỉ tuỳ chọn )
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:
cho phép so với giá trị trung bình
hạn MAX, MIN tơng ứng Các giá trị giới hạn MAX, MIN đợc đặt trong 2 ô nhớ của RAM
II Các b ớc tiến hành
1 Chọn bộ vi xử lý (8085 hoặc 8051,) Thiết kế sơ bộ sơ đồ khối
mạch chốt,ADC,Xác định địa chỉ cho các tín hiệu vào /ra Lập bản đồ bộ nhớ
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ật lý) cho thiết kế ở bớc 2
4 Thiết kế sơ đồ chi tiết cho hệ
Trang 2Và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
đặ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ệc tì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 kế mạchthật để thấy
đợc phần thiếu sót trong khi thiết kế và 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 3Thiế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 ứng dụng công nghiệp, đợc hãng intel công bố vào năm 1980
8051 là bộ vi điều khiển đầu tiên của họ vi điều khiể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ất nhậ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ẻ đến 64K
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
Sơ đồ khối của chip 8051
Trang 48051 có 2 khoảng địa chỉ độc lập cho bộ nhớ chơng trì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ác nhanh 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ấp nhấ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 128 byte thấp nhất của bộ nhớ dữ liệu trên chip và nó có thể truy nhậ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 chức năng Bus địa chỉ và Bus dữ liệu, chân ALE xuất hiện tí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 Hai bit trong thanh ghi trạng thái (RS0,RS1 ) sẽ lựa chọn khố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
FF
80 7F
30 2F
20 1F 18 17 10 0F 08 07 00
Trang 5- Vùng 3: Địa chỉ từ 30H đến 7FH làm chức năng thông thờng của bộ nhớ RAM
- Vùng các thanh ghi chức năng đặc biệt (SFR).Có 21 thanh ghi chức năng đặc biệt chiếm phần trên của RAM nội từ địa chỉ 80H đến FFH
Sơ đồ chân của 8051
II Sơ đồ khối của hệ thống:
Trang 6b 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ào trong 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/R
Khi nguồn nuôi mất thì số liệu trong RAM cũng mất, nh vậy RAM đợ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
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
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
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 7EXTERNAL
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ừ
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
1 Thiết kế bộ nhớ:
Hầu hết các bộ vi sử lý(CPU) đều có không gian nhớ chung cho dữ
liệu và chơng trình vì chơng trình thờng đợc lu trữ trên đĩa
và đợc nạp vào RAM để thực thi Vì vậy cả hai dữ liệu và chơng
trình đều đợc lu trú trong RAM
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 8Bộ nhớ chơng trình EPROM
Trong vi điều khiển bộ nhớ chơng trình của nó có 4K byte ROM trong,và
bộ nhớ ngoài EPROM2732 có dung lợng 4K Đây là bộ nhớ lập trình xoá bằng tia cực tím, nó có tốc độ truy nhập rất nhanh, nó có 12 đờng chọn địa chỉ và có 8
đờng ra dữ liệu EPROM chỉ đợc hoạt động khi chân #OE ở mức tích cực thấp,
nó đợc vi điêù khiển chọn làm việc khi chân #CE cũng đợc tích cực thấp EPROM đợc nuôi với mức điện áp 5V, điện áp này đợc đa vào bộ nhớ thông qua
hai đờngtín hiệu yêu cầu đọc viết là #OE, #WE
Sơ đồ chân của RAM
2732
Trang 92 Các mạch phụ trợ
a Mạch giải mã 74LS138
Khi muốn có nhiều đầu ra chọn vỏ từ bộ giải mã thì không nên dùng mạch
NAND đơn giản nữa mà nên dùng mạch giải mã đã chế tạo chuẩn
Nó bao gồm 14 chân, trong đó:
0
nhớ 8 KB
A,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ức thấp
E3 là các đầu vào cho phép làm viêc , tích cực ở mức cao
E3E2E1
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
Trang 10c 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ểm zero 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:
- 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
- Độ phân giải 8 bít
- Đ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
Trang 11• 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ân A,B,C và bắt đầu chuyển đổi trong
xong
Khi có tín hiệu Enable ( OE ) ở mức tích cực sẽ cho phé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:
A2 A1 A0
test RBI
g f e d c b a
RBOU1
74LS373D7
D6 D5 D4 D3 D2 D1 D0
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0
U1
Trang 12Q0ữQ7 là các tín hịu dữ liệu đợc chốt ở đầu ra.
Khi có tín hiệu tích cực thấp vào đầu vào OE thì tín hiệu đợc chốt ở đầu ra Q
E là chân cho phép vi mạch hoạt động Ta nối chân này xuống đất
Nguyên lý hoạt động của vi mạch tơng tự nh trên
f Mạch chốt 7475:
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
Ia2 Ia1 Ia0 Ib3 Ib2 Ib1 Ib0
Ya3 Ya2 Ya1 Ya0 Yb3 Yb2 Yb1 Yb0
OEa
OEbU1
74LS75
D3 D2 E23 D1 D0 E01
Q3 Q3
Q2 Q2
Q1 Q1
Q0 Q0
U2
Trang 13Vi mạch ROM , RAM 8 K nên dùng 13đờng địa chỉ từ A0ữA12
Tiếp theo là mạch vào ra logic 74LS244 đợc bố chí ở vùnh nhớ 6000H,
ADC0809
RAM 8K ROM 8K
FFFF H
6000H 5FFF H
4000H 3FFF H 2000h 1FFF H 0000H
Trang 14b Lu đồ chơng trình phục vụ ngắt INT 1 để vào số liệu:
Trang 15c 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 16d Ngoài ra còn có các lu đồ chơng trình con tạo chễ, chống rung
Ket qua=0?
DELAY
IN Port , compare MASK
Ket qua=0?
False
True True
Trang 18MOV 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
Trang 19INC R0
INC R2
DEC R3
JNZ 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ừ đầuLJMP END
SUBB A,#8 ; Xem số kênh đo đợc đã đủ 8 cha
JC ĐO ; Nếu cha đủ thì tiếp tục đo
Trang 20MOVX @DPTR,A ; chuyển số liệu sau khi chuẩn hoá vào địa chỉ ;**** tơng ứng của nó
MOV R4,#00H; R4 chứa byte thấp địa chỉ nhiệt độ đo
MOV R5,#0FH; R5 chứa byte thấp địa chỉ của phần nguyên nhiệt độ
Trang 21SUBB A,MIN ;So sánh phần nguyên của nhiệt độ với nhiệt độ MIN
JC ALARM ; Nếu nhiệt độ nhỏ hơn nhiệt độ MIN thì báo động
Trang 22MOV 31H,A; PhÇn nguyªn 1(31H)
MOV A,B; D 1A
Trang 23MOV @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 24;****Phần chơng trình con hiển thị báo nhiệt độ cao của từng kênh****
MOV R6, #50; R6 chứa số lần thực hiện vòng lặp ở ngoài
Tao_tre4:MOV R7,#15 ; R7 chứa số lần thực hiện vòng lặp ở trongTao_tre3:NOP
Trang 25A B C
D D
C
B
A
Title Number Revision
S ize B
A 1 B 2 C 3 E1 4 E2 5 E3 6
Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7
74ALS 138
A 1 B 2 C 3 E1 4 E2 5 E3 6
Y0 15Y1 14Y2 13Y3 12Y4 11Y5 10Y6 9Y7 7
U?
74ALS 138
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
8 2-6
1514 2-7 IN-3 1lsb2-8
17 IN-4 2EOC
7 IN-5 3ADD-A
2524 ADD-B IN-6 4ADD-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
74ALS 244
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
HEADER 8
Port 1.2 Port 1.4
CS 2
Kenh 0 Port Kenh 1 Kenh 2 Kenh 3 Kenh 4 Kenh 5 Kenh 6 Kenh 7
+5 +5