họ vi điều khiển AT89C51
Trang 1Đồ Án 2
Khoa: Công Nghệ Điện Tử
GVHD: Thầy Trần Nguyên Bảo Trân
Trang 2PHẦN II: PHẦN NỘI DUNG
1.Giới thiệu về họ vi điều khiển AT89C51
AT89C51 là phiên bản có Rom nằm trên Chip là bộ nhớ Flash Phiên bản này rất thích hợp cho các ứng dụng nhanh vì bộ nhớ Flash
có thể xóa được dữ liệu chỉ trong vài giây (chứ không phải 20 giây như 8751) Dĩ nhiên là để dung AT89C51 cần có một bộ đốt ROM hỗ trợ bộ nhớ Flash, xong lại không cần bộ xóa, bộ nhớ Flash được xóa bằng bộ đốt PROM Để tiện sử dụng, hiện nay hang Atmel đang
nghiên cứu một phiên bản mới của AT89C51 có thể lập trình qua cổng COM của máy tính và như vậy sẽ không cần bộ đốt PROM
Trang 3 1.1.Giới thiệu về cấu trúc phần cứng họ MCS-51
Đặc điểm và chức năng hoạt động của họ IC MCS-51 hoàn toàn tương tự nhau Ở đây giới thiệu
IC AT89C51 là một IC điều khiển do hang intel của Mỹ sản xuất, chúng có những đặc điểm như sau:
4KB EFROM 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
Trang 4 1.2.Khối điều khiển trung tâm ( CPU ) :
Sơ đồ khối của một hệ vi xử lý:
Trang 5Tổng quát hệ vi xử lý gồm:
Trang 6 Phần cứng (hardware): các thiết bị ngoại vi để giao tiếp với con người.
Phần mềm (software):chương trình để xử lý dữ liệu.
CPU (Central Processing Unit): đơn vị xử lý trung tâm.
RAM (Random Access Memory): bộ nhớ truy xuất ngẫu nhiên.
Rom (Read Only Memory): bộ nhớ chỉ đọc.
Interface Circuitry: mạch điện giao tiếp.
Peripheral Devices (Input): các thiết bị ngoại vi (thiết bị nhập)
Peripheral Devices (Output): các thiết bị ngoại vi (thiết bị xuất).
Addressbus: bus địa chỉ.
Data bus: bus dữ liệu.
Control bus: bus điều khiển.
Trang 7 1.3.Đơn vị xử lý trung tâm:
CPU đóng vai trò chủ đạo trong hệ vi xử lý, nó quảnlý tất cả các hoạt động của hệ và thựchiện tất cả
các thao tác trên dữ liệu.
CPU là một vi mạch điện tử có độ tích hợp ca Khi hoạt động CPU đọc mã lệnh được ghi dưới dạng
cácbit 0 và bit 1 từ bộ nhớ, sau đó nó sẽ thực hiện giải mã các lệnh này thành các dãy xung điều khiển tương ứng với các thao táctrong lệnhđể điều khiển cáckhối khác thực hiện từng bước các thao tác đóvà
từ đó tạo ra các xung điều khiển cho toàn hệ.
IR/IP (Instruction Register/Intruction Pointer): thanh ghi lệnh/con trỏ lệnh.
PC (Program Counter): bộ đếm chươngtrình.
Instruction decode and control unit: đơn vị giải mã lệnh và điều khiển.
ALU (arithmetic and Logic Unit): đơn vị số học và logic.
Registers: Các thanh ghi.
Khi hoạt động CPU sẽ thực hiện liên tục 2 thao tác: tìm nạp lệnh và giãi mã - thực hiện lệnh.
Trang 8 Thao tác tìm nạp lệnh:
Nội dung của thanh ghi PC đượcCPU đưa lên bus địa chỉ.
Tín hiệu điều khiển đọc (Read) chuyển sang trạng thái tích cực.
Mã lệnh (Opcode) từ bộ nhớ được đưa lên bus dữ liệu.
Nội dung của thanh ghi PC tăng lên một đơn vị để chuẩn bị tìm nạp lệnh kế tiếp từ bộ nhớ.
Trang 9 Thao tác giải mã - thực hiện lệnh:
Mã lệnh từ thanh ghi IR được đưa vào đơn vị giải mã lệnh và điều khiển.
Đơn vị giải mã lệnh và điều khiển sẽ thực hiện giải mã opcode và tạo ra các tín hiệu
để điều khhiển việc xuất nhập dữ liệu giữ ALU và cácthanh ghi
Căn cứ trên các tín hiệu điều khiển này, ALU thực hịên các thao tác đã được xác định.
Một chuỗi các lệnh (Opcode) kết hợp lại với nhau để thực hiện một công việc có nghĩa
được gọi là chương trình (Program) hay phần mềm
Trang 10 Bộ nhớ bán dẫn là một khác rất quan trọng của hệ vi xử lý, các chương trình và dữ
liệu đều được lưu giữ trong bộ nhớ
Sơ lược về cấu trúc và phân loại ROM – RAM:
ROM (Read Only Memory): bộ nhớ chỉ đọc
RAM (Random Access Memory): bộ nhớ truy xuất ngẫu nhiên (bộ nhớ ghi đọc)
Trang 11 1.4.Các chân của chip 89C51:
CPU (Central Processing Unit): Đơn vị xử lý trung tâm tính toán và điều khiển quá
trình hoạt động của hệ thống
OSC (Oscillator): Mạch dao động _ tạo tín hiệu xung clock cung cấp cho các khối
trong chip hoạt động
Interrupt control: Điều khiển ngắt _ nhận tín hiệu ngắt từ bean ngoài (INT0\, INT1\),
từ bộ định thời (TIMER0, TIMER1) và từ cổng nối tiếp (SERIAL PORT), lần lượt đưa các tín hiệu ngắt này đến CPU để xử lý
Trang 12 Other registers: Các thanh ghi khác _ lưu trữ dữ liệu của các port xuất/nhập, trạng thái làm việc
của các khối trong chip trong suốt quá trình hoạt động của hệ thống.
RAM (Random Access Memory): Bộ nhớ dữ liệu trong chip lưu trữ các dữ liệu.
ROM (Read Only Memory): Bộ nhớ chương trình trong chip lưu trữ chương trình hoạt động của chip.
I/O ports (In/Out ports): Các port xuất/nhập _ điều khiển việc xuất nhập dữ liệu dưới dạng song
song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3.
Serial port: Port nối tiếp _ điều khiển việc xuất nhập dữ liệu dưới dạng nối tiếp giữa trong và ngoài
chip thông qua các chân TxD, RxD.
Timer 0, Timer 1: Bộ định thời 0, 1 _ dùng để định thời gian hoặc đếm sự kiện (đếm xung) thông
Trang 13 1.4.2 Chức năng các chân của chip 89C51
Chip 89C51 :gồm 40 chân
2 chân nguồn cấp điện (VCC, VSS)
32 chân xuất/nhập
6 chân chức năng (EA, ALE, PSEN, XTAL1, XTAL2, RST)
Port xuất/nhập 8 bit (P0.0 – P0.7)
Port xuất/nhập 8 bit (P1.0 – P1.7)
Port xuất/nhập 8 bit (P2.0 – P2.7)
Port xuất/nhập 8 bit (P3.0 – P3.7)
Trang 14 1.4.3.Sơ đồ chân của chip 89C51
Trang 15 Port 0:
- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.
- Port 0 có hai chức năng:
• Port xuất nhập dữ liệu (P0.0 - P0.7) không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) có sử dụng bộ
nhớ ngoài.
+ Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng
các điện trở kéo lên bên ngoài.
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò là ngõ vào của dữ
liệu (D0 -> D7)
Trang 16 Port 1:
- Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.
- Port 1 có một chức năng:
• Port xuất nhập dữ liệu (P1.0 – P1.7) _ sử dụng hoặc không sử dụng bộ nhớ ngoài.
- Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ vào của địa chỉ byte
thấp (A0 – A7)
Trang 17 Port 2:
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
- Port 2 có hai chức năng:
• Port xuất nhập dữ liệu (P2.0 – P2.7) _ không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte cao (A8 – A15) _ có sử dụng bộ nhớ ngoài.
- Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vào của
địa chỉ byte cao (A8 – A11) và các tín hiệu điều khiển
Trang 18 Port 3:
- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
- Port 0 có hai chức năng:
• Port xuất nhập dữ liệu (P3.0 – P3.7) _ không sử dụng bộ nhớ ngoài hoặc
các chức năng đặc biệt.
• Các tín hiệu điều khiển _ có sử dụng bộ nhớ ngoài hoặc các chức năng
đặc biệt.
- Khi lập trình cho ROM trong chip thì Port 3 đóng vai trò là ngõ vào của
các tín hiệu điều khiển
Trang 19 Chân ALE:
- ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30.
- Chức năng:
• Là tín hiệu cho phép chốt địa chỉ để thực hiện việc giải đa hợp cho bus địa chỉ byte
thấp và bus dữ liệu đa hợp
(AD0 – AD7).
• Là tín hiệu xuất, tích cực mức cao.
ALE = 0 _ trong thời gian bus AD0 – AD7 đóng vai trò là bus D0 – D7.
ALE = 1 _ trong thời gian bus AD0 – AD7 đóng vai trò là bus A0 – A7.
- Khi lập trình cho ROM trong chip thì chân ALE đóng vai trò là ngõ vào của xung lập
trình (PGM\)
Khi lệnh lấy dữ liệu từ RAM ngoài (MOVX) được thực hiện thì 1 xung ALE bị bỏ qua
Trang 20 EA\ = 0 _ Chip 89C51 sử dụng chương trình của ROM ngoài.
EA\ = 1 _ Chip 89C51 sử dụng chương trình của ROM trong.
- Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của điện áp lập
trình (Vpp = 12V/89xx, 21V/80xx,87xx)
+ Lưu ý: Chân EA\ luôn luôn phải được nối lên Vcc (sử dụng chương trình của ROM
trong) hoặc xuống Vss (sử dụng chương trình của ROM ngoài)
Trang 21 Chân XTAL1, XTAL2:
- XTAL (Crystal): tinh thể thạch anh, chân số 18-19.
- Chức năng:
• Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài, cung cấp tín hiệu xung clock cho chip hoạt động.
• XTAL1 _ ngõ vào mạch tạo xung clock trong chip.
• XTAL2 _ ngõ ra mạch tạo xung clock trong chip.
RST = 0 _ Chip 89C51 hoạt động bình thường.
RST = 1 _ Chip 89C51 được thiết lặp lại trạng thái ban đầu.
Trang 22 2.Giới thiệu về các IC cơ bản trong mạch
2.1.Giới thiệu về IC ULN2803
IC ULN2803
Đây là IC gồm 8 transistor NPN ghép Darlington gắn mạch điện tử trong dãy này của
chuổi là một bộ lý tưởng để giao tiếp với mạch điện dạng số mức logic thấp như: TTL, CMOS hoặc PMOS/NMOS
ULN2803 được thiết kế để phù hợp với chuẩn TTL
Trang 23ULN2803
Trang 24 Vài chỉ số kĩ thuật của IC ULN2803
Điện áp ngõ vào khoảng 2,4V – 3V
Chân 1 – 8: Ngõ và dữ liệu
Chân 11 – 18: Ngõ ra dữ liệu
Trong thực tế IC này có nhiều ứng dụng đòi hỏi công suất lớn Trong
mạch này em sử dụng ULN 2803 AG nhằm đệm đảo dữ liệu xuất ra từ Port 3 của Vi xử lý nhằm nâng dòng
Trang 25 Hình 2.5: Cấu trúc ULN2803
2.2.Giới thiệu về IC 74HC154
IC 74HC154 là loại IC dùng để giải mã ,giải đa hợp với các tính năng chính:
Giải đa hợp có 16 đường ngõ ra
Giải mã nhị phân 4 bit đầu vào thành 16 đường ngõ ra tương ứng
Hai ngõ vào cho phép khóa hoặc mở rộng
Trang 26Chân 74HC154
Trang 27 2.2.1.Sơ đồ chân IC 74HC154
Chức năng các chân của IC 74HC154:
Chân 24,12(VCC,GND):dùng cấp nguuồn cho IC hoạt động
Chân 18,19 (G1,G2):các ngõ vào cho phép IC hoạt động,trong một thời điểm chỉ
có 1 IC hoạt động, IC bị cấm hoạt động thì tất cả ngõ ra đều ở mức logic cao (bất chấp ngõ vào ở trạng thái nào)
Chân 23,22,21,20 (A,B,C,D):các ngõ vào quy định trạng thái ngõ ra
Chân 1-11,13-15 (O0-O15):các ngõ ra của IC
Tuỳ thuộc vào trạng thái của các đường địa chỉ mà ta có ngõ ra tương ứng, khi cả hai
ngõ vào G1,G2 ở mức logic thấp thì IC hoạt động bình thường, tại một thời điểm chỉ có một ngõ ra ở mức logíc thấp, tất cả các ngõ còn lại đều ở mức logic cao
Trang 28 2.2.3 Bảng chức năng của 74HC154
Trang 29 2.2.4.Nguyên tắc hoạt động của IC 74HC154:
Dựa vào bảng trạng thái ta thấy: Chỉ cần chân G1,G2 ỏ trạng thái cấm
( không cho phép IC hoạt động) thì tất cả ngõ ra của IC 74HC154 đều ở mức logic cao bất chấp trạng thái ở các chân địa chỉ (A,B,C,D) Chẳng hạn như khi chân G1 ở mức logic cao thì tất cả các ngõ ra của IC đều ở mức logic cao bất chấp trạng thái của các chân còn lại như G2,A,B,C,D Và khi chân G2 ở mức cao thì cũng tương tự như thế.
Khi các đương địa chỉ vào từ 00H_07H thì mức logic thấp duy nhất ở ngõ
ra sẽ di chuyển từ ngõ ra(O0_O7).
Trang 30 3.Giới thiệu về led ma trận
Led ma trận gồm các led phát quang được bố trí thành hàng và cột trong một vỏ
Các tín hiệu điều khiển cột được nối với Cathode của tất cả các led trên cùng một cột Các tín hiệu điều khiển hàng cũng được nối với Anode của tất cả các led trên cùng một hàng như hình vẽ sau:
Trang 31 Ma Trận
Trang 32 Khi có một tín hiệu điều khiển ở cột và hàng, các chân Anode của các Led trên
hàng tương ứng được cấp điện áp cao, đồng thời các chân Cathode các Led trên cột được cấp điện áp thấp Tuy nhiên lúc đó chỉ có một Led sang, vì nó có đồng thời điện thế cao trên Anode và điện thế thấp trên Cathode Như vậy, khi có một tín hiệu điều khiển hàng và cột, thì tại một thời điểm chỉ có duy nhất một Led tại chỗ gặp nhau của hàng và cột là sáng
Trang 33 Các bảng quang báo với số lượng Led lớn hơn cũng được kết nối theo cấu trúc như vậy.
Trong trường hớp ta muốn cho sáng đồng thời một số Led rời rạc trên ma trận, để hiển thị một kí
tự nào đó, nếu trong hiển thị tĩnh ta cấp áp cao cho Anode và áp thấp cho Cathode, cho các Led tương ứng mà ta muốn sáng
Nhưng khi đó một số Led ta không mong muốn sáng cũng sẽ sáng, miễn là nó nằm tại vị trí gặp nhau
của các cột và hàng mà ta cấp nguồn Vì vậy trong điều khiển Led ma trận ta không thể sử dụng
phương pháp hiển thị tĩnh mà phải sử dụng phương pháp quét (hiển thị động), có nghĩa là ta phải tiến hành cấp tín hiệu điều khiển theo dạng xung quét trên các hàng và cột có Led cần hiển thị.
Để đảm bảo cho mắt nhìn thấy Led không bị nháy, thì tầng số quét nhỏ nhất cho mỗi chu kì đi hết các
cột là 20Hz (50ms) Trong lập trình vi điều khiển cho Led ma trận bằng vi xử lý ta cũng phải sử dụng phương pháp quét Led như vậy.
Trang 34 Ma trận Led có thể là loại chỉ hiển thị được một màu hoặc hiển thị được
hai màu trên một điểm, khi đó Led có số chân ra tương ứng:
+ Đối với Led ma trận 8x8 hiển thị một màu, thì số chân ra là 16, trong
đó 8 chân dùng để điều khiển hàng và 8 chân còn lại đề điều khiển cột
+ Đối với loại 8x8 có hai màu thì số chân ra của Led là 24 chân, trong
đó 8 chân dùng để điều khiển hàng chung cho cả hai màu, 16 chân còn lại thì 8 chân dùng để điều khiển cột của màu thứ nhất và 8 chân còn lại
dùng để điều khiển màu thứ hai.
Trang 35 4 Sơ đồ khối của mạch quang báo :
Trang 36 5 Chức năng của từng khối :
5.1.Khối vi điều khiển:
Trang 37 IC 89C51 là khối điều khiển trung tâm ,khối này chứa chương trình thực thi Có 4 port
trong đó: Port 0 và Port 2 dùng để xuất dữ liệu đồng thời qua khối đảo để hiển thị hàng cho Led ma trận, Port 1 để xuất dữ liệu nhị phân 4 bit cho hai IC 74HC154 trong khối phân kênh Port 3 em chỉ sử dụng hai chân P3.0 và P3.1 để điều khiển hai IC 74HC154
Trang 38 5.2.Khối phân kênh :
Trang 39 Khối phân kênh em dùng 2 IC 74HC154 dùng điều khiển hoạt động
của 8 led ma trận Việc dùng IC 74HC154 làm giảm bớt việc phải tốn Port ở khối CPU do IC này phân kênh 4 16 ( 2 IC sẽ được 32 đường điều khiển )
Trang 40 5.3.Khối ghép nối
Trang 41 Khối ghép nối em dùng IC ULN2803 và transistor để điều khiển hiển thị hàng, tại
một thời điểm khi điều khiển hàng thì em xuất đồng thời port 0 và port 2 ra khối ghép nối đề hiển thị cho Led ma trận
Trang 42.
Trang 43 6.Nguyên lý hoạt động:
6.1 Sơ đồ nguyên lý toàn mạch
Trang 44 6.2.Khối Led Matrix:
Loại Led ma trận sử dụng là Led 24 chân gồm 8 hàng và 8 cột Ma trận Led có 2 màu chính là xanh và đỏ, ngoài ra còn có 1 màu phụ là màu cam khi kết hợp 2 màu trên lại Mỗi điểm Led trên ma trận có cấu tạo gồm 2 Led xanh và
đỏ ghép lại theo nguyên tắc Anode chung còn Cathode để riêng
Sự kết hợp các mức logic cao/thấp thích hợp trên các hàng và cột theo một quy luật nhất định mà ta sẽ có hình ảnh như mong muốn.
Phương pháp điều khiển: Đầu tiên ta cấp tín hiệu đầu tiên ra 16 hàng của led ma trận đó là mã nhị phân tương ứng một phần chữ mà ta muốn hiển thị ra đồng lọat 16 hàng Sau đó ta quét cột 1 bằng cách điều khiển cột đầu tiên ở mức logic 0 tương ứng các Cathode của cột đầu tiên ở mức logic 0.
Kế tiếp ta cấp tín hiệu mã nhị phân của một phần chữ tiếp theo ra tất cả hàng sau đó quét cột thứ 2 bằng cách điều khiển cột 2 về mức logic 0 tất cả cột còn lại mức logic 1
Quá trình cứ diễn ra một cách tuần tự và liên tục như vậy và do hiện tượng lưu ảnh của mắt mà ta thấy được các Led dường như sáng cùng một lúc để tạo ra hình ảnh mong muốn trên Led ma trận
Các ngõ vào điều khiển cột đều sử dụng mức thấp để điều khiển.
Trang 45 6.3.Khối vi điều khiển:
Ở đây ta dùng con 89C51, có 40 chân,gồm 4 Port dùng xuất nhập dữ liệu, mỗi Port 8
chân; 2 chân nguồn 20 mass và 40 Vcc; 2 chân gắn thạch anh (chân 18,19);1 chân reset chân 9;chân 29 là chân cho phép bộ nhớ chương trình; chân 30 là chân chốt địa chỉ và cuối cùng chân 31 là chân cho phép truy xuất ngoài
Để reset chíp ta dùng nút nhấn Trong mạch,chúng ta có thể reset tự động bằng tụ
hoặc reset bằng tay bởi nút nhấn
Các Port để điều khiển:
Port 0 và Port 2 để điều khiển hàng Led ma trận
Port 1 và 2 chân P3.0, P3.1 để điều khiển IC 74HC154 quét cột