Thứ Sáu, 28 tháng 2, 2014

Thiết kế hệ vi xử lý 8 bit

Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
b. Bên trong VXL8051.
RAM.
RAM trong của 8051 bao gồm cả các thanh ghi và các thanh ghi có thể
lập trình và xoá từng bit nh là RAM đa mục đích. RAM đợc dùng nh là vùng
làm việc đa năng. RAM On-chip có địa chỉ từ 00h đến 7Fh.
Các thanh ghi:
Khối RAM từ [ 0 1Fh ] đợc dùng cho các thanh ghi. Có 4 banks với 8
thanh ghi trong mỗi bank(s) đó từ R0 đến R7.
Bank 0: Từ 00h đến 07h
Bank 1: Từ 08h đến 0Fh
Bank 2: Từ 10h đến 17h
Bank 3: Từ 18h đến 1Fh
Để chọn địa chỉ các thanh ghi, đầu tiên các register bank(s) phải đợc kích
hoạt (active). Việc lựa chọn đợc làm bởi cờ trong PSW. Sau khi đã đợc chọn
thanh ghi i đợc ký hiệu là Ri
Bản đồ của bộ nhớ:
Khối nhớ trong khoảng [20h 2Fh] gồm 16 bytes = 128 bits có thể đánh
địa chỉ theo từng bit. Mỗi bit có địa chỉ từ 0h đến 7Fh. Bit 0 của byte 20 là bit
địa chỉ 0 và bit 7 của byte 2Fh là bit địa chỉ 7Fh.
FF
Địa chỉ của các SFR
80 bytes of RAM (Scrach pad)
80h
7Fh
16 bytes of bit-addressable
30h
2Fh
Khối các thanh ghi Bank 32 bytes ( 4 bank )
Hình . Bản đồ bộ nhớ trong vi xử lý 8051
bùi anh tuấn TĐH2-k45
5
Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
Những thanh ghi chức năng đặc biệt: SFR (Special Function Registers)
SFR bao gồm các thanh ghi dữ liệu và các thanh ghi điều khiển. Chúng
nằm trong các cổng, time hoặc là các thanh ghi điều khiển ngắt Ví dụ: Cổng
nối tiếp đợc điều khiển bởi SFR SCON, trong khi dữ liệu vào và ra cổng này đi
qua thanh ghi SFR SBUF. Những bit riêng lẻ của SCON xác lập những chế độ
khác nhau của cổng nối tiếp. SCON có thể đợc xem nh thanh ghi điều khiển và
SBUF đợc gọi là thanh ghi dữ liệu. SFR có byte địa chỉ trong khoảng [80h FFh]
(Tiếp theo phần địa chỉ của RAM trong từ 00h 07h nh đã nói ở trên ). 8051 có
thể truy nhập RAM và SFR bằng chế độ địa chỉ gián tiếp thanh ghi.
SFR bao gồm cả thanh ghi a, thanh ghi b và PSW. PSW bao gồm cả cờ hệ
thống nh cờ carry có 2 bit để kích hoạt register bank.
ROM:
Một vài thành viên của họ 8051 có chứa ROM ở ngay trong chúng:
- 8051 có 4KB.
- 8052 có 8KB.
- 80C517A-5 và 80C515-A có 32KB.
8751 và 8752 là EPROM là phiên bản sau của 8051 và 8052, 8031,
8032, 80C535A và 80C537A là ROM phiên bản sau của 8051, 8052, 80C515A
và 80C517A.
Trong bộ nhớ ROM trong chiếm khối nhớ thấp nhất của bộ nhớ chơng
trình. Chân EA# (External Enable) của vi điều khiển đợc cấp +5V để cho phép
chơng trình có thể đợc tìm và đọc trực tiếp từ ROM trong. Tuy nhiên những ch-
ơng trình có khối nhớ trên 4K hoặc 8K thì sẽ tìm và đọc lệnh từ bộ nhớ chơng
trình ngoài. Các chơng trình sẽ đợc đọc từ bộ nhớ bên ngoài khi chân EA# đợc
nối đất (Khi đặt ký hiệu # ở phía sau toán hạng thì sẽ hiểu là tín hiệu đó đợc
kích hoạt khi ở mức thấp).
Bộ đếm chơng trình:
Bộ đếm chơng trình (Program Counter) đợc dùng để chỉ đến byte lệnh
tiếp theo sẽ đợc đọc. Nó không bị ảnh hởng trực tiếp nhng sẽ bị thay đổi bằng
những lệnh rẽ nhánh nh lệnh Jmp hoặc Call. Nó cũng có thể dùng nh địa chỉ cơ
sở cho chỉ số địa chỉ khi đọc từ bộ nhớ chơng trình.
Cổng vào ra song song:
8051 có 4 cổng vào ra song song (Parallel input/output port). Khi cổng đ-
ợc dùng là cổng ra, dữ liệu đợc để trong SFR tơng ứng. Giá trị đợc viết đến SFR
tơng ứng sẽ đợc chốt và phát ra tín hiệu sau khi quá trình ghi kết thúc. Giá trị
của cổng ra thay đổi khi giá trị mới đợc chốt.
bùi anh tuấn TĐH2-k45
6
Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
Khi cổng đợc dùng là cổng vào, đầu tiên giá trị FFh sẽ đợc ghi lên cổng,
sau đó tất cả các cổng vào làm cho chân điện thế thấp sẽ đợc đặt bằng 0. Việc
đọc các SFR tơng ứng sẽ đọc giá trị của cổng. Bộ chốt cửa ra sẽ điều khiển chân
cổng lên mức logic 1 nếu không có dòng điện của mạch ngoài hạ xuống trên
chân.
Mặc dù cùng 1 SFR đang đợc dùng, nhng bên trong vẫn có hai thao tác
đợc tiến hành khi cổng đang đợc đọc và đang đợc ghi. Các thao tác đó đợc thực
hiện hoàn toàn bằng phần cứng, bảo vệ giúp ngời dùng từ việc giữ hớng khi dữ
liệu đợc vận chuyển.
Một điều chú ý nữa là mặc dù tất cả các thao tác đọc mà đọc giá trị từ
chân cổng có 1 vài thao tác đọc vẫn ngầm đọc giá trị của cổng chốt, gọi là thao
tác read-modify-write
Để tiến hành lựa chọn các chức năng thì các SFR tơng ứng phải đợc thiết
lập (Đặt bằng 1).
Bộ phát dao động:
8051 có 1 bộ phát dao động dùng tinh thể thạch anh ngoài. Bộ tạo dao
động tần số giống nh tần số của tinh thể và đợc chia cho 12, nó có thể đợc dùng
làm đầu vào của timer.
Dùng 12 MHz crystal thì timer input sẽ là 1 MHz. 8051 có 12 chu kỳ dao
động trên 1 chu kỳ máy. Nó có 255 thao tác những nhóm mã lệnh, tơng đơng
111 chỉ thị. Ví dụ có15 mã thao tác cụ thể phụ thuộc vào byte đích, byte nguồn
và chế độ địa chỉ. Thêm vào đó, có 2 lệnh dịch chuyển bit và 1 lệnh dịch chuyển
word, lệnh đó dịch chuyển 16 bit vào con trỏ dữ liệu (data pointer). Trong 255
mã thao tác đó, 159 thao tác hết 1 chu kỳ máy, 51 thao tác cần 2 chu kỳ máy,
43 thao tác cần 3 chu kỳ máy và 2 thao tác cần 4 chu kỳ máy. Từ khi có nhiều
thao tác chỉ cần 1 chỉ thị máy, 8051 đã xem xét đến khả năng có thể thực hiện
hàng triệu lệnh trong 1 giây (Million Instruction Per Second: MIPS). Rất nhiều
hệ thống 8051 dùng dao động tinh thể 11.0592 MHz, sở dĩ có sự lựa chọn này
vì trong thực tế có rất nhiều dao động đồng hồ có thể phát ra tốc độ Baud rất
cao. Với đồng hồ 12 MHz tốc độ Baud lớn nhất là 4800, còn dùng dao động
tinh thể 11.0592MHz tốc độ có thể lên tới 19200baud.
Cổng nối tiếp:
Cổng nối tiếp đợc điều khiển bởi SFR SCON. Dữ liệu vào và ra cổng nối
tiếp đều đi qua SFR SBUF. Khi cổng nối tiếp đã đợc khởi tạo, ta có thể dễ dàng
ghi dữ liệu vào SBUF để khởi đầu cho việc truyền nối tiếp. Tơng tự nhận dữ liệu
cũng đợc đọc từ SBUF. Mặc dù SBUF đợc nói ở trên giống nh là SFR riêng lẻ
nhng phần cứng của nó bao gồm hai buffer tách biệt, một buffer để truyền và
một buffer để nhận dữ liệu. Truyền và nhận nối tiếp có thể diễn ra đồng thời
(full duplex operation).
bùi anh tuấn TĐH2-k45
7
Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
Timer/Counter.
8051 có hai Timer/Counter, mỗi Timer/Counter đợc dành cho hai SFR.
Timer/Counter 0 là TH0 và TL0, còn Timer/Counter 1 là TH1 và TL1. Các
thanh ghi dành cho Timer/Counter là các thanh ghi 16 bit. Khi hoạt động, mỗi
khi có xung vào thì số đếm xung lu trong 1 hoặc 2 SFR sẽ tăng lên. Timer dùng
tín hiệu đồng hồ hệ thống làm nguồn của những xung vào. Counter dùng xung
ngoài để tăng số lợng xung. Xung ngoài đợc nhận qua 2 bit của cổng 3. Số xung
hiện tại của Timer/Counter có thể đọc từ TH0 và TL0 hoặc TH1 và TL1.
Timer/Counter cũng phát ra ngắt với điều kiện là những ngắt đó không bị IE
chắn. Khi bộ đếm bị tràn (và lại quay về 0) thì ngắt đợc phát ra. Trạng thái của
các ngắt đó đợc quan sát qua SFR TCON.
Hoạt động của Timer/Counter đợc điều khiển bởi khối xung ngẫu nhiên
từ nguồn tới thanh ghi đếm dữ liệu. Nguồn dữ liệu sẽ tới thanh ghi dữ liệu của
Timer 0 nếu điều kiện (GATE# or INT0#) And TR0 đúng. GATE# là bit điều
khiển Timer 0 của TMOD. 8051 coi bit điều khiển là GATE. Tuy nhiên khi
Timer/Counter hoạt động trong lúc GATE đang ở mức logic thấp thì sẽ giống
nh trên, chứng tỏ bit điều khiển là GATE#. TR0 cũng là bit điều khiển của
Timer 0 trong thanh ghi TMOD, INT0# là chân P3.2 của 8051. Điều kiện trên
đã chỉ rõ rằng những thanh ghi dữ liệu của Timer 0 đã đợc cập nhật nguồn khi
bit điều khiển TR0 đợc thiết lập và cả bit điều khiển GATE# bị xoá hoặc Port
P3.2 ở mức logic 1.
Timer/Counter có 4 chế độ hoạt động. Hoạt động của cả hai Timer đợc
quyết định bởi SFR TMOD. 4 bit thấp của TMOD điều khiển Timer 0, 4 bit cao
của TMOD điều khiển Timer 1.
Điều khiển ngắt:
8051 có 5 ngắt TF0, TF1, INT0#, INT1# và kết quả của cổng nối tiếp.
TF0 và TF1của thanh ghi TCON tạo ra 2 ngắt Timer/Counter, chúng phát ra
ngắt khi bộ đếm bị tràn.
II.Thiết kế hệ vi xử lý dùng 8051
Sơ đồ khối của hệ vi xử lý nh sau:
bùi anh tuấn TĐH2-k45
8
PORT0
PORT2
PORT1
ALE
Bàn phím
LATCH
ROM
RAM
8285
DATA BUS
ADDRESS BUS
CS
CS
CS
DECORDER
CS
Tín Hiệu ANALOG
Thiết Bị
Ngoại Vi
ADC
8085
Sơ đồ khối hệ vi sử lý 8 bít
Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
1.Thiết kế bộ nhớ.
A0-12
VCC
VCC
16
17
18
19
15
13
12
11
10
9
8
7
3
4
5
6
2
27
20
22
23
24
21
25
1
11
12
13
15
19
18
17
16
1
25
21
24
23
22
20
27
2
6
5
4
3
7
8
9
10
6264
RAM 8Kx8
Bit

2764
ROM 8Kx8
Bit

D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A3
A2
A6
A7
A5
A4
A8
A9
A11
A10
A12
CS1
WE
CS2
OE
D7
D6
D5
D4
D3
D2
D1
D0
CE
PGM
OE
VPP
A12
A10
A11
A9
A8
A4
A5
A7
A6
A2
A3
A1
A0
PORT 0
CS0
PSEN
RW
RD
SC1
* Hệ VXL sử dụng 8Kx8bit bộ nhớ chơng trình ngoài và 8Kx8bit bộ nhớ
dữ liệu.
ROM 8Kx8bit: 2764
RAM 8Kx8bit: 6264
* Các chân dữ liệu AD
0
-AD
7
của RAM và ROM đợc nối với Bus dữ liệu
của hệ thống (cổng Port 0 của 8051)
* ROM: - Chân OE của ROM 2764 đợc nối với PSEN của 8051
- V
pp
với V
cc
- PGM nối với GND
* RAM: - Các chân OE và WE lần lợt đợc nối với các chân RD và WR
của 8051
- CS2 nối với V
cc
* Tín hiệu chọn chíp (chọn giữa RAM và ROM) đợc lấy từ dây CS0
CS1 của mạch giải mã .
* Đối với thiết kế hệ VXL này ta sử dụng hoàn toàn bộ nhớ chơng trình
ngoài do vậy chân /EA của 8051 sẽ đợc nối đất.
* Địa chỉ bộ nhớ ngoài: ROM: 0000h - 1FFFh
RAM: 2000h - 3FFFh
bùi anh tuấn TĐH2-k45
10
Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
2.Mạch chuyển đổi số tơng tự ADC 0809 (8 kênh x 8 bit)
Kênh 8
Kênh 7
Kênh 6
Kênh5
Kênh 4
Kênh3
Kênh 2
Kênh 1
ALE
10
6
9
22
23
24
25
7
17
14
15
8
18
19
20
21
16
12
2
3
5
4
28
1
27
26
A 2
A 1
A 0
RD_ADC
WR_ADC
INT 0
PORT 0
2-5
2-6
2-8
2-7
2-3
2-4
2-2
ADC0809
CLOCK
ADD-C
ADD-B
START
ENALBE
ADD-A
EOC
2-1
mf(+)
mf(-)
IN-7
IN-6
IN-5
IN-4
IN-3
IN-2
IN-1
IN-0
a.Các thông số cơ bản
* Bộ biến đổi ADC 0809 là ADC thông dụng đợc sử dụng rộng rãi có
tám đầu vào tơng tự từ IN_0->IN7 và đầu ra 8 bit số chuyển đổi theo phơng
pháp xấp xỉ liên tiếp.
* Các đặc trng cơ bản của ADC 0809:
- Đầu ra có bộ điện 3 trạng thái để ghép trực tiếp vào kênh dữ liệu
của hệ VXL.
- Giải tín hiệu ra vào tơng tự SV khi nguồn nuôi là +5V. Có thể mở
rộng thang đo bằng các giải pháp kỹ thuật cho từng mạch cụ thể.
- Không đòi hỏi điều chỉnh 0.
- Thời gian biến đổi 100às.
- Sai số tổng cộng 1/2LSB.
- Sử dụng nguồn nuôi đơn +5V, hiệu suất cao.
- Đảm bảo sai số tuyến tính trang dải nhiệt đồ từ -40
o
C-+85
o
C.
b.Ghép nối
* ADC 0809 đợc ghép với hệ VXL đợc thể hiện nh trên hình vẽ.
bùi anh tuấn TĐH2-k45
11
Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
- Đầu ra dữ liệu 2.1-2.7 đợc nối với Port 0 của 8051
- Các kênh vào anolog đợc nối với các đầu IN_0->IN7 tơng ứng của
ADC.
- Mỗi kênh vào có địa chỉ riêng do tổ hợp 3 bit ADD_A, ADD_B,
ADD_C quy định. 3 đầu địa chỉ này đợc nối tơng ứng với 3 dây A
0
, A
1
, A
2
của
Address Bus.
- Chân EOC của ADC 0809 đợc nối với
0INT
của 8051 sau khi đã
qua một khâu đảo.
- Tín hiệu RD_ADC qua mạch đảo sẽ đợc nối với Enable của ADC
nhằm chốt dữ liệu đã biến đổi xong ở đầu ra.
- Tơng tự WR_ADC sẽ đợc đa vào ALE và Start nhằm khởi động
ADC và chốt địa chỉ của kênh hiện hành có giá trị là 3 bit ABC.
3. Mạch giải mã địa chỉ 74HC138
CS0
CS1
CS2
CS3
CS7
CS6
CS5
CS4
A13
A14
A15
6
5
1
2
3
4
11
10
9
7
12
13
14
15
C
B
A
E1
E2
E3
74HC138
VCC
A B C CS0 CS1 CS2 CS3 CS4 CS5 CS6 CS7 /CS
bùi anh tuấn TĐH2-k45
12
Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 0 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 0
CS0 : ROM
CS1 : RAM
CS2 : WR_ADC
CS3 : RD _ADC
CS4 : Chọn 8255
CS5
CS6
CS7
- Giải mã địa chỉ sử dụng IC74HC138 có 3 đầu vào ABC đợc nối tơng
ứng với 3 dây Port 2.5, 2.6, 2.7 của 8051. Sử dụng các đầu ra làm tín hiệu /CS
để chọn chíp. Byte mã xuất ra từ cổng P2 của 8051 có giá trị tơng ứng với chế
độ chọn chíp nh sau:
P2(#40H)->/CS2: WR_ADC
P2(#60H)->/CS3: RD_ADC
P2(#80H)->/CS4: Chọn 8255
-Các chân E
1
, E
2
của 74HC138 đợc nối với GND
- E
3
nối với V
cc
4.Mạch chốt 74LS373
/OE /LE IN OUT Chức năng
L L D Q
-1
L H D D
H X Hi-z Hi-z
Chốt đệm
Chốt đệm
Trở kháng cao
bùi anh tuấn TĐH2-k45
13
Website: http://www.docs.vn Email : lienhe@docs.vn Tel : 0918.775.368
- Khi 8051 truy nhập bộ nhớ ngoài, luôn sử dụng địa chỉ 16 bit thông
qua cổng Port 0 và Port 2 -> Dùng chốt để tạo Address Bus 16 bit.
- Sử dụng chốt là IC 74LS373 có bảng trạng thái đợc thể hiện nh trên
hình vẽ.
Chân OE đợc nối đất.
Chân LE đợc nối với ALE của 8051. Xung chốt ALE đợc phát 2 lần
trong một chu kỳ máy nhằm chốt 8 bit thấp của địa chỉ đợc lấy ra từ Port 0
cộng với 8 bit cao của địa chỉ đợc xuất ra từ Port 2 tạo thành địa chỉ 16 bit.
5. Cổng vào ra - vi mạch PPI 8255.
- Vi mạch 8255 A là vi mạch cỡ lớn ISI thờng đợc gọi là mạch phối
ghép vào/ra song song lập trình đợc. Do khả năng mềm dẻo trong các ứng
dụng thực tế, nó là mạch phối ghép đợc dùng rất phổ biến cho các hệ VXL
8_16_32bit. 8255 có các chân đợc bố trí nh trên hình vẽ trong đó có chứa 24
đờng dẫn lớn vào ra đợc xếp thành 3 cổng song song (port A, port B, portC).
Một nửa của cổng Port C (PC4 . . . PC7) thuộc vào nhóm A còn nửa kia thuộc
nhóm B.
- Các chân của 8255 đợc ghép với hệ VXL nh trên hình.
+ Các chân vào dữ liệu từ D
0
-D
7
đợc nối với Port 0 của 8051.
+ Các chân RD, WE đợc nối tơng ứng với các chân RD, WR của 8051.
bùi anh tuấn TĐH2-k45
14

Không có nhận xét nào:

Đăng nhận xét