Giáo trình Vi điều khiển (Phần 1)

CPU, được xem như là “bộ não” của hệ thống máy tính, nó quản lý tất cả các

hoạt động trong hệ thống và thực hiện tất cả các thao tác trên dữ liệu. Các CPU

trên thực tế chỉ là một tập hợp của các mạch điện logic mà nó có thể thực hiện

liên tục hai thao tác: tìm nạp lệnh (fetching instruction) và thực thi lệnh

(executing instruction). CPU có khả năng hiểu và thực thi các lệnh dựa trên một

tập các mã nhị phân, mỗi mã nhị phân này (còn gọi là mã lệnh – opcode) đại

diện cho một thao tác đơn giản. Các lệnh này thường là các lệnh số học (cộng,

trừ, nhân, chia), các lệnh logic (AND, OR, NOT, ), các lệnh di chuyển hoặc

các lệnh rẽ nhánh, và được đại diện bởi một tập các mã nhị phân được gọi là tập

lệnh (Instruction Set).

Hình 1.3.1 cho ta một cái nhìn vô cùng đơn giản bên trong của một CPU.

Hình này trình bày một tập các thanh ghi (Register) có nhiệm vụ lưu trữ tạm thời

các thông tin; một đơn vị số học và logic (ALU: Arithmetic and Logic Unit)

dùng để thực hiện các thao tác trên các thông tin này; một đơn vị giải mã và điều

khiển (Instruction Decode and Control Unit) dùng để xác định thao tác cần thực

hiện và thiết lập các hoạt động cần thiết để thực hiện thao tác đó; và có thêm hai

thanh ghi IR và PC. Thanh ghi lệnh (IR: Instruction Register) dùng để lưu trữ

mã nhị phân của lệnh đang được thực thi và thanh ghi bộ đếm chương trình (PC:

Program Counter) dùng để lưu địa chỉ bộ nhớ của lệnh kế tiếp sẽ được thực thi.

pdf 270 trang kimcuc 7180
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Vi điều khiển (Phần 1)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Vi điều khiển (Phần 1)

Giáo trình Vi điều khiển (Phần 1)
1 
TRƯỜNG CAO ĐẲNG NGHỀ CÔNG NGHIỆP HÀ NỘI 
KHOA ĐIỆN – ĐIỆN TỬ 
Chủ biên: Phan Văn Vượng 
-------***--------- 
GIÁO TRÌNH 
VI ĐIỀU KHIỂN 
 ( Lưu hành nội bộ) 
HÀ NỘI 2012 
 2 
LỜI NÓI ĐẦU 
Trong chương trình đào tạo của các trường trung cấp nghề, cao đẳng nghề 
Điện tử dân dụng thực hành nghề nghề giữ một vị trí rất quan trọng: rèn luyện 
tay nghề cho học sinh. Việc dạy thực hành đòi hỏi nhiều yếu tố: vật tư thiết bị 
đầy đủ đồng thời cần một giáo trình nội bộ, mang tính khoa học và đáp ứng với 
yêu cầu thực tế. 
Nội dung của giáo trình “VI ĐIỀU KHIỂN” đã được xây dựng trên cơ sở 
kế thừa những nội dung giảng dạy của các trường, kết hợp với những nội dung 
mới nhằm đáp ứng yêu cầu nâng cao chất lượng đào tạo phục vụ sự nghiệp công 
nghiệp hóa, hiện đại hóa đất nước,. 
Giáo trình được biên soạn ngắn gọn, dễ hiểu, bổ sung nhiều kiến thức mới 
và biên soạn theo quan điểm mở, nghĩa là, đề cập những nội dung cơ bản, cốt 
yếu để tùy theo tính chất của các ngành nghề đào tạo mà nhà trường tự điều 
chỉnh cho thích hợp và không trái với quy định của chương trình khung đào tạo 
cao đẳng nghề. 
Tuy các tác giả đã có nhiều cố gắng khi biên soạn, nhưng giáo trình chắc 
chắn không tránh khỏi những thiếu sót, rất mong nhận được sự tham gia đóng 
góp ý kiến của các bạn đồng nghiệp và các chuyên gia kỹ thuật đầu ngành. 
Xin trân trọng cảm ơn! 
3 
Tuyên bố bản quyền 
Tài liệu này là loại giáo trình nội bộ dùng trong nhà trường với mục đích 
làm tài liệu giảng dạy cho giáo viên và học sinh, sinh viên nên các nguồn thông 
tin có thể được tham khảo. 
Tài liệu phải do trường Cao đẳng nghề Công nghiệp Hà Nội in ấn và phát 
hành. 
Việc sử dụng tài liệu này với mục đích thương mại hoặc khác với mục 
đích trên đều bị nghiêm cấm và bị coi là vi phạm bản quyền. 
Trường Cao đẳng nghề Công nghiệp Hà Nội xin chân thành cảm ơn các 
thông tin giúp cho nhà trường bảo vệ bản quyền của mình. 
 4 
