Phụ lục
LỜI NÓI ĐẦU 3
PHẦN I 4
NHIỆM VỤ THƯ 4
PHẦN II 6
CƠ SỞ KIẾN THỨC 6
CHƯƠNG I 6
CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ 6
I. KHÁI QUÁT. 6
II. CÁC PHƯƠNG PHÁP ĐO NHIỆT ĐỘ: 7
a. Cặp nhiệt điện: 7
b.Nhiệt điện trở: 8
c.Các IC đo nhiệt độ 10
CHƯƠNG II 12
HỌ VI ĐIỀU KHIỂN MCS-51 12
II.1 Giới thiệu họ họ vi điều khiển MCS-51 12
II.2 Cấu trúc phần cứng họ vi điều khiển MCS-51 14
II.3 Mô tả các chân 15
II.4. Cách tổ chức và truy cập bộ nhớ của 8051. 17
II.5 hoạt động reset 20
II.2.6 Các thanh ghi chức năng đặc biệt (SFRS) 21
II.7 Các chế độ địa chỉ trong 8051 23
II.8 Timer/counter 25
II.9 các nguồn ngắt 28
II.10 Giao diện truyền tin nối tiếp 30
II.11.Các loại lệnh của 8051 34
CHƯƠNG III 37
GIỚI THIỆU MỘT SỐ LINH KIỆN TRONG MẠCH 37
III.1 Mạch chuyển đổi tương tự số ICL 7109 37
III.2 Vi mạch giải mã địa chỉ 74LS138. 42
III.3 Vi mạch dồn kênh 4051 43
III.4 IC giải mã led 7 thanh 74ls47 43
PHẦN III 45
TÍNH TOÁN THIẾT KẾ 45
45
61 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1577 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đồ án Tính toán thiết kế hệ thu thập số liệu 8 kênh sử dụng họ vi điều khiển và truyền số liệu lên máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
0.7
Cổng vào/ra 0 và cỏc đường địa chỉ thấp A0áA7
40
VCC
Chõn cấp nguồn (+5v)
II.3 Mụ tả cỏc chõn
Họ vi điều khiển 8051 theo kiểu PDIP cú tổng cộng 40 chõn trong đú cú 4 cổng vào ra song song: Cổng 0 (P0), cổng 1 (P1), cổng 2 (P2), cổng 3 (P3), cỏc chõn cấp nguồn và cỏc chõn điều khiển cỏc thiết bị ngoại vi khỏc.
Port 0:
Port 0 (cỏc chõn 32 á 39 của 8951) là cổng cú 2 cụng dụng. Trong cỏc thiết kế nhỏ khụng dựng bộ nhớ ngoài thỡ nú cú chức năng như cỏc đường vào/ra. Đối với cỏc thiết kế lớn cần phải cú bộ nhớ ngoài, cổng này trở thành bus địa chỉ và bus dữ liệu đa hợp.
Port 1:
Port 1(cỏc chõn 1 á 8 của 8951) chỉ cú tỏc dụng xuất/nhập. Cỏc chõn được ký hiệu P1.0, P1.1, p1.2, ... p1.7 cú thể dựng cho giao tiếp với cỏc thiết bị ngoài nếu cần. Port 1 khụng cú chức năng khỏc, vỡ vậy chỳng chỉ được dựng cho giao tiếp với cỏc thiết bị ngoại vi.
Port 2:
Port 2 (cỏc chõn 21 á 28 của 8951) là cổng cú 2 cụng dụng, chỳng được dựng như cỏc đường xuất/nhập hoặc là byte địa chỉ cao của bus địa chỉ 16 bit cho cỏc thiết kế cú bộ nhớ chương trỡnh ngoài hoặc cỏc thiết kế cú nhiều hơn256 byte bộ nhớ dữ liệu ngoài.
Port 3:
Port 3 (cỏc chõn 10 á 17 của 8951) là cổng cú 2 cụng dụng. Khi khụng hoạt động xuất/nhập thỡ cỏc chõn của cổng 3 cú nhiều chức năng riờng riờng biệt. Bảng dưới đõy liệt kờ cỏc chức năng của từng chõn của cổng 3 :
Bit
Tờn
Địa chỉ
Chức năng chuyển đổi
P3.0
RxD
B0H
Chõn nhận dữ liệu của cổng nối tiếp
P3.1
TxD
B1H
Chõn phỏt dữ liệu của cổng nối tiếp
P3.2
INT0
B2H
Ngừ vào ngắt ngoài 0
P3.3
INT1
B3H
Ngừ vào ngắt ngoài 1
P3.4
T0
B4H
Ngừ vào củaTIMER/COUNTER thứ 0.
P3.5
T1
B5H
Ngừ vào củaTIMER/COUNTER thứ 1.
P3.6
WR
B6H
Điều khiển ghi bộ nhớ dữ liệu ngoài
P3.7
RD
B7H
Điều khiển đọc bộ nhớ dữ liệu ngoài
Chõn cho phộp bộ nhớ chương trỡnh PSEN.
8051 cung cấp cho ta 4 tớn hiệu điều khiển Bus. Tớn hiệu cho phộp bộ nhớ chương trỡnh là tớn hiệu đưa ra trờn chõn 29. đõy là tớn hiệu điều khiển cho phộp ta truy xuất bộ nhớ chương trỡnh ngoài. Chõn này thường nối với chõn cho phộp xuất (Output Enable) của Epprom (hoặc Rom) để cho phộp đọc cỏc byte lệnh.
Tớn hiệu ở mức logic 0 trong suốt thời gian tỡm nạp lệnh. Cỏc mó nhị phõn của chương trỡnh hay mó lệnh được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh IR để được giải mó. Khi thực thi chương trỡnh chứa ở ROM nội, được duy trỡ ở mức khụng tớch cực ( Mức 1).
Chõn cho phộp chốt địa chỉ ALE.
8051 sử dụng chõn 30, chõn xuất tớn hiệu cho phộp chốt địa chỉ ALE (Address Latch Enable) để giải đa hợp bus dữ liệu và bus địa chỉ. Tớn hiệu ALE cú tần số bằng 1/6 tần số của mạch dao động bờn trong và cú thể dựng làm xung clock cho phần cũn lại của hệ thống. Nếu mạch dao động cú tần số 12MHz, tớn hiệu ALE cú tần số 2 MHz. Chõn ALE cũn được dựng để nhận xung ngừ vào lập trỡnh cho EPROM trờn chip 8051.
Chõn truy xuất ngoài .
Ngừ vào này cú thể được nối với 5V (logic 1) hoặc GND (logic 0). Nếu chõn này nối lờn 5 V, 8051/8052 thực thi chương trỡnh trong ROM nội. Nếu chõn này nối với GND (và PSEN cũng ở mức logic 0) thỡ chương trỡnh cần thực thi chứa ở bộ nhớ ngoài. Nếu chõn ở logic 0 đối với 8051/8052, ROM nội bờn trong chip bị vụ hiệu húa và chương trỡnh thực thi chứa ở ROM ngoài. đối với những loại khụng cú ROM trong thỡ chõn phải ở mức logic 0.
Chõn Reset
Chõn vào RST (chõn 9) là ngừ vào reset của 8051 dựng để thiết lập lại trạng thỏi ban đầu của hệ thống. Khi ngừ vào này được treo ở 1 tối thiểu 2 chu kỳ mỏy thỡ cỏc thanh ghi bờn trong được nạp giỏ trị thớch hợp cho việc nạp lại hệ thống.
II.4. Cỏch tổ chức và truy cập bộ nhớ của 8051.
Bộ nhớ của 8051 núi riờng và họ MCS – 51 núi chung cú khả năng định địa chỉ cho ụ nhớ dữ liệu và ụ nhớ chương trỡnh đến 64 Kbytes và được chia làm 2 vựng bộ nhớ riờng biệt: Bộ nhớ chương trỡnh và bộ nhớ dữ liệu.
=0
External
=1
Internal
0FFFH
0000H
FFFFH
FFH
00H
Internal
Exterrnal
FFFFH
Program Memory ( Read only) Data Memory ( Read/Write)
2.4.1 Bộ nhớ chương trỡnh.
Bộ vi điều khiển 8051 cú thể định dịa chỉ bộ nhớ chương trỡnh tới 64 Kbyte, bao gồm bộ nhớ ROM trong kớch thước 4 Kbyte và bộ nhớ ROM ngoài kớch thước 64 Kbyte. Nếu bộ vi điều khiển dựng ROM trong thỡ chõn (External Access) phải được treo cao, lỳc này 4Kbyte ROM trong được coi là miền địa chỉ thấp, miền địa chỉ cũn lại do ROM ngoài quản lý. Nếu chương trỡnh đọc địa chỉ 000H đến 0FFFH thỡ sẽ đọc trực tiếp từ ROM trong, cũn lại địa chỉ 1000H đến FFFFH là đọc từ ROM ngoài. Ta phải sử dụng 16 bit địa chỉ để truy cập bộ nhớ chương trỡnh ngoài. Bộ vi điều khiển cú thể dựng toàn bộ bộ nhớ ROM ngoài 64Kbyte, lỳc này thỡ chõn được nối với đất (0V) và tất cả chương trỡnh được đọc từ ROM ngoài. Khi đọc bộ nhớ chương trỡnh bờn ngoài thỡ chõn (Program Strobe Enable) đưa ra cỏc xung đọc dựng cho bộ nhớ chương trỡnh bờn ngoài. Do vậy tớn hiệu chỉ cú tỏc dụng đối với ROM ngoài cũn đối với ROM trong thỡ chõn này khụng cú tỏc dụng. Sau khi Reset CPU bắt đầu thực hiện từ địa chỉ 0000H, tiếp theo là đến vựng đặt cỏc ngắt của CPU từ địa chỉ 0003H đến 0023H. Việc sử dụng ROM trong ( đối với những loại cú ROM trong) và ROM ngoài (đối với những hệ thống đũi hỏi phải mở rộng bộ nhớ) bằng cỏch sủ dụng chõn để điều khiển.
Sơ đồ ghép nối vi xử lý với ROM ngoài
Khi chõn nối với Vcc.
Đối với những loại cú ROM trong 4KByte như 8051 thỡ chương trỡnh thực hiện từ địa chỉ 0000H đến 0FFFH của ROM trong sau đú tiếp tục từ địa chỉ 1000H đến FFFFH của ROM ngoài.
Đối với những loại cú ROM trong 8KByte như 8051 thỡ chương trỡnh thực hiện từ địa chỉ 0000H đến 1FFFH của ROM trong sau đú tiếp tục từ địa chỉ 2000H đến FFFFH của ROM ngoài.
Đối với những loại cú ROM trong 16KByte như 8051 thỡ chương trỡnh thực hiện từ địa chỉ 0000H đến 3FFFH của ROM trong sau đú tiếp tục từ địa chỉ 4000H đến FFFFH của ROM ngoài.
Khi chõn nối với Vss.
Khi chõn nối với Vss thỡ lỳc này CPU sẽ làm việc toàn bộ đối với ROM ngoài. Do vậy đối với những loại khụng cú ROM trong thỡ chõn bắt buộc phải được nối với Vss.
Trong khi truy cập bộ nhớ chương trỡnh ngoài thỡ nú sẽ đưa 0FFH tới bộ chốt của cổng 0. Như vậy nú cú thể xoỏ bất cứ thụng tin nào tại cổng 0 mà SFR cú thể cũn đang giữ nờn việc viết ra cổng 0 trong khi đang truy cập bộ nhơ ngoài sẽ bị sai. Vỡ vậy ta khụng được viết ra cổng 0 khi bộ nhớ chương trỡnh ngoài đang đựoc sử dụng. Hai điều kiện để truy nhập bộ nhớ chương trỡnh ngoài là:
- Khi chõn tớn hiệu tớch cực
- Bộ đếm chương trỡnh cú nội dung lớn hơn 0FFFH (1FFFH đối với loại 8052).
2.4.2 Bộ nhớ dữ liệu.
Bộ nhớ dữ liệu RAM nếu cú địa chỉ là 8 bit thỡ cho phộp CPU 8 bit thao tỏc nhanh hơn. Nếu địa chỉ là 16 bit thỡ cú thể truy cập được thụng qua thanh ghi DPTR (Data Pointer ). Với 8051 cú 128 byte RAM trong và cú thể ghộp với 64KByte RAM ngoài. Trong suốt quỏ trỡnh CPU truy cập tới bộ nhớ dữ liệu sẽ phỏt tớn hiệu đọc /RD và tớn hiệu ghi /WR. Nửa thấp của 128 Bytes RAM trong từ 00H đến 7FH cú thể truy cập trực tiếp hoặc giỏn tiếp, trong khi nửa cao của nú tự 80H đờnFH chỉ cú thể truy cập băng chế độ địa chỉ giỏn tiếp.
Đối với 128 byte RAM trong, bao gồm:
-32 byte thấp nhất là 4 nhúm trong bank thanh ghi. Mỗi bank bao gồm 8 thanh ghi R0 á R7. Khi sử dụng cỏc thanh ghi trong bank thanh ghi nào đú là do 2 bit RS0, RS1 trong thanh ghi từ trạng thỏi PSW quy định.
-16 byte tiếp theo trong vựng 20H á 2FH là vựng RAM định địa chỉ bit. Trong vựng này cú 128 bit, bit 0 của byte 20H là 0 và bit 7 của byte 2FH cú địa chỉ là 7FH.
II.5 hoạt động reset
8051 được reset bằng cỏch giữ chõn RTS ở mức cao tối thiểu 2 chu kỳ mỏy và sau đú chuyển về mức thấp. RTS cú thể được tỏc động bằng tay hoặc được tỏc động khi cấp nguồn bằng cỏch dựng mạch RC như hỡnh dưới.
Reset bằng tay
Reset khi cấp nguồn
Hình : Hai mạch dùng Reset hệ thống
Sau khi reset thanh ghi PC được nạp 0000H. Khi RTS trở lại mức thấp, việc thực thi chương trỡnh luụn luụn bắt đầu tại vị trớ đầu tiờn trong bộ nhớ chương trỡnh. Nội dung của Ram trờn chip khụng bị ảnh hưởng bởi hoạt động Reset.
Trạng thỏi của tất cả cỏc thanh ghi cho dưới bảng dưới đõy:
Thanh ghi
Nội dung
Bộ đếm chương trỡnh Thanh chứa A
Thanh chứa B
Thanh ghi thỏi PSW
SP
DPRT
Port 0 á 3
IP
IE
Cỏc thanh ghi định thời
SCON
SBUF
PCON (HMOS)
PCON (CMOS)
0000H
00H
00H
00H
07H
0000H
FFH
xxx00000B (8031/8051)
xx000000B (8032/8052)
0xx00000B (8031/8051)
0x000000B (8032/8052)
00H
00H
00H
0xxx xxxxH
0xxx 0000 B
Bảng : Giá trị của các thanh ghi sau khi reset hệ thống
II.2.6 Cỏc thanh ghi chức năng đặc biệt (SFRS)
SFRS bao gồm cỏc thanh ghi cú cỏc chức năng đặc biệt khỏc nhau như thanh ghi điều khiển Timer, thanh ghi điều khiển cổng nối tiếp, thanh ghi điều khiển ngắt…. SFRS cú địa chỉ từ 80H đến FFH.
Bảng cỏc thanh ghi đặc biệt của 8051:
Register
Mnemonic
Internal Address
Port 0 Latch
P0
80H
Stack Pointer
SP
81H
Data Pointer
DPTR
82Há83H
Data Pointer Low Byte
DPL
82H
Data Pointer High Byte
DPH
83H
Power Control
PCON
87H
Timer/Counter Control
TCON
88H
Timer/Counter Mode Control
TMOD
89H
Timer/Counter 0 Low Byte
TL0
8AH
Timer/Counter 1 Low Byte
TL1
8BH
Timer/Counter 0 High Byte
TH0
8CH
Timer/Counter 1 High Byte
TH1
8DH
Port 1 Latch
P1
90H
Serial Port Control
SCON
98H
Serial Data Port
SBUF
99H
Port 2 Latch
P2
A0H
Interrupt Enable
IE
A8H
Port 3 Latch
P3
B0H
Interrupt Priority Control
IP
B8H
Program Status Word
PSW
D0H
Accumulator
Acc or a
E0H
B Register
B
F0H
2.6.1 Thanh ghi PSW (Program Status Word):
Thanh ghi này bao gồm cỏc bớt trạng thỏi phản ỏnh trạng thỏi của CPU.
7 6 5 4 3 2 1 0
CY
AC
F0
RS1
RS0
OV
- - -
P
Bit7(CY) :Cờ nhớ, nú được set bằng 1 khi cú nhớ từ bit 7 trong phộp cộng hoặc cú mượn cho bit 7 trong phộp trừ.
Bit 6(AC) :Cờ nhớ phụ. Cờ này được set rtong phộp cộng nếu cú nhớ từ bit 3 sang bit 4 hoặc Nếu kết quả trong 4 bit thấp nằm trong khoảng từ 0AH đến 0FH .
Bit5 (F0) :Cờ 0. Cờ này đanh cho người sử dụng.
Bit 4(RS1) :Bit chọn dóy thanh ghi
Bit 3(RS0) Bit chọn dóy thanh ghi
Bit 2(OV) :Cờ tràn. Cờ này được set sau khi cộng hoặc trừ nếu cú một tràn số học
Bit1(IE0) :khụng dựng
Bit0(IT0) :Cờ chẵn lẻ. Cờ này được set hoặc xoỏ bởi phần cứng sau mỗi chu kỳ lệnh để chỉ ra rằng cú một số chẵn hoặc một số lẻ bit 1 trong thanh chứa.
RS0
RS1
Bank tớch cực
Địa chỉ tớch cực
0
0
0
00H á 07H
0
1
1
08H á 0FH
1
0
2
10H á 17H
1
1
3
18H á 1FH
Bảng : Bảng chọn Bank
II.7 Cỏc chế độ địa chỉ trong 8051
2.7.1 Chế độ địa chỉ trực tiếp (Direct Addressing).
Direct Addressing
Opcode
Kiểu định địa chỉ trực tiếp được sử dụng để truy xuất cỏc biến nhớ hoặc cỏc thanh ghi trờn chip. Một byte được thờm vào theo opcoede dựng để xỏc định địa chỉ.
Trong chế độ này toỏn hạng chứa địa chỉ cao của ụ nhớ, địa chỉ cao của ụ nhớ được xỏc định bởi 8 bit cũn địa chỉ toỏn hạng kia là thanh ghi.
Vớ dụ: ADD A,7FH
Cõu lệnh này thực hiện cộng nội dung tại ụ nhớ 7FH với nội dung thanh chứa A, kết quả chuyển vào thanh chứa A.
2.7.2 Chế độ địa chỉ giỏn tiếp (Indirect Addressing).
Trong chế độ này thỡ cỏc thanh ghi R0 và R1 cú thể hoạt động như là cỏc con trỏ và nội dung của chỳng chỉ ra trong địa chỉ RAM, nơi mà dữ liệu được đọc hay được ghi. Bit cú ý nghĩa thấp nhất của opcode xỏc định thanh ghi nào (R0 hay R1) được sử dụng làm con trỏ.
Chế độ địa chỉ này dựng cả với RAM trong và RAM ngoài. Trong chế độ này một toỏn hạng là một thanh ghi được sử dụng để chứa địa chỉ của ụ nhớ cũn toỏn hạng kia là thanh ghi. Nếu địa chỉ của ụ nhớ là 8 bit ta cú thể dựng cỏc thanh ghi R0 á R7 của cỏc bank hoặc là Stack Pointer. Nếu địa chỉ là 16 bit ta cú thể dựng thanh ghi DPTR.
Vớ dụ: ADD A,@R0
Cõu lệnh này thực hiện cộng nội dung ụ nhớ cú địa chỉ đặt trong thanh ghi R0 với nội dung thanh chứa A, kết quả chuyển vào thanh chứa A.
2.7.3 Chế độ địa chỉ thanh ghi (Register Addressing).
Cỏc lệnh sử dụng kiểu định địa chỉ thanh ghi được mó húa bằng cỏch dựng 3 bit thấp nhất của opcode để chỉ ra một thanh ghi bờn trong khụng gian địa chỉ logic này. một mă chức năng và địa chỉ của một toỏn hạng cú thể được hỡnh thành thành một lệnh ngắn.
Trong chế độ này toỏn hạng nguồn hoặc toỏn hạng đớch cú thể là một trong 8 thanh ghi của Bank thanh ghi đó chọn.
Vớ dụ:
MOV R0,B
MOV A,R7
Một vài lệnh dựng cụ thể cho 1 thanh ghi nào đú như thanh ghi A, DPTR.... khụng cần cỏc bit địa chỉ. Bản thõn của opcode của lệnh đó chỉ ra thanh ghi cần thiết. Cỏc lệnh đặc biệt liờn quan đến thanh ghi này tham chiếu đến thanh chứa bằng ký hiệu “A” , con trỏ dữ liệu “DPTR”, bộ đếm chương trỡnh “PC”, cờ nhớ “C”…
2.7.4 Chế độ địa chỉ tức thời (Immediate Addressing).
Khi toỏn hạng nguồn là một hằng số thay vỡ một biến, hằng số cú thể đưa vào lệnh và đõy là byte dữ liệu tức thời
Sự định địa chỉ tức thời được tượng trưng bởi ký hiệu # được đứng trước một hằng số, 1 biến hoặc một biểu thức số học được sử dụng bởi cỏc hằng, cỏc ký hiệu và cỏc toỏn tử. Trỡnh biờn dịch tớnh toỏn giỏ trị và thay thế dữ liệu tức thời. Byte lệnh thờm vào chứa trị số dữ liệu tức thời như sau:
Vớ dụ:
MOV A,#100 ; nạp vào thanh chứa A số 100 cơ số 10
MOV A,#10H ; nạp vào thanh chứa A số 10 cơ số 10
2.7.5 Chế độ địa chỉ thanh ghi chỉ số (Register Addressing).
Chế độ này chủ yếu dựng để tra bảng. trong chế độ này thỡ địa chỉ nguồn và địa chỉ đớch được tớnh bằng cỏch cộng giỏ trị trong ACC với địa chỉ cơ sở. Địa chỉ cơ sở cú thể là DPTR ( Data Pointer ) hoặc là PC (Program Counter ).
Vớ dụ :
MOV DPTR,#8100H
MOV A,#0
MOV A,@A+DPTR
II.8 Timer/counter
Bộ vi điều khiển 8051 cú 2 Timer/Counter 16 bit, cả 2 timer này cú thể hoạt động như Timer hay Counter. Khi hoạt động như Timer thỡ giỏ trị của nú lại tăng lờn 1 sau mỗi chu kỳ mỏy. Khi hoạt động như Counter thỡ giỏ trị của nú tăng lờn 1 tương ứng với sự xuất hiện sườn suống tại cỏc chõn T0, T1. Mỗi Timer/Counter này lại cú 4 chế độ làm việc. Việc khởi tạo hoạt động cho cỏc Timer/Counter này phải dựa trờn 2 thanh ghi TMOD và TCON.
7 6 5 4 3 2 1 0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
Timer 1 Timer 0
Thanh ghi TMOD ( Timer/Counter Mode Control Register)
GATE : là bit điều khiển cổng. Khi bit TRx trong TCON được set bằng 1 và chõn GATE = 1 thỡ bộ định thời/đếm chỉ hoạt động khi chõn INTx ở mức cao(điều khiển phần cứng). Khi GATE = 0 thỡ bộ định thời/đếm chỉ hoạt động khi TRx =1(Điều khiển mềm).
C/T: bớt chọn chức năng đếm hay định thời cho bộ đếm/định thời. Khi C/T=0 thỡ hoạt động định thời, khi C/T = 1 thỡ hoạt động đếm.
M1: bit chọn chế độ ( xem bảng dưới)
M0: bit chọn chế độ ( xem bảng dưới)
M1
M0
Chế độ lựa chọn
0
0
0
Bộ định thời 13 bit
0
1
1
Bộ định thời/đếm 16 bit
1
0
2
Bộ định thời/đếm 8 bit tự động nạp lại
1
1
3
Timer 0 hoạt động như 2 bộ timer 8 bit riờng biệt
Timer 1 khụng hoạt động.
Thanh ghi TCON ( Timer/Counter Control Register)
7 6 5 4 3 2 1 0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
Thanh ghi này cú tỏc dụng điều khiển bộ định thời/đếm.
Bit7(TF1) :Cờ bỏo tràn của bộ định thời 1. Nú được set bởi phần cứng khi bộ định thời/đếm bị tràn. Nú được xoỏ bởi phần mềm hoặc bởi phần cứng khi trỡnh phục vụ ngắt được trỏ đến.
Bit 6(TR1) :Bit điều khiển bộ định thời 1 hoạt động. Nú đựoc set/xoỏ bằng phần mềm để điều khiển bộ định thời hoạt động hoặc ngưng hoạt động.
Bit5 (TF0) :Cờ tràn bộ định thời 0.
Bit 4(TR0) :Bit điều khiển bộ định thời 0 hoạt động
Bit 3(IE1) :Cờ ngắt ngoài 1 theo sườn. Nú được đặt bởi phần cứng khi sườn xung của ngắt ngoài đưa vào chõn INT1 được phỏt hiện và nú được xoỏ bởi phần cứng khi ngắt được xử lý.
Bit 2(IT1) :Bit điều khiển chọn loại ngắt. Nú được set/xúa bằng phần mềm để xỏc định ngắt thuộc loại tỏc động cạnh hay tỏc động theo mức thấp.
Bit1(IE0) :Bit cờ ngắt ngoài tỏc động cạnh.
Bit0(IT0) :Bit điều khiển chọn loại ngắt
c. Cỏc chế độ hoạt động của Timer/Counter
+ Chế độ 0: đú là chế độ định thời 13 bit. Byte cao của bộ định thời THx được ghộp vúi 5 bit thấp của byte thấp của bộ định thời TLx để tạo thành một bộ định thời 13 bit. Tớn hiệu ngắt xuất hiện khi cú sự đếm tràn, vỡ vậy nú cú thể đếm được lớn nhất là 213 hay 8192 xung nhịp.
TLx
(5 bit)
THx
(8 bit)
TFx
Timer
clock
Overflow
Flag
Chế độ 0
+ Chế độ 1: Chế độ này là chế độ dịnh thời 16 bit. Xung clock đặt vào cỏc thanh ghi định thời cao và thấp kết hợp. Khi cú xung clock thỡ bộ định thời sẽ đếm lờn 0000H, 0001H, 0002H…. Một tràn sẽ xuất hiện nếu cú sự tràn từ FFFFH suống 0000H và nú sẽ set cờ tràn bằng 1 và bộ đếm sẽ tiếp tục đếm. Cờ tràn là bit TFx trong thanh ghi điều khiển định thời TCON, bit này được đọc hoặc ghi bởi phần mềm. Trong chế độ này nú cú thể đếm được lớn nhất là 216 = 65535 xung nhịp.
TLx
THx
TFx
Timer
clock
Overflow
Flag
Chế độ 1
+ Chế độ 2: Đú là chế độ tự động nạp lại 8 bit. Byte thấp của bộ định thời hoạt động định thời 8 bit trong khi đú byte cao của bộ định thời lưu giữ giỏ trị nạp lại. Khi cú số đếm tràn từ FFh suống 00h thỡ ngoài việc cờ của bộ định thời được set lờn 1 mà giỏ trị trong THx cũn được nạp vào TLx. Việc đếm sẽ tiếp tục từ giỏ trị này cho đến khi xảy ra một tràn kế tiếp. Chế độ này rất thuận tiện cho việc tràn bộ định thời trong một khoảng thời gian xỏc định và tuần hoàn khi cỏc thanh ghi TMOD và THx đó được khởi động.
TLx
TFx
Timer
clock
Overflow
Flag
Chế độ 0
THx
reload
+ Chế độ 3: chế độ 3 là chế độ định thời chia xẻ và cú hoạt động khỏc nhau cho từng bộ định thời. Bộ định thời 0 ở chế độ 3 được chia làm 2 bộ định thời 8 bit hoạt động riờng rẽ TL0 và TH0, mỗi bộ định thời sẽ set cỏc cờ tương ứng TF0 và TF1 khi xảy ra tràn.
Bộ định thời 1 khụng hoạt động ở chế độ 3 nhưng cú thể khởi động bằng cỏch chuyển bộ định thời này vào một trong cỏc chế độ khỏc. Cờ tràn TF1 của bộ định thời 1 khụng bị ảnh hưởng bởi bộ định thời 1 khi xảy ra tràn vỡ TF1 được nối với bộ định thời 8 bit TH0.
Chế độ 3 chủ yếu cung cấp thờm một bộ định thời 8 bit nữa. khi bộ định thời 0 ở chế độ 3, bộ định thời 1 cú thể hoạt động bằng cỏch chuyển bộ này ra khỏi chế độ 3 hoặc vào chế độ 3.
II.9 cỏc nguồn ngắt
Cỏc nguồn ngắt được đặt tại địa chỉ từ 0003H á 0023H trong bộ nhớ chương trỡnh. Khi cú ngắt thỡ CPU sẽ nhảy tới vựng mà nú phục vụ ngắt, Nếu chương trỡnh phục vụ ngắt nằm trong khoảng 8 byte thỡ nú sẽ phục vụ ngắt ngay trong vựng đú. Nếu chương trỡnh ngắt lớn hơn 8 byte và cỏc nguồn ngắt đang phục vụ thỡ thỡ sẽ nhảy vượt sang vựng ngắt sau đú để thực hiện chương trỡnh ngắt. khi cú một ngắt xuất hiện và được CPU chấp nhận, chương trỡnh chớnh bị ngắt thỡ cỏc thao tỏc sau đõy xảy ra:
Hoàn tất việc thực thi lệnh hiện hành
Bộ đếm chương trỡnh PC được cất vào Stack
Trạng thỏi ngắt hiện hành được lưu giữ lại.
Bộ đếm chương trỡnh PC được nạp địa chỉ vectơ của trỡnh phục vụ ngắt ISR.
ISR được thực thi.
Bảng cỏc vectơ ngắt:
Nguồn ngắt
Cờ
Địa chỉ
Ngắt ngoài 0
IE0
0003H
Ngắt ngoài 1
TF0
000BH
Do bộ định thời 1
IE1
0013H
Do bộ định thời 0
TF1
001BH
Do cổng nối tiếp
RI&TI
0023H
Cỏch sử dụng ngắt:
Đặt bớt EA ( Enable All) trong thanh ghi IE = 1
Đặt bit tương ứng với ngắt trong thanh ghi IE lờn 1
Bắt đầu phục vụ ngắt tại địa chỉ tương ứng với ngắt.
Để điều khiển hoạt động của ngắt ta cú 2 thanh ghi tương ứng. Thanh ghi IE điều khiển cho phộp cỏc ngắt hoạt động. Thanh ghi IP điều khiển mức ưu tiờn cho cỏc ngắt.
Thanh ghi IE(Interrupt Enable Register)
7 6 5 4 3 2 1 0
EA
- - -
- - -
ES
ET1
EX1
ET0
EX0
EA(IE.7): bit cho phộp cỏc ngắt hoạt động
EA=0: khụng cho phộp ngắt nào được hoạt động
EA=0: cho phộp cỏc ngắt được hoạt động.
- - - (IE.6): khụng sử dụng
- - - (IE.5): khụng sử dụng
ES (IE.4) : Cho phộp hay khụng cho phộp truyền nhận nối tiếp
ET1 (IE.3) : Cho phộp hay khụng cho phộp ngắt Timer 1
EX1 (IE.2) : Cho phộp hay khụng cho phộp ngắt ngoài 1.
ET0(IE.1) : Cho phộp hay khụng cho phộp ngắt Timer 0.
EX1 (IE.0) : Cho phộp hay khụng cho phộp ngắt ngoài 0.
Thứ tự ưu tiờn cỏc ngắt
Để điều khiển hoạt động của cỏc ngắt ta cú thanh ghi IE để điều khiển. Thanh ghi này dựng để cho phộp cỏc ngắt hoạt động. Để đặt thứ tự ưu tiờn của cỏc ngắt thỡ ta sử dụng thanh ghi IP. Theo mặc định thỡ cỏc ngắt cú mức ưu tiờn từ cao suống thấp như sau:
IE0
Mức cao nhất
Mức thấp nhất
TF0
IE1
IF1
RI& TI
Bảng : Thứ tự ưu tiên của ngắt
Khi khụng muốn sử dụng theo thứ tự ưu tiờn mặc định đú thỡ ta cú thể đặt cỏc bit tương ứng trong thanh ghi IP = 1 để quy định mức ưu tiờn.
Thanh ghi IP ( Interrupt Register )
7
6
5
4
3
2
1
0
- - -
- - -
- - -
PS
PT1
PX1
PT0
PX0
- - - ( IP.7 ): Khụng sử dụng ( Đặt bằng 0)
- - - ( IP.6 ): Khụng sử dụng ( Đặt bằng 0)
- - - ( IP.5 ): Khụng sử dụng ( Đặt bằng 0)
PS (IP.4) : Mức ưu tiờn ngắt cho cổng nối tiếp.
PT1 (IP.3) : Mức ưu tiờn ngắt cho Timer 1
PX1 (IP.2) : Mức ưu tiờn ngắt cho ngắt ngoài 1
PT0 (IP.1) : Mức ưu tiờn ngắt cho Timer 0
PX0 (IP.0) : Mức ưu tiờn ngắt cho ngắt ngoài 0
II.10 Giao diện truyền tin nối tiếp
Cổng nối tiếp cú thể truyền và nhận đồng thời. Nú cũng là bộ đệm nhận nghĩa là nú cú thể nhận byte thứ 2 trước khi byte trước đú được đọc từ thanh ghi nhận. Tuy nhiờn byte thứ nhất sẽ bị mất đi nếu tiếp tục nhận byte tiếp theo. Cả 2 thanh ghi truyền và nhận đều là cỏc thanh ghi cú chức năng đặc biệt(SBUF). Việc ghi vào SBUF là nạp vào thanh ghi truyền cũn việc đọc dữ liệu từ SBUF là việc nhận dữ liệu về. Cổng nối tiếp cú 4 chế độ hoạt động
+ Mode 0: ở chế độ này nú hoạt động như thanh ghi dịch. Dữ liệu vào/ra nối tiếp qua RxD/TxD, đầu ra dịch theo xung đồng hồ. 8 bit được nhận bắt đầu từ LSB. Tốc độ truyền baud là 1/12 tần số xung của thạch anh.
+ Mode 1: Dữ liệu vào ra nối tiếp qua RxD/TxD. 10 bit dữ liệu được nhận hoặc truyền bao gồm 1 bit Start ( thường là mức 0), 1 bit Stop ( thường ở mức 1) và 8 bit dữ liệu bắt đầu từ LSB. ở chế độ này thỡ khi nhận dữ liệu thỡ bit Stop sẽ được chuyển vào bit RB8 trong thanh ghi chức năng đặc biệt.
+ Mode 2: Dữ liệu vào ra nối tiếp qua RxD/TxD. 11 bit dữ liệu được truyền hoặc nhận bao gồm 1 bit Start ( thường là mức 0)8 bit dữ liệu bắt đầu từ LSB, 1 bit Stop ( thường ở mức 1). Khi truyền dữ liệu thỡ bit thứ 9 được chuyển vào bit TB8 trong SCON cú thể đặt là 1 hoặc 0 hoặc cũng cú thể là bit kiểm tra chắn lẻ. Khi nhận dữ liệu thỡ bit thứ 9 sẽ được chuyển vào bit RB8 trong SCON trong khi đú thỡ bit Stop bị bỏ qua. Tốc độ baud cú thể là 1/32 hoặc 1/64 tần số xung thạch anh.
+ Mode 3: Dữ liệu vào ra nối tiếp qua RxD/TxD. 11 bit dữ liệu được truyền hoặc nhận bao gồm 1 bit Start ( thường là mức 0)8 bit dữ liệu bắt đầu từ LSB, 1 bit cho phộp lập trỡnh, 1 bit Stop ( thường ở mức 1). Khi truyền dữ liệu thỡ bit thứ 9 được chuyển vào bit TB8 trong SCON cú thể đặt là 1 hoặc 0 hoặc cũng cú thể là bit kiểm tra chắn lẻ ( P) trong PSW). Khi nhận dữ liệu thỡ bit thứ 9 sẽ được chuyển vào bit RB8 trong SCON trong khi đú thỡ bit Stop bị bỏ qua. Tốc độ baud cú thể thay đổi được.
Trong cả 4 chế độ hoạt động trờn thỡ:
Khi gửi dữ liệu phải được khởi tạo và sử dụng SBUF như thanh ghi đớch
Khi nhận dữ liệu: Mode 0 phải cú điều kiện RI=0 và REN =0.
Cỏc chế độ khỏc Nếu bit REN = 1 thỡ bit start bắt đầu được nhận.
Chế độ truyền đa kờnh:
Trong chế độ 2 và 3 cũn được dựng cho việc truyền đa kờnh, trong chế độ này thỡ bit dữ liệu nhận được cũn bit 9 được chuyển vào RB8 sau đú là bit Stop. Cổng được lập trỡnh sao cho khi bit Stop nhận được thỡ ngắt nối tiếp được tớch cực khi RB8 = 1. Nột đặc trưng là cho phộp đặt bit SM2 trong SCON, bằng cỏch này cho phộp sử dụng chế độ truyền đa kờnh.
Khi trạm chủ(MASTER) muốn gửi một gúi dữ liệu tới một trong cỏc trạm tớ (SLAVE), đầu tiờn trạm chủ gửi một byte địa chỉ để xỏc nhận trạm tớ nào chuẩn bị nhận dữ liệu. Byte địa chỉ này khỏc với byte dữ liệu là trong byte địa chỉ thỡ bit thứ 9 bằng 1 cũn trong byte dữ liệu thỡ bit thứ 9 bằng 0. Khi SM2 = 1 thỡ khụng cú trạm tớ nào bị ngắt khi đang truyền dữ liệu, tuy nhiờn với byte địa chỉ thỡ tất cả đều bị ngắt. Vỡ vậy trạm tớ lỳc nào cũng phải kiểm tra xem byte nhận được và xem nú cú phải địa chỉ của mỡnh nhận được hay khụng. Nếu khụng phải địa chỉ của mỡnh nú vẫn đặt SM2 đồng thời bỏo bận và bỏ qua cỏc byte dữ liệu đến. Bit SM2 khụng cú tỏc dụng trong Mode 0, trong Mode 1 cú thể dựng để kiểm tra giỏ trị của bit Stop. Khi nhận nếu SM2=1 thỡ ngắt nhận sẽ khụng cú tỏc dụng trừ khi bit Stop đựoc nhận.
Tốc độ Baud trong truyền nối tiếp
Tốc độ truyền : Baud rate = lần tần số xung thạch anh.
SMOD = 0: Baud rate = lần tần số xung thạch anh.
SMOD = 0: Baud rate = lần tần số xung thạch anh.
Đối với Mode 0:
Tốc độ truyền : Baud rate = lần tần số xung thạch anh
Đối với Mode 2:
Đối với Mode 1, Mode 3:
Trong hai chế độ này thỡ phải sử dụng Timer 1 để định tốc độ truyền Baud.
Baud rate = x(Timer 1 Over Flow Rate ).
Khi timer1 sử dụng chế độ hoạt động tự động nạp lại số đếm khi tràn:
Baud rate =tần số xung thạch anh.
Khi Timer 1 bỏo tràn:
Việc khởi tạo và điều khiển chế độ hoạt động thụng qua 2 thanh ghi SCON và PCON.
Thanh ghi SCON ( Serial Port Control Register )
7
6
5
4
3
2
1
0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
Trong đú:SM0, SM1: dựng để định chế độ truyền nhận nối tiếp.
SM0
SM1
MODE
0
0
0
0
1
1
1
0
2
1
1
3
SM
Các file đính kèm theo tài liệu này:
- so lieu may tinh.doc