ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử ĐỒNG HỒ VẠN NĂNG
NỘI DUNG ĐỒ ÁN
PHẦN A: LÝ THUYẾT
CHƯƠNG 1: GIỚI THIỆU VI ĐIỀU KHIỂN 8051
I. GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MCS-51:
- MCS-51 là họ IC vi điều khiển do hãng Intel sản xuất. Các IC tiêu biểu cho họ là 8031, 8051, 8951... Những đặc điểm chính và nguyên tắc hoạt động của các bộ vi điều khiển này khác nhau không nhiều. Khi đã sử dụng thành thạo một loại vi điều khiển thì ta có thể nhanh chóng vận dụng kinh nghiệm để làm quen và làm chủ các ứng dụng của một bộ vi điều khiển khác. Vì vậy để có những hiểu biết cụ thể về các bộ vi điều khiển cũng như để phục vụ cho đề tài tốt nghiệp này ta bắt đầu tìm hiểu một bộ vi điều khiển thông dụng nhất, đó là họ MCS-51 và nếu như họ MCS-51 là họ điển hình thì 8051 lại chính là đại diện tiêu biểu.
Các đặc điểm của 8051 được tóm tắt như sau :
- 4 KB ROM bên trong.
- 128 Byte RAM nội.
- 4 Port xuất /nhập I/O 8 bit.
- Giao tiếp nối tiếp.
- 64 KB vùng nhớ mã ngoài
- 64 KB vùng nhớ dữ liệu ngoại.
- Xử lý Boolean (hoạt động trên bit đơn).
- 210 vị trí nhớ có thể định vị bit.
- 4 ms cho hoạt động nhân hoặc chia.
Sơ đồ khối của 8051
CPU: đơn vị xử lý trung tâm.
Timers: các bộ định thời.
Interrup control: điều khiển ngắt.
Serial port: port nối tiếp.
Address, data, and control buses: các bus địa chỉ, dữ liệu và điều khiển .
RAM: bộ nhớ đọc/ghi (128 byte RAM ).
I/O port: port nhập/xuất.
Ocilator: mạch dao động.
Other register: các thanh ghi khác.
II. KHẢO SÁT SƠ ĐỒ TỪNG CHÂN 8051, CHỨC NĂNG TỪNG CHÂN:
1. Sơ đồ chân 8051:
2. Hình dạng:
3. Chức năng các chân của 8051:
- IC 8051/8031 có tất cả 40 chân có chức năng như các đường xuất nhập. Trong đó có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt động như các đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ.
a. Các Port:
- Port 0: là port có 2 chức năng ở các chân 39 – 32. Trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường I/O. Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa bus địa chỉ và bus dữ liệu đa hợp (Byte thấp của bus địa chỉ nếu là địa chỉ).
- Port1: chỉ có 1 công dụng là dùng làm Port xuất nhập I/O để giao tiếp với các thiết bị bên ngoài trên các chân 1 - 8.
- Port 2: Từ chân 21 - 28 (P2.0, P2.1, . . ., P2.7) dùng vào hai mục đích: làm Port xuất/nhập I/O hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng.
- Port 3: từ chân 10 - 17 (P3.0, P3.1, . . ., P3.7) dùng vào hai mục đích: dùng là Port xuất / nhập I/O hoặc mỗi chân giữ một chức năng đặc biệt được tóm tắt sơ bộ như sau :
Bit |
Tên |
Địa Chỉ |
Chức năng chuyển đổi |
P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 |
RXT TXD INT0\ INT1\ T0 T1 WR\ RD\ |
B0H B1H B2H B3H B4H B5H B6H B7H |
Ngõ vào dữ liệu nối tiếp. Ngõ xuất dữ liệu nối tiếp. Ngõ vào ngắt 0. Ngõ vào ngắt 1. Ngõ vào củaTIMER/COUNTER thứ 0. Ngõ vào củaTIMER/COUNTER thứ 1. Tín hiệu ghi dữ liệu lên bộ nhớ ngoài. Tín hiệu đọc bộ nhớ dữ liệu ngoài. |
b. Các ngõ tín hiệu điều khiển:
+ Ngõ tín hiệu PSEN (program store enable):
- PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương trình mở rộng thường được nối đến chân OE của Eprom cho phép đọc các byte mã lệnh.
- PSEN ở mức thấp trong thời gian Microcontroller 8051 lấy lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong để giãi mã lệnh. Khi thi hành chương trình trong ROM nội (8051) PSEN sẽ ở mức logic 1.
+ Ngõ tín hiệu điều khiển ALE (address latch enable):
- Khi truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. IC 8051 sử dụng chân 30 dùng làm tín hiệu cho phép chốt ALE để giãi đa hợp bus địa chỉ và bus dữ liệu khi kết nối chúng với IC chốt.
- Chân ALE xuất tín hiệu để chốt địa chỉ (byte thấp của địa chỉ 16 bit) vào một thanh ghi ngoài trong suốt ½ đầu của chu kỳ bộ nhớ. Sau khi điều này đã được thực hiện, port 0 sẽ xuất nhập dữ liệu hợp lệ trong suốt ½ thứ hai của chu kỳ nhớ.
- Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống. Chân ALE được dùng làm ngõ vào xung lập trình cho Eprom trong 8051.
+ Ngõ tín hiệu AE\ (external access):
- Chân 31 (EA : Eternal Acess) được đưa xuống thấp cho phép chọn bộ nhớ mã ngoài đối với 8031.
Đối với 8051 thì :
EA = 5V : Chọn ROM nội.
EA = 0V : Chọn ROM ngoại
EA = 21V : Lập trình EPROM nội.
+ Ngõ tín hiệu RST (reset):
- Ngõ vào RST ở chân 9 là ngõ reset của 8051. Khi ngõ vào tín hiệu này đưa lên cao ít nhất 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi đông hệ thống. Khi cấp điện mạch tự động reset.
+ Các ngõ vào bộ dao động XTAL1, XTAL2:
- Các chân 18,19 của 8051 được nối với bộ dao động thạch anh 12 MHz để tạo dao động trên CHIP. Hai tụ 30 pF được thêm vào để ổn định dao động.
+ Chân 20 (Vss) nối đất (Vss = 0).
+ Chân 40 (Vcc) được nối lên nguồn 5V.
III. CẤU TRÚC BÊN TRONG VI ĐIỀU KHIỂN:
1. Tổ chức bộ nhớ: (Bảng tóm tắt các vùng nhớ 8051)
00
On – Chip
Memory
External
On chip memory: bộ nhớ trên chip.
External memory: bộ nhớ ngoài.
Code memory: bộ nhớ chương trình (mã).
Data memory: bộ nhớ dữ liệu.
Enable via PSEN: được cho phép bởi PSEN.
Enable via RD & WR: được cho phép bởi RD &WR
Bản đồ bộ nhớ Data trên Chip như sau:
|
|
|
|
||||||||
7F |
|
|
FF |
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
F0 |
F7 |
F6 |
F5 |
F4 |
F3 |
F2 |
F1 |
F0 |
B |
||||||||||||||||||||||||||||||||||||||||||||
|
RAM đa dụng |
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
E0 |
E7 |
E6 |
E5 |
E4 |
E3 |
E2 |
E1 |
E0 |
ACC |
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
D0 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
PSW |
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
30 |
|
|
B8 |
- |
- |
- |
BC |
BB |
BA |
B9 |
B8 |
IP |
||||||||||||||||||||||||||||||||||||||||||||
2F |
7F |
7E |
7D |
7C |
7B |
7A |
79 |
78 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
2E |
77 |
76 |
75 |
74 |
73 |
72 |
71 |
70 |
|
B0 |
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
P.3 |
|||||||||||||||||||||||||||||||||||||
2D |
6F |
6E |
6D |
6C |
6B |
6A |
69 |
68 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
2C |
67 |
66 |
65 |
64 |
63 |
62 |
61 |
60 |
|
A8 |
AF |
|
|
AC |
AB |
AA |
A9 |
A8 |
IE |
|||||||||||||||||||||||||||||||||||||
2B |
5F |
5E |
5D |
5C |
5B |
5A |
59 |
58 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
2A |
57 |
56 |
55 |
54 |
53 |
52 |
51 |
50 |
|
A0 |
A7 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
P2 |
|||||||||||||||||||||||||||||||||||||
29 |
4F |
4E |
4D |
4C |
4B |
4A |
49 |
48 |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||
28 |
47 |
46 |
45 |
44 |
43 |
42 |
41 |
40 |
|
99 |
không được địa chỉ hoá bit |
SBUF |
||||||||||||||||||||||||||||||||||||||||||||
27 |
3F |
3E |
3D |
3C |
3B |
3A |
39 |
38 |
|
98 |
9F |
9E |
9D |
9C |
9B |
9A |
99 |
98 |
SCON |
|||||||||||||||||||||||||||||||||||||
26 |
37 |
36 |
35 |
34 |
33 |
32 |
31 |
30 |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
25 |
2F |
2E |
2D |
2C |
2B |
2A |
29 |
28 |
|
90 |
97 |
96 |
95 |
94 |
93 |
92 |
91 |
90 |
P1 |
|||||||||||||||||||||||||||||||||||||
24 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
23 |
1F |
1E |
1D |
1C |
1B |
1A |
19 |
18 |
|
8D |
không được địa chỉ hoá bit |
TH1 |
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
22 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
|
8C |
không được địa chỉ hoá bit |
TH0 |
||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
21 |
0F |
0E |
0D |
0C |
0B |
0A |
09 |
08 |
|
8B |
không được địa chỉ hoá bit |
TL1 |
||||||||||||||||||||||||||||||||||||||||||||
20 |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
|
8A |
không được địa chỉ hoá bit |
TL0 |
||||||||||||||||||||||||||||||||||||||||||||
1F |
Bank 3 |
|
89 |
không được địa chỉ hoá bit |
TMOD |
|||||||||||||||||||||||||||||||||||||||||||||||||||
18 |
|
|
88 |
8F |
8E |
8D |
8C |
8B |
8A |
89 |
88 |
TCON |
||||||||||||||||||||||||||||||||||||||||||||
17 |
Bank 2 |
|
87 |
không được địa chỉ hoá bit |
PCON |
|||||||||||||||||||||||||||||||||||||||||||||||||||
10 |
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
0F |
Bank 1 |
|
83 |
không được địa chỉ hoá bit |
DPH |
|||||||||||||||||||||||||||||||||||||||||||||||||||
08 |
|
|
82 |
không được địa chỉ hoá bit |
DPL |
|||||||||||||||||||||||||||||||||||||||||||||||||||
07 |
Bank thanh ghi 0 |
|
81 |
không được địa chỉ hoá bit |
SP |
|||||||||||||||||||||||||||||||||||||||||||||||||||
00 |
(mặc định cho R0 -R7) |
|
88 |
87 |
86 |
85 |
84 |
83 |
82 |
81 |
80 |
P0 |
||||||||||||||||||||||||||||||||||||||||||||
RAM CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT
- Bộ nhớ trong 8051 bao gồm ROM và RAM. RAM trong 8051 bao gồm nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữ địa chỉ hoá từng bit, các bank thanh ghi và các thanh ghi chức năng đặc biệt.
- 8051 có bộ nhớ theo cấu trúc HARVARD: có những vùng bộ nhớ riêng biệt cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa bên trong 8051 nhưng 8051 vẫn có thể kết nối với 64KB bộ nhớ chương trình và 64KB dữ liệu.
Hai đặc tính cần chú ý là:
+ Các thanh ghi và các port xuất nhập đã được định vị (xác định) trong bộ nhớ và có thể truy xuất trực tiếp giống như các địa chỉ bộ nhớ khác.
+ Ngăn xếp bên trong Ram nội nhỏ hơn so với Ram ngoại như trong các bộ Microcotroller khác.
RAM bên trong 8051 được phân chia như sau:
- Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
- RAM địa chỉ hoá từng bit có địa chỉ từ 20H đến 2FH.
- RAM đa dụngtừ 30H đến 7FH.
- Các thanh ghi chức năng đặc biệt từ 80H đến FFH.
Ram đa dụng:
- Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các dịa chỉ từ 30H đến 7FH, 32 byte dưới từ 00H đến 1FH cũng có thể dùng với mục đích tương tự (mặc dù các địa chỉ này đã có mục đích khác).
- Mọi địa chỉ trong vùng Ram đa dụng đều có thể truy xuất tự do dùng kiểu địa chỉ trực tiếp hoặc gián tiếp qua các thanh ghi R0, R1.
+ Ram có thể truy xuất từng bit:
- 8051 chứa 210 bit được địa chỉ hoá, trong đó có 128 bit chứa các byte có chứa các địa chỉ từ 20H đến 2FH và các bit còn lại chứa trong nhóm thanh ghi có chức năng đặc biệt.
- Ý tưởng truy xuất từng bit bằng phần mềm là các đặc tính mạnh của các bộ vi điều khiển. Các bit có thể được đặt, xoá, AND, OR,…, bằng một lệnh đơn. Đa số các bộ vi xử lý đòi hỏi một chuổi lệnh đọc – sửa – ghi để đạt được mục đích tương tự. Ngoài ra các port cũng có thể truy xuất được từng bit.
- 128 bit truy xuất từng bit này cũng có thể truy xuất như các byte hoặc như các bit phụ thuộc vào lệnh được dùng.
+ Các băng thanh ghi (Register Banks)
- 32 vị trí nhớ cuối cùng của bộ nhớ từ địa chỉ byte 00H¸1FH tức các dãy thanh ghi. Tập hợp các lệnh của 8051 cung cấp 8 thanh ghi từ R0¸R7 ở địa chỉ 00H¸07H nếu máy tính mặc nhiên chọn để thực thi. Những lệnh tương đương dùng sự định vị trực tiếp. Những giá trị dữ liệu được dùng thường xuyên chắc chắn sẽ sử dụng một trong các thanh ghi này.
+ Các thanh ghi chức năng đặc biệt (Special Function Register)
- Có 21 thanh ghi chức năng đặc biệt SFR ở đỉnh của RAM nội từ địa chỉ các thanh ghi chức năng đặc biệt được định rõ, còn phần còn lại không định rõ.
- Mặc dù thanh ghi A có thể truy xuất trực tiếp, nhưng hầu hết các thanh ghi chức năng đặc biệt được truy xuất bằng cách sử dụng sự định vị địa chỉ trực tiếp. Chú ý rằng vài thanh ghi SFR có cả bit định vị và byte định vị. Người thiết kế sẽ cẩn thận khi truy xuất bit mà không truy xuất byte.
Thanh ghi trạng thái chương trình (PSW: program status word):
+ Từ trạng thái chương trình ở địa chỉ D0H được tóm tắt như sau:
Bit |
SYMBOL |
ADDRESS |
DESCRIPTION |
PSW.7 |
CY |
D7H |
Cary flag |
PSW.6 |
AC |
D6H |
Auxiliary cary flag |
PSW.5 |
F0 |
D5H |
Flag 0 |
PSW.4 |
RS1 |
D4H |
Register bank select 1 |
PSW.3 |
RS0 |
D3H |
Register bank select 0 |
|
|
|
00 = bank 0; address |
|
|
|
00H ÷ 07H |
|
|
|
01 = bank 1;address 08H ÷ 0FH |
|
|
|
10 = bank 2; address 10H ÷ 17H |
|
|
|
11 = bank 3; address 18H ÷ 1Fh |
PSW.2 |
OV |
D2H |
Overlow flag |
PSW.1 |
- |
D1H |
Resered |
PSW.0 |
P |
D0H |
Even parity flag |
+ Chức năng từng bit trạng thái chương trình:
- Cờ carry CY (cary flag): Cờ nhớ có tác dụng kép. Thông thường nó được dùng cho các lệnh toán học là được set bằng 1 nếu phép toán cộng có tràn hoặc phép trừ có mượn và ngược lại C = 0 nếu phép toán cộng không tràn và phép toán trừ không mượn.
- Cờ carry phụ AC (auxiliary carry flag): khi cộng những giá trị BCD, cờ nhớ phụ AC được set nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển 0AH÷ 0FH. Ngược lại AC = 0 nếu các giá trị được cộng là giá trị BCD, lệnh cộng phải được tiếp theo bởi lệnh DAA (hiệu chỉnh thập phân thanh chứa A) để đưa các kết quả lớn hơn 9 về giá trị đúng.
- Cờ 0 (flag 0): là một bit cờ đa dụng dùng cho các ứng dụng của người dùng.
+ Những bit chọn thanh ghi truy xuất:
- RS1 và RS0 dùng để xác định dãy thanh ghi tích cực. Chúng được xoá sau khi reset hệ thống và được thay đổi bởi phần mềm khi cần thiết. Tuỳ theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn bank tích cực tương ứng là bank 0, bank1, bank2, bank3.
RS1 |
RS0 |
BANK |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
2 |
1 |
1 |
3 |
- Cờ tràn OV (over flag): cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự tràn toán học. Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để xác định xem kết quả có nằm trong tầm xác định hay không. Khi các số không dấu được cộng bit 0V được bỏ qua. Các kết quả lớn hơn +127 hoặc nhỏ hơn -127 thì bit 0V = 1.
+ Bit parity (p): bit chẵn lẻ.
- Thanh ghi B: ở địa chỉ F0H được dùng cùng với thanh ghi A cho các phép toán nhân chia. Thanh ghi B có thể được dùng như một thanh ghi đệm trung gian đa mục đích.
- Con trỏ ngăn xếp SP (stack pointer): là một thanh ghi 8 bit ở địa chỉ 81H, nó chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh ngăn xếp.
- Con trỏ dữ liệu DPTR (data pointer): được dùng để truy xuất bộ nhớ ngoài, là một thanh ghi 16 bit ở địa chỉ 82H (byte thấp) và 83H (byte cao).
+ Các thanh ghi Port (Port Register) :
- Các Port 0, Port 1, Port 2, Port 3 có địa chỉ tương ứng 80H, 90H, A0H, B0H. Các P0, P1, P2, P3 không còn tác dụng xuất nhập nữa nếu bộ nhớ ngoài được dùng hoặc một vài cá tính đặc biệt của 8051 được dùng (như Interrupt, Port nối tiếp . . .) Do vậy chỉ còn có P1 có tác dụng xuất nhập I/O.
- Tất cả các Port đều có bit địa chỉ, do đó nó có khả năng giao tiếp với bên ngoài mạnh mẽ.
+ Các thanh ghi Timer (Timer Register) :
- 8051 có 2 bộ : Một bộ Timer 16 bit và một bộ Counter 16 bit, hai bộ này dùng để định giờ lúc nghỉ của chương trình hoặc đếm các sự kiện quan trọng. Timer 0 có bit thấp TL0 ở địa chỉ 8AH và có bit cao TH0 ở địa chỉ 8CH. Timer 1 có bit thấp ở địa chỉ 8BH và bit cao TH1 ở địa chỉ 8DH. Hoạt động định thời được cho phép bởi thanh ghi mode định thời TMOD (Timer Mode Register). Ở địa chỉ 89H và thanh ghi điều khiển định thời TCON (Timer Control Register) ở địa chỉ 88H. Chỉ có TCON có bit định vị.
+ Các thanh ghi Port nối tiếp (Serial Port Register) :
- 8051 chứa một Port nối tiếp trên Chip cho việc truyền thông tin với những thiết bị nối tiếp như là những thiết bị đầu cuối, modem, hoặc để giao tiếp IC khác với những bộ biến đổi A/D, những thanh ghi di chuyển, RAM . . .). Thanh ghi đệm dữ liệu nối tiếp SBUF ở địa chỉ 99H giữ cả dữ liệu phát lẫn dữ liệu thu. Việc ghi lên SBUF để LOAD dữ liệu cho việc truyền và đọc SBUF để truy xuất dữ liệu cho việc nhận những mode hoạt động khác nhau được lập trình thông qua thanh ghi điều khiển Port nối tiếp SCON.
+ Các thanh ghi ngắt (Interrupt Register) :
- 8051 có hai cấu trúc ngắt ưu tiên, 5 bộ nguồn. Những Interrupt bị mất tác dụng sau khi hệ thống reset (bị cấm) và sau đó được cho phép bởi việc cho phép ghi lên thanh ghi cho phép ngắt IE (Interrup Enable Register) ở địa chỉ A8H. Mức ưu tiên được đặt vào thanh ghi ưu tiên ngắt IP (Interrupt Priority Level) tại địa chỉ B8H. Cả 2 thanh ghi trên đều có bit địa chỉ.
+ Thanh ghi điều khiển nguồn PCON (Power Control Register):
- Thanh ghi PCON không có bit định vị. Nó ở địa chỉ 87H bao gồm các bit địa chỉ tổng hợp. Các bit PCON được tóm tắt như sau :
PBit 7 (SMOD) : Bit có tốc độ Baud ở mode 1, 2, 3 ở Port nối tiếp khi set.
PBit 6, 5, 4 : Không có địa chỉ.
PBit 3 (GF1) : Bit 1 của cờ đa năng.
PBit 2 (GF0) : Bit 2 của cờ đa năng.
PBit 1 (PD) : Set để khởi động mode Power Down và thoát để reset.
PBit 0 (IDL) : Set để khởi động mode Idle và thoát khi ngắt mạch hoặc reset.
- Các bit điều khiển Power Down và Idle có tác dụng chính trong tất cả các IC họ MSC-51 nhưng chỉ được thi hành trong sự biên dịch của CMOS. Họ vi điều khiển Mcs – 51 ra đời từ năm 1980 bởi hãng Intel, với sản phẩm đầu tiên là 8051. Các IC này gọi là vi điều khiển vì chúng bao gồm cả ROM, RAM, timer, các cổng nối tiếp và song song. Đây là đặc điểm chính để ta phân biệt giữa vi điều khiển và vi xử lý. 8051 không được sử dụng trong máy tính nhưng được sử dụng rộng rãi trong công nghiệp và trong sản phẩm máy móc tiêu dùng.
- Cùng họ với 8051 có một số vi điều khiển khác. Về cơ bản chúng đều giống nhau, chúng chỉ khác nhau ở vùng nhớ nội bao gồm vùng nhớ mã lệnh, vùng nhớ dữ liệu và số timer. Sự khác nhau đó được mô tả bằng bảng dưới đây:
Vi điều khiển |
Vùng mã lệnh nội |
Vùng dữ liệu nội |
Số timer |
8051 8031 8751 8052 8032 8732 |
4K ROM 0K 4K EPROM 8K ROM 0K 4K EPROM |
128 bytes 128 bytes 128 bytes 256 bytes 256 bytes 256 bytes
|
2 2 2 3 3 3 |
Bảng So sánh các IC của họ Msc-51
2. Bộ nhớ ngoài (external memory):
- 8051 có khả năng mở rộng bộ nhớ đến 64 k bytes bộ nhớ chương trình và 64 k bytes bộ nhớ dữ liệu ngoài. Do đó có thể dùng thêm Ram và Eprom nếu cần. Khi dùng bộ nhớ ngoài, Port 0 không còn chức năng I/O nữa, nó được kết hợp giữa bus địa chỉ (A0 – A7 ) và bus dữ liệu (D0 – D7 ) với tín hiệu ALE để chốt byte của bus địa chỉ chỉ khi bắt đầu mỗi chu kì bộ nhớ. Port 2 được cho là byte cao của bus địa chỉ.
+ Truy xuất bộ nhớ mã ngoài :
- Bộ nhớ chương trình bên ngoài là bộ nhớ Eprom được cho phép bởi tín hiệu PSEN\. Sự kết nối phần cứng của bộ nhớ Eprom như sau :
- Trong một chu kì máy, tín hiệu ALE tích cực 2 lần. Lần đầu cho phép 74HC373 mở cổng chốt địa chỉ byte thấp, khi ALE xuống 0 thì byte thấp và byte cao của bộ đếm chương trình đều có nhưng Eprom chưa xuất vì PSEN\ chưa tích cực, khi tín hiệu lên 1 trở lại thì port 0 đã có dữ liệu là Opcode. ALE tích cực lần thứ 2 được giải thích tương tự và byte 2 được đọc từ bộ nhớ chương trình. Nếu lệnh đang hiện hành là lệnh 1 byte thì CPU chỉ đọc Opcode, còn byte thứ 2 bỏ đi.
+ Truy xuất bộ nhớ dữ liệu ngoài (accessing external data memory) :
- Bộ nhớ dữ liệu ngoài là bộ nhớ Ram được đọc hoặc ghi khi có tín hiệu RD\ và WR\. Hai tín hiệu này nằm ở hai chân p3.6 và p3.7. Lệnh MOVX dùng để truy xuất dữ liệu ngoài và dùng một bộ đệm dữ liệu 16 bit (DPTR), R0 và R1 coi như là thanh ghi địa chỉ.
- Các Ram có thể giao tiếp với 8051 tương tự cách thức như Eprom ngoại trừ chân RD\ của 8051 nối với chân OE\ của Ram và chân WR\ của 8051 nối với chân WE\ của Ram.+ Sự giải mã địa chỉ (address decoding):
- Đó là một yêu cầu tất yếu để chọn Eprom, Ram, … Sự giải mã địa chỉ đối với 8051để chọn các vùng nhớ ngoài. Nếu các con Eprom hoặc Ram 8K được dùng thì các bus địa chỉ phải được giải mã để chọn các IC nhớ nằm trong phạm vi giới hạn 8K: 0000H – 1FFFH; 2000H – 3FFFH; … Cụ thể là Ic 74LS138 được dùng với những ngõ ra của nó nối với những ngõ vào chọn chip CS trên những IC nhớ Eprom, Ram, …
+ Sự đè lên nhau của các vùng nhớ dữ liệu ngoài :
- Vì bộ nhớ chương trình là Eprom nên nảy sinh một vấn đề bất tiện khi phát triển phần mềm cho vi điều khiển. Một nhược điểm chung của 8051 là các vùng nhớ dữ liệu ngoài nằm đè lên nhau, vì tín hiệu PSEN\ được dùng để đọc bộ nhớ mã ngoài và tín hiệu RD\ được dùng để đọc bộ nhớ dữ liệu , nên một bộ nhớ Ram có thể chứa cả chương trình và dữ liệu bằng cách nối đường OE\ của Ram nên ngõ ra một cổng And có hai ngõ vào là RD\ và PSEN\ .
-Vậy một chương trình có thể được tải vào Ram bằng cách xem nó như bộ nhớ dữ liệu và thi hành chương trình bằng cách xem nó như bộ nhớ chương trình.
Hoạt động Reset :
- Ngõ vào RST là ngõ vào xóa chính (master reset) của 8051 dùng để thiết lập lại trạng thái ban đầu cho hệ thống hay gọi tắt là reset hệ thống. Khi ngõ vào này được treo ở logic 1 tối thiểu 02 chu kì máy , các thanh ghi bên trong của 8051 được nạp các giá trị thích hợp cho việc khởi động lại hệ thống.
Trạng thái của tất cả các thanh ghi trong 8051 sau khi reseet hệ thống được tóm tắt như sau:
Thanh ghi |
Nội dung |
Đếm chương trình PC Thanh ghi tích luỹ A Thanh ghi B Thanh ghi trạng thái PSW SP DPTR P0rt 0 đến port 3 IP IE Các thanh ghi định thời SCON SBUF PCON (MHOS) PCON (CMOS) |
0000H 00H 00H 00H 00H 07H 0000H FFH XXX00000B 0X0X0000B 00H 00H 00H 0XXXXXXXB 0XXX0000B |
- Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được reset tai địa chỉ 0000H. khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại địa chỉ 0000h của bộ nhớ chương trình. Nội dung cua RAM trên chip không bị thay đổi bởi tác động của ngõ vào reset.
IV. HOẠT ĐỘNG TIMER CỦA 8051:
1. Giới thiệu:
- Bộ định thời của timer là một chuỗi các flip flop được chia làm 2, nó nhận tín hiệu vào là một nguồn xung clock, xung clock được đưa vào flip flop thứ nhất là xung clock của flip flop thứ hai mà nó cũng chia tần số clock này cho 2 và cứ tiếp tục.
- Vì mỗi tầng kế tiếp chia cho 2, nên timer n tầng phải chia tầng số clock ngõ vào cho 2n. Ngõ ra của tầng cuối cùng là clock của flip flop tràn timer hoặc cờ mà nó kiểm tra bởi phần mềm hoặc sinh ra ngắt. Giá trị nhị phân trong các flip flop của bộ timer có thể được nghĩ như đếm xung clock hoặc các sự kiện quan trọng bởi vì timer được khởi động. Ví dụ timer 16 bit có thể đếm từ FFFFH sang 0000H .
- Các timer được ứng dụng thực tế cho các hoạt động định hướng .8051 có 2 bộ timer 16 bit, mỗi timer có 4 mode hoạt động. Các timer dùng để đếm giờ, đếm các sự kiện cần thiết và sự sinh ra tốc độ của tốc độ baud bởi sự gắn liền port nối tiếp.
- Mỗi sự định thời là một bộ timer 16 bit, do đó tầng cuối cùng là tầng thứ 16 sẽ chia tần số clock vào cho 216 = 65,537.
- Trong các ứng dụng định thời, 1 timer được lập trình để tràn ở một khoảng thời gian đều đặn và được set cờ tràn timer. Cờ được dùng để đồng bộ chương trình để thực hiện một hoạt động như việc đưa tới 1 tầng các ngõ vào hoặc gởi dữ liệu đến ngõ ra. Các ứng dụng khác có sử dụng việc ghi giờ đều đều của timer để đo thời gian đã trôi qua hai trạng thái. Việc đếm một sự kiện được dùng để xác định số lần xuất hiện của sự kiện đó tức thời gian trôi qua giửa các sự kiện.
Các timer của 8051 được truy xuất bởi việc dùng 6 thanh ghi chức năng đặc biệt như sau:
Timer SFR |
Purpose |
Address |
Bit addressable |
TCON |
Control |
88H |
YES |
TMOD |
Mode |
89H |
NO |
TL0 |
Timer 0 low byte |
8AH |
NO |
TL1 |
Timer 1 low byte |
8BH |
NO |
TH0 |
Timer 0 high byte |
8CH |
NO |
TH1 |
Timer 1 high byte |
8DH |
NO |
2. Các thanh ghi điều khiển timer:
2.1. Thanh ghi điều khiển chế độ timer TMOD (timer mode register):
- Thanh ghi mode gồm hai nhóm 4 bit là: 4 bit thấp đặt mode hoạt động cho timer 0 và 4 bit cao đặt mode hoạt động cho timer 1. 8 bit của thanh ghi TMOD được tóm tắt như sau:
BIT |
NAME |
TIMER |
DESERIPTION |
7 |
GATE |
1 |
Khi gate = 1, timer chỉ làm việc khi INT1 =1 |
6 |
C/T |
1 |
Bit cho đếm sự kiện hay ghi giờ |
C/T =1; đếm sự kiện |
|||
C/T =0;ghi giờ đều đặng |
|||
5 |
M1 |
1 |
Bit chọn mode của timer 1 |
4 |
M0 |
1 |
Bit chọn mode của timer 1 |
3 |
GATE |
0 |
Bit cổng của timer 0 |
2 |
C/T |
0 |
Bit chọn counter/timer của timer 0 |
1 |
M1 |
0 |
Bit chọn mode của timer 0 |
0 |
M0 |
0 |
Bit chọn mode của timer 0 |
Hai bit M0 và M1 của TMOD để chọn mode cho timer 0 hoặc timer1
M1 |
M0 |
MODE |
DESCRIPTION |
0 |
0 |
0 |
Mode timer 13 bit (mode 8048). |
0 |
1 |
1 |
Mode timer 16 bit. |
1 |
0 |
2 |
Mode tự động nạp 8 bit. |
1 |
1 |
3 |
Timer 1: được ngừng lại. Timer 0: TL0 là timer 8 bit được điều khiển bởi các bit của timer 0. TH0 tương tự nhưng được điều khiển bởicác bit của mode timer 1. |
- TMOD không có bit định vị, nó thường được Load một lần bởi phần mềm ở đầu chương trình để khởi động mode timer. Sau đó sự định giờ có thể dừng lại, được khởi động lại như thế bởi sự truy xuất các thanh ghi chức năng đặc biệt của timer khác.
2.2. Thanh ghi điều khiển timer TCON:
- Thanh ghi điều khiển bao gồm các bit trạng thái và các bit điều khiển bởi timer 0 và timer 1. Thanh ghi TCON có bit định vị. Hoạt động của từng bit được tóm tắt như sau:
Bit |
Symbol |
Bit Address |
Deseription |
TCON.7 |
TF1 |
8FH |
Cờ tràn timer1 được set bởi phần cứng ở sự tràn, được xoá bởi phần mềm hoặc bởi phần cứng khi các vectơ xử lý đến các thủ tục phục vụ cho ngắt ISR. |
TCON.6 |
TR1 |
8EH |
Bit điều khiển chạy timer 1 được set hoặc được xoá bởi phần mềm để chạy hoặc ngưng chạy timer. |
TCON.5 |
TF0 |
8DH |
Cờ tràn timer 0 (hoạt động tương tự TF1) |
TCON.4 |
TR0 |
8CH |
Bit điều khiển chạy timer 0 (giống TR1) |
TCON.3 |
IE1 |
8BH |
Cờ kiểu ngắt 1 ngoài. Khi cạnh xuống xuất hiện trên INT1thì IE1 được xoá bởi phần mềm hoặc phần cứng khi CPU dịnh hướng đến thủ tục phục vụ ngắt ngoài. |
TCON.2 |
IT1 |
8AH |
Cờ kiểu ngắt 1 ngoài được set hoặc xoá bằng phần mềm bởi cạnh kích hoạt bởi sự ngắt ngoài. |
TCON.1 |
IE0 |
89H |
Cờ cạnh ngắt 0 ngoài. |
TCON.0 |
IT0 |
88H |
Cờ kiểu ngắt 0 ngoài. |
2.3. Các nguồn xung nhịp cho timer:
- Có hai nguồn xung clock có thể đếm giờ là sự định giờ bên trong và sự đếm sự kiện bên ngoài. Bit C/T trong TMOD cho phép chọn 1 trong 2 khi timer được khởi động.
+ Sự đếm giờ bên trong:
- Nếu bit C/T =0 thì hoạt động của timer liên tục được chọn vào bộ timer được ghi giờ từ dao động trên chip. Một bộ chia 12 được thêm vào để giảm tần số clock đến một giá trị phù hợp với các ứng dụng. Các thanh ghi TLx và THx tăng ở tốc độ 1/12 lần tần số dao động trên Chip. Nếu dùng thạch anh 12MHz thì sẽ đi đến tốc độ clock 1MHx.
- Các sự tràn Timer sinh ra sau một con số cố định của nhữmg xung clock, nó phụ thuộc vào giá trị khởi tạo được LOAD vào các thanh ghi THx và TLx, sự đếm các sự kiện (Event Counting):
- Nếu bit C/T =1 thì bộ Timer được ghi giờ từ nguồn bên ngoài trong nhiều ứng dụng, nguồn bên ngoài này cung cấp một sự định giờ với một xung trên sự xảy ra của sự kiện. Sự định giờ là sự đếm sự kiện.
- Nguồn xung clock bên ngoài đưa vào chân P3.4 là ngõ nhập của xung clock bởi Timer 0 (T0) và P3.5 là ngõ nhập của xung clock bởi Timer 1 (T1).
- Trong các ứng dụng đếm các thanh ghi Timer được tăng trong đáp ứng của sự chuyển trạng thái từ 1 sang 0 ở ngõ nhập Tx. Ngõ nhập bên ngoài được thử trong suốt S5P2 của một chu kỳ máy: do đó khi ngõ nhập đưa tới mức cao trong 1 chu kỳ và tới mức thấp trong 1 chu kỳ kế tiếp thì bộ đếm tăng lên một. Giá trị mới xuất hiện trong các thanh ghi Timer trong suốt S5P1 của chu kỳ theo sau 1 sự chuyển đổi. Bởi vì nó chiếm 2 chu kỳ máy (2ms) để nhận ra sự chuyển đổi từ 1 sang 0, nên tần số bên ngoài lớn nhất là 500 Khz nếu dao động thạch anh 12 Mhz.
2.4. Sự bắt đầu, kết thúc và sự điều khiển các timer:
- Bit TRx trong thanh ghi có bit định vị TCON được điều khiển bởi phần mềm để bắt đầu hoặc kết thúc các timer. Để bắt đầu các timer ta set bit TRx và để kết thúc timer ta Clear TRx.
- Thêm phương pháp nữa để điều khiển timer là dùng bit GATE trong thanh ghi TMOD và ngõ nhập bên ngoài INTx. Điều này được dùng để đo độ rộng xung. Giả sử xung đưa vào chân INT0 ta khởi động timer 0 cho mode 1 là mode 16 bit voi TL0/TH0 = 0000H, GATE = 1, TR = 1. Như vậy khi INT0 = 1 thì timer “được mở cổng” và ghi giờ với tốc độ của tần số 1MHz. Khi INT0 xuống thấp thì timer “đóng cổng” và khoảng thời gian của xung tính bằng ms là sự đếm được trong thanh ghi TL0/TH0.
...............................................................
+Đặc điểm
- Dòng ngõ ra trên 1A
- Điện áp ngõ ra 5v
- Có sự bảo vể khi quá tải
- Có sự bảo vệ khi ngắn mạch
- Nếu bộ thu nhận được sự nung nóng thỏa đáng tại nơi cung cấp dự phòng thì nó có thể phát với dòng ngõ ra trên 1A. Tất cả đầu ra được thiết kế như bộ điều chỉnh sự cố định của điện áp.
Công suất tối đa tuyệt đối:
Thông số |
Ký hiệu |
Giátrị |
Đơn vị |
Điện áp vào( với V0=5-8V V0=24V) |
VI VI |
35 40 |
V V |
Vỏ tiếp giáp điện trở nhiệt |
5 |
0C/W |
|
Khe tiếp giáp điện trở nhiệt |
65 |
0C/W |
|
Tầm họat động nhiệt độ |
TOPR |
0 ~+125 |
0C |
Tầm lưu trữ nhiệt độ |
TSTG |
65 ~+150 |
0C |
|
|
|
|
+Đặc trưng về điện (MC7805/LM7805):
Thông số |
Ký hiệu |
Điều kiện |
MC7805/LM7805 |
Đơn vị |
|||
Nhỏ nhất |
Điển hình |
Lớn nhất |
|||||
Điện áp ra |
V0 |
5mA--I0-1A, P0-15W VI = 7V-20V |
4,75 |
5 |
5,25 |
V |
|
Vạch điều chỉnh |
Regline |
TJ = +1250 C |
V0 = 7V-25V |
- |
4 |
100 |
mV |
VI = 8V-12V |
- |
1,6 |
50 |
||||
Tải điều chỉnh |
Regload |
TJ = +1250 C |
I0 = 5mA--5A |
- |
9 |
100 |
mV |
I0=250mA-750A |
- |
4 |
50 |
||||
Dòng không có tín hiệu vào |
IQ |
TJ = +250C |
- |
5 |
8 |
mA |
|
Dòng không có tín hiệu vào thay đổi |
- IQ |
I0 = 5mA-1A |
- |
0,03 |
0,5 |
mA |
|
VI = 7V-25V |
- |
0,3 |
1,3 |
||||
Sự trễ điện áp ra |
-V0/-T |
I0 = 5mA |
- |
-0,8 |
- |
mV/0C |
|
Sự nhiễu điện áp ra |
VN |
f = 120Hz-100KHz T-= +25 0C |
- |
42 |
- |
- |
|
Lọai trừ sự gợn sóng |
RR |
f= 120Hz V0 = 8-18V |
62 |
73 |
- |
dB |
|
Điện áp đồng bộ |
VDrop |
I0 = 1A, TJ = +250C |
- |
2 |
- |
V |
|
Trở kháng ngõ ra dòng ngắn mạch |
r0 ISC |
f = 1KHz VI = 35V, TA = +250C |
- - |
15 230 |
- - |
m- mA |
|
Dòng đỉnh |
IPR |
TJ = +250C |
- |
22 |
- |
A |
PHẦN B: THI CÔNG
CHƯƠNG 1: THIẾT KẾ PHẦN CỨNG
I. NHIỆM VỤ THIẾT KẾ:
- Nhiệm vụ cần thực hiện là thiết kế mạch đồng hồ vạn năng. Nhiệm vụ đặt ra là:
- Thiết kế mạch hiển thị giờ, phút, giây, ngày, tháng, năm bằng led 7 đoạn.
- Hiển thị và đo nhiệt độ bằng led 7 đoạn.
- Phát ra tiếng bip sau mỗi giờ.
II. SƠ ĐỒ KHỐI:
III. NHIỆM VỤ TỪNG KHỐI:
- Khối xử lý 8051: là phần tử chính xử lý các thông tin nhập vào và đưa ra các quyết định điều khiển.
- Khối hiển thị: gồm 15 led 7 đoạn dùng để hiển thị số và chữ số ( để chỉ dẫn phần sử dụng). Khối này sẽ nhận lệnh từ khối xử lý 8051 đưa tới và chỉ có nhiệm vụ là lấy dữ liệu đó để hiển thị ra thành số hay chữ số cho người sử dụng dễ quan sát. Như hiển thị nhiệt độ môi truờng, hiển thị giờ, phút, giây, ngày, tháng, năm.
- Khối biến đổi ADC: là ADC0804 được kết nối với khối xử lý 8051 và cảm biến LM35 có nhiệm vụ là biến đổi điện áp tương tự sang số.
- Khối cảm biến: dùng LM35 dùng để khuếch đại tín hiệu và đo lường nhiệt độ môi trường xung quanh.
- Khối điều chỉnh: gồm 4 phím là phím Up, Down, Mode, Enter
+Phím Up, Down: dùng để tăng, giảm giá trị hiển thị của led 7 đoạn.
+Phím Mode: là phím thay đổi màn hình, khi phím này được tác động thì chế độ chỉnh giờ, phút, giây chuyển sang chế độ chỉnh ngày, tháng, năm
+Phím Enter: là phím dùng để nhập dữ liệu vào khi phím Enter được tác động thì chế độ chỉnh giờ, phút, giây bắt đầu sau đó là chỉnh ngày, tháng, năm và sau lần nhấn Enter tiếp theo thì màn hình led sẽ quay lại chế độ hiển thị như ban đầu sau khi đã chỉnh đúng yêu cầu (với màn hình led đã thay đổi).
- Khối chuông báo: dùng để phát ra tiếng bit sau mỗi giờ khối này cho chúng ta biết giờ hiện hành là bao nhiêu. VD: 1 giờ thì phát ra 1 tiếng .v..v.
- Khối nguồn: Khối nguồn là bộ phận không thể thiếu của bất kỳ thiết bị điện tử nào.
- Tùy theo các lọai thiết bị mà yêu cầu đối với các nguồn nuôi có khác nhau. Tuy vậy, bất cứ nguồn nuôi nào cũng phải đảm bảo các yêu cầu tối thiểu về mặt chất lượng điện áp một chiều tại lối ra: giá trị và độ ổn định, độ gợn sóng, dòng điện tải…. Đặt biệt là các mạch IC và các chất bán dẫn khác được sử dụng trong các khối chức năng khác nhau ở một số loại thiết bị, cần những điện áp một chiều thích hợp để chúng hoạt động. Vì vậy, nguồn nuôi cần phải có: mạch chỉnh lưu, mạch lọc và mạch ổn áp một chiều như hình vẽ. Ngoài ra còn có thể có biến áp nguồn, mạch bảo vệ
+ Nhiệm vụ các khối của mạch nguồn:
- Biến áp: có nhiệm vụ tăng hay giảm điện áp xoay chiều ở ngõ vào để có điện áp một chiều thích hợp ở ngõ ra.
- Mạch chỉnh lưu: gồm một hay nhiều diode, dùng để biến đổi điện áp xoay chiều ở ngõ vào thành điện áp một chiều ở ngõ ra.
- Mạch lọc: là các mạch R, L, C dùng để làm phẳng điện áp một chiều ở ngõ ra mạch chỉnh lưu.
-Mạch ổn áp: dùng để ổn định điện áp một chiều ở lối ra khi có tác nhân bên ngoài thay đổi.
IV. SƠ ĐỒ VÀ HOẠT ĐỘNG:
1. Sơ đồ mạch nguồn:
2. Sơ đồ nguyên lý:
3. Hoạt động:
- Màn hình hiển thị gồm 15 led 7 đoạn được lập trình bằng phương pháp quét từ led thứ nhất đến led 15 để hiển thị giờ, phút, giây, ngày, tháng, năm đo và hiển thị nhiệt độ theo yêu cầu người sử dụng. Khi có tín hiệu điều khiển từ vi xử lý 8051 gởi qua p2.0-p2.3 , IC gải mã 74LS154 sẽ giải mã 4 đường thành 16 đường địa chỉ ở ngõ ra của để chọn led hiển thị thông qua chân B của Transistor đệm A1015 ghép nối với 2 điện trở 1K và 10K (điện trở 1K dùng để hạn dòng và điện trở 10K dùng để chống nhiễu). Dữ liệu được gởi qua led thông qua IC giải mã 74LS47( với 4 ngõ vào D0-D3 của 74LS47 được kết nối với p2.4-p2.7 của 8051 và sau đó 74LS47 sẽ giải mã để xuất dữ liệu ra led 7 đoạn và hiển thị những con số từ 0 - 9 theo như đã lập trình trước đó). Ds12887 đuợc kết nối với port0 của 8051 (từ chân AD0-AD7) và chân R/W, IRQ\ được kết nối với các chân từ p3.6-p3.7 và được truy xuất giống như RAM ngoài sau đó chế độ RTC được thiết lập để cho hiển thị đồng hồ và lịch với thời gian thực một cách chính xác với sai số (1 phút/tháng). Thông tin đồng hồ và lịch có được bằng cách đọc những ô nhớ thích hợp và những thông tin này có thể được khởi tạo bằng cách ghi lên các byte nhớ thích hợp. Ds12887 thực hiện một chu kỳ cập nhật mỗi giây một lần bất kể bit Set trên thanh ghi B. Khi bit set=1, các byte đồng hồ, lịch, báo động sẽ không được cập nhật. Sau khi đã hiển thị giờ thì RTC phát tín hiệu cho ADC bắt đầu biến đổi với ADC0804 được kết nối với port1 của 8051 và phải đợi 100Ms để ADC biến đổi xong. Bộ ADC biến đổi tín hiệu tương tự sang số sau thời gian biến đổi thì ADC báo cho vi xử lý biết là thời gian đã biến đổi xong thông qua chân Start (WR\) nối với p3.5 của 8051 trong thời gian biến đổi cảm biến LM35 cảm nhận nhiệt độ môi trường xung quanh và chuyển tín hiệu sang ADC biến đổi tín hiệu này sang số và kết nối với vi xử lý cho chúng ta biết được giá trị nhiệt độ hiện hành là bao nhiêu.
- Thạch anh 11.059Mhz tạo ra xung dao động tốc độ baud 2400 ở chân 18, 19 của 89C51 xung này kích thích dữ liệu trong EPROM xuất ra chương trình đã lập trình trước .Với thời gian là 120s, có tần số quét rất cao cho 15 led nên dữ liệu hiện ra trên led không bị nhấp nháy, trong quá trình hoạt động của mạch ta có thể hiệu chỉnh giờ bằng hai nút nhấn là: Up và Down và có thể phát ra tiếng bip sau mỗi giờ thông qua loa âm thanh. Bộ vi xử lý có nhiệm vụ thực hiện chương trình và xuất ra những lệnh trên cơ sở trình tự những lệnh chấp hành trước đó và được khuếch đại lên khi chuyển qua mạch hiển thị trên led 7 đoạn.
CHƯƠNG 2: PHÂN TÍCH - THIẾT KẾ
I. TÍNH TẦN SỐ QUÉT LED:
-Gọi n là số led cần hiển thị
-Gọi Í : thời gian phát sáng của mỗi led (s)
- Gọi T là chu kỳ hiển thị của led thì T= n. Í(s)
- Gọi f là tần số quét: f= 1/T=1/ n. Í(Hz) ( với Í = ÍN : chu kỳ ngắt của mỗi led (s)
=> f= 1/T = 1/n. ÍN
- Chọn thời gian quét cho các led trong thời gian 1s một led sáng lên ít nhất là 24 lần. Trong mạch có 15 led cần quét. Vậy 1 led phải quet 15*24 = 360 lần và thời gian để một led sáng là 1/360 = 2700uS.
II. TÍNH GIÁ TRỊ ĐIỆN TRỞ HẠN DÒNG NỐI VỚI CỰC B CỦA A1015:
- Để cho 1 thanh led đủ sáng thì dòng điện qua nó là 10mA. Do đó để cả led 7 đoạn sáng thì dòng cung cấp là: I = 7*10 = 70m A. Đây là dòng IB của BJT. Vậy chọn BJT loại A1015 với hệ số khuếch đại là 60 – 250 và ICS (dòng I bão hòa của BJT) là 150mA. Ở đây ta chọn = 60 ta có:
=> IB = IC / = 70/60 = 1.1mA
Điện trở phân cực RB-1 là: RB-1 = Vcc – VBE /IB = (5-0.7)/1.1 = 3.9K
Chọn RB-1 = 1K nhỏ hơn giá trị tính toán để BJT nhanh bão hoà
III. TÍNH GIÁ TRỊ ĐIỆN TRỞ HẠN DÒNG NỐI VỚI 74LS47:
- Khi BJT dẫn bảo hòa điện áp Vcesat=0.2v và điện áp rơi trên led lúc đó là 2V do đó:
VRD-1 = VCC - VCE SAT – VLED = 5 – 0,2 – 2 = 2,8 V
Vậy RD-1 = VRD-1 /IC .60/7 = = 251W
Chọn RD-1 = 270W. Chọn RD-1 lớn hơn tính toán để BJT nhanh bão hoà.
- TÍNH GIÁ TRỊ ĐIỆN TRỞ NỐI VỚI C1815:
- Do C1815 có dòng cung cấp là IB = 1mA (theo thông số nhà sản xuất). Ap giữa hai đầu điện trở là: 5-0.7 = 4.3v nên Rloa= = 4.3/1 = 4.3k => chọn Rloa = 4.7K.
- ..............................
ENTER_HOUR. . . . . . C ADDR 017AH A
ENTER_MIN . . . . . . C ADDR 01BCH A
ENTER_MONTH . . . . . C ADDR 024AH A
ENTER_YEAR. . . . . . C ADDR 0287H A
EXIT_NHIETDO. . . . . C ADDR 0091H A
EXIT_RING . . . . . . C ADDR 0416H A
FLAG0 . . . . . . . . B ADDR 0020H.0 A
HOUR. . . . . . . . . N NUMB 0008H A
HOUR_DOWN_OK. . . . . C ADDR 0179H A
HOUR_UP_OK. . . . . . C ADDR 0163H A
HTHI_CALENDAR_VUA_SET C ADDR 01E1H A
HTHI_DAYOFMONTH . . . C ADDR 02F8H A
HTHI_GIAITRI_VUA_SET. C ADDR 0150H A
HTHI_HOUR . . . . . . C ADDR 035BH A
HTHI_MIN. . . . . . . C ADDR 037CH A
HTHI_MONTH. . . . . . C ADDR 0319H A
HTHI_NHIETDO. . . . . C ADDR 007DH A
HTHI_RTC. . . . . . . C ADDR 02D9H A
HTHI_SEC. . . . . . . C ADDR 039DH A
HTHI_YEAR . . . . . . C ADDR 033AH A
IE. . . . . . . . . . D ADDR 00A8H A
INIT_RTC. . . . . . . C ADDR 0291H A
ISR_T0. . . . . . . . C ADDR 0417H A
LAP_HT1 . . . . . . . C ADDR 0152H A
LAP_HTHI_2. . . . . . C ADDR 01E3H A
LOA . . . . . . . . . B ADDR 00B0H.4 A
LOOPD1. . . . . . . . C ADDR 0445H A
LOOPD2. . . . . . . . C ADDR 044EH A
LOOPD3. . . . . . . . C ADDR 0456H A
LOOPD4. . . . . . . . C ADDR 045EH A
LOOPD5. . . . . . . . C ADDR 0466H A
LOOP_SET1 . . . . . . C ADDR 00D1H A
LOOP_SET2 . . . . . . C ADDR 010BH A
MAIN. . . . . . . . . C ADDR 0030H A
MIN . . . . . . . . . N NUMB 0009H A
MIN_DOWN_OK . . . . . C ADDR 01BBH A
MIN_UP_OK . . . . . . C ADDR 01A5H A
MODE. . . . . . . . . B ADDR 00B0H.3 A
MONTH . . . . . . . . N NUMB 000DH A
MONTH_DOWN_OK . . . . C ADDR 0249H A
MONTH_UP_OK . . . . . C ADDR 0236H A
NHIETDO . . . . . . . N NUMB 0015H A
P1. . . . . . . . . . D ADDR 0090H A
P2. . . . . . . . . . D ADDR 00A0H A
P3. . . . . . . . . . D ADDR 00B0H A
QUAY_LAI_MAIN_1 . . . C ADDR 00F3H A
QUAY_LAI_MAIN_2 . . . C ADDR 0131H A
READ_NHIETDO. . . . . C ADDR 007AH A
READ_RTC. . . . . . . C ADDR 02A1H A
RING. . . . . . . . . C ADDR 040CH A
SEC . . . . . . . . . N NUMB 000AH A
SET_CALENDAR. . . . . C ADDR 00F9H A
SET_CLOCK . . . . . . C ADDR 00C2H A
SP. . . . . . . . . . D ADDR 0081H A
START . . . . . . . . B ADDR 00B0H.5 A
START_NHIETDO . . . . C ADDR 006FH A
TEST_CHUONG . . . . . C ADDR 0404H A
TH0 . . . . . . . . . D ADDR 008CH A
THOAT_1 . . . . . . . C ADDR 0430H A
THOAT_2 . . . . . . . C ADDR 042EH A
TL0 . . . . . . . . . D ADDR 008AH A
TMOD. . . . . . . . . D ADDR 0089H A
TMP_CHUONG. . . . . . N NUMB 0017H A
TMP_DAYOFMONTH. . . . N NUMB 0014H A
TMP_HOUR. . . . . . . N NUMB 0012H A
TMP_MIN . . . . . . . N NUMB 0013H A
TMP_MONTH . . . . . . N NUMB 0015H A
TMP_YEAR. . . . . . . N NUMB 0016H A
TR0 . . . . . . . . . B ADDR 0088H.4 A
UP. . . . . . . . . . B ADDR 00B0H.0 A
UPDATE_CALENDAR . . . C ADDR 03E1H A
UPDATE_CLOCK. . . . . C ADDR 03C1H A
UP_DAYOFMONTH . . . . C ADDR 01D4H A
UP_HOUR . . . . . . . C ADDR 0140H A
UP_MIN. . . . . . . . C ADDR 0191H A
UP_MONTH. . . . . . . C ADDR 0224H A
UP_YEAR . . . . . . . C ADDR 0262H A
WAIT_DAYOFMONTH . . . C ADDR 01C9H A
WAIT_HOUR . . . . . . C ADDR 0137H A
WAIT_MIN. . . . . . . C ADDR 0186H A
WAIT_MONTH. . . . . . C ADDR 0219H A
WAIT_RTC. . . . . . . C ADDR 02D2H A
WAIT_YEAR . . . . . . C ADDR 0257H A
YEAR. . . . . . . . . N NUMB 000EH A
YEAR_DOWN_OK. . . . . C ADDR 0286H A
YEAR_UP_OK. . . . . . C ADDR 0273H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
TÀI LIỆU THAM KHẢO
- Họ vi điều khiển 8051......................................... Tống Văn On
- Giáo trình kỹ thuật số ........................................ TS. Nguyễn Viết Nguyên
- Ưng dụng kỹ thuật số......................................... Võ Trí An
- http/www.google.com
- Kỹ thuật đo......................................................... Nguyễn Ngọc Tân