MỤC LỤC 
BÀI 1: CÁC KHÁI NIỆM CƠ BẢN VỀ CẤU TRÚC CỦA VI ĐIỀU KHIỂN.10 
1.1. Giới thiệu chung................................................................................... 11 
1.2. Thuật ngữ. ............................................................................................ 13 
1.3. Đơn vị xử lý trung tâm (CPU: Central Processing Unit). ...................... 14 
1.4. Bộ nhớ bán dẫn: RAM và ROM. .......................................................... 16 
1.5. Các bus: Địa chỉ, dữ liệu và điều khiển. ............................................... 20 
1.6. Các thiết bị xuất/nhập........................................................................... 21 
1.6.1. Các thiết bị lưu trữ lớn. .................................................................. 21 
1.6.2. Các thiết bị giao tiếp với con người. .............................................. 22 
1.6.3. Các thiết bị điều khiển/giám sát. .................................................... 22 
1.7. So sánh vi xử lý và vi điều khiển. ......................................................... 23 
1.7.1. Cấu trúc phần cứng. ....................................................................... 23 
1.7.2. Các ứng dụng. ................................................................................ 34 
1.7.3. Các đặc trưng của tập lệnh. ............................................................ 34 
1.8. Các tiêu chuẩn cơ bản khi chọn loại vi điều khiển. ............................... 35 
CÂU HỎI ÔN TẬP. ......................................................................................... 36 
BÀI 2: CẤU TRÚC PHẦN CỨNG CỦA VI ĐIỀU KHIỂN 8051. ................... 38 
2.1. Giới thiệu chung................................................................................... 38 
2.2. Sơ đồ chân và chức năng của các chân. ................................................ 36 
2.2.1. Port 0. ............................................................................................ 38 
2.2.2. Port 1. ............................................................................................ 38 
2.2.3. Port 2. ............................................................................................ 38 
2.2.4. Port 3. ............................................................................................ 39 
2.2.5. Chân PSEN\. .................................................................................. 40 
2.2.6. Chân ALE. ..................................................................................... 40 
2.2.7. Chân EA\. ...................................................................................... 41 
2.2.8. Chân RST. ..................................................................................... 41 
2.2.9. Chân XTAL1 và XTAL2. .............................................................. 42 
2.2.10. Chân VCC và GND. ...................................................................... 43 
2.3. Tổ chức bộ nhớ bên trong. ................................................................... 43 
2.3.1. RAM đa chức năng. ....................................................................... 45 
2.3.2. RAM định địa chỉ bit. .................................................................... 46 
2.3.3. Các dãy thanh ghi. ......................................................................... 47 
5 
2.4. Các thanh ghi chức năng đặc biệt. ........................................................ 49 
2.4.1. Thanh ghi A. .................................................................................. 50 
2.4.2. Thanh ghi B. .................................................................................. 50 
2.4.3. Thanh ghi PSW. ............................................................................. 51 
2.4.4. Thanh ghi SP. ................................................................................ 58 
2.4.5. Thanh ghi DPTR. ........................................................................... 59 
2.4.6. Các thanh ghi port. ......................................................................... 60 
2.4.7. Thanh ghi PCON. .......................................................................... 63 
2.5. Tổ chức bộ nhớ bên ngoài. ................................................................... 65 
2.5.1. Kết nối và truy xuất bộ nhớ chương trình bên ngoài....................... 66 
2.5.2. Kết nối và truy xuất bộ nhớ dữ liệu bên ngoài. ............................... 67 
2.5.3. Giải mã địa chỉ. .............................................................................. 68 
2.6. Các phiên bản vi điều khiển của họ MCS-51TM. ................................... 69 
2.7. Hoạt động reset vi điều khiển. .............................................................. 72 
CÂU HỎI ÔN TẬP. ......................................................................................... 73 
BÀI 3: GIỚI THIỆU TẬP LỆNH CỦA VI ĐIỀU KHIỂN 8051. ..................... 76 
3.1. Giới thiệu chung................................................................................... 76 
3.2. Các chế độ định địa chỉ. ....................................................................... 78 
3.2.1. Định địa chỉ thanh ghi (Register Addressing). ................................ 78 
3.2.2. Định địa chỉ trực tiếp (Direct Addressing). .................................... 79 
3.2.3. Định địa chỉ gián tiếp (Indirect Addressing). .................................. 80 
3.2.4. Định địa chỉ tức thời (Immediate Addressing)................................ 80 
3.2.5. Định địa chỉ tương đối (Relative Addressing). ............................... 81 
3.2.6. Định địa chỉ tuyệt đối (Absolute Addressing). ............................... 82 
3.2.7. Định địa chỉ dài (Long Addressing). .............................................. 83 
3.2.8. Định địa chỉ chỉ số (Index Addressing). ......................................... 84 
3.3. Các nhóm lệnh. .................................................................................... 85 
3.3.1. Nhóm lệnh số học. ......................................................................... 87 
3.3.2. Nhóm lệnh logic. ......................................................................... 100 
3.3.3. Nhóm lệnh di chuyển dữ liệu. ...................................................... 112 
3.3.4. Nhóm lệnh xử lý bit ..................................................................... 124 
3.3.5. Nhóm lệnh rẽ nhánh. .................................................................... 136 
CÁC VÍ DỤ ỨNG DỤNG VỀ TẬP LỆNH. ................................................... 152 
CÂU HỎI ÔN TẬP. ....................................................................................... 164 
3.4. Điều khiển và giao tiếp với LED đơn. ................................................ 170 
 6 
