Giới thiệu Vi điều khiển AT89C51Mục tiêu >Nội dung> Hỗ trợ kỹ thuật cho sinh viên yêu thích lĩnh vực thiết kế Robot và các ứng dụng trong điều khiển tự động... ¾ Cấu trúc bên ngoài: Thô
Trang 1Giới thiệu Vi điều khiển AT89C51
Mục tiêu
>Nội dung>
Hỗ trợ kỹ thuật cho sinh viên yêu thích lĩnh vực thiết kế Robot và các ứng dụng trong điều
khiển tự động.
Trang 2¾ Giới thiệu một số họ vi điều khiển MCS51, PIC, AVR
và sự lựa chọn AT89C51
¾ Yêu cầu về Kiến thức nền
¾ Cấu trúc bên ngoài: Thông số kỹ thuật, sơ đồ chân IC
và chức năng của các chân
¾ Tổ chức bên trong AT89C51: Các thanh ghi, bộ nhớ chương trình - Flash ROM, các port vào ra, RAM, bộ phận timer và các ngắt (Port nối tiếp, Timer)
¾ Hướng dẫn thiết kế phần cứng, một số điểm cần chú ý
¾ Sinh viên đặt câu hỏi
Nội dung
>Một số họ VĐK>
Giới thiệu một số họ Vi điều khiển
9 Vi điều khiển họ PIC: PIC16F83, PIC16F84, PIC16CR83, PIC16CR84,… → RISC
9 Vi điều khiển họ AVR: ATMEGA8, ATMEGA16,
ATMEGA32, ATMEGA64, AT90S2313…, → RISC
9 Vi điều khiển MCS51: AT89C1051, AT89C2051,
AT89C4051, AT89C51, AT89C52, AT89C55,…→ CISC
>Lựa chọn AT89C51>
Trang 3Sự lựa chọn AT89C51
)Tính năng và tốc độ đáp ứng được yêu cầu
kỹ thuật trong ứng dụng không đòi hỏi tốc độ cao (như xử lý ảnh, nhận dạng tiếng nói,…).
)Giá thành thấp hơn so với các họ VĐK khác.
)Họ VĐK MCS51 có hỗ trợ lập trình điều khiển bằng cả hợp ngữ và C.
)Các thiết bị nạp Flash ROM có sẵn tại Khoa.
>Background>
Yêu cầu về kiến thức nền
¾ Kỹ thuật Vi xử lý
¾ Kỹ thuật số
¾ Linh kiện điện tử.
>Thông số kỹ thuật 89C51>
Trang 4¾ Tương thích với họ MCS-51
¾ 4K Bytes Flash ROM
¾ Tần số xung clock hoạt động: 0 Hz đến 24 MHz
¾ Hỗ trợ bảo mật, chống copy chương trình trong Flash
¾ 128 x 8-bit Internal RAM
¾ 32 Programmable I/O Lines (4 Port)
¾ Hai Timer/Counters 16-bit
¾ Hỗ trợ 6 loại ngắt: Ngắt phần cứng, Timer, Serial Port
¾ Một Port giao tiếp nối tiếp
¾ Hỗ trợ “Low-power Idle” và “Power-down Modes”
Đặt tính kỹ thuật của AT89C51
>Hình dạng>
Các dạng chân của AT89C51
>Cấu trúc ngoài>
Trang 5Sơ đồ chân và ý nghĩa các chân
Cấu trúc bên ngoài
Port 0
Port 2
Port 1
Port3
Reset
Clock
Chức năng khác
>Tổ chức trong>
¾Đa hợp 8 bits địa chỉ thấp/Dữ liệu khi
truy xuất CTrình hoặc dữ liệu trong
64K ROM/RAM ngoại.
¾Port 8 bits vào/ra có cực thu để hở:
- Nhận dòng tối đa 10mA khi đặt ở
mức thấp.
- Khi được đặt ở mức cao, có thể sử
dụng như các ngõ vào (Phải sử
dụng điện trở kéo lên)
Chức năng Port 0
) Return
Trang 6¾Phát ra 8 bits địa chỉ cao khi
truy xuất CTrình hoặc dữ liệu
trong ROM/RAM ngoại.
¾Port vào ra 8 bits:
- Nhận dòng tối đa 10mA khi
đặt ở mức thấp.
- Khi được đặt ở mức cao, có
thể sử dụng như các ngõ vào
(không sử dụng điện trở kéo
lên).
Chức năng của Port 2
)Return
¾Port vào ra 8 bits:
- Nhận dòng tối đa 10mA ở
mức thấp.
- Có thể sử dụng như các ngõ
vào khi đặt ở mức cao.
¾ Port 3 còn dùng phục vụ các
chức năng đặc biệt của CPU.
Port 1 và Port 3
>Next>
Trang 7¾ P3.0: RXD (serial input port)
¾ P3.1: TXD (serial output port)
¾ P3.2: INT0 (external interrupt 0)
¾ P3.3: INT1 (external interrupt 1)
¾ P3.4: T0 (timer 0 external input)
¾ P3.5: T1 (timer 1 external input)
¾ P3.6: WR (external data memory
write strobe)
¾ P3.7: RD (external data memory
read strobe)
Chức năng đặc biệt của Port 3
)Return
Các chức năng khác
1K U1
AT89C51
9
18 19
29 30 31
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
39 38 37 36 35 34 33 32
RST XTAL2 XTAL1
PSEN ALE/PROG EA/VPP
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
VCC 10uF
VCC
CRYSTAL
8.2K
SW1
Chu kỳ: TCK
Reset nếu RST
được giữ ở mức
cao tgian 24TCK
EA: External Access Enable
VPP: 12V khi lập trình Flash
>>Next>>
Trang 8¾PSEN (Program Store Enable)
dùng cho phép truy xuất bộ nhớ
chương trình ngoài.
¾ALE (Address Latch Enable):
- Chốt 8 bits địa chỉ thấp khi truy
xuất chương trình ngoài.
- Phát ra tín hiệu có f = fCLOCK÷6
¾PROG (program pulse input):
Xung nạp chương trình cho Flash
Các chức năng khác (tt)
6 1
)Return
Tổ chức bên trong
INT0 INT1
Interrupt
Control
4KB Flash ROM
CPU
Port
RAM 128Byte thấp
Counter Inputs
TXD RXD
SFRs 128Byte cao
Bus Control
I/O Ports
P0 P2 P1 P3
Timer1 Timer0
256 Bytes RAM
ACC B PC
>Hướng dẫn thiết kế>
Trang 9SFRs: Special Function Registers
F4
E4
D4
B8
BA B9 BC
B4
A8
AA A9 AC
A0 A2 A1 A4
9C
94
88 8A 89 8C
80
82 81 84
A0 A8 B0 B8 D0 E0
F0 FF
P0 SP DPL DPH
PCON TCON TMOD TL0 TL1 TH0 TH1 P1 SCON
not bit addressable A7
AF B7 -D7 E7 F7
87
not bit addressable
not bit addressable
not bit addressable
not bit addressable
8F
not bit addressable
not bit addressable
not bit addressable
not bit addressable
not bit addressable
97
9F
SBUF 80
81
P2 82
83
IE 87
P3 88
89
IP 8A
8B
PSW 8C
8D
ACC 90
B 98
Các thanh ghi SFRs có địa chỉ từ 80H đến FFH )Return
PSW: Program Status Word
Thanh ghi từ trạng thái
D0 D1
D2 D3
D4 D5
D6 D7
Địa chỉ
Tên bit
Vị trí
P
-OV RS0
RS1 F0
AC CY
PSW.0 PSW.1
PSW.2 PSW.3
PSW.4 PSW.5
PSW.6 PSW.7
Parity flag Overflow flag Register Bank Select 00: Bank 0 01: Bank 1 10: Bank 2 11: Bank 3
Auxiliary flag Carry flag
)Return
Trang 10IP: Interrupt Priority Register
Thanh ghi ưu tiên ngắt (Các bit tác động cao)
B8 B9
BA BB
BC BD
BE BF
Địa chỉ
Tên bit
Vị trí
PX0 PT0
PX1 PT1
PS
-IP.0 IP.1
IP.2 IP.3
IP.4 IP.5
IP.6 IP.7
Serial interface
Timer 1
External interrupt 0
Timer 0 External interrupt 1
1: High Priority
0: Low Priority
Thứ
tự
ưu tiên
)Return
Đchỉ: 23H 1BH 13H 0BH 03H
IE: Interrupt Enable Register
Thanh ghi ngắt (Các bit tác động cao)
A8 A9
AA AB
AC AD
AE AF
Địa chỉ
Tên bit
Vị trí
EX0 ET0
EX1 ET1
ES
-EA
IE.0 IE.1
IE.2 IE.3
IE.4
-IE.7
Enable/Disable serial port
EA: Cho phép ngắt
1: Cho phép
0: Cấm tất cả ngắt
Enable/Disable Timer1 overflow
Enable/Disable external interrupt 1
Enable/Disable external interrupt 0
Enable/Disable Timer0 overflow interrupt
)Return
Trang 11PCON: Power Control Register
Thanh ghi điều khiển công suất Tên bit SMOD - - - GF1 GF0 PD IDL
PD (Power down)
PD = 1: Oscillator dừng
CPU ngưng hoạt động
SMOD: Double baud rate
Tăng tốc độ gấp đôi khi
truyền nhận qua cổng nối tiếp
IDL (Idle) IDL = 1: CPU ngưng hoạt động, ngắt CK, các ngắt còn hoạt động
)Return
TCON: Timer Control Register
Thanh ghi điều khiển Timer (Các bit tác động cao)
88 89
8A 8B
8C 8D
8E AF8
Địa chỉ
Tên bit
Vị trí
IT0 IE0
IT1 IE1
TR0 TF0
TR1 TF1
TCON.0 TCON.1
TCON.2 TCON.3
TCON.4 TCON.5
TCON.6 TCON.7
TF1, TF0 (Timer overflow flag)
Được SET là 1 khi Timer/counter tràn
TR1, TR0 (Timer run control bit): Cho phép Timer/counter chạy.
IE1, IE0 (External interrupt edge flag)
Cờ ngắt, tự động bật lên = 1 khi có ngắt tác động.
IT1, IT0 (Interrupt type control)
Nếu được SET sẽ cho phép các ngắt tác động cạnh )Return
Trang 12Tổ chức 128 bytes RAM
128 BIT BIT ADDRESSABLE
Địa chỉ từ: 00H đến FFH
REGISTER BANK 0
REGISTER BANK 1 REGISTER BANK 2 REGISTER BANK 3
07……… 00 FF……… F8
R0 R1 R2 R3 R4 R5 R6 R7
00 01 02 03 04 05 06 07
0F 08
17 10
1F 18
20 2F
7F 30 General Purpose RAM
)Return
Khi hoạt động, một Bank sẽ
được chọn làm các thanh
ghi Vùng nhớ còn lại sẽ
được sử dụng lưu trữ dữ liệu
và làm ngăn xếp.
Thiết kế phần cứng
A4
A6
CRYSTAL
U5
74LS138
1 3 6 4 5
15 13 12 11 9 7
A C
G1 G2A
Y0 Y2 Y3 Y5 Y6 A[0 7]
10uF A2
A6
U2
74F573
2 3 5 6 8 9 11 1
19 18 16 15 13 12
D1 D3 D4 D6 D7 D8 LE OE
Q1 Q3 Q4 Q6 Q7 Q8 A7
A2 A4
A4
8.2K
A5
A7
A0
U6
2764
10 9 7 6 4 3 25 24 21 23 2
20 27
1
11 12 15 16 18 19
A0 A2 A3 A5 A6 A7 A9 A10 A12
CE PGM
VPP
O0 O2 O3 O5 O6 O7 A3
A1
A1
A3
A0
A5
33pF
A6
ALE
U1
AT89C51
9 18 19
29 30 31
1 3 4 6 7
21 22 23 25 26 28 10 12 13 15 16
39 38 37 35 34 32
RST
XTAL2 XTAL1
PSEN ALE/PROG EA/VPP
P1.0 P1.1 P1.2 P1.4 P1.5 P1.6
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD
P0.0/AD0 P0.1/AD1 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.7/AD7
VCC
A3 A0
33pF
ALE
A5
A7
SW1
A1
Sử dụng ROM
chương trình
ngoài.
>Cách sử dụng Port>
Trang 13Sử dụng các Port
Q1
1
U7 AT89C51
9 18
30 31
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
39 38 37 36 35 34 33 32
RST XTAL2
ALE/PROG EA/VPP
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6
10K
D1
220
8.2K
220
VCC
VCC
220
VCC
8.2K
VCC
D1
Q1
1
>Các ứng dụng>
Điện trở kéo lên
¾Mạch điều khiển, định thời đóng mở các thiết bị gia dụng như đèn, quạt…
¾Đồng hồ điện tử đa năng.
¾Mạch đèn chớp với nhiều hiệu ứng.
¾Các thiết bị tính giờ, thiết bị đố vui.
¾Lịch vạn niên.
¾Các thiết bị thông minh.
Một số ứng dụng