Nếu ta quyết định sử dụng một nguồn tần số khác bộ giao động thạch anh chẳng hạn như là bộ dao động TTL thì nó sẽ được nối tới chân XTAL1, còn chân XTAL2 thì để hở không nối như hình 3.1
Trang 1khụng nờn dựng bi n tr thụng th ng r t khú ch nh và khụng n nh (khi va
ch m nh s b thay i giỏ tr )
• Nguyên lý hoạt động và tính toán chọn thiết bị cho khối mạch chuyển đổi và khối mạch vi xử lý
Chương trình điều khiển hiển thị trên LED được nạp vào chíp vi xử lý 89C51
Đầu vào JP5 của khối mạch này được đấu với đầu ra JH1 của khối mạch cảm biến và mạch gia công
Chân Vref được nối với một mạch ổn định điện áp gồm 1 chiết áp chỉnh tinh
và 1 diode Zerner
ở chân này điện áp đầu vào được dùng làm điện áp tham chiếu Quan hệ giữa
điện áp Vref/2 được thể hiện ở bảng 3.5
Đầu JP10 được đấu với đầu JP11 Các Tranzitor được sử dụng ở đây là loại pnp
org 0h
sjmp main
org 0Bh
ljmp ngat_timer0
main: mov sp,#30h
mov tmod,#01h
mov tl0,#low(-9216)
mov th0,#high(-9216)
setb tr0
mov ie,#82h
mov r2,#00h
mov 12h,#00h
mov 13h,#00h
mov 14h,#00h
loop: acall hienthi
acall kiemtra_1s
sjmp loop hienthi: mov dptr,#bang_ma_led ;led1
mov p1,#11111110b mov p2,#01000110b acall delay
mov p2,#0ffh acall delay ;led2 mov p1,#11111101b mov p2,#00011100b acall delay
mov p2,#0ffh acall delay ;led3 mov p1,#11111011b
Trang 2mov a,14h
movc a,@a+dptr
mov p2,a
acall delay
mov p2,#0ffh
acall delay
;led4
mov p1,#11110111b
mov a,13h
movc a,@a+dptr
mov p2,a
acall delay
mov p2,#0ffh
acall delay
;led5
mov p1,#11101111b
mov a,12h
movc a,@a+dptr
mov p2,a
acall delay
mov p2,#0ffh
acall delay
ret
delay: mov r7,#10h
again: djnz r7,again
ret
kiemtra_1s: cjne r2,#100,thoat
mov r2,#00h
mov p0,#0ffh
setb p3.7 clr p3.6 nop nop setb p3.6 again1: jb p3.7,again1 clr p3.5
mov a,p0 mov b,#100 div ab mov 12h,a mov a,b mov b,#10 div ab mov 13h,a mov 14h,b setb p3.5 thoat:
ret ngat_timer0: inc r2 mov tl0,#low(-9216) mov th0,#high(-9216) setb tr0
reti bang_ma_led: db 40h,79h,24h,30h,19h,12h,2h,78h,0h,1
0h end
Trang 3• Nguyên lý hoạt động và tính toán chọn thiết bị cho khối mạch hiển thị
Các đầu SV1 và SV7 lần lượt được đấu với các đầu JP14 và đầu JP1 của khối mạch chuyển đổi và khối mạch vi xử lý
Trong mạch này ta sử dụng 5 đèn LED 7 vạch nối chung anôt Mạch hoạt
động theo phương pháp quét tức là nó quét lần lượt các đèn LED Các đèn này được quét liên tục, thời gian quét mỗi đèn rất ngắn khoảng vài μs Do hiện tượng lưu ảnh trên võng mạc mà mắt ta cảm nhận như các đèn này không thay đổi trạng thái Chương trình đã được nạp cho vi xử lý điều khiển quá trình này
Các điện trở từ R1 ữ R8 trong mạch để hạn chế dòng cho đèn LED
từ 5 ữ 20 mA
Ví dụ: Ta muốn hiện thị chữ C ở đèn LED thứ 5 từ trái sáng thì các đi ốt a, f,
e, d phải thông, khi đó catôt của các đi ốt này phải được nối với nguồn
Tương tự nếu ta muốn hiện số 3 ở đèn thứ 3 từ trái sáng thì các đi ốt a, b, c,
d, g phải thông, khi đó catôt của các đi ốt này phải được nối với nguồn
3.2.1.2.3 Tổng quan về chíp vi điều khiển 89051
3.2.1.2.3.1 Cấu tạo bên trong của chíp vi điều khiển 89051
Vào năm 1981 Hãng Intel giới thiệu một số bộ vi điều khiển được gọi là
8051 Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng (đều rộng 8 bit) vào ra tất cả được đặt trên một
chíp
8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thể làm việc với 8 bit dữ liệu tại một thời điểm Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để
cho xử lý 8051 có tất cả 4 cổng vào - ra I/O mỗi cổng rộng 8 bit (xem hình 3.2.2.3.1 ) Mặc dù 8051 có thể có một ROM trên chíp cực đại là 64 K byte, nhưng
các nhà sản xuất lúc đó đã cho xuất xưởng chỉ với 4K byte ROM trên chíp
Bảng 3.4: Các đặc tính của 8051 đầu tiên
ROM trên chíp
RAM
Bộ định thời
Các chân vào - ra
Cổng nối tiếp
Nguồn ngắt
4K byte
128 byte
2
32
1
6
Trang 4Hình 3.10: Bố trí bên trong của sơ đồ khối 8051
3.2.1.2.3.2 Mô tả chân của chíp vi điều khiển 89051
Họ 89051đều có 40 chân, với hai hàng chân DIP cho các chức năng khác nhau Sơ đồ bố trí chân của 89051
OSC
INTERRUPT
CONTROL
4 I/O PORTS
BUS CONTROL
SERIAL PORT
EXTERNAL
INTERRUPTS
CPU
ON - CHIP RAM
ETC TIMER 0 TIMER 1
ADDRESS/DATA
TXD RXD
P P P P
P1.0 P1.1 P1.2 P1 P1.4 P1.5 P1.6 P1.7 RST
P0.0 (AD0) Vcc 1
2 3 5 6 4
7 8 9 11 12 10
13 14 15 17 18 16
19 20
40 39 38 36 35 37
34 33 32 30 29 31
28 27 26 24 23 25
22 21
8051 (8031)
P0.1 (AD1) P0.2 (AD2) P0.4 (AD4) P0.5 (AD5) P0.3 (AD3)
PSEN P0.6 (AD6)
P2.5 (A13) P2.3 (A11) P2.1 (A9)
P2.7 (A15)
P2.4(A12) P2.6 (A14)
P2.0 (AB) P2.2 (A10)
(RXD) P3.0 (TXD) P3.1 (NT0) P3.2 (NT1) P3.3 (T0) P3.4 (T1) P3.5 (WR) P3.6 (RD) P3.7 XTAL2 XTAL1 GND
P0.6 (AD6) EA/CPP ALE/PROG
Trang 5Hình 3.11: Sơ đồ bố trí chân của 89051 Trên hình 3.11 là sơ đồ bố trí chân của 8051 Ta thấy rằng trong 40 chân thì có
32 chân dành cho các cổng P0, P1, P2 và P3 với mỗi cổng có 8 chân Các chân còn lại được dành cho nguồn VCC, đất GND, các chân dao động XTAL1 và XTAL2 tái lập RST cho phép chốt địa chỉ ALE truy cập được địa chỉ ngoài EA, cho phép cất chương trình PSEN Trong 8 chân này thì 6 chân VCC , GND, XTAL1, XTAL2, RST và EA được các họ 8031 và 8051 sử dụng Hay nói cách khác là chúng phải
được nối để cho hệ thống làm việc mà không cần biết bộ vi điều khiển thuộc họ
8051 hay 8031 Còn hai chân khác là PSEN và ALE được sử dụng chủ yếu trong các hệ thống dựa trên 8031
1 Chân VCC: Chân số 40 là VCC cấp điện áp nguồn cho chíp Nguồn điện áp là +5V
2 Chân GND: Chân GND: Chân số 20 là GND
3 Chân XTAL1 và XTAL2:
8051 có một bộ dao động trên chíp nhưng nó yêu cầu có một xung đồng hồ ngoài để chạy nó Bộ dao động Thạch Anh thường xuyên nhất được nối tới các chân đầu vào XTAL1 (chân 19) và XTAL2 (chân 18) Bộ dao động Thạch Anh
được nối tới XTAL1 và XTAL2 cũng cần hai tụ điện giá trị 30pF Một phía của tụ
điện được nối xuống đất như được trình bày trên hình 3.12
C2
C1
30pF
XTAL2
XTAL1
GND
XTAL2
XTAL1
GND
NC
EXTERRNAL OSCILLATAOR SIGNAL
Trang 6Hình 3.12 a) Nối XTAL tới 8051 b) Nối XTAL tới nguồn đồng bộ ngoài
Cần phải lưu ý rằng có nhiều tốc độ khác nhau của họ 8051 Tốc độ được coi như là tần số cực đại của bộ giao động được nối tới chân XTAL Ví dụ, một chíp 12MHz hoặc thấp hơn Tương tự như vậy thì một bộ vi điều khiển cũng yêu cầu một tinh thể có tần số không lớn hơn 20MHz Khi 8051 được nối tới một bộ giao
động tinh thể thạch anh và cấp nguồn thì ta có thể quan sát tần số trên chân XTAL2 bằng máy hiện sóng Nếu ta quyết định sử dụng một nguồn tần số khác bộ giao
động thạch anh chẳng hạn như là bộ dao động TTL thì nó sẽ được nối tới chân
XTAL1, còn chân XTAL2 thì để hở không nối như hình 3.12b
4 Chân RST:
Chân số 9 là chân tái lập RESET Nó là một đầu vào và có mức tích cực cao (bình thường ở mức thấp) Khi cấp xung cao tới chân này thì bộ vi điều khiển sẽ tái lập và kết thúc mọi hoạt động Điều này thường được coi như là sự tái bật nguồn Khi kích hoạt tái bật nguồn sẽ làm mất mọi giá trị trên các thanh ghi
5 Chân EA:
Các thành viên họ 8051 như 8751, 98C51 hoặc DS5000 đều có ROM trên chíp lưu cất chương trình Trong các trường hợp như vậy thì chân EA được nối tới
VCC Đối với các thành viên củ họ như 8031 và 8032 mà không có ROM trên chíp thì mã chương trình được lưu cất ở trên bộ nhớ ROM ngoài và chúng được nạp cho 8031/32 Do vậy, đối với 8031 thì chân EA phải được nối đất để báo rằng mã chương trình được cất ở ngoài EA có nghĩa là truy cập ngoài (External Access) là chân số 31 trên vỏ kiểu DIP Nó là một chân đầu vào và phải được nối hoặc với VCC hoặc GND Hay nói cách khác là nó không được để hở
6 Chân PSEN:
Đây là chân đầu ra cho phép cất chương trình (Program Store Enable) trong
hệ thống dựa trên 8051 thì chương trình được cất ở bộ nhớ ROM ngoài thì chân này
được nối tới chân OE của ROM
Trang 77 Chân ALE:
Chân cho phép chốt địa chỉ ALE là chân đầu ra và được tích cực cao Khi nối
8051 tới bộ nhớ ngoài thì cổng 0 cũng được cấp địa chỉ và dữ liệu
Hay nói cách khác 8051 dồn địa chỉ và dữ liệu qua cổng 0 để tiết kiệm số chân Chân ALE được sử dụng để phân kênh địa chỉ và dữ liệu bằng cách nối tới chân G của chíp 74LS373
8 Các chân cổng vào\ra và các chức năng của chúng
Bốn cổng P0, P1, P2 và P3 đều sử dụng 8 chân và tạo thành cổng 8 bít Tất cả các cổng khi RESET đều được cấu hình như các đầu ra, sẵn sàng để được sử dụng như các cổng đầu ra Muốn sử dụng cổng nào trong số các cổng này làm đầu vào thì nó phải được lập trình
9 Cổng P0
Cổng 0 chiếm tất cả 8 chân (từ chân 32 đến 39) Nó có thể được dùng như cổng đầu
ra, để sử dụng các chân của cổng 0 vừa làm đầu ra, vừa làm đầu vào thì mỗi chân phải được nối tới một điện trở kéo bên ngoài 10kΩ Điều này là do một thực tế là cổng P0 là một màng mở khác với các cổng P1, P2 và P3 Khái niệm máng mở
được sử dụng trong các chíp MOS về chừng mực nào đó nó giống như Cô-lec-tơ hở
đối với các chíp TTL Trong bất kỳ hệ thống nào sử dụng 89C51 ta thường nối cổng P0 tới các điện trở kéo, bằng cách này ta có được các ưu điểm của cổng P0 cho cả
đầu ra và đầu vào Với những điện trở kéo ngoài được nối khi tái lập cổng P0 được cấu hình như một cổng đầu ra
a) Cổng P0 đầu vào: Với các điện trở được nối tới cổng P0 nhằm để tạo nó thành cổng đầu vào thì nó phải được lập trình bằng cách ghi 1 tới tất cả các bit Đoạn mã dưới đây sẽ cấu hình P0 lúc đầu là đầu vào bằng cách ghi 1 đến nó và sau đó dữ liệu nhận được từ nó được gửi đến P1
b) Vai trò kép của cổng P0: Khi nối 8051 tới bộ nhớ ngoài thì cổng 0 cung cấp cả địa chỉ và dữ liệu 8051 dồn dữ liệu và địa chỉ qua cổng P0 để tiết kiệm số chân
Trang 8ALE báo nếu P0 có địa chỉ hay dữ liệu khi ALE - 0 nó cấp dữ liệu D0 - D7 Do vậy, ALE được sử dụng để tách địa chỉ và dữ liệu với sự trợ giúp của chốt 74LS373
10 Cổng P1
Cổng P1 cũng chiếm tất cả 8 chân (từ chân 1 đến chân 8) nó có thể được sử dụng như đầu vào hoặc đầu ra So với cổng P0 thì cổng này không cần đến điện trở kéo vì nó đã có các điện trở kéo bên trong Trong quá trình tái lạp thì cổng P1 được cấu hình như một cổng đầu ra
11 Cổng P2:
Cổng P2 cũng chiếm 8 chân (các chân từ 21 đến 28) Nó có thể được sử dụng như đầu vào hoặc đầu ra giống như cổng P1, cổng P2 cũng không cần điện trở kéo vì nó đã có các điện trở kéo bên trong Khi tái lập, thì cổng P2 được cấu hình như một cổng đầu ra
Từ những trình bày trên đây ta có thể kết luận rằng trong các hệ thống dựa trên các bộ vi điều khiển 89C51 thì ta có 3 cống P0, P1và P2 cho các thao tác vào/
ra
12 Cổng P3:
Cổng P3 chiếm tổng cộng là 8 chân từ chân 10 đến chân 17 Nó có thể được
sử dụng như đầu vào hoặc đầu ra Cống P3 không cần các điện trở kéo cũng như P1
và P2 Mặc dù cống P3 được cấu hình như một cống đầu ra khi tái lập, nhưng đây không phải là cách nó được ứng dụng phổ biến nhất Cống P3 có chức năng bổ xung là cung cấp một số tín hiệu quan trọng đặc biệt chẳng hạn như các ngắt
Các bit P3.0 và P3.1 được dùng cho các tín hiệu nhận và phát dữ liệu trong truyền thông dữ liệu nối tiếp Các bit P3.2 và P3.3 được dành cho các ngắt ngoài Bit P3.4 và P3.5 được dùng cho các bộ định thêm 0 và 1 Cuối cùng các bit P3.6 và P3.7 được cấp cho các tín hiệu ghi và đọc các bộ nhớ ngoài được nối tới các hệ thống dựa trên 89051
Trong các hệ thống dựa trên 89C51 thì các chân P3.6 và P3.7 được dùng cho vào - ra còn các chân khác của P3 được sử dụng bình thường trong vai trò chức năng thay đổi
Trang 93.2.1.2.3.3 Chíp chuyển đổi ADC 804 ( Bộ chuyển đổi tương tự số)
Chíp ADC 804 là bộ chuyển đổi tương tự số trong họ các loạt ADC 800 từ hãng National Semiconductor Nó cũng được nhiều hãng khác sản xuất, nó làm việc với +5v và có độ phân giải là 8 bít Ngoài độ phân giải thì thời gian chuyển đổi cũng là một yếu tố quan trọng khác khi đánh giá một bộ ADC Thời gian chuyển
đổi được định nghĩa như là thời gian mà bộ ADC cần để chuyển một đầu vào tương
tự thành một số nhị phân Trong ADC 804 thời gian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK và CLK IN nhưng không thể nhanh hơn 110μs Các chân của ADC 804 được mô tả như sau:
1 Chân CS (chọn chíp): Là một đầu vào tích cực mức thấp được sử dụng để kích hoạt chíp ADC 804 Để truy cập ADC 804 thì chân này phải ở mức thấp
2 Chân RD(đọc): Đây là một tín hiệu đầu vào được tích cực mức thấp Các bộ ADC chuyển đổi đầu vào tương tự thành số nhị phân tương đương với nó và giữ nó trong một thanh ghi trong RDđược sử dụng để nhận dữ liệu được chuyển đổi ở đầu
ra của ADC 804 Khi CS = 0 nếu một xung cao - xuống - thấp được áp đến chân
RDthì đầu ra số 8 bít được hiển diện ở các chân dữ liệu D0 - D7 Chân RD cũng
được coi như cho phép đầu ra
3 Chân ghi WR(thực ra tên chính xác là “Bắt đầu chuyển đổi”) Đây là chân đầu vào tích cực mức thấp được dùng để báo cho ADC 804 bắt đầu quá trình chuyển
đổi Nếu CS = 0 khi WRtạo ra xung cao - xuống - thấp thì bộ ADC 804 bắt đầu chuyển đổi giá trị đầu vào tương tự Vin về số nhị phân 8 bít Lượng thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số đưa đến chân CLK IN và CLK
R Khi việc chuyển đổi dữ liệu được hoàn tất thì chân INTR được ép xuống thấp bởi ADC 804
4 Chân CLK IN và CLK R
Trang 10Chân CLK IN là một chân đầu vào được nối tới một nguồn đồng hồ ngoài khi đồng hồ ngoài được sử dụng để tạo ra thời gian Tuy nhiên 804 cũng có một máy tạo xung đồng hồ Để sử dụng máy tạo xung đồng hồ trong (cũng còn được gọi là máy tạo đồng hồ riêng) của 804 thì các chân CLK IN và CLK R được nối tới
một tụ điện và một điện trở như chỉ ra trên hình 3.10 Trong trường hợp này tần số
đồng hồ được xác định bằng biểu thức:
RC 1 , 1
1
Giá trị tiêu biểu của các đại lượng trên là R = 10kΩ và C= 150pF và tần số nhận được là f = 606kHz và thời gian chuyển đổi sẽ mất là 110μs
Hình 3.13: Kiểm tra ADC 804 ở chế độ chạy tự do
5 Chân ngắt INTR(ngắt hay gọi chính xác hơn là “kết thúc chuyển đổi’)
Đây là chân đầu ra tích cực mức thấp Bình thường nó ở 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 được
ADC08
+5
1
1
1
4
1
2 10
9
19
10k
12 13 14 15 16 17 18
3 5
to
LE
Noma lly
Open
D D D D D D D D W INT
D R CS CLK CLK
A Vref/
Vin(-Vin(
20 Vc 10k
PO
Trang 11chuyển đổi sẵn sàng để lấy đi Sau khi INTR xuống thấp, ta đặt CS = 0 và gửi một
xung cao 0 xuống - thấp tới chân RDlấy dữ liệu ra của 804
6 Chân Vin (+) và Vin (-)
Đây là các đầu vào tương tự vi sai mà Vin = Vin (+) - Vin (-) Thông thường
Vin (-) được nối xuống đất và Vin (+) được dùng như đầu vào tương tự được chuyển
đổi về dạng số
7 Chân VCC
Đây là chân nguồn nuối +5v, nó cũng được dùng như điện áp tham chiếu khi
đầu vào Vref/2 (chân 9) để hở
8 Chân Vref/2
Chân 9 là một điện áp đầu vào được dùng cho điện áp tham chiếu Nếu chân
này hở (không được nối) thì điện áp đầu vào tương tự cho ADC 804 nằm trong dải
0 đến +5v (giống như chân VCC) Tuy nhiên, có nhiều ứng dụng mà đầu vào tương
tự áp đến Vin cần phải khác ngoài dải 0 đến 5v Chân Vref/2 đượcdùng để thực thi các
điện áp đầu vào khác ngoài dải 0 - 5v Ví dụ, nếu dải đầu vào tương tự cần phải là 0
đến 4v thì Vref/2 được nối với +2v
Bảng 3.5 biểu diễn dải điện áp Vin đối với các đầu vào Vref/2 khác nhau