3.4.1. Sơ đồ nguyên lý. .......................................................................... 171 
3.4.2. Lưu đồ giải thuật. ......................................................................... 171 
3.4.3. Chương trình điều khiển. ............................................................. 172 
3.4.4. Mô phỏng hoạt động. ................................................................... 173 
3.4.5. Lắp mạch và nạp chương trình điều khiển. ................................... 174 
3.4.6. Bài tập thực hành. ........................................................................ 176 
3.5. Điều khiển và giao tiếp với LED 7 đoạn. ........................................... 186 
3.5.1. Sơ đồ nguyên lý. .......................................................................... 187 
3.5.2. Lưu đồ giải thuật. ......................................................................... 188 
3.5.3. Chương trình điều khiển. ............................................................. 189 
3.5.4. Mô phỏng hoạt động. ................................................................... 190 
3.5.5. Lắp mạch và nạp chương trình điều khiển. ................................... 191 
3.5.6. Bài tập thực hành. ........................................................................ 193 
3.6. Điều khiển và giao tiếp với LED ma trận. .......................................... 219 
3.6.1. Sơ đồ nguyên lý. .......................................................................... 219 
3.6.2. Lưu đồ giải thuật. ......................................................................... 220 
3.6.3. Chương trình điều khiển. ............................................................. 221 
3.6.4. Mô phỏng hoạt động. ................................................................... 223 
3.6.5. Lắp mạch và nạp chương trình điều khiển. ................................... 224 
3.6.6. Bài tập thực hành. ........................................................................ 226 
3.7. Điều khiển và giao tiếp với LCD. ....................................................... 235 
3.7.1. Sơ đồ nguyên lý. .......................................................................... 235 
3.7.2. Lưu đồ giải thuật. ......................................................................... 236 
3.7.3. Chương trình điều khiển. ............................................................. 237 
3.7.4. Mô phỏng hoạt động. ................................................................... 241 
3.7.5. Lắp mạch và nạp chương trình điều khiển. ................................... 243 
3.7.6. Bài tập thực hành. ........................................................................ 244 
3.8. Điều khiển và giao tiếp với nút nhấn – bàn phím................................ 260 
3.8.1. Sơ đồ nguyên lý. .......................................................................... 261 
3.8.2. Lưu đồ giải thuật. ......................................................................... 262 
3.8.3. Chương trình điều khiển. ............................................................. 263 
3.8.4. Mô phỏng hoạt động. ................................................................... 265 
3.8.5. Lắp mạch và nạp chương trình điều khiển. ................................... 266 
3.8.6. Bài tập thực hành. ........................................................................ 268 
Bài 4: GIỚI THIỆU HOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI TRONG VI ĐIỀU 
KHIỂN 8051. ................................................................................................. 275 
7 
4.1. Giới thiệu chung................................................................................. 275 
4.2. Bộ định thời của vi điều khiển 8051. .................................................. 277 
4.2.1. Thanh ghi THx/TLx. .................................................................... 277 
4.2.2. Thanh ghi TMOD. ....................................................................... 277 
4.2.3. Thanh ghi TCON. ........................................................................ 281 
4.2.4. Các chế độ định thời. ................................................................... 282 
4.2.5. Các nguồn xung clock. ................................................................. 286 
4.3. Phương pháp lập trình điều khiển bộ định thời. .................................. 288 
4.3.1. Lập trình định thời gian. ............................................................... 288 
4.3.2. Lập trình đếm sự kiện. ................................................................. 290 
4.4. Ứng dụng định thời gian trong lập trình điều khiển thiết bị ngoại vi. . 291 
4.4.1. Sơ đồ nguyên lý. .......................................................................... 291 
4.4.2. Lưu đồ giải thuật. ......................................................................... 291 
4.4.3. Chương trình điều khiển. ............................................................. 292 
4.4.4. Mô phỏng hoạt động. ................................................................... 293 
4.4.5. Lắp mạch và nạp chương trình điều khiển. ................................... 294 
4.4.6. Bài tập thực hành. ........................................................................ 296 
4.5. Ứng dụng đếm sự kiện trong lập trình điều khiển thiết bị ngoại vi. .... 301 
4.5.1. Sơ đồ nguyên lý. .......................................................................... 301 
4.5.2. Lưu đồ giải thuật. ......................................................................... 302 
4.5.3. Chương trình điều khiển. ............................................................. 303 
4.5.4. Mô phỏng hoạt động. ................................................................... 307 
4.5.5. Lắp mạch và nạp chương trình điều khiển. ................................... 308 
4.5.6. Bài tập thực hành. ........................................................................ 309 
Bài 5: GIỚI THIỆU HOẠT ĐỘNG CỦA PORT NỐI TIẾP TRONG VI ĐIỀU 
KHIỂN 8051. ................................................................................................. 316 
5.1. Giới thiệu chung................................................................................. 316 
5.2. Port nối tiếp của vi điều khiển 8051. .................................................. 318 
5.2.1. Thanh ghi SBUF. ......................................................................... 318 
5.2. ... ng trong kỹ thuật điều khiển bàn phím. 
Yêu cầu: 
 Nắm vững tập lệnh của vi điều khiển MCS-51. 
 Biết cách viết các chương trình điều khiển bàn phím ma trận. 
 Nắm được sơ đồ và nguyên lý hoạt động của khối bàn phím ma trận 
trên mô hình thí nghiệm. 
 Nắm được nguyên lý và kỹ thuật quét phím cho các dạng bàn phím 
ma trận. 
 Biết cách viết các chương trình ứng dụng có sử dụng bàn phím ma 
trận để điều khiển các thiết bị ngoại vi khác nhau. 
3.8.1. Sơ đồ nguyên lý. 
3.8.1.1. Sơ đồ nguyên lý. 
SW43 0
C3
J223
POWER
1
2
3
VCC
GND
GND
+5V
C0
R2
R1
C1
R0
C3
C2
R3
R234 10K
1
2
3
4
5
6
7
8
9
VCC
R2
R1
R3
C1
C3
R0
C0
C2
R1
R2
C2
C1
R3
C3
C0
R0
SW37 F2
SW45 F4
C2
SW39 8
C1
SW30 1 SW33 F1
C3
C0
C2
SW44
ENTER
C0
C1
R2
R3
SW41 F3
R0
R1
R3
J222
KEYPAD
1
2
3
4
5
6
7
8
SW31 2
R2
SW34 4
SW42
ESC
R1
R0
SW36 6
SW40 9SW38 7
J224
KEY PAD
1
2
3
4
5
6
7
8
SW32 3
SW35 5
Hình 3.8.1: Sơ đồ nguyên lý khối bàn phím (Keypad). 
3.8.1.2. Sơ đồ bố trí linh kiện. 
 262 
Hình 3.8.2: Khối bàn phím (Keypad). 
BÀI THỰC HÀNH 
Viết chương trình, mô phỏng và lắp ráp mạch điều khiển bàn phím và hiển 
thị mã của phím nhấn trên 8 LED dưới dạng số BIN (LED sáng = mức 1, 
LED tắt = mức 0), không phím nào được nhấn thì mã phím là FFH 
(KEYPAD được nối với Port0, LED được nối với Port1) 
3.8.2. Lưu đồ giải thuật. 
 Bước 1: Vẽ lưu đồ giải thuật của chương trình điều khiển. 
263 
Hình 3.8.3: Lưu đồ giải thuật của chương trình. 
3.8.3. Chương trình điều khiển. 
Sử dụng phần mềm Topview Simulation để thực hiện việc viết chương trình 
và biên dịch, kiểm tra lỗi cú pháp của chương trình. 
 Bước 2: Khởi động phần mềm Topview Simulation. 
 Bước 3: Mở chức năng soạn thảo một chương trình mới và đặt tên 
tập tin chương trình là: D1.ASM 
 Bước 4: Viết chương trình điều khiển dưới đây vào máy tính. 
;*************************************************** 
;CHUONG TRINH DIEU KHIEN BAN PHIM MA TRAN 4 X 4. 
;*************************************************** 
;KET NOI: LED ->PORT1 (CO DEM DAO), KEYPAD ->PORT0. 
;*************************************************** 
 ORG 00H 
MAIN: 
 LCALL SCANKEYPAD ;QUET KEYPAD 
 JC MP1 ;KIEM TRA CO NHAN PHIM (C = 1) 
 MOV A,#0FFH ;KHONG NHAN PHIM A = FFH 
MP1: ;CO NHAN PHIM A = MA PHIM 
 MOV P1,A ;XUAT MA PHIM RA LED HIEN THI DANG SO 
BIN 
 LJMP MAIN ;QUAY LAI KIEM TRA KEYPAD TIEP 
;*************************************************** 
SCANKEYPAD: ;CTC QUET BAN PHIM MA TRAN 4 X 4, CO CHONG 
DOI. 
 PUSH 03H 
 264 
 MOV R3,#50 ;SO LAN LAP DE CHONG DOI 
BACK: 
 ACALL GETKEY ;GOI CTC QUET PHIM 
 JNC NOPRESSED ;C = 0 -> THOAT KHI KHONG CO PHIM 
NHAN. 
 DJNZ R3,BACK ;C = 1 -> CO PHIM NHAN, GIAM SO LAN LAP DE 
CHONG DOI 
NOPRESSED: 
 POP 03H 
 RET 
;*************************************************** 
GETKEY: 
 PUSH 05H 
 PUSH 06H 
 PUSH 07H 
 MOV A,#0EFH ;BAT DAU TAI COT 0 
 MOV R6,#4 ;R6 LAM BO DEM COT 
TEST: 
 MOV P0,A ;TICH CUC COT 
 MOV R7,A ;LUU ACC 
 MOV A,P0 ;DOC LAI TU PORT 1 
 ANL A,#0FH ;CACH LY CAC HANG 
 CJNE A,#0FH,KEYPRESSED ;HANG TICH CUC ? 
 MOV A,R7 ;N -> DI CHUYEN TOI 
 RL A ;COT KE TIEP 
 DJNZ R6,TEST 
 CLR C ;KHONG CO PHIM DUOC NHAN HAY NHAN 
NHIEU PHIM CUNG LUC 
 SJMP EXIT ;THOAT VOI C = 0 
KEYPRESSED: 
 MOV R7,A ;LUU TRONG R7 
 MOV A,#4 ;CHUAN BI TINH 
 CLR C ;TRONG SO CUA COT 
 SUBB A,R6 ;4 - R6 = TRONG SO 
 MOV R6,A ;LUU TRONG R6 
 MOV A,R7 ;PHUC HOI MA QUET 
 MOV R5,#4 ;DUNG R5 LAM BO DEM 
AGAIN: 
 RRC A ;QUAY CHO DEN KHI = 0 
 JNC DONE ;THUC THI XONG KHI C = 0 
 INC R6 ;CONG 4 CHO DEN KHI TIM THAY HANG TICH 
CUC 
 INC R6 
 INC R6 
265 
 INC R6 
 DJNZ R5,AGAIN 
DONE: 
 SETB C ;CO PHIM NHAN -> C = 1 
 MOV A,R6 ;MA TRONG A 
EXIT: 
 POP 07H 
 POP 06H 
 POP 05H 
 RET 
 END 
 Bước 5: Lưu chương trình trên vào máy tính. 
 Bước 6: Thực hiện biên dịch và kiểm tra lỗi chương trình. 
o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh 
khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thông thường do cú pháp của 
các lệnh không chính xác, cần phải được kiểm tra lại. Sau khi hoàn tất việc hiệu 
chỉnh sai sót thì quay trở về thực hiện từ Bước 5. 
o Nếu không có lỗi xuất hiện thì phần mềm sẽ tự động tạo tập 
tin mã máy với tên là: D1.HEX và thực hiện tiếp theo các phần nội dung dưới 
đây. 
3.8.4. Mô phỏng hoạt động. 
Sử dụng phần mềm ISIS 7 Professional (Protues 7.10) để thực hiện việc mô 
phỏng quá trình hoạt động của hệ thống vi điều khiển. 
 Bước 7: Khởi động phần mềm ISIS 7 Professional (Protues 7.10). 
 Bước 8: Vẽ sơ đồ thiết kế mạch mô phỏng điều khiển bàn phím 
như Hình 3.8.4 dưới đây. 
 266 
AD7
AD0
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD6
AD5
AD4
AD3
AD2
AD1
A
D
7
AD0
AD1
AD2
AD3
A
D
4
A
D
5
A
D
6
D
0
D0 D0
D1 D1
D2 D2
D3 D3
D4 D4
D5 D5
D6 D6
D7 D7
D
7
D
6
D
5
D
4
D
3
D
2
D
1
XTAL2
18
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR
16
P3.5/T1
15
P2.7/A15
28
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
U1
AT89C51
C1
33p
C2
33p
X1
12MHz
C3
10uF
R1
10k
+5V
D1
R2
330
+5V
D2
R3
330
+5V
D3
R4
330
+5V
D4
R5
330
+5V
D5
R6
330
+5V
D6
R7
330
+5V
D7
R8
330
+5V
D8
R9
330
+5V
1B
1
2B
2
3B
3
4B
4
5B
5
6B
6
7B
7
8B
8
1C
18
2C
17
3C
16
4C
15
5C
14
6C
13
7C
12
8C
11
COM
10
U2
ULN2803
2
3
4
5
6
7
8
9
1
RP1
10K
+
5
V
MA ÏCH Ñ I EÀU K HI EÅN BA ØN PHÍ M MA T R A ÄN 4 x 4
2
3
4
5
6
7
8
9
1
RP2
10K
7 8 9
654
2 3
#
1
0*
A
B
C
D
A
B
C
D
1 2 43
+5V
+5V
Hình 3.8.4: Sơ đồ nguyên lý mô phỏng hệ thống điều khiển. 
 Mạch mô phỏng này đã được thiết kế sẵn và lưu trong máy tính với tên tập 
tin là: D.DSN. Vì thế người học có thể tự vẽ thiết kế mạch mô phỏng hoặc lấy 
mạch mô phỏng có sẵn trong cơ sở dữ liệu của môn học. 
 Bước 9: Chọn tập tin chương trình cần mô phỏng (tập tin mã máy 
đã được tạo ra từ Bước 6) cho hệ thống vi điều khiển: D1.HEX 
 Bước 10: Thực hiện chạy mô phỏng và quan sát trực tiếp kết quả 
trên màn hình máy tính. 
o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh 
khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thông thường do giải thuật 
chương trình không chính xác hoặc do mạch mô phỏng vẽ không chính xác, cần 
phải được kiểm tra lại. Sau khi hoàn tất việc hiệu chỉnh sai sót thì quay trở về 
thực hiện từ Bước 5 (do giải thuật chương trình không chính xác) hoặc Bước 8 
(do mạch mô phỏng vẽ không chính xác). 
o Nếu không có lỗi xuất hiện thì thực hiện tiếp theo các phần 
nội dung dưới đây. 
3.8.5. Lắp mạch và nạp chương trình điều khiển. 
Sử dụng các khối "Microcontroller Unit Slot", "Keypad", "Point LED" và 
"Power Supply" có sẵn trên mô hình thực hành vi điều khiển để lắp ráp mạch 
theo thiết kế bên trên. 
267 
 Bước 11: Kết nối các khối trên mô hình như Hình 3.8.5 để tạo 
thành hệ thống mạch điều khiển như bên trên. 
o Tắt nguồn AC cấp cho mô hình thực hành. 
o Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với 
J11 (BAR LED 1) ở khối dãy LED. 
o Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều 
khiển với J15 (KEYBOARD) ở khối phím ma trận. 
o Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED với 
nguồn +5V ở khối nguồn. 
Hình 3.8.5: Sơ đồ kết nối mạch trên mô hình. 
Sử dụng phần mềm Flash Magic để thực hiện việc nạp chương trình cho vi 
điều khiển P89V51RB2 trên mô hình thực hành. 
 Bước 12: Bật nguồn AC cấp cho mô hình thực hành. 
 Bước 13: Khởi động phần mềm Flash Magic. 
 Bước 14: Kiểm tra cấu hình phần mềm (loại vi điều khiển, cổng 
COM, tốc độ truyền, chuẩn giao tiếp,...) 
 Bước 15: Chọn tập tin chương trình điều khiển (tập tin mã máy đã 
được tạo ra từ Bước 6): D1.HEX 
 Bước 16: Nạp chương trình vào vi điều khiển. 
 268 
 Bước 17: Nhấn nút "Master Reset" ở khối "Microcontroller Unit 
Slot" để chạy chương trình và quan sát trực tiếp kết quả trên mô hình thực hành. 
o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh 
khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thường do việc lắp ráp phần 
cứng không chính xác hoặc các linh kiện bị hư hỏng, cần phải được kiểm tra lại. 
Sau khi hoàn tất việc kiểm tra và hiệu chỉnh sai sót thì quay trở về thực hiện từ 
Bước 15. 
o Nếu không có lỗi xuất hiện thì hoàn tất bài thực hành. 
3.8.6. Bài tập thực hành. 
3.8.6.1. Bài tập mẫu. 
 Bài tập số 1: 
Nội dung: 
"Chương trình điều khiển bàn phím và biểu diễn các kiểu hiển thị 
trên tám LED thông qua các phím được nhấn (KEYPAD được nối với 
Port0, LED được nối với Port1): 
Nhấn phím “F1”: 8 LED sáng tắt 3 lần. 
Nhấn phím “F2”: 8 LED sáng dần và tắt dần. 
Nhấn phím “F3”: 8 LED đếm lên nhị phân. 
Nhấn phím “F4”: 8 LED sáng dồn." 
Lưu đồ giải thuật: 
269 
Chương trình điều khiển: 
;*************************************************** 
;CHUONG TRINH DIEU KHIEN LED HIEN THI CAC KIEU KHAC NHAU 
KHI 
;TA NHANCAC PHIM TREN BAN PHIM MA TRAN 4 X 4. 
;*************************************************** 
;KET NOI: LED ->PORT1 (CO DEM DAO), KEYPAD ->PORT0. 
;*************************************************** 
 ORG 00H 
MAIN: 
 MOV P1,#00H ;LED TAT 
 LCALL SCANKEYPAD ;QUET KEYPAD 
 CJNE A,#00H,NEXT1 ;KHONG PHAI PHIM F1 -> KIEM TIEP 
 LCALL CHOPTAT ;PHIM F1 DUOC NHAN -> CHAY 
CHUONG TRINH CON TUONG UNG 
NEXT1: 
 CJNE A,#04H,NEXT2 ;KHONG PHAI PHIM F2 -> KIEM TIEP 
 270 
 LCALL SANGDAN ;PHIM F2 DUOC NHAN -> CHAY 
CHUONG TRINH CON TUONG UNG 
NEXT2: 
 CJNE A,#08H,NEXT3 ;KHONG PHAI PHIM F3 -> KIEM TIEP 
 LCALL DEMLEN ;PHIM F3 DUOC NHAN -> CHAY 
CHUONG TRINH CON TUONG UNG 
NEXT3: 
 CJNE A,#0CH,NEXT4 ;KHONG PHAI PHIM F4 -> KIEM TIEP 
 LCALL SANGDON ;PHIM F4 DUOC NHAN -> CHAY 
CHUONG TRINH CON TUONG UNG 
NEXT4: 
 LJMP MAIN ;QUAY LAI KIEM TRA KEYPAD TIEP 
;*************************************************** 
SCANKEYPAD: ;CTC QUET BAN PHIM MA TRAN 4 X 4, CO CHONG 
DOI. 
 PUSH 03H 
 MOV R3,#50 ;SO LAN LAP DE CHONG DOI 
BACK: 
 ACALL GETKEY ;GOI CTC QUET PHIM 
 JNC NOPRESSED ;C = 0 -> THOAT KHI KHONG CO PHIM 
NHAN. 
 DJNZ R3,BACK ;C = 1 -> CO PHIM NHAN, GIAM SO LAN LAP DE 
CHONG DOI 
NOPRESSED: 
 POP 03H 
 RET 
;*************************************************** 
GETKEY: 
 PUSH 05H 
 PUSH 06H 
 PUSH 07H 
 MOV A,#0EFH ;BAT DAU TAI COT 0 
 MOV R6,#4 ;R6 LAM BO DEM COT 
TEST: 
 MOV P0,A ;TICH CUC COT 
 MOV R7,A ;LUU ACC 
 MOV A,P0 ;DOC LAI TU PORT 1 
 ANL A,#0FH ;CACH LY CAC HANG 
 CJNE A,#0FH,KEYPRESSED ;HANG TICH CUC ? 
 MOV A,R7 ;N -> DI CHUYEN TOI 
 RL A ;COT KE TIEP 
 DJNZ R6,TEST 
 CLR C ;KHONG CO PHIM DUOC NHAN HAY NHAN 
NHIEU PHIM CUNG LUC 
271 
 SJMP EXIT ;THOAT VOI C = 0 
KEYPRESSED: 
 MOV R7,A ;LUU TRONG R7 
 MOV A,#4 ;CHUAN BI TINH 
 CLR C ;TRONG SO CUA COT 
 SUBB A,R6 ;4 - R6 = TRONG SO 
 MOV R6,A ;LUU TRONG R6 
 MOV A,R7 ;PHUC HOI MA QUET 
 MOV R5,#4 ;DUNG R5 LAM BO DEM 
AGAIN: 
 RRC A ;QUAY CHO DEN KHI = 0 
 JNC DONE ;THUC THI XONG KHI C = 0 
 INC R6 ;CONG 4 CHO DEN KHI TIM THAY HANG TICH 
CUC 
 INC R6 
 INC R6 
 INC R6 
 DJNZ R5,AGAIN 
DONE: 
 SETB C ;CO PHIM NHAN -> C = 1 
 MOV A,R6 ;MA TRONG A 
EXIT: 
 POP 07H 
 POP 06H 
 POP 05H 
 RET 
;*************************************************** 
CHOPTAT: ;CTC DIEU KHIEN 8 LED SANG TAT 
 MOV P1,#0FFH ;LED SANG 
 LCALLDELAY500MS 
 MOV P1,#00H ;LED TAT 
 LCALL DELAY500MS 
 MOV P1,#0FFH ;LED SANG 
 LCALL DELAY500MS 
 MOV P1,#00H ;LED TAT 
 LCALL DELAY500MS 
 MOV P1,#0FFH ;LED SANG 
 LCALL DELAY500MS 
 MOV P1,#00H ;LED TAT 
 LCALL DELAY500MS 
 RET 
;*************************************************** 
DEMLEN: ;CTC DIEU KHIEN 8 LED DEM LENNHI PHAN 
 PUSH ACC 
 272 
 MOV A,#00H ;LED TAT 
DL: 
 MOV P1,A 
 LCALL DELAY500MS 
 INC A ;TANG NHI PHAN 
 CJNE A,#00H,DL ;KIEM TRA DEM LEN HOAN TAT 
 POP ACC 
 RET 
;*************************************************** 
SANGDAN: ;CTC DIEU KHIEN 8 LED SANG DAN VA TAT DAN 
 PUSH ACC 
 MOV A,#00H ;KHOI DONG GIA TRI BAN DAU 
SD1: 
 SETB C ;C=1 
 MOV P1,A ;HIEN THI 
 LCALLDELAY500MS 
 RLC A ;DICH BIT 1 SANG TRAI KEM C, SANG DAN 
 JNC SD1 ;CHUA SANGHET THI LAM TIEP 
SD2: 
 CLR C ;C=0 
 MOV P1,A ;HIEN THI 
 LCALLDELAY500MS 
 RLC A ;DICH BIT 1 SANG TRAI KEM C, TAT DAN 
 JC SD2 ;CHUA TAT HET THI LAM TIEP 
 POP ACC 
 RET 
;*************************************************** 
SANGDON: 
 PUSH ACC 
 MOV R0,#08H ;LUU SO LAN DICH BIT 
 MOV R1,#00H ;TRANG THAI LED KHI DONLAN DAU 
TIEN 
LAP2: 
 MOV R2,00H 
 MOV R3,#01H 
LAP1: 
 MOV A,R3 
 ORL A,R1 
 MOV P1,A ;HIEN THI 
 LCALL DELAY500MS 
 MOV A,R3 ;DON LED 
 RL A 
 MOV R3,A 
 DJNZ R2,LAP1 ;CHUA DON XONG? QUAY LAI 
273 
 DEC R0 ;GIAM SO LANDON LED 
 SETB C ;THAY DOI TRANG THAI LED CHO LANDON 
TIEP THEO 
 MOV A,R1 
 RRC A 
 MOV R1,A 
 CJNE R0,#00H,LAP2 ;CHUA HOAN TAT CHU TRINH? QUAY 
LẠI 
 POP ACC 
 RET 
;*************************************************** 
DELAY500MS: ;CTC TAO THOI GIAN TRE 500MS 
 PUSH 00H 
 MOV R0,#100 
 MOV TMOD,#01H 
DEL1: 
 MOV TH0,#HIGH(-5000) 
 MOV TL0,#LOW(-5000) 
 SETB TR0 
 JNB TF0,$ 
 CLR TR0 
 CLR TF0 
 DJNZ R0,DEL1 
 POP 00H 
 RET 
 END 
3.8.6.2. Bài tập ứng dụng. 
 Bài 1: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển 
thị của chuỗi ký tự “DIEN-TU” trên tám LED 7 đoạn. Tự lựa chọn phương pháp 
kết nối bàn phím và LED 7 đoạn. 
o Nhấn phím “ENTER”: hiển thị chuỗi. 
o Nhấn phím “ESC”: không hiển thị chuỗi. 
o Nhấn phím “1”: sáng tắt chuỗi liên tục. 
o Nhấn phím “2”: dịch chuyển chuỗi từ phải sang trái liên tục. 
o Nhấn phím “3”: dịch chuyển chuỗi từ trái sang phải liên tục. 
 Bài 2: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển 
thị của một số chuỗi ký tự trên tám LED 7 đoạn. Tự lựa chọn phương pháp kết 
nối bàn phím và LED 7 đoạn. 
 274 
o Nhấn phím “ESC”: không hiển thị chuỗi. 
o Nhấn phím “1”: hiển thị chuỗi “COCACOLA”. 
o Nhấn phím “2”: hiển thị chuỗi “PEPSI”. 
o Nhấn phím “3”: hiển thị chuỗi “FANTA”. 
o Nhấn phím “4”: hiển thị chuỗi “TRIBECO”. 
o Nhấn phím “5”: hiển thị chuỗi “NUOCSUOI”. 
 Bài 3: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển 
thị của LED ma trận. Tự lựa chọn phương pháp kết nối bàn phím và LED ma 
trận. 
o Nhấn phím “ESC”: không hiển thị. 
o Nhấn phím “1”: hiển thị đếm BCD từ 0 lên 9 trên LED ma 
trận. 
o Nhấn phím “2”: hiển thị đếm BCD từ 9 xuống 0 trên LED 
ma trận. 
o Nhấn phím “3”: hiển thị các ký tự từ A đến Z trên LED ma 
trận. 
o Nhấn phím “4”: hiển thị các ký tự từ Z đến A trên LED ma 
trận. 
 Bài 4: Hãy viết chương trình điều khiển và biểu diễn các kiểu hiển 
thị của chuỗi ký tự “DAI HOC CONG NGHIEP TP HO CHI MINH” trên LED 
ma trận. Tự lựa chọn phương pháp kết nối bàn phím và LED ma trận. 
o Nhấn phím “ESC”: không hiển thị chuỗi. 
o Nhấn phím “1”: dịch chuyển chuỗi từ phải sang trái liên tục. 
o Nhấn phím “2”: dịch chuyển chuỗi từ trái sang phải liên tục. 

File đính kèm:

  • pdfgiao_trinh_vi_dieu_khien_phan_1.pdf