TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
BBIIÊÊNN SSOOẠẠNN:: PPHHẠẠMM QQUUAANNGG TTRRÍÍ
TP. HỒ CHÍ MINH 11 - 2005
MỤC LỤC CHƯƠNG 1: CẤU HÌNH CỦA MÔ HÌNH THÍ NGHIỆM VI ĐIỀU KHIỂN. ...................................................1 1.1 Giới thiệu: ..............................................................................................................................................................1 1.2 Cấu hình của mô hình thí nghiệm vi điều khiển: ............................................................................................. .....2
1.2.1 Khối lập trình vi điều khiển: .....................................................................................................................2 1.2.2 Khối vi điều khiển:....................................................................................................................................4 1.2.3 Khối LED điểm:........................................................................................................................................6 1.2.4 Khối LED 7 đoạn: .....................................................................................................................................7 1.2.5 Khối LED ma trận:..................................................................................................................................11 1.2.6 Khối LCD: ..............................................................................................................................................13 1.2.7 Khối công tắc: .........................................................................................................................................14 1.2.8 Khối nút nhấn:.........................................................................................................................................15 1.2.9 Khối bàn phím:........................................................................................................................................16 1.2.10 Khối relay: ..............................................................................................................................................17 1.2.11 Khối tạo xung:.........................................................................................................................................18 1.2.12 Khối tạo áp thay đổi:...............................................................................................................................19 1.2.13 Khối điều khiển động cơ bước:...............................................................................................................20 1.2.14 Khối Serial EEPROM:............................................................................................................................21 1.2.15 Khối cảm biến nhiệt: ...............................................................................................................................22 1.2.16 Khối đệm dữ liệu: ...................................................................................................................................24 1.2.17 Khối giải mã:...........................................................................................................................................26 1.2.18 Khối ADC: ..............................................................................................................................................28 1.2.19 Khối DAC: ..............................................................................................................................................29 1.2.20 Khối RTC:...............................................................................................................................................31 1.2.21 Khối thanh ghi dịch:................................................................................................................................32 1.2.22 Khối mở rộng port I/O: ...........................................................................................................................34 1.2.23 Khối giao tiếp PC:...................................................................................................................................37 1.2.24 Khối mở rộng bus: ..................................................................................................................................39
CHƯƠNG 2: HƯỚNG DẪN SỬ DỤNG PHẦN MỀM MCU PROGRAM LOADER. .....................................40 2.1 Giới thiệu: ............................................................................................................................................................40 2.2 Hướng dẫn sử dụng phần mềm MCU Program Loader: ......................................................................................41 CHƯƠNG 3: HỆ THỐNG CÁC BÀI THỰC HÀNH VI ĐIỀU KHIỂN.............................................................47
Một số lưu ý khi viết chương trình và kết nối mạch ............................................................................................47
A. Hệ thống điều khiển LED đơn....................................................................................................................48 • Mục đích: ................................................................................................................................................48 • Yêu cầu: ..................................................................................................................................................48 • Bài 1: Chương trình điều khiển 8 LED được nối với Port0 sáng tắt. .....................................................48 • Bài 2: Chương trình điều khiển đếm lên nhị phân 8 bit và hiển thị trên 8 LED được nối với Port0......51 • Bài 3: Chương trình điều khiển 8 LED được nối với Port0 sáng dần và tắt hết. ...................................52 • Bài 4: Chương trình điều khiển 8 LED được nối với Port0 sáng đuổi. ..................................................54 • Bài 5: Chương trình điều khiển 8 LED được nối với Port0 sáng dồn. ...................................................56 • Bài 6: Chương trình điều khiển 8 LED được nối với Port0 hoạt động bằng cách tổng hợp các phương
pháp điều khiển đã thực tập ....................................................................................................................58 • Bài 7: Chương trình con điều khiển tạo thời gian trễ 200µs, 20ms, 2s sử dụng Timer..........................60
B. Hệ thống điều khiển LED 7 đoạn. ..............................................................................................................62 • Mục đích: ................................................................................................................................................62 • Yêu cầu: ..................................................................................................................................................62
• Bộ hiển thị LED7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu BCD. 62 o Bài 1: Chương trình điều khiển hiển thị số 7 trên LED3. ................................................................62 o Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED3...................................64 o Bài 3: Chương trình điều khiển hiển thị số 35 trên hai LED. ..........................................................66 o Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED............................67 o Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED. .....................................................68 o Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 đến 9999 trên bốn LED..................69
• Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn. 70 o Bài 1: Chương trình điều khiển hiển thị số 7 trên LED3. ................................................................70 o Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED3...................................71 o Bài 3: Chương trình điều khiển hiển thị số 35 trên hai LED. ..........................................................73 o Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED............................74 o Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED. .....................................................75 o Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 đến 9999 trên bốn LED..................76
• Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải đa hợp bên ngoài). .....................................................................................................78 o Bài 1: Chương trình điều khiển hiển thị số 1 trên LED7. ................................................................78 o Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7...................................79 o Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED. ..........................................................81 o Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED............................84 o Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED. .....................................................86 o Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 đến 9999 trên bốn LED..................87 o Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED. .............................................89 o Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED...91
• Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch giải đa hợp bên ngoài). .....................................................................................................93 o Bài 1: Chương trình điều khiển hiển thị số 1 trên LED7. ................................................................93 o Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7...................................94 o Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED. ..........................................................96 o Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED............................99 o Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED. ...................................................101 o Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 đến 9999 trên bốn LED................102 o Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED. ...........................................105 o Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED.107
• Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa hợp bên ngoài). ................................................................................................................110 o Bài 1: Chương trình điều khiển hiển thị số 1 trên LED7. ..............................................................110 o Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7.................................111 o Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED. ........................................................113 o Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED..........................116 o Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED. ...................................................118 o Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 đến 9999 trên bốn LED................121 o Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED. ...........................................122 o Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED.123
• Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa hợp bên ngoài). ............................................................................................................125 o Bài 1: Chương trình điều khiển hiển thị số 1 trên LED7. ..............................................................125 o Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7.................................126 o Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED. ........................................................128 o Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED..........................131 o Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED. ...................................................133 o Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 đến 9999 trên bốn LED................134 o Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED. ...........................................137 o Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED.139
• Ứng dụng điều khiển LED 7 đoạn tổng hợp. ........................................................................................142 o Bài 1: Chương trình điều khiển hiển thị đếm GIỜ – PHÚT – GIÂY trên sáu LED. ......................142 o Bài 2: Chương trình điều khiển hiển thị chuỗi ký tự “-HA-NOI-“ trên tám LED..........................145 o Bài 3: Chương trình điều khiển hiển thị và chớp tắt chuỗi ký tự “ -HA-NOI- “ trên tám LED.....147 o Bài 4: Chương trình điều khiển hiển thị lần lượt các chuỗi ký tự “-HA-NOI“, “-DA-LAT-“, “-
SAIGON-“ trên tám LED. Mỗi chuỗi hiển thị cách nhau 1 giây....................................................149 o Bài 5: Chương trình điều khiển hiển thị và dịch chuyển chuỗi ký tự “-HA-NOI-SAI-GON-“ trên
tám LED từ phải sang trái..............................................................................................................151
C. Hệ thống điều khiển LED ma trận...........................................................................................................153 • Mục đích: ..............................................................................................................................................153
• Yêu cầu: ................................................................................................................................................153 • Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận...........................................154 • Bài 2: Chương trình điều khiển hiển thị chữ S màu đỏ trên LED ma trận sáng tắt .............................157 • Bài 3: Chương trình điều khiển hiển thị lần lượt các chữ A, B, C, a, b, c màu đỏ trên LED ma trận........
...............................................................................................................................................................159 • Bài 4: Chương trình điều khiển hiển thị chuỗi ký tự “WELLCOME” màu đỏ trên LED ma trận dịch
chuyển từ phải sang trái........................................................................................................................161
D. Hệ thống điều khiển bàn phím. ................................................................................................................163 • Mục đích: ..............................................................................................................................................163 • Yêu cầu: ................................................................................................................................................163 • Bài 1: Chương trình đ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
...............................................................................................................................................................164 • Bài 2: 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.....................................................................................................................................166
E. Hệ thống điều khiển LCD. ........................................................................................................................171 • Mục đích: ..............................................................................................................................................171 • Yêu cầu: ................................................................................................................................................171 • Bài 1: Chương trình điều khiển LCD hiển thị hai dòng chữ “MICRO-CONTROLLER” và
“DESIGNED BY: PQT.” đứng yên trên hai dòng của màn hình LCD.................................................172 • Bài 2: Chương trình điều khiển LCD hiển thị hai dòng chữ “WELLCOME TO MICROCONTROLLER
SYSTEM – 51” và “DESIGNED BY: PQT.” trên hai dòng của màn hình LCD với yêu cầu: dòng chữ thứ nhất sẽ dịch chuyển liên tục từ phải sang trái, dòng chữ thứ hai đứng yên. ..................................174
• Bài 3: Chương trình điều khiển LCD hiển thị hai dòng chữ “PULSE = ” và “DESIGNED BY PHAM QUANG TRI – ELECTRIC TRAINING CENTER - HO CHI MINH UNIVERSITY OF INDUSTRY” trên hai dòng của màn hình LCD với yêu cầu: số lượng xung đếm được (00 – 99) tại chân P3.0 sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “PULSE =”, dòng chữ thứ hai sẽ dịch chuyển từ phải sang trái. Xung được tạo ra bằng cách nhấn nút nhấn KEY0. .....................................................177
F. Hệ thống điều khiển nút nhấn. .................................................................................................................181 • Mục đích: ..............................................................................................................................................181 • Yêu cầu: ................................................................................................................................................181 • Bài 1: Chương trình điều khiển nút nhấn, khi ta nhấn nút nào trong 8 nút thì LED tương ứng sẽ sáng
lên và ngược lại.....................................................................................................................................182 • Bài 2: Chương trình điều khiển nút nhấn, khi ta nhấn nút KEY0 thì 8 LED sẽ chớp tắt với tần số 5 Hz
và ngược lại khi ta nhả nút KEY0 thì 8 LED sẽ chớp tắt với tần số 20 Hz ...........................................184
G. Hệ thống điều khiển công tắc....................................................................................................................186 • Mục đích: ..............................................................................................................................................186 • Yêu cầu: ................................................................................................................................................186 • Bài tập: Chương trình điều khiển công tắc và hiển thị lên tám LED mức logic hiện tại (LED sáng =
mức cao, LED tắt = mức thấp) của tám công tắc gạt...........................................................................187
H. Hệ thống điều khiển relay. ........................................................................................................................189 • Mục đích: ..............................................................................................................................................189 • Yêu cầu: ................................................................................................................................................189 • Bài tập: Chương trình điều khiển RELAY1 và RELAY2 đóng ngắt tuần tự và liên tục. Thời gian giữa
hai lần đóng ngắt là 1s..........................................................................................................................190
I. Hệ thống điều khiển motor bước..............................................................................................................192 • Mục đích: ..............................................................................................................................................192 • Yêu cầu: ................................................................................................................................................192 • Bài 1: Chương trình điều khiển STEPPER1 quay cùng chiều kim đồng hồ .........................................193 • Bài 2: Chương trình điều khiển STEPPER1 quay cùng chiều kim đồng hồ một vòng rồi dừng lại............
...............................................................................................................................................................195 • Bài 3: Chương trình điều khiển STEPPER1 quay bằng cách nhấn nút KEY0: quay thuận, KEY1: quay
ngược, KEY2: dừng...............................................................................................................................196
J. Hệ thống điều khiển ngắt (Interrupt). .....................................................................................................198 • Mục đích: ..............................................................................................................................................198 • Yêu cầu: ................................................................................................................................................198
• Bài 1: Chương trình điều khiển t?o sóng vuông tuần hoàn có tần số 10 Hz (sử dụng ngắt Timer) tại chân P0.0 và hiển thị mức logic tại chân này lên LED0.......................................................................199
• Bài 2: Chương trình điều khiển đếm số xung t?i chân INT0 (sử dụng ngắt ngoài) và hiển thị số xung này (tối đa là 255 lần) lên ba LED 7 đoạn ...........................................................................................200
K. Hệ thống điều khiển Timer/Counter........................................................................................................203 • Mục đích: ..............................................................................................................................................203 • Yêu cầu: ................................................................................................................................................203 • Bài 1: Chương trình điều khiển đếm liên tục số lượng xung (0000 – 9999) được đưa vào chân T1 của vi
điều khiển và hiển thị số lượng xung này lên các LED 7 đoạn.............................................................204 • Bài 2: Chương trình điều khiển đo tần số của xung (0000 – 9999, đơn vị là Hz) được đưa vào chân T1
của vi điều khiển và hiển thị tần số của xung này lên các LED 7 đoạn................................................207 • Bài 3: Chương trình điều khiển đo độ rộng của xung (đơn vị là ms) được đưa vào chân INT0 của vi
điều khiển và hiển thị độ rộng của xung này lên các LED 7 đoạn........................................................210
L. Hệ thống điều khiển thu phát dữ liệu dạng nối tiếp. ..............................................................................212 • Mục đích: ..............................................................................................................................................212 • Yêu cầu: ................................................................................................................................................212 • Bài 1: Chương trình điều khiển (ứng dụng mở rộng port xuất) xuất liên tục các giá trị 00H, 01H, 03H,
07H, 0FH, 1FH, 3FH, 7FH và FFH ra 8 LED thông qua port nối tiếp và sử dụng vi mạch 4094, mỗi lần xuất cách nhau 1s............................................................................................................................213
• Bài 2: Chương trình điều khiển (ứng dụng mở rộng port nhập) thực hiện liên tục việc nhập dữ liệu từ 8 công tắc thông qua port nối tiếp và sử dụng vi mạch 74165, dữ liệu nhập vào này sẽ được xuất ra 8 LED. ......................................................................................................................................................215
• Bài 3: Chương trình điều khiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữ liệu gồm 9 bytes (00H, 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH). Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (chân TXD) rồi thu vào port nối tiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H. Việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte. Dữ liệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội................................................................................................................................................................216
M. Hệ thống điều khiển port I/O (điều khiển xuất/nhập qua các thiết bị ngoại vi). ....................................... • Mục đích: .................................................................................................................................................... • Yêu cầu: ...................................................................................................................................................... • Bài 1: Chương trình điều khiển Port I/O, làm cho 8 LED đếm lên nhị phân 8 bit. Sử dụng cơ chế bộ
nhớ ngoài. ................................................................................................................................................... • Bài 2: Chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các công tắc gạt SW0 – SW7 và
hiển thị mức logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED. Sử dụng cơ chế bộ nhớ ngoài......................................................................................................................
• Bài 3: Chương trình điều khiển Port I/O, làm cho 8 LED đếm lên nhị phân 8 bit. Sử dụng cơ chế bộ nhớ ngoài. ...................................................................................................................................................
• Bài 4: Chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các công tắc gạt SW0 – SW7 và hiển thị mức logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED. Sử dụng cơ chế bộ nhớ ngoài......................................................................................................................
N. Hệ thống điều khiển ADC. .............................................................................................................................. • Mục đích: .................................................................................................................................................... • Yêu cầu: ...................................................................................................................................................... • Bài 1: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào
(kênh IN0) lên hai LED 7 đoạn (LED1 và LED0; dưới dạng số HEX từ 00H -> FFH). Sử dụng cơ chế bộ nhớ ngoài. ..............................................................................................................................................
• Bài 2: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh IN0) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số DEC từ 0 -> 255). Sử dụng cơ chế bộ nhớ ngoài.................................................................................................................................
• Bài 3: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị điện áp của kênh ngõ vào (kênh IN0) lên bốn LED 7 đoạn (LED3: hàng đơn vị; LED2, LED1 và LED0: ba số phần thập phân). Sử dụng cơ chế bộ nhớ ngoài...........................................................................................................
• Bài 3: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào (kênh IN0 và IN1) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài...........................................................................................................
O. Hệ thống điều khiển DAC. ..............................................................................................................................
• Mục đích: .................................................................................................................................................... • Yêu cầu: ...................................................................................................................................................... • Bài 1: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi giá trị lưu
trong thanh ghi R0 thành điện áp tương tự. Giá trị trong thanh ghi R0 thay đổi liên tục 00H, 40H, 80H, C0H và FFH, mỗi lần cách nhau 2 giây. ....................................................................................................
• Bài 2: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi giá trị lưu trong thanh ghi R0 thành điện áp tương tự. Giá trị trong thanh ghi R0 thay đổi liên tục từ 00H -> FFH, mỗi lần cách nhau 2 giây và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255). .................................................................................................................
• Bài 3: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện tạo sóng sin có tần số bất kỳ tại ngõ ra. .........................................................................................................................................
P. Hệ thống điều khiển đo nhiệt độ..................................................................................................................... • Mục đích: .................................................................................................................................................... • Yêu cầu: ...................................................................................................................................................... • Bài tập: Chương trình đo nhiệt độ và hiển thị giá trị lên bốn LED 7 đoạn (một LED hiển thị phần thập
phân). ..........................................................................................................................................................
Q. Hệ thống điều khiển motor DC. ..................................................................................................................... • Mục đích: .................................................................................................................................................... • Yêu cầu: ...................................................................................................................................................... • Bài 1:
R. Hệ thống điều khiển Serial EEPROM. .......................................................................................................... • Mục đích: .................................................................................................................................................... • Yêu cầu: ...................................................................................................................................................... • Bài 1:
S. Hệ thống điều khiển RTC. .............................................................................................................................. • Mục đích: .................................................................................................................................................... • Yêu cầu: ...................................................................................................................................................... • Bài 1:
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 8 Biên soạn: Phạm Quang Trí
1.1 Giới thiệu:
Sau khi đã được học, nghiên cứu và tìm hiểu về vi điều khiển ở phần lý thuyết. Chúng ta có thể bắt đầu tiến hành thực hiện các bài thí nghiệm đối với vi điều khiển nhằm mục đích giúp chúng ta hiểu một cách tường tận hơn về những gì mà ta đã được học trong phần lý thuyết cũng như cách thức vận dụng nó vào trong thực tế.
Trong thực tế, các ứng dụng của vi điều khiển thì rất đa dạng và phong phú. Từ những ứng dụng đơn giản chỉ
có vài thiết bị ngoại vi cho đến những hệ thống vi điều khiển phức tạp. Tuy nhiên, trong phạm vi có giới hạn của giáo trình và nhằm mục đích phục vụ cho công việc học tập và tự nghiên cứu của sinh viên. Cho nên mô hình thí nghiệm vi điều khiển này được thiết kế với tương đối đầy đủ các yêu cầu phần cứng và có rất nhiều chương trình điều khiển mẫu cũng như các bài tập thực hành từ đơn giản đến phức tạp có thể giúp cho sinh viên thực hành, thí nghiệm và tự nghiên cứu, tự học môn học này.
Mô hình thí nghiệm vi điều khiển này hỗ trợ cho việc thí nghiệm:
• Thí nghiệm các loại vi điều khiển như: 89C1051, 89C2051, 89C4051, 89C51, 89LV51, 89C52, 89LV52, 89C55, 89LV55, 89C55WD, 89S51, 89LS51, 89S52, 89LS52, 89S53, 89LS53, 89S8252, 89LS8252.
• Thí nghiệm các thiết bị ngoại vi như: LED điểm, LED ma trận, LED 7 đoạn, LCD, ADC, DAC, công tắc, nút nhấn, bàn phím, relay, bộ nhớ nối tiếp, xuất nhập dữ liệu nối tiếp và song song, tạo xung, cảm biến nhiệt, đồng hồ thời gian thực (RTC), …
• Thí nghiệm các chuẩn giao tiếp như: RS232, LPT, USB, PS2. Phần mềm sử dụng cho mô hình thí nghiệm vi điều khiển này là phần mềm mô phỏng Topview và MCU
Program Loader. Phần mềm mô phỏng Topview cho phép bạn mô phỏng và chạy thử các chương trình điều khiển trên máy tính với một số module thiết bị ngoại vi có sẵn tương tự như trên mô hình thí nghiệm vi điều khiển ngoài thực tế, phần mềm này còn cho bạn khả năng soạn thảo và biên dịch chương trình theo ngôn ngữ Assembler. Phần mềm MCU Program Loader cho phép bạn khả năng nạp chương trình cho các loại vi điều khiển đã nêu trên từ máy tính. Các bạn có thể tìm hiểu thêm về hai phần mềm này trong các phần sau của giáo trình (phần mềm mô phỏng Topview xem trong tài liệu “Hướng dẫn sử dụng phần mềm mô phỏng MCS-51 Topview Simulator”).
Các chương tiếp theo sẽ trình bày chi tiết hơn về cấu hình của mô hình thí nghiệm vi điều khiển, cách thức sử
dụng phần mềm và cung cấp các bài thí nghiệm thực hành mẫu cũng như các bài tập mở rộng có thể phục vụ rất tốt cho việc tự học của các bạn.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 9 Biên soạn: Phạm Quang Trí
1.2 Cấu hình của mô hình thí nghiệm vi điều khiển:
1.2.1 Khối lập trình vi điều khiển:
• Sơ đồ nguyên lý:
D0
R1111K2
A12
P1.1
VPP
D395V6
C481000u
VDD
D5
R1173K3
D1
D3
R109100/2W
D4
VCC
VPC 5V/6.5V
A9
P1.7
D42
1N4007
P1.7
R10810K
A12
P1.2
VPP 5V/6.5V
D6
R1204K7
D355V6
D4
Y311.0592MHz
P1.7
A5 D5
P1.0
A13
SW18POWER SW
VDD
U35 7457323456789
111
1918171615141312
1020
D0D1D2D3D4D5D6D7
LEOE
Q0Q1Q2Q3Q4Q5Q6Q7
GNDVCC
Q23C1815
VPC ON/OFF
VCC
D2
VCC
D2
A8
VCC
P1.6
VCC
P1.2
VPCA9
A13
C41104
D6
R1214K7
D36
1N4007
D1
A10
R12222/2W
15. KHOÁI LAÄP TRÌNH VI ÑIEÀU KHIEÅN
A7
D4P1.6
A6
R116100/2W
D3D3
VCC
D3
R11510K
D431N4007
R1231K2
D7
D37
1N4007
U36 SLAVE 40PIN
2930
4020
31
19
18
9
3938373635343332
12345678
212223242526
2728
10
11121314151617
PSENALE
VCCGND
EA
X1
X2
RST
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13
P2.6/A14P2.7/A15
P3.0/RXD
P3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1
P3.6/WRP3.7/RD
VCC
Q19C1815
P1.3
VCC
C4433p
VPP
A4
P1.6
Q24C1815
R1121K2
A14
A8
P1.3
C50100u
D4
P1.5
A11
C51104
C49100u
A3
C45104
D1
D346V7
D0A1
P3.7
R1103K3
D6
R1181K2
VPP ON/OFF
VCC
VCC
P1.1
VCC
VPP
D2
R107 10K
1 2 3 4 5 6 7 8 9
A2
P1.5
A10
P1.2
D7
D3813V
U33MAX232
1 3
4 5
16
15
26
12
9
11
10
13
8
14
7
C1+
C1-
C2+
C2-
VCC
GND
V+
V-
R1OUT
R2OUT
T1IN
T2IN
R1IN
R2IN
T1OUT
T2OUT
D1
R1134K7
C3510u
D0
D2
P1.0
VCC
A0
P1.4
VPC
D5
P1.5
C46104
VCC
A14
P3.7Q20C1815
VCCVDD
D7D6
P1.1
U34 89C52
2930
4020
31
19
18
9
3938373635343332
12345678
2122232425262728
10111213141516
17
PSENALE
VCCGND
EA
X1
X2
RST
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WR
P3.7/RD
VCC
C4333p
C4210u VPC
C38104
P3
TO PC
594837261
A11
C37104
Q21C1815
P1.4
R1191K2
J90ADC 16V
1
2
C47104
C4010u
D7
R1144K7
D40
1N4007
D0
C3610u
U37 SLAVE 20PIN1213141516171819
45
20101
236789
11
P1.0/AIN0P1.1/AIN1P1.2P1.3P1.4P1.5P1.6P1.7
X2X1
VCCGNDRST/VPP
P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1
P3.7
D41LED
C3910u
U38 78051 3
2
VIN VOUT
GND
D5
P1.4
Q22C1815
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 10 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Các thành phần chính của bộ lập trình là port nối tiếp, nguồn cung cấp và bộ vi điều khiển trung tâm. Dữ liệu
nối tiếp được gửi và nhận từ cổng COM 9 chân và chuyển đổi từ mức logic TTL sang mức tín hiệu RS232 hoặc chuyển đổi từ mức tín hiệu RS232 sang mức logic TTL bằng vi mạch MAX232. Một sợi cáp port nối tiếp được dùng để nối cổng COM của khối lập trình vi điều khiển với cổng COM của máy tính (cổng RS232).
Nguồn cung cấp 16 VDC được cung cấp cho khối lập trình thông qua đầu nối J90A và công tắc SW18
(POWER SW). Các diode D36, D37, D40, D42 làm nhiệm vụ chỉnh lưu điện áp và chống hiện tượng sai cực tính nguồn khi ta dùng nguồn DC cung cấp cho khối (Lưu ý: ta có thể sử dụng nguồn DC 16V hoặc AC 12V để cung cấp cho khối). Điện áp này là điện áp chưa được ổn áp và được gọi là VDD. VDD được dùng để tạo ra ba mức điện áp khác nhau là VCC, VPP và VPC. Điện áp VCC có mức điện áp là 5V được tạo ra từ vi mạch ổn áp LM7805 để cung cấp cho bộ vi điều khiển trung tâm U34 hoạt động. Điện áp VPP có mức điện áp là 0V, 5V hoặc 12V theo sự điều khiển của bộ vi điều khiển trung tâm. Điện áp VPC có mức điện áp là 0V, 5V hoặc 6.5V theo sự điều khiển của bộ vi điều khiển trung tâm. Các loại điện áp khác nhau này được yêu cầu trong suốt quá trình lập trình cho các chip vi điều khiển.
Trung tâm của khối lập trình này là bộ vi điều khiển trung tâm U34 và phần mềm điều khiển của nó. Phần mềm
này có khả năng nhận dạng chip vi điều khiển được đưa vào mạch thông qua một trong hai socket ZIF là SLAVE 40 PIN và SLAVE 20 PIN. Các thông tin này được sang phần mềm MCU Program Loader trên máy tính để xác lập các thông số hoạt động điều khiển. Khi một tập tin chương trình được gửi đi từ máy tính, các thông tin này sẽ được bộ vi điều khiển trung tâm tải đến chip vi điều khiển cần lập trình bằng các tín hiệu địa chỉ, dữ liệu và điều khiển tương thích. Sau khi việc lập trình đã hoàn tất thì các dữ liệu đã được ghi vào này sẽ được gửi ngược trở lại máy tính để kiểm tra lỗi trong quá trình nạp chip, từ đó đưa ra thông báo quá trình lập trình thành công hay có lỗi.
Bạn cần phải chú ý đến một điểm rất quan trọng là luôn luôn phải tắt nguồn cung cấp cho khối lập trình vi
điều khiển trước khi tiến hành tháo/gắn chip vi điều khiển vào socket nhằm tránh gây hỏng chip vi điều khiển này.
• Ứng dụng:
Khối lập trình vi điều khiển này kết hợp với phần mềm MCU Program Loader trên máy tính có khả năng lập
trình cho các loại chip sau:
o Loại chip 40 chân (được gắn vào socket SLAVE 40 PIN): AT89C51, AT89LV51, AT89C52, AT89LV52, AT89C55, AT89LV55, AT89C55WD, AT89S51, AT89LS51, AT89S52, AT89LS52, AT89S53, AT89LS53, AT89S8252, AT89LS8252.
o Loại chip 20 chân (được gắn vào socket SLAVE 20 PIN): AT89C1051, AT89C2051, AT89C4051.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 11 Biên soạn: Phạm Quang Trí
1.2.2 Khối vi điều khiển:
• Sơ đồ nguyên lý:
U24B 7439313
12
111098
7
CLK
CLR
QAQBQCQDG
ND
A14
D5
COM
P1.6
DATA BUS
J39
PORT 2
12345678
C20104
12 MHz
P2.7
CLK12
T0
C1910u
P0.7
P1.0
P3.5
VCC
VCC
D5
LOW ADDRESS BUS9. KHOÁI VI ÑIEÀU KHIEÅN
D4
C2333p
D2
8000H - 9FFFH
C13104
U24A 743931
2
3456
14
CLK
CLR
QAQBQCQD
VCC
R99100
0000H - 1FFFH
P3.3
P1.3
D2
J36
INT/EXT
123
Y112MHz
P3.0
T1
A1P1.2
P1.0
D4C2210u
A1
6000H - 7FFFH
A3P3.3
P3.2
A13
P1.3P1.4
VCC
D1A2
RST
A10
A7
C17104
VCC
WR
P1.2
P1.7
P0.5
J38
PORT 1
12345678
VCC
A9
P1.5
RD
C16104
SW33POWER SW
D0
P1.7
D4
D6
D241N4148
U19 SOCKET 40PIN
2930
402031
1918
9
3938373635343332
12345678
2122232425262728
1011121314151617
PSENALE
VCCGNDEA
X1X2
RST
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
P1.0/T2P1.1/T2EXP1.2/ECIP1.3/CEX0P1.4/CEX1P1.5/CEX2P1.6/CEX3P1.7/CEX4
P2.0/A8P2.1/A9
P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD
188 KHz
VCC
A12
D6
J37
PORT 0
12345678
R1351K2
RXD
A3P0.2
D1
P0.6
WR
RD
P1.6
J44
PORT 3
12345678
A15
P1.1
T0
RXD
A14
P2.2
P3.5WR
A5
D7
P1.6
TXD
A11
P2.3
1.5 MHz
INT1
D231N4148
R1008K2
D46
LED
A9
P3.6
P3.2
P1.4
VCC
INT
P2.6
D7
P1.5
VCC
T1
INT0
A13
A6
U25 SOCKET 20PIN1213141516171819
45
20101
236789
11
P1.0/AIN0P1.1/AIN1P1.2P1.3P1.4P1.5P1.6P1.7
X2X1
VCCGNDRST/VPP
P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1
P3.7
VCC
D0
TXD
P1.2
C14104
HIGH ADDRESS BUS
P2.1
P3.7RD
P1.5
VCC
D6
D5
P2.5
INT1
J41
A0-A7 BUS
12345678
D3
R981K
2000H - 3FFFH
C12104
P2.0
P1.5
RST
P1.4
R1018K2
P2.4
VCC
A14
C1833p
INT0
A8
C15104
P1.2
U20 7457323456789
111
1918171615141312
1020
D0D1D2D3D4D5D6D7
LEOE
Q0Q1Q2Q3Q4Q5Q6Q7
GNDVCC
J40
PORT 3
12345678
A0
6264
P1.7
P1.1
CLK750
P3.4
Y212MHz
VCC
A13
D3
D251N4148
P0.1
J42
CLOCK OUT
12345678
P1.1
J901ADC 5V
1
2
P1.4
6 MHz
P3.1
3 MHz
D1
BT13V6
J35
SELECT CHIP
12345678
A2
P1.3
P1.3
VCC
P0.0
CLK12
A11
A7
EXT
P3.0
VCC
D2
6264
D3
375 KHz750 KHz
P1.0
A4
P1.0
4000H - 5FFFH
VCC
A5
P1.6
A15
P3.4
A8
D7
P0.4
P1.7
A0
A6
VCC
U22 6264109876543252421232
1112131516171819
2814
22272026
A0A1A2A3A4A5A6A7A8A9A10A11A12
D0D1D2D3D4D5D6D7
VCCGND
OEWECS1CS2
A10
C2433p
A15
E000H - FFFFH
P3.1
94 KHz
VCC
R1028K2
C2133p
P0.3
U23 74138123
15141312111097
168
645
ABC
Y0Y1Y2Y3Y4Y5Y6Y7
VCCGND
G1G2AG2BA4
J43
PORT 1
12345678
SW17RESET
U21 2764109876543
252421232
1112131516171819
2814
22
271
20
A0A1A2A3A4A5A6A7A8A9A10A11A12
O0O1O2O3O4O5O6O7
VCCGND
OE
PGMVPP
CE
CLK12
P1.1
VCC
P3.7
A000H - BFFFH
D0
R97 10K123456789
C000H - DFFFH
A12
J34
CS6264
12
P3.6
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 12 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Khối vi điều khiển được thiết kế để cho phép người sử dụng thuận tiện trong việc tiến hành thí nghiệm đối với
các loại vi điều khiển họ 89 của hãng Atmel ở mọi chế độ làm việc khả thi, gồm các loại vi điều khiển 40 chân và các vi điều khiển 20 chân.
o Thí nghiệm vi điều khiển 20 chân: vi điều khiển cần thí nghiệm sẽ được gắn vào socket U25
(SOCKET 20PIN), tần số hoạt động của chip do Y2 quyết định, các port xuất nhập của chip J43 (PORT 1): Port 1 (trong đó P3.0 và P3.1 là ngõ vào của bộ ADC trong chip); J44 (PORT 3): Port 3 (trong đó P3.6 không sử dụng). Để reset chip bạn sử dụng nút nhấn SW17 (RESET).
o Thí nghiệm vi điều khiển 40 chân: vi điều khiển cần thí nghiệm sẽ được gắn vào socket U19 (SOCKET 40PIN), tần số hoạt động của chip do Y1 quyết định, các port xuất nhập của chip J37 (PORT 0): Port 0 (ngoài ra còn là bus dữ liệu D0..D7 đã giải đa hợp); J38 (PORT 1): Port 1; J39 (PORT 2): Port 2 (ngoài ra còn là bus địa chỉ byte cao A8..A15); J40 (PORT 3): Port 3 (ngoài ra còn là bus tín hiệu điều khiển đặc biệt). Đầu nối J41 (A0-A7 BUS): bus địa chỉ byte thấp A0..A7. Để reset chip bạn sử dụng nút nhấn SW17 (RESET). Trong trường hợp thí nghiệm này, trên mô hình đã có thiết kế sẵn các bộ nhớ ROM/RAM bên ngoài (ROM 2764: 8 KB và RAM 6264: 8 KB có nguồn back-up BT1) nhằm mục đích giúp cho người sử dụng thuận tiện hơn trong việc thiết kế và thí nghiệm hệ thống vi điều khiển sử dụng bộ nhớ trong hoặc sử dụng bộ nhớ ngoài. Để thực hiện việc chuyển đổi bộ nhớ sử dụng (trong hay ngoài) ta thay đổi Jump J36 (INT/EXT), nối COM-INT: là sử dụng bộ nhớ trong; nối COM-EXT: là sử dụng bộ nhớ ngoài. Tầm địa chỉ của ROM: 0000H – 1FFFH; RAM chuẩn: 0000H – 1FFFH. Đối với RAM, nếu ta chỉ có một vi mạch (RAM chuẩn) ta sẽ nối J34 (CS6264) xuống GND, còn nếu có thêm I/O hoạt động với chức năng như RAM thì ta nối J34 (CS6262) đến bộ giải mã địa chỉ U23 (74138) lúc đó địa chỉ của RAM có sự thay đổi.
Ngoài ra, tại khối vi điều khiển trên mô hình thí nghiệm còn được thiết kế sẵn: bộ chia tần số U24 (74393) có
nhiệm vụ tạo ra các tần số khác nhau J42 (CLOCK OUT) để cung cấp cho các khối khác hoặc để dùng cho các mục đích khác của người sử dụng, bộ giải mã địa chỉ U23 (74138) có nhiệm vụ tạo ra các tín hiệu điều khiển chọn chip với các tầm địa chỉ khác nhau J35 (SELECT CHIP).
Bạn cần phải chú ý đến một điểm rất quan trọng là luôn luôn phải tắt nguồn cung cấp cho khối vi điều
khiển trước khi tiến hành tháo/gắn chip vi điều khiển vào socket nhằm tránh gây hỏng chip vi điều khiển này.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 13 Biên soạn: Phạm Quang Trí
• Ứng dụng:
o Thí nghiệm ứng dụng các loại vi điều khiển 20 chân và 40 chân. o Thí nghiệm cấu hình vi điều khiển sử dụng bộ nhớ bên trong hay bộ nhớ bên ngoài (Dung lượng
ROM/RAM ngoài có sẵn: 8KB/8KB, RAM có nguồn Back-up). o Phát các tín hiệu giải mã địa chỉ (CS): 0000H - 1FFFH, 2000H - 3FFFH, 4000H - 5FFFH, 6000H -
7FFFH, 8000H - 9FFFH, A000H - BFFFH, C000H - DFFFH, E000H – FFFFH. o Phát các xung clock có tần số: 12MHz, 6MHz, 3MHz, 1.5MHz, 750KHz, 375KHz, 188KHz,
94KHz. 1.2.3 Khối LED điểm:
• Sơ đồ nguyên lý:
D5LED
D13LED
R75 330
LED4
+5V
R64 330
1. KHOÁI DAÕY LED
R51 330
D15LED
D16LED
VCC
LED5
GND
D12LED
D14LED
D7LED
VCC
D10LED
GND
R77 330
LED3
R72 330
D8LED
D4LED
D1LED
R82 330
LED6
R52 330
R78 330
LED4
LED0
D3LED
R81 330
R49 330
LED5
LED2
LED7
D2LED
LED6
LED1
D9LED
J9
BARLED
12345678
R56 330
LED3
R76 330
R55 330
R50 330
LED7
D6LED
J103
POWER
123
R63 330
LED1
D11LED
LED0
J10
BARLED
12345678
R71 330
VCC
LED2
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 14 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Khối gồm 16 LED điểm, được chia ra làm hai phần 8 LED. Các dãy LED này được điều khiển bằng hai đầu
nối J9 và J10 (BARLED) vì thế ta có thể thực hiện điều khiển cùng lúc nhiều LED hoặc chỉ một LED. Mức tích cực để điều khiển các LED này là mức thấp. Dòng điện cung cấp cho các LED phải từ 15 – 25 mA để các LED có thể hoạt động tốt nhất.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J103 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối LED điểm với vi điều khiển. o Thí nghiệm phương pháp điều khiển từng LED. o Thí nghiệm phương pháp điều khiển dãy LED. o Thí nghiệm các kiểu điều khiển LED sáng tắt. o Thí nghiệm nguyên lý điều khiển đèn giao thông.
1.2.4 Khối LED 7 đoạn:
• Sơ đồ nguyên lý:
J2
SEL IN1
1234 Q1
A1015
SEL0
G
G
J110
POWER
123
U6LED7
8 3
7 6 4 2 91 105
CA
CA
A B C D FE G DP
G
R42
330
Q7
F
D
Q5
R45
330
D
A
R22
330
D
A
C
Q6
DP
D
Q2
R42K2
SEL3
R12K2
+5V
R13 330
R28
330
U3LED7
8 3
7 6 4 2 91 105
CA
CA
A B C D FE G DP
G
Q2
J4
7SEG IN MUL
12345678
Q8A1015
VCC
R33
330
SEL2
VCC
R12 330
J57SEG7 IN
1 2 3 4 5 6 7 8
J1
SEL LED IN
12345678
U5LED7
8 3
7 6 4 2 91 105
CA
CA
A B C D FE G DP
R14 330
GND E
Q0
R36
330
R17
330
A
DP
R32
330
DP
Q2A1015
SEL0
CR38
330
2. KHOÁI LED 7 ÑOAÏN
D
R24
330
R41
330
D
Q5
E
D E
Q3
D
SEL5
G
VCC
R44
330
E D
SEL6
F
Q4
G
VCC
R11 330
U7LED7
8 3
7 6 4 2 91 105
CA
CA
A B C D FE G DP
F F
DPR29
330
A
SEL7
G
Q7A1015
DP
DP
Q2
F
R20
330
R22K2
R25
330
Q3A1015
B E
R37
330
SEL1
A
R62K2
BR31
330
Q1
Q6A1015
DP
F
VCC
R34
330
VCC
Q6
B
GND
Q6
Q3
C E
Q0
U8LED7
8 3
7 6 4 2 91 105
CA
CA
A B C D FE G DP
Q1
GR23
330
Q5A1015
B
R43
330
R30
330
C
Q4
FR48
330
SEL4
R35
330
R32K2
SEL4
DP
Q1
F
R10 330
E
C
C CR40
330
SEL7
C
Q7
J87SEG4 IN
1 2 3 4 5 6 7 8
R15 330
J77SEG5 IN
1 2 3 4 5 6 7 8
R16 330
Q4A1015
SEL5
C
VCC
Q5
R27
330
DP
G
BR21
330
B
SEL6
VCC
R47
330
R39
330
Q3
R18
330
SEL3
B
DP A
R9 330
E
U2LED7
8 3
7 6 4 2 91 105
CA
CA
A B C D FE G DP
Q4
SEL1
B
A
E
C
R46
330
U1LED7
8 3
7 6 4 2 91 105
CA
CA
A B C D FE G DP
F
Q7
B
G
R82K2
R19
330
R72K2
J3
SEL IN1
1234
R26
330
J67SEG6 IN
1 2 3 4 5 6 7 8
SEL2
VCC
F
E
A
U4LED7
8 3
7 6 4 2 91 105
CA
CA
A B C D FE G DP
B A
R52K2
Q0
A
D
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 15 Biên soạn: Phạm Quang Trí
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Khối LED 7 đoạn bao gồm 8 LED 7 đoạn loại Anode chung kết hợp lại với nhau theo hai cách thiết kế khác
nhau. Các LED này đều được cấp nguồn thông qua các transistor Q1 - Q8 đóng vai trò như các công tắc và được điều khiển thông qua các tín hiệu điều khiển tích cực mức thấp tại đầu nối J1 (SEL LED IN), J2 (SEL IN1) và J3 (SEL IN2).
8 LED này được chia ra làm hai nhóm với hai phương pháp thiết kế khác nhau cho mỗi nhóm:
o Phương pháp không đa hợp (phương pháp điều khiển LED trực tiếp): được thiết kế trên cơ sở 4 LED (U1, U2, U3, U4). Phương pháp này là phương pháp mà các đoạn của mỗi LED sẽ được nối vào mỗi Port điều khiển độc lập với nhau và Anode của tất cả các LED sẽ được cấp nguồn đồng thời với nhau (thông thường thì sẽ được nối thẳng lên VCC). J5, J6, J7, J8 (7SEG IN): ngõ vào tín hiệu 7 đoạn (A-G và DP) của từng LED sẽ được nối đến từng Port điều khiển độc lập với nhau; J3 (SEL IN2): ngõ vào tín hiệu điều khiển cấp nguồn cho các LED, ở chế độ này thì sẽ được nối trực tiếp xuống GND để cấp nguồn liên tục và đồng thời cho tất cả các LED. Phương pháp điều khiển trong trường hợp này là cấp mã 7 đoạn tương ứng của số cần hiển thị ra LED 7 đoạn mong muốn.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 16 Biên soạn: Phạm Quang Trí
o Phương pháp đa hợp (phương pháp điều khiển quét LED): được thiết kế trên cơ sở 4 LED (U5, U6, U7, U8). Phương pháp này là phương pháp mà tất cả các đoạn của các LED sẽ được nối chung vào nhau và vào một Port điều khiển còn Anode của tất cả các LED sẽ được nối vào một Port điều khiển khác và được cấp tín hiệu quét LED một cách tuần tự (tại một thời điểm thì chỉ có một LED được cấp nguồn hoạt động). J4 (7SEG IN MUL): ngõ vào tín hiệu 7 đoạn (A-G và DP) đa hợp của tất cả các LED sẽ được nối đến một Port điều khiển; J2 (SEL IN1): ngõ vào tín hiệu điều khiển cấp nguồn cho các LED, ở chế độ này thì sẽ được nối đến một Port điều khiển khác cung cấp tín hiệu quét LED để cấp nguồn tuần tự cho các LED. Phương pháp điều khiển trong trường hợp này là phải tiến hành tuần tự qua các giai đoạn: cấp một tín hiệu quét LED sao cho chỉ có LED đầu tiên được cấp nguồn rồi đưa mã 7 đoạn tương ứng của số cần hiển thị ra LED 7 đoạn đó; kế tiếp cấp một tín hiệu quét LED sao cho chỉ có LED thứ hai được cấp nguồn rồi đưa mã 7 đoạn tương ứng của số cần hiển thị ra LED 7 đoạn đó; quá trình cứ diễn ra 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.
Trong hai phương pháp nêu trên thì phương pháp đa hợp thì thường được sử dụng nhiều hơn trong thực tế. Cho
nên trên mô hình thí nghiệm này cũng cho phép ta có thể thiết kế chế độ đa hợp cho tất cả 8 LED này bằng cách nối cung tất cả các đầu nối J5, J6, J7, J8 vào với đầu nối J4 thông qua khối mở rộng.
Bảng mã 7 đoạn cho các LED: Số Hex dp g f e d c b a Mã số HEX
0 1 1 0 0 0 0 0 0 C0 1 1 1 1 1 1 0 0 1 F9 2 1 0 1 0 0 1 0 0 A4 3 1 0 1 1 0 0 0 0 B0 4 1 0 0 1 1 0 0 1 99 5 1 0 0 1 0 0 1 0 92 6 1 0 0 0 0 0 1 0 82 7 1 1 1 1 0 1 1 1 F7 8 1 0 0 0 0 0 0 0 80 9 1 0 0 1 0 0 0 0 90 A 1 0 0 0 1 0 0 0 88 B 1 0 0 0 0 0 1 1 83 C 1 1 0 0 0 0 1 0 C2 D 1 0 1 0 0 0 0 1 A1 E 1 0 0 0 0 1 1 0 86 F 1 0 0 0 1 1 1 0 8E
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 17 Biên soạn: Phạm Quang Trí
Bảng mã điều khiển quét LED:
Mã HEX Tín hiệu quét điều khiển các Transistor FE 1 1 1 1 1 1 1 0 Transistor 1 ON FD 1 1 1 1 1 1 0 1 Transistor 2 ON FB 1 1 1 1 1 0 1 1 Transistor 3 ON F7 1 1 1 1 0 1 1 1 Transistor 4 ON EF 1 1 1 0 1 1 1 1 Transistor 5 ON DF 1 1 0 1 1 1 1 1 Transistor 6 ON BF 1 0 1 1 1 1 1 1 Transistor 7 ON 7F 0 1 1 1 1 1 1 1 Transistor 8 ON
Ngoài ra còn các mã 7 đoạn cho các LED khác, các bạn có thể tự mình thiết lập thêm để nâng cao số lượng ký
tự có thể hiển thị trên LED 7 đoạn cho thí nghiệm của mình. Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J110 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối LED 7 đoạn với vi điều khiển. o Thí nghiệm phương pháp điều khiển từng LED 7 đoạn. o Thí nghiệm phương pháp điều khiển dãy LED 7 đoạn. o Thí nghiệm các kiểu điều khiển LED sáng tắt và hiển thị thông tin. o Thí nghiệm các phương pháp điều khiển LED 7 đoạn ở các chế độ khác nhau: đa hợp, không đa
hợp, ngõ vào BCD hay 7 đoạn, … o Thí nghiệm nguyên lý điều khiển đèn giao thông.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 18 Biên soạn: Phạm Quang Trí
1.2.5 Khối LED ma trận:
• Sơ đồ nguyên lý:
R85 330
R80 330
C2C1C0
R67 10C4
Q13A1015
C6C5
R74 10
Q15A1015
R88 330
Q16A1015
C5
C7R73 10
Q9A1015
VCC
R59 10
Q14A1015
R61 10
R68 10
+5V
Q10A1015
J12
COL GREEN MATRIX
12345678
R66 10
GND
R54 10U9 MATRIXLED
221916133 6 9 12
21181514710
242320171425811
R0
R1
R2
R3
R4
R5
R6
R7
C1GC2GC3GC4GC5GC6GC7G
C0GC0RC1RC2RC3RC4RC5RC6RC7R
C3
R86 330
R70 10
VCC
R5
R2
R87 330
R1
Q12A1015
R84 330
C2
R83 330
3. KHOÁI LED MA TRAÄN
R3
GND
C3
R7
J13
ROW MATRIX
12345678
R69 10
R6
Q11A1015
C7
C4
R79 330
J11
COL RED MATRIX
12345678
R53 10R57 10
R4
R58 10
R62 10
C6
R65 10
J116
POWER
123
R0
C0C1
R60 10
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 19 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Loại ma trận LED sử dụng trên mô hình thí nghiệm này là loại ma trận LED 24 chân gồm 8 hàng và 8 cột. Ma
trận LED này có hai màu chính là xanh và đỏ, ngoài ra còn có một màu phụ là do sự tổng hợp của hai màu trên mà ra.
Mỗi điểm LED trên ma trận có cấu tạo gồm hai LED màu xanh và màu đỏ ghép lại với nhau theo nguyên tắc
Anode ghép chung và Cathode để riêng. Ma trận LED 8 hàng x 8 cột này gồm 24 chân được chia ra làm ba nhóm chân: 8 chân HÀNG R0-R7 (là các Anode chung của các LED trên cùng một hàng), 8 chân CỘT ĐỎ C0R-C7R (là các Cathode chung của các LED màu đỏ trên cùng một cột), 8 chân CỘT XANH C0G-C7G (là các Cathode chung của các LED màu xanh trên cùng một cột). 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 qui luật nhất định (hiển thị theo phương pháp quét hay còn gọi là phương pháp chỉ thị động) mà ta sẽ có được các hình ảnh như mong muốn trên ma trận LED với các màu sắc khác nhau.
J11 (COL RED MATRIX): ngõ vào điều khiển hàng R0-R7 cho các LED màu đỏ, tích cực mức thấp; J12
(COL GREEN MATRIX): ngõ vào điều khiển hàng R0-R7 cho các LED màu xanh, tích cực mức thấp; J13 (ROW MATRIX): ngõ vào điều khiển cột chung C0-C7 cho các LED, tích cực mức thấp.
Phương pháp điều khiển cũng tương tự như phương pháp điều khiển các LED 7 đoạn ở chế độ đa hợp (phương
pháp quét LED). Đầu tiên, ta cấp tín hiệu sao cho chỉ có HÀNG 1 có nguồn rồi đưa mã nhị phân tương ứng của hình ảnh cần hiển thị tại hàng đó ra các cột. Kế tiếp, ta cấp tín hiệu sao cho chỉ có HÀNG 2 có nguồn rồi đưa mã nhị phân tương ứng của hình ảnh cần hiển thị tại hàng đó ra các cột. 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 như mong muốn trên ma trận LED.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J116 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối LED ma trận với vi điều khiển. o Thí nghiệm phương pháp điều khiển từng LED trong ma trận. o Thí nghiệm phương pháp điều khiển nhiều LED trong ma trận. o Thí nghiệm các kiểu điều khiển LED sáng tắt và hiển thị thông tin tĩnh hoặc thông tin động với các
màu sắc khác nhau.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 20 Biên soạn: Phạm Quang Trí
1.2.6 Khối LCD:
• Sơ đồ nguyên lý:
VCC
D1
J128
CTRL LCD
123
R14910K
ENA
25. KHOÁI LCD
BL
Q25C1815
D4
D0
RS D2
R/W
LCD16 Characters x 2 Lines
U57 TC1602A
1 2 3 4 5 6 7 8 9 1011121314
1516
GND
VCC
VEE
RS
R/W
E D0
D1
D2
D3
D4
D5
D6
D7
LED+
LED-
D3
CONTRAST
BLJ104
POWER
123GND
J127
DATA LCD
12345678
R1482K7
D6
VCC
+5V
D7
J121BACKLIGHT
1 2
D5
VCC
GND
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Trên mô hình thí nghiệm có thiết kế sẵn một LCD 16 ký tự x 2 hàng, được sử dụng cho các bài thí nghiệm về
phương pháp điều khiển và hiển thị thông tin trên màn hình tinh thể lỏng (LCD). J127 (DATA LCD): ngõ vào nhận thông tin dữ liệu (Data) hoặc thông tin lệnh (Command) cho LCD, J128
(CTRL LCD): ngõ vào điều khiển LCD.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 21 Biên soạn: Phạm Quang Trí
Để điều chỉnh độ tương phản của các thông tin hiển thị trên LCD ta tiến hành điều chỉnh biến trở R149. Để bật đèn chiếu nền cho LCD trong trường hợp ánh sáng môi trường yếu làm việc hiển thị thông tin trên LCD không được rõ ràng thì ta cung cấp một mức logic cao (5V) vào đầu nối J121 (BACKLIGHT).
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J104 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối LCD với vi điều khiển. o Thí nghiệm phương pháp điều khiển trạng thái làm việc của LCD. o Thí nghiệm phương pháp điều khiển LCD hiển thị thông tin tĩnh hay động.
1.2.7 Khối công tắc:
• Sơ đồ nguyên lý:
SW27
SWITCH
20. KHOÁI COÂNG TAÉC
SW0
SW2SW3
SW5SW6
VCC
SW1
VCCJ106
POWER
123GND
SW4
SW7
+5V
R147 10K
1 2 3 4 5 6 7 8 9
GND
J122
SWITCH
12345678
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 22 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Nhiệm vụ chính của khối công tắc là sử dụng cho các bài thí nghiệm về giao tiếp giữa vi điều khiển với công
tắc, lập trình điều khiển dùng công tắc. Khối gồm 8 công tắc được thiết kế trên một DIP-SW, các công tắc này sẽ tạo ra một mức logic cao (5V) hoặc thấp (0V) ở các bit tương ứng của đầu nối J122 (SWITCH) tuỳ theo vị trí của công tắc trên DIP-SW (công tắc ở vị trí ON là mức logic thấp và ngược lại sẽ có mức logic cao).
Ngoài ra, khối này còn được sử dụng cho việc nối GND hoặc nối VCC cho các khối cần thiết, ví dụ như nối
GND cho các transistor trong khối LED 7 đoạn. Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J106 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối công tắc với vi điều khiển. o Thí nghiệm ứng dụng điều khiển thiết bị bằng công tắc. o Tạo các mức logic thấp (0V) hoặc logic cao (5V) cho các khối khác trên mô hình thí nghiệm.
1.2.8 Khối nút nhấn:
• Sơ đồ nguyên lý:
SW19KEY0
GNDSW26KEY7
K0VCC
KEY4
K7
+5V
R1284K7
GND
K4
SW21KEY2
R1324K7
VCC
K2
16. KHOÁI NUÙT NHAÁNJ91
PUSH KEY
12345678
K1
VCC
VCC
K5
R1314K7
KEY0
J114
POWER
123
K0
K6
KEY1
K4
VCC
R1294K7
KEY7
VCC
SW22KEY3
SW24KEY5
VCCK1
K2
K7
R1254K7
SW23KEY4
SW25KEY6
KEY2
K3
KEY6
R1274K7
KEY5
SW20KEY1
VCC
R1264K7
K6
VCC
K3
K5
R1304K7 KEY3
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Nhiệm vụ chính của khối nút nhấn là sử dụng cho các bài thí nghiệm về giao tiếp giữa vi điều khiển với nút
nhấn, lập trình điều khiển dùng nút nhấn. Khối gồm 8 nút nhấn được thiết kế theo nguyên tắc: nếu không nhấn nút thì mức logic tại bit tương ứng của đầu nối J91 sẽ có mức logic cao (5V) và ngược lại khi nhấn nút thì sẽ có mức logic cao.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 23 Biên soạn: Phạm Quang Trí
Ngoài ra, khối này còn được sử dụng cho việc tạo ra một xung kích có mức logic thấp (hoặc kích bằng cạnh xung) cho các khối khác trên mô hình thí nghiệm, ví dụ như cung cấp xung đếm hoặc xung ngắt cho vi điều khiển.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J114 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối nút nhấn với vi điều khiển. o Thí nghiệm ứng dụng điều khiển thiết bị bằng nút nhấn. o Tạo các tín hiệu xung có mức logic thấp cho các khối khác trên mô hình thí nghiệm.
1.2.9 Khối bàn phím:
• Sơ đồ nguyên lý:
R3
R1
SW3 3
C3
R1
SW10 8
R1SW6 5
R0
R0R2
SW14 0
C0
SW13
ESC
R2
C25. KHOÁI PHÍM MA TRAÄN
C2C1
SW7 6
SW11 9
SW15
ENTER
R2
C3
R0
C2
J18
KEYPAD
12345678
C0C0 C1
SW12 F3
SW5 4
SW9 7C1
R1
R3
SW8 F2
R3
C3
SW4 F1
R2
C3
R3
SW16 F4
R0
SW1 1
C0
SW2 2J15
KEYBOARD
12345678
C1
C2
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 24 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Khối bàn phím trên mô hình thí nghiệm này được thiết kế dựa vào cấu trúc hàng và cột của ma trận. Bàn phím
gồm 16 phím được sắp xếp theo ma trận 4 x 4 (tức 4 hàng x 4 cột). Các hàng và cột của ma trận phím này được kết nối với vi điều khiển thông qua đầu nối J15 (KEYBOARD), R0-R3: các hàng của ma trận phím, C0-C3: các cột của ma trận phím.
Để điều khiển bàn phím ma trận này ta sử dụng phương pháp quét phím. Để điều khiển quét phím thì bạn xuất
một dữ liệu 4 bit (trong đó có 1 bit ở mức logic thấp và 3 bit còn lại ở mức logic cao) ra các cột của ma trận phím (C0-C3), đọc 4 bit dữ liệu ở các hàng của ma trận phím (R0-R3) vào để kiểm tra xem có phím nào được nhấn hay không. Nếu có phím nhấn thì trong 4 bit đọc vào sẽ có 1 bit ở mức logic thấp và dựa trên cơ sở đó để thiết lập mã phím nhấn. Nếu không có phím nhấn thì 4 bit đọc vào đều có mức logic cao, khi đó ta chuyển mức logic thấp sang cột kế tiếp để dò tìm phím khác.
• Ứng dụng:
o Thí nghiệm phương pháp kết nối bàn phím được thiết kế theo kiểu ma trận với vi điều khiển. o Thí nghiệm ứng dụng điều khiển thiết bị bằng bàn phím. o Thí nghiệm các phương pháp quét phím và nhận dạng phím nhấn.
1.2.10 Khối relay:
• Sơ đồ nguyên lý:
NC12
COM11
R922K2
NO21NO11
LS1RELAY 5V
34
5
68
712
COM21
R91330
NO12
VCC
NC22
NO22NO12
GND
R89330
NO11
COM21
VCCVCC
COM12
R902K2
6. KHOÁI RELAYCOM12
NC11
GND
Q18C1815
+5V
J27
RELAY 1 OUT
12345678
D19LED
D181N4148
NO21
NC11
+5V
NC22
+5V
COM12
J26
RELAY 2 OUT
12345678
NO12
LS2RELAY 5V
34
5
68
712
NO21
NC12
COM22
VCC
GND
NC11
NC22
J111
POWER
123
COM11
COM22
REL1
GND
COM21
Q17C1815
COM22
NO11
D17LED
NO22
NO22
COM11
VCC
NC21
REL1
NC21
NC12
D201N4148
NC21
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 25 Biên soạn: Phạm Quang Trí
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Trên mô hình thí nghiệm được thiết kế sẵn hai relay LS1 và LS2 cho các ứng dụng lập trình điều khiển đóng
ngắt công suất. Hai relay được điều khiển bằng đầu nối J18 (RELAY CTRL), để đóng (hoặc) relay thì bạn cần cung cấp một mức logic cao (hoặc logic thấp) đến đầu nối J18 này. Các công tắc bên trong relay được nối ra bên ngoài thông qua các đầu nối J26 (RELAY1 OUT) và J27 (RELAY2 OUT). Trong đó: COM (Common): điểm chung; NC (Normal Close): điểm thường đóng; NO(Normal Open): điểm thường mở.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J111 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối relay với vi điều khiển. o Thí nghiệm ứng dụng điều khiển relay.
1.2.11 Khối tạo xung:
• Sơ đồ nguyên lý:
U18 LM5553
481
526
7OUT
RSTVCCGND
CVTRGTHR
DSCHG
VCC
PULSE
+5V
PULSE
GND
C1010u
J113
POWER
123GND
R951K
J33
PULSE OUT
12
D221N4148
7. KHOÁI TAÏO XUNG
VCC
VCC
C9104
C7103
R96100K
C11103
R941KD21
1N4148
R93100K
VCC
VCC
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 26 Biên soạn: Phạm Quang Trí
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Khối tạo xung trên mô hình sử dụng vi mạch LM555 để tạo ra các xung vuông cung cấp cho các ứng dụng lập
trình điều khiển cần đến. Xung vuông được lấy ra tại đầu nối J33 (PULSE OUT), tần số xung được điều chỉnh bởi biến trở R93 và phần trăm xung ở mức cao (hoặc thấp) được điều chỉnh bởi biến trở R96.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J113 (POWER).
• Ứng dụng: Phát xung clock có tần số thay đổi và tạo xung điều khiển cho vi điều khiển hoặc cho các khối khác trên mô
hình thí nghiệm.
1.2.12 Khối tạo áp thay đổi:
• Sơ đồ nguyên lý:
GND R104100K J46
V OUT 2
12
R106100K
11. KHOÁI TAÏO AÙP
J48
V OUT 4
12
J47
V OUT 3
12
VCCVCC VCC
GND
R103100K
VCC
VCC
+5V
R105100KJ45
V OUT 1
12
D35
POWER
123
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 27 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Khối tạo áp này được thiết kế trên mô hình chủ yếu nhằm mục đích để giả lập tín hiệu tương tự cung cấp cho
khối ADC thực hiện việc biến đổi. Khoảng điện áp thay đổi nằm trong khoảng 0V – 5V. Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối D35 (POWER).
• Ứng dụng:
o Tạo các mức điện áp thay đổi liên tục từ 0V đến 5V cung cấp cho các khối trên mô hình thí nghiệm.
o Giả lập tín hiệu tương tự cung cấp cho khối ADC. 1.2.13 Khối điều khiển động cơ bước:
• Sơ đồ nguyên lý:
GND
D7D6
A
J31CTRL MOTOR
12345678
DC
J32STEPPER2
1234
A
+5V
VCC
B
8. KHOÁI MOTOR BUOC
DCB
U17 ULN2803
10 9
12345678
1817161514131211
COM GND
IN1IN2IN3IN4IN5IN6IN7IN8
OUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8
GND
J30STEPPER 11234
D4D5
C8104
D2
VCCD1D0
J105POWER
1 2 3
D3
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Khối điều khiển động cơ bước được thiết kế trên cơ sở vi mạch ULN2803, khối có thể điều khiển được cùng
lúc hai động cơ bước công suất nhỏ (điện áp hoạt động: 5VDC, dòng điện tiêu thụ: 500 mA).
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 28 Biên soạn: Phạm Quang Trí
J31 (CTRL MOTOR): ngõ vào nhận tín hiệu điều khiển hai động cơ bước từ vi điều khiển; J30 (STEPPER 1), J32 (STEPPER 2): ngõ ra điều khiển của hai động cơ bước.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J105 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối động cơ bước với vi điều khiển. o Thí nghiệm ứng dụng điều khiển động cơ bước.
1.2.14 Khối Serial EEPROM:
• Sơ đồ nguyên lý:
A0
VCC
J112
POWER
123
A1
GND+5V
VCC
A2
J49
ADDR EEPROM
123
SDA
J50
CTRL EEPROM
123
10. KHOÁI SERIAL EEPROM
WPSCL
U27 AT24C04123
4
5
6
78
A0A1A2
GND
SDA
SCL
WPVCC
C25104
GND
VCC
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Khối được thiết kế trên nền tảng vi mạch bộ nhớ giao diện nối tiếp 2 dây, AT24C04, có dung lượng là 4 KB
(512 x 8 bit). Khối được thiết kế nhằm mục đích giúp người sử dụng có thể thí nghiệm các phương pháp ghi/đọc dữ liệu giữa vi điều khiển với Serial-Eeprom.
J49 (ADDR EEPROM): ngõ vào địa chỉ của bộ nhớ; J50 (CTRL EEPROM): các tín hiệu điều khiển của
Eeprom như ngõ vào dữ liệu nối tiếp, xung clock nối tiếp và tín hiệu chống ghi vào bộ nhớ. Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J112 (POWER).
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 29 Biên soạn: Phạm Quang Trí
• Ứng dụng:
o Thí nghiệm phương pháp kết nối Serial-Eeprom với vi điều khiển. o Thí nghiệm các phương pháp ghi/đọc dữ liệu giữa vi điều khiển với Serial-Eeprom.
1.2.15 Khối cảm biến nhiệt:
• Sơ đồ nguyên lý:
R15139K
C55104
R13410K
J135
POWER
1234
-VCC
C54104
VCC
J96
V1
12
R13610K
-VCC
VCC
R13720K
-
+
U43OP07
3
26
74 8
1
-
+
U40OP07
3
26
74 8
1
-
+
U39OP07
3
26
74 8
1
VCC
D44LM335
C53104
-VCC
V1V1
VCC
R13539K
V2
VCC
R13320K
VCC
V2
19. KHOÁI CAÛM BIEÁN NHIEÄT
C5610u
J92
V2
12
-VCC
R124 39K
VCC
C5210u
J93
V OUT
12
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 30 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Để mở rộng các ứng dụng giao tiếp giữa vi điều khiển (môi trường số) với môi trường bên ngoài (môi trường
tương tự) và các ứng dụng mang tính thực tế hơn. Vì thế, trên khối được chuẩn bị sẵn khối cảm biến nhiệt với độ phân giải là 0,5V để người sử dụng có thể nghiên cứu thiết kế và lập trình điều khiển các hệ thống đo nhiệt độ môi trường và khống chế nhiệt độ bằng vi điều khiển.
J93 (V OUT): điện áp (tương tự) ngõ ra của khối cảm biến nhiệt; J92 (V2): ngõ vào của điện áp so sánh; J96
(V1): ngõ vào của tín hiệu từ cảm biến nhiệt LM335. LM335 là cảm biến nhiệt độ có thể hoạt động đến 150OC. Tương ứng với nhiệt độ 0OK thì LM335 cho ra điện
áp 0V. Cứ tăng 1OC thì điện áp ra tăng 10mV. Như vậy, với 0OC thì điện áp ra là 2,73V. Để dễ dàng cho việc xử lý chương trình thì với 0OC điện áp ra nên là 0V. Muốn vậy cần có thêm mạch khuếch đại hiệu để trừ bớt đi 2,73V.
Điện áp ngõ ra tại J93 V OUT = AV(V1 – V2). Suy ra, điện áp ngõ ra thay đổi 10AV (mV) khi nhiệt độ thay
đổi 1OC. Độ phân giải cần thiết là 0,5OC nên điện áp thay đổi khi nhiệt độ thay đổi 1OC phải bằng 2 lần độ phân giải của
ADC 0809: 10AV (mV) = 2 x 19,6 (mV) → AV = 3,92 → chọn RF = R124 = 39K và RI = R134 = 10K Tiến hành cân chỉnh mạch: chỉnh biến trở R137 sao cho V1 = 2,73 + 0,01 x tOC (V). Trong thực tế để chính xác
thì ta nhúng LM335 vào nước đá đang tan (0OC). Chỉnh biến trở R133 sao cho V2 = 2,73 V. Chú ý: nhiệt độ sau khi qua khối cảm biến nhiệt sẽ tạo ra một điện áp tại J93 (V OUT) có giá trị là 39 * tOC
(mV). Với độ phân giải của ADC 0809 là 19,6 mV thì điện áp trên sau khi qua ADC 0809 sẽ có giá trị là 39 * tOC / 19,6 ≈ 2 * tOC.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J135 (POWER).
• Ứng dụng:
o Thí nghiệm ứng dụng đo nhiệt độ môi trường bằng vi điều khiển. o Giả lập tín hiệu tương tự cung cấp cho khối ADC.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 31 Biên soạn: Phạm Quang Trí
1.2.16 Khối đệm dữ liệu:
• Sơ đồ nguyên lý:
GND
IN6
OUT3
U32 ULN2803
10 9
12345678
1817161514131211
COM GND
IN1IN2IN3IN4IN5IN6IN7IN8
OUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8
J78INPUT 4
12345678
OUT4
OUT0
OUT4IN5
C32104
IN7
IN7
OUT7
OUT5
U30 ULN2803
10 9
12345678
1817161514131211
COM GND
IN1IN2IN3IN4IN5IN6IN7IN8
OUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8
IN1IN2
IN4
IN2
+5V
OUT0
IN1
OUT3
OUT7
IN0
IN4
J68INPUT 3
12345678
IN6
+5V
OUT0
IN5
IN3
OUT1
IN7
IN6
OUT1
U31 ULN2803
10 9
12345678
1817161514131211
COM GND
IN1IN2IN3IN4IN5IN6IN7IN8
OUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8
IN2
C29104
OUT1
IN3
IN3
+5V
OUT4
OUT0
IN2
OUT6
VCC
OUT3
IN1
OUT7
OUT2
J79OUTPUT 412345678
IN0
IN5IN5
IN0
J69OUTPUT 312345678
OUT5
13. KHOÁI ÑEÄM DÖÕ LIEÄU
IN1
C33104
OUT1
J53INPUT 1
12345678
IN3
J54OUTPUT 112345678
IN4OUT3
OUT6
IN0
OUT5
J61INPUT 2
12345678
OUT4IN4
OUT2
+5V
+5V
U28 ULN2803
10 9
12345678
1817161514131211
COM GND
IN1IN2IN3IN4IN5IN6IN7IN8
OUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8
OUT6
OUT7
IN6OUT5
C34104
J62OUTPUT 212345678
OUT2
IN7
J109
POWER
123GND
OUT2
OUT6
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 32 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Trong trường hợp các port xuất nhập của vi điều khiển cần phải điều khiển những thiết bị công suất lớn hoặc
phải điều khiển cùng lúc nhiều thiết bị trên một port. Lúc này đòi hỏi cần phải có các bộ khuếch đại dòng điện ngõ ra tại các port xuất nhập của vi điều khiển thì nó mới có thể đáp ứng được công việc điều khiển nêu trên.
Trên mô hình thí nghiệm được thiết kế sẵn bốn bộ đệm dữ liệu có chức năng khuếch đại các dòng điện tại ngõ
vào của chúng. Dòng điện tại ngõ ra là khoảng 300 - 500 mA. Lưu ý một điều rất quan trọng trong khối này là các bộ đệm ULN2803 sử dụng ở đây là các bộ đệm có đảo.
J53, J68, J61, J78 (INPUT): ngõ vào của các bộ đệm dữ liệu; J54, J69, J62, J79 (OUTPUT): ngõ ra của các bộ
đệm dữ liệu (ngõ ra có đảo trạng thái so với ngõ vào). Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J109 (POWER).
• Ứng dụng:
o Được sử dụng để thực hiện việc kết nối giữa các thiết bị ngoại vi công suất cao với chip vi điều khiển.
o Khuếch đại dòng điện điều khiển cung cấp cho các thiết bị công suất cao. o Lưu ý khối này là khối khuếch đại đệm đảo.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 33 Biên soạn: Phạm Quang Trí
1.2.17 Khối giải mã:
• Sơ đồ nguyên lý:
D
J28
DECODER 2-4
12
B
F
B
SEL6
SEL B
SEL2
SEL A
4. KHOÁI GIAÛI MAÕ
E
U15A 7413923
1
4567
16
8
AB
G
Y0Y1Y2Y3
VCC
GND
SEL1
J36
POWER
123
C5104
VCC
U13 74477126
4
53
1312111091514
168
D0D1D2D3
BI/RBO
RBILT
ABCDEFG
VCCGND
C
C1104
SEL3
CB
VCC
DP
VCC
U14 74138123
15141312111097
168
645
ABC
Y0Y1Y2Y3Y4Y5Y6Y7
VCCGND
G1G2AG2B
DP
C
J17
7SEG OUT 2
12345678
G
SEL0
VCC
D
BA
SEL2
D
SEL C
GVCC
SEL1
SEL A
J21
7SEG OUT 4
12345678
SEL0
SEL3
J19
7SEG OUT 3
12345678J20
BCD IN 3-4
12345678
SEL5
F
J14
7SEG OUT 1
12345678
U11 74477126
4
53
1312111091514
168
D0D1D2D3
BI/RBO
RBILT
ABCDEFG
VCCGND
SEL A
D
VCC
DP
VCC
VCC
C
F
VCC
SEL2
GND
C
C
A
SEL B
VCC
J24
DECODER 2-4
12
C
E
CD
VCCVCC
SEL1
C3104
U12 74477126
4
53
1312111091514
168
D0D1D2D3
BI/RBO
RBILT
ABCDEFG
VCCGND
A
U15B 741391413
15
1211109
AB
G
Y0Y1Y2Y3
SEL B
D
D
J16
BCD IN 1-2
12345678
A
A
C2104
SEL0
D
G
VCC
C4104
U10 74477126
4
53
1312111091514
168
D0D1D2D3
BI/RBO
RBILT
ABCDEFG
VCCGND
B
G
B
+5V
A
VCC
DP
GND
SEL3
E
J25
DECODER OUT
1234
VCC
J29
DECODER OUT
1234
SEL7
B
F
E
C6104
J22
DECODER 3-8
123
AA
J23
DECODER OUT
12345678
B
SEL4
• Sơ đồ bố trí linh kiện:
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 34 Biên soạn: Phạm Quang Trí
• Giới thiệu chung: Mô hình thí nghiệm này được thiết kế sẵn một bộ giải mã 3 sang 8 (U14 - 74138), hai bộ giải mã 2 sang 4 (U15
- 74139) và bốn bộ giải mã BCD sang 7 đoạn (U10..U13 - 7447). Mục đích chính của các bộ giải mã này là sử dụng kết hợp với khối LED 7 đoạn để sinh viên có thể thiết kế, thí nghiệm và tìm hiểu về các phương pháp điều khiển LED 7 đoạn từ đơn giản (điều khiển trực tiếp) đến phức tạp (điều khiển theo kiểu quét LED). Một số phương pháp điều khiển LED 7 đoạn như (cấu trúc của các phương pháp này có thể xem ở phần sau hoặc xem trong tài liệu “Hướng dẫn sử dụng phần mềm mô phỏng MCS-51 Topview Simulator”):
o Chế độ hiển thị không đa hợp với ngõ vào BCD (Non Multiplexed displays with BCD inputs). o Chế độ hiển thị không đa hợp với ngõ vào 7 đoạn (Non Multiplexed displays with 7 segment
inputs). o Chế độ hiển thị đa hợp ngõ vào BCD với bộ đa hợp bên trong (Multiplexed BCD input displays
with internal multiplexer). o Chế độ hiển thị đa hợp ngõ vào 7 đoạn với bộ đa hợp bên trong (Multiplexed 7 segment input
displays with internal multiplexer). o Chế độ hiển thị đa hợp ngõ vào BCD với bộ đa hợp bên ngoài (Multiplexed BCD input displays
with external multiplexer). o Chế độ hiển thị đa hợp ngõ vào 7 đoạn với bộ đa hợp bên ngoài (Multiplexed 7 segment input
displays with external multiplexer). J16 (BCD IN 1-2): ngõ vào của hai tín hiệu mã BCD (4 bit cao và 4 bit thấp); J14, J17 (7 SEG OUT 1, 7 SEG
OUT 2): ngõ ra của tín hiệu mã 7 đoạn tương ứng. Tương tự như vậy cho J20 và J19, J21. J22 (DECODER 3-8): các ngõ vào của bộ giải mã 3 sang 8; J23 (DECODER OUT): các ngõ ra của bộ giải mã
3 sang 8. J24, J28 (DECODER 2-4): các ngõ vào của bộ giải mã 2 sang 4; J25, J29 (DECODER OUT): các ngõ ra của
bộ giải mã 2 sang 4. Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J36 (POWER).
• Ứng dụng:
o Cung cấp bộ giải mã BCD sang 7 đoạn. o Cung cấp bộ giải mã 2 sang 4 hoặc bộ giải mã 3 sang 8. o Thí nghiệm phương pháp kết nối khối LED 7 đoạn trực tiếp hoặc kết nối có thông qua các bộ giải
mã với khối vi điều khiển.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 35 Biên soạn: Phạm Quang Trí
1.2.18 Khối ADC:
• Sơ đồ nguyên lý:
CS0809
IN1
GND
U54A7402
2
31
14
7
IN4IN3
A0
U52 ADC0809
10
97
171415818192021
622
1113
1216
26272812345
252423
CLK
OEEOC
D0D1D2D3D4D5D6D7
STARTALE
VCCGND
REF+REF-
IN0IN1IN2IN3IN4IN5IN6IN7
A0A1A2
C66104
J118
CS0809
12
GND
WR
IN5
D0
+5V
A1
CS0809
VCC
U54B7402
5
64
D6
CLK750K
VCC
22. KHOÁI ADC J113
DIGITAL OUT
12345678
D5
VCC
D34
POWER
123
D7
C65104
D2
RD
VCC
D4
IN0D1
IN6
A2
IN7
J112ANALOG IN
12345678
IN2
VCC
D3
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Nhằm mục đích giúp sinh viên có thể nghiên cứu, thiết kế và tìm hiểu về nguyên lý chuyển đổi tín hiệu tương
tự sang tín hiệu số và ứng dụng của các vi mạch ADC trong thực tế. Từ đó có thể dễ dàng và thuận tiện trong việc thiết kế được các hệ thống chuyển đổi tín hiệu tương tự sang tín hiệu số dùng vi điều khiển kết hợp vi mạch ADC.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 36 Biên soạn: Phạm Quang Trí
Trên mô hình thí nghiệm đã thiết kế sẵn một vi mạch ADC 0809, là một vi mạch chuyển đổi tương tự – số 8 bit có 8 ngõ vào tín hiệu tương tự, để thực hiện việc chuyển đổi tín hiệu này. J112 (ANALOG IN): các ngõ vào tín hiệu tương tự (có 8 ngõ vào); J113 (DIGITAL OUT): ngõ ra tín hiệu số 8 bit; J118 (CS 0809): ngõ vào cho phép ADC hoạt động. Việc chọn lựa ngõ vào của tín hiệu tương tự sẽ do khối vi điều khiển quyết định thông qua các đường địa chỉ A0..A2. Quá trình thực hiện chuyển đổi và đưa dữ liệu tới vi điều khiển sẽ do khối vi điều khiển quản lý thông qua hai tín hiệu RD\ và WR\. Tần số lấy mẫu của chip ADC là 750KHz được lấy từ bộ chia tần trong khối vi điều khiển.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối D34 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối vi mạch ADC với vi điều khiển. o Thí nghiệm phương pháp chuyển đổi dạng tín hiệu từ tương tự sang số sử dụng vi mạch ADC0809.
1.2.19 Khối DAC:
• Sơ đồ nguyên lý:
R1462K7
U55 DAC080812111098765
14
15
2
4
16
3
13
A8A7A6A5A4A3A2A1
VR+
VR-
/IOUT
IOUT
COMP
V-
V+
VCC
J120
ANALOG OUT
12
D455V1
C74104
R14210K
-
+
U56LM741
3
26
7 14 5
D3
ANALOG
+12V
C7110u
D4
21. KHOÁI DAC
-VCC
R1412K7
R1432K7
D1
D6
C70104
R1502K7
D0
D5
C73104
D7
R14510K
D2
+12V
R1442K7
J119DIGITAL IN
12345678
C72104
ANALOG
-12V
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 37 Biên soạn: Phạm Quang Trí
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Nhằm mục đích giúp sinh viên có thể nghiên cứu, thiết kế và tìm hiểu về nguyên lý chuyển đổi tín hiệu số sang
tín hiệu tương tự và ứng dụng của các vi mạch DAC trong thực tế. Từ đó có thể dễ dàng và thuận tiện trong việc thiết kế được các hệ thống chuyển đổi tín hiệu số sang tín hiệu tương tự dùng vi điều khiển kết hợp vi mạch DAC.
Trên mô hình thí nghiệm đã thiết kế sẵn một vi mạch DAC 0808, là một vi mạch chuyển đổi số – tương tự 8
bit, để thực hiện việc chuyển đổi tín hiệu này. J119 (DIGITAL IN): ngõ vào tín hiệu số 8 bit; J120 (ANALOG OUT): ngõ ra tín hiệu tương tự (dạng điện áp). Vi mạch U56 (LM741) làm nhiệm vụ biến đổi tín hiệu tương tự tại ngõ ra của vi mạch DAC từ dạng dòng điện sang dạng điện áp. Biến trở R145: điều chỉnh mức điện áp chuẩn.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J108 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối vi mạch DAC với vi điều khiển. o Thí nghiệm phương pháp chuyển đổi dạng tín hiệu từ số sang tương tự sử dụng vi mạch DAC0808.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 38 Biên soạn: Phạm Quang Trí
1.2.20 Khối RTC:
• Sơ đồ nguyên lý:
J147
POWER
123
J108
CS RTC
12
WR
RTC
RD AD1
RST
J104READ/WRITE
12
AD7
SQWAD6INT
J105CTRL P-RTC
1234
AD4AD3
ALE
GND
AD5C6410p
+5V
SCL
R139 10K
AD0
Y4
32.768KHz
GND
SDA
U46 DS12887
1923
2412
4567891011
14
17
1
18
15
13
IRQSQW
VCCGND
AD0AD1AD2AD3AD4AD5AD6AD7
AS
DS
MOT
RST
R/W
CS
R14010K
AD2
U49 PCF85831
2
3
4
5
6
7
8
OSC1
OSC0
A0 VSS
SDA
SCL
INT
VDD
R13810K
A0
J103ADD/DATA BUS
12345678
18. KHOÁI REAL TIME CLOCK (RTC)
J109
CTRL S-RTC
1234
VCCVCC
INT
C63104
VCCRTC
VCC
C62104
VCC
VCC
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Nhằm mục đích giúp sinh viên có thể nghiên cứu, thiết kế và tìm hiểu về các vi mạch đồng hồ thời gian thực
(RTC) để từ đó có thể dễ dàng và thuận tiện trong việc thiết kế được các hệ thống đồng hồ số dùng vi điều khiển kết hợp vi mạch RTC.
Trên mô hình thí nghiệm đã thiết kế sẵn hai loại RTC: loại giao tiếp song song (DS12C887) và loại giao tiếp
nối tiếp (PCF8583). Lưu ý rằng loại RTC nối tiếp không lưu giữ được các thông số hoạt động khi nguồn cung cấp bị mất.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 39 Biên soạn: Phạm Quang Trí
o Loại giao tiếp song song (DS12C887): J103 (ADD/DATA BUS): bus địa chỉ và dữ liệu đa hợp; J104 (READ/WRITE): tín điều khiển ghi và đọc RTC; J105 (CTRL P-RTC): tín hiệu ngắt, chốt địa chỉ, reset RTC và tín hiệu xung đa tần; J108 (CS RTC): tín hiệu cho phép RTC hoạt động.
o Loại giao tiếp nối tiếp (PCF8583): J109 (CTRL S-RTC): tín hiệu địa chỉ, ngắt, xung clock nối tiếp và dữ liệu nối tiếp.
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J147 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp kết nối các vi mạch RTC với vi điều khiển. o Thí nghiệm lập trình ứng dụng thiết kế đồng hồ số sử dụng vi mạch RTC kiểu song song. o Thí nghiệm lập trình ứng dụng thiết kế đồng hồ số sử dụng vi mạch RTC kiểu nối tiếp.
1.2.21 Khối thanh ghi dịch:
• Sơ đồ nguyên lý:
D4
U53 7416412
8
9
345610111213
147
AB
CLK
CLR
Q0Q1Q2Q3Q4Q5Q6Q7
VCCGND
D0
D6
D0
D2
D2
D5
D4
J111
PARALLEL OUT 1
12345678
GND
D1
VCC
D3D0
24. KHOÁI THANH GHI DÒCH
CLK
U51 7416510
111213143456
215
1
97
168
DS
P0P1P2P3P4P5P6P7
CP1CP2
PL
QHQH
VCCGND
D7
STR
U50 4094456714131211
910
168
123
15
Q1Q2Q3Q4Q5Q6Q7Q8
QS1QS2
VCCGND
STRDCLKOE
D6
OUT
CLK-3
GND
J116
PARALLEL OUT 2
12345678
VCC
OUT
J114
PARALLEL IN
12345678
+5V
VCC
CLKLD
VCC
VCC
J110
SERIAL IN 1
123
J117
SERIAL OUT
123
LD
IN
C67104
VCC
IN
J115
SERIAL IN 2
12
J115
POWER
123
D2D3
C68104
CLK D1
D7
D3D4
D5
D6
D7
C69104
D1
D5
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 40 Biên soạn: Phạm Quang Trí
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Khối thanh ghi dịch trên mô hình thí nghiệm được sử dụng để nghiên cứu thí nghiệm và thiết kế các ứng dụng
chuyển đổi dữ liệu từ dạng nối tiếp sang dạng song song 8 bit và ngược lại. Việc nghiên cứu thí nghiệm tính năng chuyển đổi này giúp cho bạn có thể tìm hiểu sâu hơn về nguyên lý hoạt động và phương pháp điều khiển cũng như chế độ hoạt động của port nối tiếp trong chip vi điều khiển (mà chủ yếu là chế độ thanh ghi dịch của port nối tiếp).
Port nối tiếp của chip vi điều khiển có thể được sử dụng để mở rộng thành một hay nhiều port xuất song song.
Để thực hiện điều này, ta sử dụng port nối tiếp ở chế độ thanh ghi dịch (Shift Register – Mode 0) và sử dụng vi mạch chuyển đổi từ dạng nối tiếp ra dạng song song (Serial In – Parallel Out) như 74164 (U53) và 4094 (U50). Với hoạt động xuất ở chế độ thanh ghi dịch thì trên vi điều khiển ngõ RXD là ngõ ra dữ liệu nối tiếp, ngõ TXD là ngõ ra xung clock.
Port nối tiếp của chip vi điều khiển có thể được sử dụng để mở rộng thành một hay nhiều port nhập song song.
Để thực hiện điều này, ta sử dụng port nối tiếp ở chế độ thanh ghi dịch (Shift Register – Mode 0) và sử dụng vi mạch chuyển đổi từ dạng song song ra dạng nối tiếp (Parallel In – Serial Out) như 74165 (U51). Với hoạt động xuất ở chế độ thanh ghi dịch thì trên vi điều khiển ngõ RXD là ngõ vào dữ liệu nối tiếp, ngõ TXD là ngõ ra xung clock.
U50 (4094) và U53 (74164) là hai vi mạch chuyển đổi dữ liệu từ dạng nối tiếp ra dạng song song. J110
(SERIAL IN1), J115 (SERIAL IN2): ngõ vào của dữ liệu nối tiếp, IN: ngõ vào của dữ liệu nối tiếp, CLK: ngõ vào của xung clock hay xung dịch chuyển dữ liệu, STR: ngõ vào của xung chốt dữ liệu ngõ ra. J111 (PARALLEL OUT1), J116 (PARALLEL OUT2): ngõ ra của dữ liệu song song 8 bit.
U51 (74165) là vi mạch chuyển đổi dữ liệu từ dạng song song ra dạng nối tiếp. J114 (PARALLEL IN): ngõ vào
của dữ liệu song song 8 bit. J117 (SERIAL OUT): ngõ ra của dữ liệu nối tiếp, OUT: ngõ ra của dữ liệu nối tiếp, CLK: ngõ vào của xung clock hay xung dịch chuyển dữ liệu, LD: cho phép tải dữ liệu song song vào vi mạch (LD=0: tải dữ liệu mới từ ngõ vào song song vào trong vi mạch, LD=1: chốt dữ liệu đã nhận được từ ngõ vào song song lại và thực hiện việc ghi dịch dữ liệu này.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 41 Biên soạn: Phạm Quang Trí
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J115 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp xuất nhập dữ liệu dạng nối tiếp sử dụng phương thức thanh ghi dịch. o Thí nghiệm phương pháp chuyển đổi kiểu dữ liệu từ dạng song song sang dạng nối tiếp sử dụng
phương thức thanh ghi dịch. o Thí nghiệm phương pháp chuyển đổi kiểu dữ liệu từ dạng nối tiếp sang dạng song song sử dụng
phương thức thanh ghi dịch. 1.2.22 Khối mở rộng port I/O:
• Sơ đồ nguyên lý:
D7
D5
J102
DATA OUT
12345678
J107
CS573B
12
D3
245
D1
573A
D0
D6
D5
573B
VCC
C58104
U41 82553433323130292827
432140393837
1819202122232425
1415161713121110
267
536
98
356
D0D1D2D3D4D5D6D7
PA0PA1PA2PA3PA4PA5PA6PA7
PB0PB1PB2PB3PB4PB5PB6PB7
PC0PC1PC2PC3PC4PC5PC6PC7
VCCGND
RDWR
A0A1
RESETCS
573A
D5
WR
U45 7457323456789
111
1918171615141312
1020
D0D1D2D3D4D5D6D7
LEOE
Q0Q1Q2Q3Q4Q5Q6Q7
GNDVCC
D0
GND
J98
CS245
12
D7
573B
J107
POWER
123
D0
D2
PC3
D2
D7
+5V
D6
D3
U42 7424523456789
191
1817161514131211
2010
A0A1A2A3A4A5A6A7
GDIR
B0B1B2B3B4B5B6B7
VCCGND
D2
J101
PORT C
12345678
J97
PORT B
12345678
PC0
D3
VCC
D5
GND
VCC
D7J106
CS573A
12
C59104
PC7
D4
D6
D2
PB5
A0VCC
VCC
D1
D3
PC4
PB1
D3
VCC
D4
D6
PC5
D5
D7J99
DATA OUT
12345678
WR
PB6
PC1
D2
PB2
PC6
D4
D3
VCC
D0PA0
WR
D0
D4
PC2
D1
PA7
PA3
D4
D0
PA6
C57104
8255
PA5
D6
D1
C61104
PB3
D1
D6J95
DATA IN
12345678
PA1
C60104
8255D1
PB0245
D4
RD
D7
U47A7402
2
31
14
7
J100
CS8255
12
D0
A1
D2
PA4
D2
U47B7402
5
64
PB7
PA2
17. KHOÁI MÔÛ ROÄNG PORT I/O
U44 7457323456789
111
1918171615141312
1020
D0D1D2D3D4D5D6D7
LEOE
Q0Q1Q2Q3Q4Q5Q6Q7
GNDVCC
D3
D7
D4
D6
J94
PORT A
12345678
PB4
D5
D1
D5
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 42 Biên soạn: Phạm Quang Trí
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Như ta đã biết, vi điều khiển chỉ có tối đa bốn port xuất nhập để truyền thông với các thiết bị bên ngoài, đó là
chưa xét tới trường hợp khi vi điều khiển hoạt động ở chế độ sử dụng bộ nhớ ngoài thì vi điều khiển chỉ còn lại duy nhất một port xuất nhập. Tuy nhiên trong thực tế có những trường hợp ta cần phải truyền thông với một số lượng lớn hơn các thiết bị ngoại vi. Chính vì những đặc điểm này đã đặt ra cho chúng ta một vần để là phải làm cách nào để nâng cao (mở rộng) được số lượng port xuất nhập cho vi điều khiển.
Khối mở rộng port I/O trên mô hình được tạo ra từ các vi mạch chuyển dụng để mở rộng port xuất nhập cho vi
điều khiển trên thực tế như: 8255 (mở rộng port xuất nhập), 74245(mở rộng port nhập), 74573 (mở rộng port xuất), từ giúp cho bạn thuận tiện trong việc thực hiện các bài thí nghiệm về vấn đề này. Ơõ đây có một điểm mà bạn cần lưu ý là các vi mạch 8255, 47245, 74573 trên đây đều được thiết kế để hoạt động tương tự như một bộ nhớ ngoài của vi điều khiển (có nghĩa là sự hoạt động truyền thông của chúng diễn ra thông qua bus địa chỉ A0-A1, bus dữ liệu D0-D7, bus điều khiển RD và WR, tín hiệu giải mã địa chỉ CS lấy từ khối vi điều khiển.
U41 (8255) cho phép mở rộng port xuất và port nhập. Bus dữ liệu D0-D7 của vi điều khiển sẽ được điều
khiển xuất nhập thông qua ba port J94 (PORT A), J97 (PORT B), J9101 (PORT C) dưới sự điều khiển của bus địa chỉ A0-A1, tín hiệu RD (điều khiển đọc/nhập dữ liệu), tín hiệu WR (điều khiển ghi/xuất dữ liệu) và sự cho phép của tín hiệu J100 (CS8255).
U42 (74245) cho phép mở rộng port nhập. Bus dữ liệu D0-D7 của vi điều khiển sẽ được điều khiển nhập
thông qua port J95 (DATA IN) dưới sự cho phép của tín hiệu J98 (CS245).
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 43 Biên soạn: Phạm Quang Trí
U44 (74573) và U45 (74573) cho phép mở rộng port xuất. Bus dữ liệu D0-D7 của vi điều khiển sẽ được điều khiển xuất thông qua port J99 (DATA OUT) và J102 (DATA OUT) dưới sự điều khiển của tín hiệu WR (điều khiển ghi/xuất dữ liệu) và sự cho phép của tín hiệu J107 (CS573A), J106 (CS573B).
Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J107 (POWER).
• Ứng dụng:
o Thí nghiệm phương pháp xuất nhập dữ liệu dạng song song sử dụng các vi mạch số 74245, 74573. o Thí nghiệm phương pháp lập trình điều khiển vi mạch PPI 8255 bằng vi điều khiển. o Thí nghiệm các phương pháp mở rộng (tăng thêm số lượng) port xuất nhập dữ liệu.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 44 Biên soạn: Phạm Quang Trí
1.2.23 Khối giao tiếp PC:
• Sơ đồ nguyên lý:
D5
JR2 PS2
123456
PE
J87
USB2-PC
12
C7210u
TXD
+DATA
GND
RTS
D0
D7
TXD
J61
POWER
123
-DATA
N/A1
GND
D1
RTS
GND
AUTOFEED\
CLOCK
J77
USB 1
1234
J70
STATUS LPT-PC
12345678
D2
RXD
SEL IN\
DSR
C3110u
J58
RS232C-PC
12345678
DATA
SEL
D5
STROBE\
VCC
JR1 PS2
123456
-DATA
GND
CLOCK
D4
SEL IN\INIT
+DATA
J82
USB1-PC
12
D6
ACK\
AF\
DSR
D0
DTR
RXD
ACK
C2710u
NC
DATA
TXD
J81
PS2-1-PC
12
VCC
D6
GND
J86
USB 2
1234
NC
CTS
D2
P1
RS232C
594837261
RXD
D7
D4
BUSY
N/A
N/A2
STROBE\
GND
J65
DATA LPT-PC
12345678
C2610u
ERROR\
RXD
INIT
14. KHOÁI GIAO TIEÁP PC
N/A
N/A1
DTR
J75
CONTROL LPT-PC
1234
J55
TXD/RXD
12
GND
VCC
BUSY
VCC
CTS
ERROR\
DTRN/A2
NC
VCC
VCC
TXD
P2
LPT
13251224112310229218207196185174163152141
PE
VCC
GND
RTS
GND
C3010u
SEL
CTS
J85
PS2-2-PC
12
D1
DSR
+5V
D3
U29MAX232
1 3
4 5
16
15
26
12
9
11
10
13
8
14
7
C1+
C1-
C2+
C2-
VCC
GND
V+
V-
R1OUT
R2OUT
T1IN
T2IN
R1IN
R2IN
T1OUT
T2OUT
D3
GND
C28104
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 45 Biên soạn: Phạm Quang Trí
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Trên mô hình thí nghiệm được thiết kế sẵn một số chuẩn giao tiếp thông dụng trên máy tính như: LPT, RS232,
USB và PS2. Khi cần thí nghiệm loại cổng giao tiếp nào thì ta dùng loại cáp tương ứng để kết nối cổng giao tiếp của máy
tính với cổng giao tiếp tương ứng trên mô hình thí nghiệm lại với nhau. Để thuận tiện và linh động trong việc thí nghiệm, tất cả các đường tín hiệu của các cổng giao tiếp này đều đã được nối đến các đầu nối trên mô hình thí nghiệm. Ta có thể kết nối vi điều khiển với các cổng giao tiếp thông qua các đầu nối này.
o Cổng LPT: J65 (DATA LPT-PC): bus dữ liệu; J70 (STATUS LPT-PC): bus trạng thái; J75
(CONTROL LPT-PC): bus điều khiển. o Cổng RS232: J55 (TXD/RXD): giao tiếp có thông qua MAX232; J58 (RS232C-PC): giao tiếp trực
tiếp. o Cổng USB: J82 (USB1-PC), J87 (USB2-PC): tín hiệu dữ liệu; chân VCC và GND của cổng đã
được kết nối sẵn vào mô hình. o Cổng PS2: J81 (PS2-1-PC), J85 (PS2-2-PC): tín hiệu dữ liệu và xung clock; chân VCC và GND
của cổng đã được kết nối sẵn vào mô hình. Lưu ý để khối này hoạt động ta cần phải cấp nguồn cho khối thông qua đầu nối J61 (POWER).
• Ứng dụng: Thí nghiệm phương pháp giao tiếp giữa vi điều khiển với máy tính thông qua các chuẩn kết nối LPT, RS232,
USB và PS2.
Chương 1: Cấu hình của mô hình thí nghiệm vi điều khiển.
Giáo trình thực hành vi xử lý. 46 Biên soạn: Phạm Quang Trí
1.2.24 Khối mở rộng bus:
• Sơ đồ nguyên lý:
J131
BUS
12345678
J123
BUS
12345678
J130
BUS
12345678
SW32
SWITCH
SW30
SWITCH
J133
BUS
12345678
J132
BUS
12345678
J126
BUS
12345678
J134
BUS
12345678
23. KHOÁI MÔÛ ROÄNG
SW29
SWITCH
J125
BUS
12345678
SW28
SWITCH
J129
BUS
12345678
SW31
SWITCH
J124
BUS
12345678
• Sơ đồ bố trí linh kiện:
• Giới thiệu chung: Trên thực tế, mỗi port của vi điều khiển có thể cùng lúc điều khiển nhiều thiết bị. Chính vì mục đích này mà
trên mô hình thí nghiệm này đã được thiết kế sẵn khối mở rộng để có thể tăng thêm số lượng thiết bị ngoại vi được nối vào cùng một port điều khiển.
Trong khối mở rộng gồm 5 bộ chuyển đổi mở rộng 8 bit độc lập nhau (SW28, SW29, SW30, SW31, SW32).
Các bộ chuyển đổi mở rộng này có nhiệm vụ liên kết hai cặp đầu nối của nó (J123-J124, J125-J126, J129-J130, J131-J132, J133-J134) lại với nhau theo từng bit một (khi công tắc tương ứng ở vị trí ON).
• Ứng dụng:
Được sử dụng để mở rộng, nâng cao khả năng kết nối các port xuất nhập của chip vi điều khiển đến cùng một
lúc nhiều thiết bị ngoại vi hơn.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
Chương 2: Hướng dẫn sử dụng phần mềm MCU Program Loader.
Giáo trình thực hành vi xử lý. 48 Biên soạn: Phạm Quang Trí
2.1 Giới thiệu:
Phần mềm MCU Program Loader kết hợp với khối lập trình vi điều khiển trên mô hình thí nghiệm tạo thành một thiết bị lập trình vi điều khiển họ 89 của hãng Atmel. Thiết bị lập trình vi điều khiển này hỗ trợ cho các vi mạch sau:
Flash (Kbytes) EEPROM RAM (Bytes) I/O Pins AT89C51 4 128 32 AT89LV51 4 128 32 AT89C52 8 256 32 AT89LV52 8 256 32 AT8C55 20 256 32 AT89LV55 20 256 32 AT89C55WD 20 256 32 AT89S51 4 128 32 AT89LS51 4 128 32 AT89S52 8 256 32 AT89LS52 8 256 32 AT89S53 12 256 32 AT89LS53 12 256 32 AT89S8252 8 2 KB 256 32 AT89LS8252 8 2 KB 256 32 AT89C1051 1 128 15 AT89C2051 2 128 15 AT89C4051 4 128 15
Thiết bị lập trình này bao gồm một hệ thống phần cứng và phần mềm thông minh. Đơn giản, dễ sử dụng và hiệu suất cao đó là những đặc điểm nổi bật của thiết bị lập trình này. Nó có khả năng lập trình (Progam), đọc (Read) và kiểm tra mã dữ liệu (Verify Code Data), chống đọc dữ liệu (Write Lock Bits), xoá (Erase) và kiểm tra khoảng trống (Blank Check).Phần cứng (khối lập trình vi điều khiển trên mô hình thí nghiệm) được tạo thành từ một vi điều khiển thông minh mà nó có khả năng hiểu được giao thức truyền nhận dữ liệu với máy tính thông qua port nối tiếp. Trên máy tính, phần mềm MCU Program Loader có khả năng nhận dạng phần cứng và nhận dạng vi mạch vi điều khiển được đưa vào thiết bị. Phần mềm sẽ thực hiện việc truyền dữ liệu từ máy tính sang vi điều khiển cần lập trình hoặc đọc dữ liệu trên vi điều khiển đã được lập trình trở về máy tính. Định dạng dữ liệu sử dụng ở đây phải là tập tin dạng HEX của Intel. Ngoài ra, phần mềm còn hỗ trợ việc chống đọc dữ liệu từ vi điều khiển đã được lập trình (Lock bit).
Các thông số kỹ thuật:
• Hỗ trợ lập trình các vi điều khiển họ 89 của hãng Atmel. • Tự động nhận dạng phần cứng được kết nối và các thiết bị. • So sánh dữ liệu và kiểm tra lỗi. • Khoá các chương trình trên vi mạch sau khi lập trình. • Tự động xoá trước khi ghi dữ liệu mới và tự động kiểm tra dữ liệu sau khi ghi xong. • Chuẩn giao tiếp: RS232 • Tốc độ truyền dữ liệu: 9600 bps, 8 bits, no parity, 1 stop, no flow control. • Định dạng tập tin dữ liệu: Intel 8 bit HEX. • Hệ điều hành làm việc: Windows 95, 98, Me, 2000, NT, XP.
Chương 2: Hướng dẫn sử dụng phần mềm MCU Program Loader.
Giáo trình thực hành vi xử lý. 49 Biên soạn: Phạm Quang Trí
2.2 Hướng dẫn sử dụng phần mềm MCU Program Loader V2.0:
Sử dụng phần mềm tương thích để soạn thảo chương trình điều khiển mong muốn cho vi điều khiển. Sau khi đã soạn thảo xong và kiểm tra hoàn chỉnh chương trình điều khiển, bạn cần phải biên dịch chương trình này sang ngôn ngữ máy ở dạng tập tin Intel 8 bit HEX và lưu vào trong máy tính.
Các bước thao tác để tải một chương trình điều khiển từ máy tính sang chip vi điều khiển bằng cách sử dụng
phần mềm MCU Program Loader V2.0.
• Bước 1: Kết nối cáp RS232 giữa cổng COM của máy tính với cổng COM trên khối lập trình vi điều khiển của mô hình thí nghiệm. Nếu máy tính có nhiều cổng COM thì kết nối với cổng nào cũng được vì phần mềm sẽ tự nhận dạng cổng COM sử dụng.
• Bước 2: Gắn chip vi điều khiển cần lập trình vào trong socket tương ứng. Lưu ý rằng: o Chúng ta chỉ gắn một loại vi điều khiển vào trong socket tương ứng mà thôi (hoặc loại vi điều
khiển 40 chân hoặc loại vi điều khiển 20 chân). Không được gắn cùng lúc hai loại vi điều khiển vào cả hai socket vì như thế thiết bị sẽ không hoạt động được.
o Chân số 1 của chip vi điều khiển phải được gắn sao cho nằm tại vị trí gần cần gạt của socket. o Gạt cần xuống để khoá chặt chip vào mạch.
Chương 2: Hướng dẫn sử dụng phần mềm MCU Program Loader.
Giáo trình thực hành vi xử lý. 50 Biên soạn: Phạm Quang Trí
• Bước 3: Bật các công tắc nguồn trên mô hình để cấp nguồn cho khối lập trình vi điều khiển. Sau đó nhấp đúp chuột vào biểu tượng ProLoad2 để khởi động phần mềm MCU Program Loader V2.0. Giao diện làm việc của phần mềm sẽ được hiện lên như hình minh họa dưới đây.
Lưu ý rằng: o Trường hợp lỗi không kết nối thiết bị (hình minh họa bên trái) hoặc lỗi không nhận dạng chip
(hình minh họa bên phải), giao diện làm việc sẽ như sau:
o Khi xuất hiện các trường hợp lỗi đó ta cần kiểm tra lại: nguồn cấp cho thiết bị, cáp kết nối RS232, chip còn tốt hay đã hỏng, gắn chip vào mạch có đúng chiều hay không, gắn hai chip vào hai socket cùng lúc phải không (chỉ được phép gắn một chip vào một socket bất kỳ mà thôi).
Chương 2: Hướng dẫn sử dụng phần mềm MCU Program Loader.
Giáo trình thực hành vi xử lý. 51 Biên soạn: Phạm Quang Trí
• Bước 4: Tiến hành nạp chương trình từ máy tính vào bộ nhớ của chip hoặc đọc dữ liệu từ bộ nhớ của chip vào trong máy tính.
o Trường hợp nạp chương trình cho chip:
� Nếu bạn muốn khóa không cho người khác đọc chương trình mà mình đã nạp trong chip. Bạn đánh dấu chọn vào hộp chọn Set lock bytes after writing. Ngược lại thì bạn không đánh dấu chọn vào hộp chọn này.
� Nhấp chuột vào nút Send. Một hộp thoại sẽ hiện lên để bạn chọn tập tin chương trình cần nạp cho vi điều khiển.
Chương 2: Hướng dẫn sử dụng phần mềm MCU Program Loader.
Giáo trình thực hành vi xử lý. 52 Biên soạn: Phạm Quang Trí
� Chọn tập tin chương trình cần thiết, sau đó nhấn vào nút Open. Phần mềm sẽ tiến hành xóa dữ liệu cũ có trên chip, nhận dạng lại thiết bị và tiến hành nạp dữ liệu vào chip.
� Quá trình nạp hoàn tất khi xuất hiện thông báo Write Successful trên giao diện làm việc của phần mềm.
Lưu ý rằng: Số lượng byte bộ nhớ đã sử dụng mà phần mềm thông báo sau khi đã nạp chip xong có thể không bằng (nhưng phải là nhỏ hơn) với số lượng byte của tập tin chương trình ngoài thực tế. Lý do là phần mềm chỉ kiểm tra bộ nhớ của chip sau khi đã nạp xong và kết luận là byte đã sử dụng khi giá trị của byte đó khác FFH mà thôi, còn nếu giá trị của byte đó bằng FFH thì phần mềm coi như là byte chưa được sử dụng.
Chương 2: Hướng dẫn sử dụng phần mềm MCU Program Loader.
Giáo trình thực hành vi xử lý. 53 Biên soạn: Phạm Quang Trí
o Trường hợp đọc chương trình trong chip: � Nhấp chuột vào nút Read. Một hộp thoại sẽ hiện lên để bạn nhập vào tên tập tin
chương trình mà tại đó bạn muốn lưu chương trình đọc được từ trong vi điều khiển.
� Bạn cần phải nhập tên tập tin vào mục File name, sau đó nhấp chuột vào nút Save để tiếp tục quá trình xử lý. Phần mềm sẽ tiến hành đọc chương trình trong vi điều khiển và lưu vào máy tính tại nơi mà bạn đã xác định ở trên.
Chương 2: Hướng dẫn sử dụng phần mềm MCU Program Loader.
Giáo trình thực hành vi xử lý. 54 Biên soạn: Phạm Quang Trí
� Quá trình đọc chương trình hoàn tất khi xuất hiện thông báo File Saved trên giao diện làm việc của phần mềm.
• Bước 5: Sau khi hoàn tất quá trình nạp (hoặc đọc chương trình) từ máy tính sang vi điều khiển (hoặc từ vi điều khiển sang máy tính), bạn tắt các công tắc nguồn trên mô hình để ngưng cấp nguồn cho khối lập trình vi điều khiển và tháo chip ra khỏi bộ nạp.
Tiến hành theo đúng trình tự đã hướng dẫn bên trên bạn sẽ hoàn tất một cách rất dễ dàng việc nạp chương trình
(hoặc đọc chương trình) cho chip vi điều khiển. Bạn cần phải chú ý đến các điểm rất quan trọng là:
• Luôn luôn phải tắt nguồn cung cấp cho thiết bị nạp trước khi tiến hành tháo/gắn chip vi điều khiển vào socket nhằm tránh gây hỏng chip vi điều khiển này.
• Số lượng byte bộ nhớ đã sử dụng mà phần mềm thông báo sau khi đã nạp chip xong có thể không bằng (nhưng phải là nhỏ hơn) với số lượng byte của tập tin chương trình ngoài thực tế (là số byte mà bạn thấy trong quá trình phần mềm nạp chương trình cho vi điều khiển).
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
Giáo trình thực hành vi xử lý. 47 Biên soạn: Phạm Quang Trí
MỘT SỐ ĐIỂM CẦN CHÚ Ý KHI KẾT NỐI MẠCH VÀ VIẾT CHƯƠNG TRÌNH
A. Khi kết nối mạch:
• Tên của từng port xuất nhập trên mô hình. • Thứ tự các bit (từ LSB đến MSB) tại các port xuất nhập trên mô hình. • Khi kết nối phải đảm bảo sao cho bit 0 của port vi điều khiển đúng vị trí bit 0 của đối tượng
cần điều khiển. • Khi kết nối đúng vị trí bit 0 thì các bit còn lại sẽ đúng vị trí. • Tất cả các chương trình mẫu trong hệ thống này đều được kiểm tra rất kỹ theo đúng như kết
nối mạch được trình bày. • Nếu một yêu cầu nào đó không đúng thì hãy xem lại phần kết nối và chương trình.
B. Khi viết chương trình:
• Số 0 thường được đánh nhầm là chữ O. • Thường đánh thiếu tiền tố # và hậu tố H đi kèm trong một số trường hợp. • Sau lệnh END thì không còn một hàng hay một ký tự nào (kể cả ký tự trắng) nếu không
chương trình biên dịch sẽ báo lỗi. Lỗi này có thể bỏ qua. • Hãy dùng phím TAB để viết chương trình cho thẳng hàng. Điều này rất có ích cho bạn khi
cần xem lại và kiểm tra lỗi chương trình được nhanh chóng. • Nếu nhập một chương trình nào đó trong tài liệu mà chương trình chạy không đúng như yêu
cầu thì hãy xem kỹ lại có đánh đầy đủ tất cả các lệnh trong chương trình hay chưa? Có thiếu sót gì không? Kết nối mạch có theo như hướng dẫn hay không? Tất cả các chương trình trong tài liệu hướng dẫn đã được chạy thử và luôn luôn đúng.
ĐỌC KỸ HƯỚNG DẪN SỬ DỤNG TRƯỚC KHI THỰC HÀNH
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN
Giáo trình thực hành vi xử lý. 49 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển việc hiển thị bằng cách sử dụng LED đơn. • Viết các chương trình con tạo thời gian trễ sử dụng trong các ứng dụng điều khiển.
B. 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 LED đơn ở các chế độ khác nhau. • Nắm được sơ đồ và nguyên lý hoạt động của khối LED đơn trên mô hình thí nghiệm. • Nắm được nguyên lý điều khiển LED đơn ở các chế độ khác nhau. • Biết cách tính toán các thông số delay của Timer trong vi điều khiển. • Biết cách viết các chương trình tạo thời gian trễ với các khoảng thời gian bất kỳ.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 1: Chương trình điều khiển 8 LED được nối với Port0 sáng tắt (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 50 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J12 (BAR LED 2) ở khối dãy LED với J63 (PORT0 / DATA) ở khối vi điều khiển. • Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H CHOPTAT:
MOV P0,#00H ;LED TAT LCALL DELAY500MS MOV P0,#0FFH ;LED SANG LCALL DELAY500MS SJMP CHOPTAT ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H
RET END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 1: Chương trình điều khiển 8 LED được nối với Port0 sáng tắt (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 51 Biên soạn: Phạm Quang Trí
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển 8 LED được nối với Port3 sáng tắt. • Bài 2: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port0 và Port1) sáng tắt. • Bài 3: Hãy viết chương trình điều khiển 8 LED được nối với Port0 sáng, 8 LED được nối với Port1 tắt rồi
sau đó 8 LED được nối với Port0 tắt, 8 LED được nối với Port1 sáng. • Bài 4: Nếu muốn thay đổi tốc độ sáng tắt nhanh hay chậm thì bạn phải làm gì? Thử thực hiện xem ? • Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 2: Chương trình điều khiển đếm lên nhị phân 8 bit và hiển thị trên 8 LED được nối với Port0 (có sử dụng
bộ đệm đảo).
Giáo trình thực hành vi xử lý. 52 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED DEM LEN NHI PHAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MOV P0,#00H ;LED TAT LCALL DELAY500MS LAP: INC P0 ;TANG NHI PHAN LCALL DELAY500MS SJMP LAP ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển đếm lên nhị phân 8 bit và hiển thị trên 8 LED được nối với Port3. • Bài 2: Hãy viết chương trình điều khiển đếm lên nhị phân 16 LED được nối với hai Port (Port0 và Port1). • Bài 3: Hãy viết chương trình điều khiển tương tự như hai bài tập 1 và 2 nhưng là đếm xuống. • Bài 4: Nếu muốn thay đổi tốc độ đếm nhanh hay chậm thì bạn phải làm gì? Thử thực hiện xem ? • Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 3: Chương trình điều khiển 8 LED được nối với Port0 sáng dần và tắt hết (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 53 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DAN VA TAT HET ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV P0,#00000000B ;HIEN THI 0 LED LCALL DELAY500MS MOV P0,#00000001B ;HIEN THI 1 LED LCALL DELAY500MS MOV P0,#00000011B ;HIEN THI 2 LED LCALL DELAY500MS MOV P0,#00000111B ;HIEN THI 3 LED LCALL DELAY500MS MOV P0,#00001111B ;HIEN THI 4 LED LCALL DELAY500MS MOV P0,#00011111B ;HIEN THI 5 LED LCALL DELAY500MS MOV P0,#00111111B ;HIEN THI 6 LED LCALL DELAY500MS MOV P0,#01111111B ;HIEN THI 7 LED LCALL DELAY500MS MOV P0,#11111111B ;HIEN THI 8 LED LCALL DELAY500MS SJMP MAIN ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DAN VA TAT HET ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV R0,#00H ;BIEN DEM SO TRANG THAI HIEN THI MOV DPTR,#DATADISP ;NAP DIA CHI VUNG DU LIEU LOOP: MOV A,R0 MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG NHO MOV P0,A ;HIEN THI LCALL DELAY500MS INC R0 ;LAY DU LIEU KE TIEP CJNE R0,#9,LOOP ;KIEM TRA SO DU TRANG THAI HIEN THI SJMP MAIN ;QUAY LAI ;****************************************************
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 3: Chương trình điều khiển 8 LED được nối với Port0 sáng dần và tắt hết (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 54 Biên soạn: Phạm Quang Trí
DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DATADISP: ;VUNG DU LIEU HIEN THI DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH END
• Cách 3: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DAN VA TAT HET ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV A,#00H ;KHOI DONG GIA TRI BAN DAU LAP: SETB C ;C=1 MOV P0,A ;HIEN THI LCALL DELAY500MS RLC A ;DICH BIT 1 SANG TRAI KEM C, SANG DAN JNC LAP ;CHUA SANG HET THI LAM TIEP SJMP MAIN ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H
RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển 8 LED được nối với Port3 sáng dần và tắt hết. • Bài 2: Hãy viết chương trình điều khiển 8 LED được nối với Port2 sáng hết và tắt dần. • Bài 3: Hãy viết chương trình điều khiển tương tự như hai bài tập 1 và 2 nhưng là theo chiều ngược lại. • Bài 4: Hãy viết chương trình điều khiển 8 LED được nối với Port1 sáng dần và tắt dần. • Bài 5: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port2 và Port3) sáng dần và tắt dần. • Bài 6: Hãy viết chương trình điều khiển tương tự như hai bài tập 4 và 5 nhưng là theo chiều ngược lại. • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 4: Chương trình điều khiển 8 LED được nối với Port0 sáng đuổi (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 55 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DUOI ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV R0,#00H ;BIEN DEM SO TRANG THAI HIEN THI MOV DPTR,#DATADISP ;NAP DIA CHI VUNG DU LIEU LOOP: MOV A,R0 MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG NHO MOV P0,A ;HIEN THI LCALL DELAY500MS INC R0 ;LAY DU LIEU KE TIEP CJNE R0,#8,LOOP ;KIEM TRA SO DU TRANG THAI HIEN THI SJMP MAIN ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DATADISP: ;VUNG DU LIEU HIEN THI DB 01H,02H,04H,08H,10H,20H,40H,80H END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DUOI ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV A,#01H ;KHOI DONG GIA TRI BAN DAU LAP: MOV P0,A ;HIEN THI LCALL DELAY500MS RL A ;DICH BIT 1 SANG TRAI SJMP LAP ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 4: Chương trình điều khiển 8 LED được nối với Port0 sáng đuổi (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 56 Biên soạn: Phạm Quang Trí
CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển 8 LED được nối với Port3 sáng đuổi. • Bài 2: Hãy viết chương trình điều khiển 8 LED được nối với Port1 tắt đuổi. • Bài 3: Hãy viết chương trình điều khiển tương tự như hai bài tập 1 và 2 nhưng là theo chiều ngược lại. • Bài 4: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port0 và Port1) sáng đuổi. • Bài 5: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port2 và Port3) tắt đuổi. • Bài 6: Hãy viết chương trình điều khiển tương tự như hai bài tập 4 và 5 nhưng là theo chiều ngược lại. • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 5: Chương trình điều khiển 8 LED được nối với Port0 sáng dồn (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 57 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DON VA TAT HET ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV R0,#00H ;BIEN DEM SO TRANG THAI HIEN THI MOV DPTR,#DATADISP ;NAP DIA CHI VUNG DU LIEU LOOP: MOV A,R0 MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG NHO MOV P0,A ;HIEN THI LCALL DELAY500MS INC R0 ;LAY DU LIEU KE TIEP CJNE R0,#36,LOOP ;KIEM TRA SO DU TRANG THAI HIEN THI SJMP MAIN ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DATADISP: ;VUNG DU LIEU HIEN THI DB 01H,02H,04H,08H,10H,20H,40H,80H DB 81H,82H,84H,88H,90H,0A0H,0C0H DB 0C1H,0C2H,0C4H,0C8H,0D0H,0E0H DB 0E1H,0E2H,0E4H,0E8H,0F0H DB 0F1H,0F2H,0F4H,0F8H DB 0F9H,0FAH,0FCH DB 0FDH,0FEH DB 0FFH END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DON VA TAT HET ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV R0,#08H ;LUU SO LAN DICH BIT MOV R1,#00H ;TRANG THAI LED KHI DON LAN DAU TIEN LAP2: MOV R2,00H MOV R3,#01H LAP1: MOV A,R3 ORL A,R1 MOV P0,A ;HIEN THI ACALL DELAY500MS
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 5: Chương trình điều khiển 8 LED được nối với Port0 sáng dồn (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 58 Biên soạn: Phạm Quang Trí
MOV A,R3 ;DON LED RL A MOV R3,A DJNZ R2,LAP1 ;CHUA DON XONG? QUAY LAI DEC R0 ;GIAM SO LAN DON LED SETB C ;THAY DOI TRANG THAI LED CHO LAN DON TIEP THEO MOV A,R1 RRC A MOV R1,A CJNE R0,#00H,LAP2 ;CHUA HOAN TAT CHU TRINH? QUAY LAI MOV P0,#00H ;HIEN THI TAT HET ACALL DELAY500MS SJMP MAIN ;QUAY LAI TU DAU KHI DA XONG ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển 8 LED được nối với Port3 sáng dồn. • Bài 2: Hãy viết chương trình điều khiển 8 LED được nối với Port2 tắt dồn. • Bài 3: Hãy viết chương trình điều khiển tương tự như hai bài tập 1 và 2 nhưng là theo chiều ngược lại. • Bài 4: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port1 và Port3) sáng dồn. • Bài 5: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port2 và Port0) tắt dồn. • Bài 6: Hãy viết chương trình điều khiển tương tự như hai bài tập 4 và 5 nhưng là theo chiều ngược lại. • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 6: Chương trình điều khiển 8 LED được nối với Port0 hoạt động bằng cách tổng hợp các phương pháp điều
khiển đã thực tập (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 59 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED HOAT DONG TONG HOP ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: ACALL CHOPTAT ACALL DEMLEN ACALL SANGDUOI ACALL SANGDAN ACALL SANGDON SJMP MAIN ;**************************************************** CHOPTAT: ;CTC SANG TAT MOV R7,#5 ;SO LAN THUC HIEN SOLAN1: MOV P0,#00H ;LED TAT LCALL DELAY500MS MOV P0,#0FFH ;LED SANG LCALL DELAY500MS DJNZ R7,SOLAN1 ;GIAM SO LAN THUC HIEN BAI RET ;QUAY LAI ;**************************************************** DEMLEN: ;CTC DEM LEN NHI PHAN MOV R7,#2 ;SO LAN THUC HIEN SOLAN2: MOV P0,#00H ;LED TAT LCALL DELAY500MS LAP1: INC P0 ;TANG NHI PHAN LCALL DELAY500MS MOV A,P0 CJNE A,#00H,LAP1 DJNZ R7,SOLAN2 ;GIAM SO LAN THUC HIEN BAI RET ;QUAY LAI ;**************************************************** SANGDUOI: ;CTC SANG DUOI MOV R7,#5 ;SO LAN THUC HIEN SOLAN3: MOV A,#01H ;KHOI DONG GIA TRI BAN DAU CLR C LAP2: MOV P0,A ;HIEN THI LCALL DELAY500MS RLC A ;DICH BIT 1 SANG TRAI JNC LAP2 ;QUAY LAI DJNZ R7,SOLAN3 ;GIAM SO LAN THUC HIEN BAI RET ;**************************************************** SANGDAN: ;CTC SANG DAN MOV R7,#5 ;SO LAN THUC HIEN SOLAN4: MOV A,#00H ;KHOI DONG GIA TRI BAN DAU LAP3: SETB C ;C=1 MOV P0,A ;HIEN THI LCALL DELAY500MS RLC A ;DICH BIT 1 SANG TRAI KEM C, SANG DAN JNC LAP3 ;CHUA SANG HET THI LAM TIEP DJNZ R7,SOLAN4 ;GIAM SO LAN THUC HIEN BAI RET ;QUAY LAI
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 6: Chương trình điều khiển 8 LED được nối với Port0 hoạt động bằng cách tổng hợp các phương pháp điều
khiển đã thực tập (có sử dụng bộ đệm đảo).
Giáo trình thực hành vi xử lý. 60 Biên soạn: Phạm Quang Trí
;**************************************************** SANGDON: ;CTC SANG DON MOV R7,#3 ;SO LAN THUC HIEN SOLAN5: MOV R0,#08H ;LUU SO LAN DICH BIT MOV R1,#00H ;TRANG THAI LED KHI DON LAN DAU TIEN LAP4: MOV R2,00H MOV R3,#01H LAP5: MOV A,R3 ORL A,R1 MOV P0,A ;HIEN THI ACALL DELAY500MS MOV A,R3 ;DON LED RL A MOV R3,A DJNZ R2,LAP5 ;CHUA DON XONG? QUAY LAI DEC R0 ;GIAM SO LAN DON LED SETB C ;THAY DOI TRANG THAI LED CHO LAN DON TIEP THEO MOV A,R1 RRC A MOV R1,A CJNE R0,#00H,LAP4 ;CHUA HOAN TAT CHU TRINH? QUAY LAI MOV P0,#00H ;HIEN THI TAT HET ACALL DELAY500MS DJNZ R7,SOLAN5 ;GIAM SO LAN THUC HIEN BAI RET ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0F6H MOV TL0,#3CH SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển sao cho phần sáng tắt của chương trình ví dụ trên được thực hiện
10 lần (các phần khác không thay đổi). • Bài 2: Hãy viết chương trình điều khiển sao cho phần đếm lên nhị phân chương trình ví dụ trên được thực
hiện 10 lần (các phần khác không thay đổi). • Bài 3: Hãy viết chương trình điều khiển sao cho phần sáng dần và tắt dần của chương trình ví dụ trên được
thực hiện 10 lần (các phần khác không thay đổi). • Bài 4: Hãy viết chương trình điều khiển sao cho phần sáng đuổi của chương trình ví dụ trên được thực hiện
10 lần (các phần khác không thay đổi). • Bài 5: Hãy viết chương trình điều khiển sao cho phần sáng dồn của chương trình ví dụ trên được thực hiện
10 lần (các phần khác không thay đổi). • Bài 6: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 7: Chương trình con điều khiển tạo thời gian trễ 200µµµµs, 20ms, 2s sử dụng Timer.
Giáo trình thực hành vi xử lý. 61 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Ứng dụng chương trình tạo thời gian trễ 200µµµµs: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H CHOPTAT:
MOV P0,#00H ;LED TAT LCALL DELAY200US MOV P0,#0FFH ;LED SANG LCALL DELAY200US SJMP CHOPTAT ;QUAY LAI ;*************************************************** ;CHUONG TRINH CON TAO THOI GIAN TRE ;*************************************************** ;TIME DELAY: 200US ;*************************************************** ;TUONG DOI: TIME = [R0]*[R1]*T ;CHINH XAC: TIME = 2T+2T+1T+(1T+2T*[R1]+2T)*[R0]+2T+2T+2T ;VOI T LA CHU KY MAY ;*************************************************** DELAY200US: PUSH 00H PUSH 01H MOV R0,#20 DEL: MOV R1,#10 DJNZ R1,$ DJNZ R0,DEL POP 01H POP 00H RET END
• Ứng dụng chương trình tạo thời gian trễ 20ms: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H CHOPTAT:
MOV P0,#00H ;LED TAT LCALL DELAY20MS MOV P0,#0FFH ;LED SANG LCALL DELAY20MS SJMP CHOPTAT ;QUAY LAI ;*************************************************** ;CHUONG TRINH CON TAO THOI GIAN TRE ;*************************************************** ;TIME DELAY: 20MS ;*************************************************** ;TUONG DOI: TIME = (10000H-[TH0,TL0]H)*T ;CHINH XAC: TIME = 2T+2T+2T+1T+(10000H-[TH0,TL0]H)*T+1T+1T++2T ;VOI T LA CHU KY MAY ;*************************************************** DELAY20MS: MOV TMOD,#01H MOV TH0,#0B1H MOV TL0,#0E0H SETB TR0 JNB TF0,$
A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 7: Chương trình con điều khiển tạo thời gian trễ 200µµµµs, 20ms, 2s sử dụng Timer.
Giáo trình thực hành vi xử lý. 62 Biên soạn: Phạm Quang Trí
CLR TR0 CLR TF0 RET
END
• Ứng dụng chương trình tạo thời gian trễ 2s: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H CHOPTAT:
MOV P0,#00H ;LED TAT LCALL DELAY2S MOV P0,#0FFH ;LED SANG LCALL DELAY2S SJMP CHOPTAT ;QUAY LAI ;*************************************************** ;CHUONG TRINH CON TAO THOI GIAN TRE ;*************************************************** ;TIME DELAY: 2S ;*************************************************** ;TUONG DOI: TIME = (10000H-[TH0,TL0]H)*[R0]*T ;CHINH XAC: TIME = 2T+1T+2T+(2T+2T+1T+(10000H-[TH0,TL0]H)*T+1T+1T+2T)*[R0]+2T+2T ;VOI T LA CHU KY MAY ;*************************************************** DELAY2S: PUSH 00H MOV R0,#200 MOV TMOD,#01H DEL: MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,DEL POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình con điều khiển tạo thời gian trễ 250µs sử dụng Timer. • Bài 2: Hãy viết chương trình con điều khiển tạo thời gian trễ 1ms sử dụng Timer. • Bài 3: Hãy viết chương trình con điều khiển tạo thời gian trễ 100ms sử dụng Timer. • Bài 4: Hãy viết chương trình con điều khiển tạo thời gian trễ 1s sử dụng Timer. • Bài 5: Hãy viết chương trình con điều khiển tạo thời gian trễ 3s sử dụng Timer. • Bài 6: Hãy viết chương trình con điều khiển tạo thời gian trễ 10s sử dụng Timer. • Bài 7: Hãy viết chương trình con điều khiển tạo thời gian trễ 1 phút sử dụng Timer. • Bài 8: Hãy viết chương trình con điều khiển tạo thời gian trễ 1 giờ sử dụng Timer. • Bài 9: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN.
Giáo trình thực hành vi xử lý. 64 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển việc hiển thị bằng cách sử dụng LED 7 đoạn theo nhiều phương pháp khác nhau. • Điều khiển việc hiển thị các thông tin và số liệu bằng cách sử dụng các bộ hiển thị dùng LED 7 đoạn.
B. 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 LED 7 đoạn ở chế độ: o Không đa hợp và ngõ vào dữ liệu kiểu BCD. o Không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn. o Đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải đa hợp bên ngoài). o Đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch giải đa hợp bên ngoài). o Đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa hợp bên ngoài). o Đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa hợp bên ngoài).
• Nắm được sơ đồ và nguyên lý hoạt động của khối LED 7 đoạn trên mô hình thí nghiệm. • Nắm được sơ đồ và nguyên lý điều khiển LED 7 đoạn theo phương pháp: o Không đa hợp và ngõ vào dữ liệu kiểu BCD. o Không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn. o Đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải đa hợp bên ngoài). o Đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch giải đa hợp bên ngoài). o Đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa hợp bên ngoài). o Đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa hợp bên ngoài).
• Biết cách viết các chương trình điều khiển để hiển thị các thông tin và số liệu trên các bộ hiển thị dùng LED 7 đoạn.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu BCD)
Bài 1: Chương trình điều khiển hiển thị số 7 trên LED3 (LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 65 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối công tắc và gạt tất cả
các công tắc ở vị trí ON (vị trí GND). • Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J8 (7SEG4 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J16 (BCD IN 1-2) ở khối giải mã. • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn
+5V ở khối nguồn.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 7 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0. ;CHE DO: NON-MULTI, BCD IN, CA ;*************************************************** ORG 00H MOV P0,#07H ;XUAT HIEN THI SJMP $ END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu BCD)
Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED3 (LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 66 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0. ;CHE DO: NON-MULTI, BCD IN, CA ;*************************************************** ORG 00H MAIN: MOV P0,#00H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#01H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#02H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#03H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#04H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#05H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#06H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#07H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#08H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#09H ;XUAT HIEN THI LCALL DELAY500MS SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0. ;CHE DO: NON-MULTI, BCD IN, CA ;*************************************************** ORG 00H MAIN: MOV A,#00H ;GIA TRI BAT DAU LOOP: MOV P0,A ;XUAT HIEN THI LCALL DELAY500MS INC A ;TANG GIA TRI CJNE A,#10,LOOP
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu BCD)
Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED3 (LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 67 Biên soạn: Phạm Quang Trí
SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 3 trên LED1. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0 lên 5 trên LED2. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5 xuống 0 trên LED2. • Bài 4: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu BCD)
Bài 3: Chương trình điều khiển hiển thị số 35 trên hai LED (LED2 và LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 68 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối công tắc và gạt tất cả
các công tắc ở vị trí ON (vị trí GND). • Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J8 (7SEG4 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J17 (7SEG OUT 2) ở khối giải mã với J7 (7SEG5 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J16 (BCD IN 1-2) ở khối giải mã. • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn
+5V ở khối nguồn.
BCD IN
1-2
POWER
7 SEG
OUT 1
7 SEG
OUT 2 BCD IN
3-4
7 SEG
OUT 3
7 SEG
OUT 4
DEC.
2-4
DEC.
3-8
DEC. OUTDEC.
2-4DEC.
OUT
DEC.
OUT
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
33
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 35 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0. ;CHE DO: NON-MULTI, BCD IN, CA ;*************************************************** $MOD51 ORG 00H MOV P0,#35H ;XUAT HIEN THI SJMP $ END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu BCD)
Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED2 và LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 69 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 3.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00 -> 99 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0. ;CHE DO: NON-MULTI, BCD IN, CA ;*************************************************** ORG 00H MAIN: MOV A,#00H ;GIA TRI BAT DAU LOOP: MOV P0,A ;XUAT HIEN THI LCALL DELAY500MS ADD A,#1 ;TANG GIA TRI DA A CJNE A,#00,LOOP SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 53 trên hai LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 59 trên hai LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59 xuống 00 trên hai LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 23 trên hai LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 23 xuống 00 trên hai LED. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu BCD)
Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED (LED0 và LED1 được nối với Port1, LED2 và LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 70 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối công tắc và gạt tất cả
các công tắc ở vị trí ON (vị trí GND). • Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J8 (7SEG4 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J17 (7SEG OUT 2) ở khối giải mã với J7 (7SEG5 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J19 (7SEG OUT 3) ở khối giải mã với J6 (7SEG6 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J21 (7SEG OUT 4) ở khối giải mã với J5 (7SEG7 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J16 (BCD IN 1-2) ở khối giải mã. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J20 (BCD IN 3-4) ở khối giải mã. • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn
+5V ở khối nguồn.
BCD IN
1-2
POWER
7 SEG
OUT 1
7 SEG
OUT 2 BCD IN
3-4
7 SEG
OUT 3
7 SEG
OUT 4
DEC.
2-4
DEC.
3-8
DEC. OUTDEC.
2-4DEC.
OUT
DEC.
OUT
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
33
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1234 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0, PORT1. ;CHE DO: NON-MULTI, BCD IN, CA ;*************************************************** ORG 00H MOV P0,#34H ;XUAT HIEN THI MOV P1,#12H ;XUAT HIEN THI SJMP $ END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 6)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu BCD)
Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 đến 9999 trên bốn LED (LED0 và LED1 được nối với Port1, LED2 và LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 71 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 5.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0000 -> 9999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0, PORT1. ;CHE DO: NON-MULTI, BCD IN, CA ;*************************************************** ORG 00H MAIN: MOV R0,#00H ;GIA TRI BAT DAU MOV R1,#00H LOOP: MOV P0,R0 ;XUAT HIEN THI MOV P1,R1 LCALL DELAY500MS MOV A,R0 ADD A,#1 ;TANG GIA TRI (CHUC - DON VI) DA A MOV R0,A CJNE A,#00,LOOP ;KIEM TRA GIA TRI > 99 MOV A,R1 ADD A,#1 ;TANG GIA TRI (TRAM - NGAN) DA A MOV R1,A CJNE A,#00,LOOP ;KIEM TRA GIA TRI > 99 SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 5678 trên bốn LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 5999 trên bốn LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5999 xuống 0000 trên bốn LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 1234 trên bốn LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 1234 xuống 0000 trên bốn LED. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn)
Bài 1: Chương trình điều khiển hiển thị số 7 trên LED3 (LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 72 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối công tắc và gạt tất cả
các công tắc ở vị trí ON (vị trí GND). • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J8 (7SEG4 IN) ở khối LED 7 đoạn. • Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 7 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0. ;CHE DO: NON-MULTI, 7SEG IN (DP -> A), CA ;*************************************************** ORG 00H MOV P0,#0F8H ;XUAT HIEN THI SJMP $ END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn)
Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED3 (LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 73 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0. ;CHE DO: NON-MULTI, 7SEG IN (DP -> A), CA ;*************************************************** ORG 00H MAIN: MOV P0,#0C0H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#0F9H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#0A4H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#0B0H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#99H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#92H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#82H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#0F8H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#80H ;XUAT HIEN THI LCALL DELAY500MS MOV P0,#90H ;XUAT HIEN THI LCALL DELAY500MS SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0. ;CHE DO: NON-MULTI, 7SEG IN (DP -> A), CA ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MOV R0,#00H ;VI TRI DU LIEU HIEN THI TRONG VUNG MA DISP: MOV A,R0 ;NAP VI TRI DU LIEU MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P0,A ;XUAT HIEN THI
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn)
Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED3 (LED3 được nối với Port0).
Giáo trình thực hành vi xử lý. 74 Biên soạn: Phạm Quang Trí
LCALL DELAY500MS INC R0 CJNE R0,#10,DISP ;KIEM TRA VI TRI DU LIEU > 9 (DEM XONG) SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** CODEDISP: ;VUNG DU LIEU HIEN THI DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 3 trên LED2. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0 lên 5 trên LED3. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5 xuống 0 trên LED3. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0 lên F trên LED0. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ F xuống 0 trên LED0. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn)
Bài 3: Chương trình điều khiển hiển thị số 35 trên hai LED (LED3 được nối với Port0, LED2 được nối với Port1).
Giáo trình thực hành vi xử lý. 75 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối công tắc và gạt tất cả
các công tắc ở vị trí ON (vị trí GND). • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J8 (7SEG4 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J7 (7SEG5 IN) ở khối LED 7 đoạn. • Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 35 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0, PORT1. ;CHE DO: NON-MULTI, 7SEG IN (DP -> A), CA ;*************************************************** ORG 00H MAIN: MOV P0,#92H ;XUAT HIEN THI MOV P1,#0B0H ;XUAT HIEN THI SJMP $ END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn)
Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED3 được nối với Port0, LED2 được nối với Port1).
Giáo trình thực hành vi xử lý. 76 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 3.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00 -> 99 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0, PORT1. ;CHE DO: NON-MULTI, 7SEG IN (DP -> A), CA ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MOV R0,#00H ;VI TRI DU LIEU HIEN THI TRONG VUNG MA MOV R1,#00H DISP: MOV A,R0 ;NAP VI TRI DU LIEU MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P0,A ;XUAT HIEN THI (DON VI) MOV A,R1 ;NAP VI TRI DU LIEU MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P1,A ;XUAT HIEN THI (CHUC) LCALL DELAY500MS INC R0 ;TANG DON VI CJNE R0,#10,DISP ;KIEM TRA DON VI > 9 (DEM XONG) MOV R0,#00H ;XOA DON VI (DON VI = 0) INC R1 ;TANG CHUC CJNE R1,#10,DISP ;KIEM TRA CHUC > 9 (DEM XONG) SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** CODEDISP: ;VUNG DU LIEU HIEN THI DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 53 trên hai LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 59 trên hai LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 23 trên hai LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 23 xuống 00 trên hai LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00 lên FF trên hai LED. • Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ AB xuống 00 trên hai LED. • Bài 7: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn)
Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED (LED3 được nối với Port0, LED2 được nối với Port1, LED1 được nối với Port2 và LED0 được nối với Port3).
Giáo trình thực hành vi xử lý. 77 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J2 (SEL LED IN) ở khối LED 7 đoạn với J34 (SWITCH) ở khối công tắc và gạt tất cả
các công tắc ở vị trí ON (vị trí GND). • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J5 (7SEG7 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J6 (7SEG6 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J65 (PORT2 / A8..A15) ở khối vi điều khiển với J7 (7SEG5 IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J66 (PORT3 / FUNCTION) ở khối vi điều khiển với J8 (7SEG4 IN) ở khối LED 7
đoạn. • Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1234 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0, PORT1, PORT2, PORT3. ;CHE DO: NON-MULTI, 7SEG IN (DP -> A), CA ;*************************************************** ORG 00H MAIN: MOV P0,#99H ;XUAT HIEN THI MOV P1,#0B0H ;XUAT HIEN THI MOV P2,#0A4H ;XUAT HIEN THI MOV P3,#0F9H ;XUAT HIEN THI SJMP $ END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 6)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn)
Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED3 được nối với Port0, LED2 được nối với Port1, LED1 được nối với Port2 và LED0 được nối với Port3).
Giáo trình thực hành vi xử lý. 78 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 5.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0000 -> 9999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0, PORT1, PORT2, PORT3. ;CHE DO: NON-MULTI, 7SEG IN (DP -> A), CA ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MOV R0,#00H ;VI TRI DU LIEU HIEN THI TRONG VUNG MA MOV R1,#00H MOV R2,#00H MOV R3,#00H DISP: MOV A,R0 ;NAP VI TRI DU LIEU MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P0,A ;XUAT HIEN THI (DON VI) MOV A,R1 ;NAP VI TRI DU LIEU MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P1,A ;XUAT HIEN THI (CHUC) MOV A,R2 ;NAP VI TRI DU LIEU MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P2,A ;XUAT HIEN THI (TRAM) MOV A,R3 ;NAP VI TRI DU LIEU MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P3,A ;XUAT HIEN THI (NGAN) LCALL DELAY500MS INC R0 ;TANG DON VI CJNE R0,#10,DISP ;KIEM TRA DON VI > 9 (DEM XONG) MOV R0,#00H ;XOA DON VI (DON VI = 0) INC R1 ;TANG CHUC CJNE R1,#10,DISP ;KIEM TRA CHUC > 9 (DEM XONG) MOV R1,#00H ;XOA CHUC (CHUC = 0) INC R2 ;TANG TRAM CJNE R2,#10,DISP ;KIEM TRA TRAM > 9 (DEM XONG) MOV R2,#00H ;XOA TRAM (TRAM = 0) INC R3 ;TANG NGAN CJNE R3,#10,DISP ;KIEM TRA NGAN > 9 (DEM XONG) SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** CODEDISP: ;VUNG DU LIEU HIEN THI DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập:
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn)
Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED3 được nối với Port0, LED2 được nối với Port1, LED1 được nối với Port2 và LED0 được nối với Port3).
Giáo trình thực hành vi xử lý. 79 Biên soạn: Phạm Quang Trí
• Bài 1: Hãy viết chương trình điều khiển hiển thị số 5678 trên bốn LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 5999 trên bốn LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5999 xuống 0000 trên bốn LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 1234 trên bốn LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 1234 xuống 0000 trên bốn LED. • Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0000 lên FFFF trên bốn LED. • Bài 7: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ FFFF xuống 0000 trên bốn LED. • Bài 8: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0000 lên ABCD trên bốn LED. • Bài 9: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ ABCD xuống 0000 trên bốn LED. • Bài 10: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 11: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 1: Chương trình điều khiển hiển thị số 1 trên LED7 (LED7 được nối với Port0, tín hiệu SEL7 được nối với
P1.0).
Giáo trình thực hành vi xử lý. 80 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J16 (BCD IN 1-2) ở khối giải mã. • Dùng dây bus 4 nối J64 (PORT1) ở khối vi điều khiển với J1 (SEL IN1) ở khối LED 7 đoạn (chú ý là ta
chỉ nối 4 bit thấp của J64 và J1 với nhau). • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn
+5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
BCD IN
1-2
POWER
7 SEG
OUT 1
7 SEG
OUT 2 BCD IN
3-4
7 SEG
OUT 3
7 SEG
OUT 4
DEC.
2-4
DEC.
3-8
DEC. OUTDEC.
2-4DEC.
OUT
DEC.
OUT
3
4
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#01H ;XUAT SO HIEN THI SJMP $ END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0, tín hiệu
SEL7 được nối với P1.0).
Giáo trình thực hành vi xử lý. 81 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#00H ;SO 0 LCALL DELAY500MS MOV P0,#01H ;SO 1 LCALL DELAY500MS MOV P0,#02H ;SO 2 LCALL DELAY500MS MOV P0,#03H ;SO 3 LCALL DELAY500MS MOV P0,#04H ;SO 4 LCALL DELAY500MS MOV P0,#05H ;SO 5 LCALL DELAY500MS MOV P0,#06H ;SO 6 LCALL DELAY500MS MOV P0,#07H ;SO 7 LCALL DELAY500MS MOV P0,#08H ;SO 8 LCALL DELAY500MS MOV P0,#09H ;SO 9 LCALL DELAY500MS SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0, tín hiệu
SEL7 được nối với P1.0).
Giáo trình thực hành vi xử lý. 82 Biên soạn: Phạm Quang Trí
MOV A,#00H ;GIA TRI BAT DAU LOOP: MOV P0,A ;XUAT HIEN THI LCALL DELAY500MS INC A ;TANG GIA TRI CJNE A,#10,LOOP SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 5 trên LED5. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0 lên 5 trên LED4. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5 xuống 0 trên LED4. • Bài 4: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL7 và
SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 83 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#02H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#0FDH ;CHO PHEP LED 6 SANG MOV P0,#01H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#100H ;NAP DIA CHI VUNG DU LIEU DISP: MOV R0,#02H ;SO LAN QUET (SO LED) MOV R1,#00H ;NAP DIA CHI (OFFSET) CUA DU LIEU MOV R2,#10H ;NAP DIA CHI (OFFSET) CUA MA QUET DISP1: MOV A,R1 ;LAY DU LIEU MOVC A,@A+DPTR MOV P0,A ;XUAT DU LIEU HIEN THI MOV A,R2 ;LAY MA QUET MOVC A,@A+DPTR MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOVÁ,#0FFH ;CHONG LEM INC R1 ;DIA CHI (OFFSET) CUA DU LIEU KE TIEP INC R2 ;DIA CHI (OFFSET) CUA MA QUET KE TIEP DJNZ R0,DISP1 SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL7 và
SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 84 Biên soạn: Phạm Quang Trí
PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** ORG 100H CODEDISP: ;VUNG DU LIEU HIEN THI DB 02H,01H ORG 110H CODESCAN: ;VUNG MA QUET DB 0FEH,0FDH END
• Cách 3: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV 61H,#01H ;HANG CHUC MOV 60H,#02H ;HANG DON VI LCALL DISP7SEGMUL2 ;QUET HIEN THI SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (2 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL2. ;INPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL2: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0FDH ;MA QUET MOV R0,#61H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#05FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL7 và
SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 85 Biên soạn: Phạm Quang Trí
POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED7, LED6 được nối với
Port0; tín hiệu SEL7 và SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 86 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00 -> 99 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV 61H,#00H ;HANG CHUC MOV 60H,#00H ;HANG DON VI MP1: LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI INC 60H ;TANG HANG DON VI MOV A,60H CJNE A,#10,MP1 ;KIEM TRA HANG DON VI > 9 MOV 60H,#00H ;XOA HANG DON VI (DON VI = 0) INC 61H ;TANG HANG CHUC MOV A,61H CJNE A,#10,MP1 ;KIEM TRA HANG CHUC > 9 SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (2 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL2. ;INPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL2: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0FDH ;MA QUET MOV R0,#61H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#05FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL2 ;GOI CTC QUET HIEN THI JNB TF0,SCAN
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED7, LED6 được nối với
Port0; tín hiệu SEL7 và SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 87 Biên soạn: Phạm Quang Trí
CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 34 trên hai LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 59 trên hai LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59 xuống 00 trên hai LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 23 trên hai LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 23 xuống 00 trên hai LED. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED (LED7, LED6, LED5 và LED4 được nối với
Port0; tín hiệu SEL7, SEL6, SEL5 và SEL4 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
Giáo trình thực hành vi xử lý. 88 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1234 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#04H ;HIEN THI SO 4 LCALL DELAYLED MOV P1,#0FDH ;CHO PHEP LED 6 SANG MOV P0,#03H ;HIEN THI SO 3 LCALL DELAYLED MOV P1,#0FBH ;CHO PHEP LED 5 SANG MOV P0,#02H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#0F7H ;CHO PHEP LED 4 SANG MOV P0,#01H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 6)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL7, SEL6, SEL5 và SEL4 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
Giáo trình thực hành vi xử lý. 89 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0000 -> 9999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV 63H,#00H ;HANG NGAN MOV 62H,#00H ;HANG TRAM MOV 61H,#00H ;HANG CHUC MOV 60H,#00H ;HANG DON VI MP1: LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI INC 60H ;TANG HANG DON VI MOV A,60H CJNE A,#10,MP1 ;KIEM TRA HANG DON VI > 9 MOV 60H,#00H ;XOA HANG DON VI (DON VI = 0) INC 61H ;TANG HANG CHUC MOV A,61H CJNE A,#10,MP1 ;KIEM TRA HANG CHUC > 9 MOV 61H,#00H ;XOA HANG CHUC (CHUC = 0) INC 62H ;TANG HANG TRAM MOV A,62H CJNE A,#10,MP1 ;KIEM TRA HANG TRAM > 9 MOV 62H,#00H ;XOA HANG TRAM (TRAM = 0) INC 63H ;TANG HANG NGAN MOV A,63H CJNE A,#10,MP1 ;KIEM TRA HANG NGAN > 9 SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL4. ;INPUT: 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL4: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0F7H ;MA QUET MOV R0,#63H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL7, SEL6, SEL5 và SEL4 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
Giáo trình thực hành vi xử lý. 90 Biên soạn: Phạm Quang Trí
;*************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL4 ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 5678 trên bốn LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 5999 trên bốn LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5999 xuống 0000 trên bốn LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 1234 trên bốn LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 1234 xuống 0000 trên bốn LED. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED (LED0 đến LED7 được nối với Port0; tín
hiệu SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7).
Giáo trình thực hành vi xử lý. 91 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7
đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng).
• Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J16 (BCD IN 1-2) ở khối giải mã. • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn
+5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
BCD IN
1-2
POWER
7 SEG
OUT 1
7 SEG
OUT 2 BCD IN
3-4
7 SEG
OUT 3
7 SEG
OUT 4
DEC.
2-4
DEC.
3-8
DEC. OUTDEC.
2-4DEC.
OUT
DEC.
OUT
3
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12345678 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#08H ;HIEN THI SO 8 LCALL DELAYLED MOV P1,#0FDH ;CHO PHEP LED 6 SANG MOV P0,#07H ;HIEN THI SO 7 LCALL DELAYLED MOV P1,#0FBH ;CHO PHEP LED 5 SANG MOV P0,#06H ;HIEN THI SO 6 LCALL DELAYLED MOV P1,#0F7H ;CHO PHEP LED 4 SANG MOV P0,#05H ;HIEN THI SO 5 LCALL DELAYLED MOV P1,#0EFH ;CHO PHEP LED 3 SANG MOV P0,#04H ;HIEN THI SO 4 LCALL DELAYLED MOV P1,#0DFH ;CHO PHEP LED 2 SANG MOV P0,#03H ;HIEN THI SO 3 LCALL DELAYLED MOV P1,#0BFH ;CHO PHEP LED 1 SANG MOV P0,#02H ;HIEN THI SO 2
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED (LED0 đến LED7 được nối với Port0; tín
hiệu SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7).
Giáo trình thực hành vi xử lý. 92 Biên soạn: Phạm Quang Trí
LCALL DELAYLED MOV P1,#07FH ;CHO PHEP LED 0 SANG MOV P0,#01H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 8)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7).
Giáo trình thực hành vi xử lý. 93 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 7.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00000000 -> 99999999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV 67H,#00H ;HANG CH TRIEU MOV 66H,#00H ;HANG TRIEU MOV 65H,#00H ;HANG TR NGAN MOV 64H,#00H ;HANG CH NGAN MOV 63H,#00H ;HANG NGAN MOV 62H,#00H ;HANG TRAM MOV 61H,#00H ;HANG CHUC MOV 60H,#00H ;HANG DON VI MP1: LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI INC 60H ;TANG HANG DON VI MOV A,60H CJNE A,#10,MP1 ;KIEM TRA HANG DON VI > 9 MOV 60H,#00H ;XOA HANG DON VI (DON VI = 0) INC 61H ;TANG HANG CHUC MOV A,61H CJNE A,#10,MP1 ;KIEM TRA HANG CHUC > 9 MOV 61H,#00H ;XOA HANG CHUC (CHUC = 0) INC 62H ;TANG HANG TRAM MOV A,62H CJNE A,#10,MP1 ;KIEM TRA HANG TRAM > 9 MOV 62H,#00H ;XOA HANG TRAM (TRAM = 0) INC 63H ;TANG HANG NGAN MOV A,63H CJNE A,#10,MP1 ;KIEM TRA HANG NGAN > 9 MOV 63H,#00H ;XOA HANG NGAN (NGAN = 0) INC 64H ;TANG HANG CH NGAN MOV A,64H CJNE A,#10,MP1 ;KIEM TRA HANG CH NGAN > 9 MOV 64H,#00H ;XOA HANG CH NGAN (CH NGAN = 0) INC 65H ;TANG HANG TR NGAN MOV A,65H CJNE A,#10,MP1 ;KIEM TRA HANG TR NGAN > 9 MOV 65H,#00H ;XOA HANG TR NGAN (TR NGAN = 0) INC 66H ;TANG HANG TRIEU MOV A,66H CJNE A,#10,MP1 ;KIEM TRA HANG TRIEU > 9 MOV 66H,#00H ;XOA HANG TRIEU (TRIEU = 0) INC 67H ;TANG HANG CH TRIEU MOV A,67H CJNE A,#10,MP1 ;KIEM TRA HANG CH TRIEU > 9 SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL8. ;INPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU). ; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN).
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (không dùng vi mạch giải
đa hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7).
Giáo trình thực hành vi xử lý. 94 Biên soạn: Phạm Quang Trí
; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P2 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL8: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#7FH ;MA QUET MOV R0,#67H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LEM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL8 ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 87654321 trên tám LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 59999999 trên tám LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59999999 xuống 00000000 trên tám LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 12345678 trên tám LED. • Bài 5: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 6: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 1: Chương trình điều khiển hiển thị số 1 trên LED7 (LED7 được nối với Port0, tín hiệu SEL7 được nối với
P1.0).
Giáo trình thực hành vi xử lý. 95 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối giải mã. • Dùng dây bus 4 nối J64 (PORT1) ở khối vi điều khiển với J1 (SEL IN1) ở khối LED 7 đoạn (chú ý là ta
chỉ nối 4 bit thấp của J64 và J1 với nhau). • Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
4
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#0F9H ;XUAT SO HIEN THI SJMP $ END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0, tín hiệu
SEL7 được nối với P1.0).
Giáo trình thực hành vi xử lý. 96 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#0C0H ;SO 0 LCALL DELAY500MS MOV P0,#0F9H ;SO 1 LCALL DELAY500MS MOV P0,#0A4H ;SO 2 LCALL DELAY500MS MOV P0,#0B0H ;SO 3 LCALL DELAY500MS MOV P0,#99H ;SO 4 LCALL DELAY500MS MOV P0,#92H ;SO 5 LCALL DELAY500MS MOV P0,#82H ;SO 6 LCALL DELAY500MS MOV P0,#0F8H ;SO 7 LCALL DELAY500MS MOV P0,#80H ;SO 8 LCALL DELAY500MS MOV P0,#90H ;SO 9 LCALL DELAY500MS SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0, tín hiệu
SEL7 được nối với P1.0).
Giáo trình thực hành vi xử lý. 97 Biên soạn: Phạm Quang Trí
MOV R0,#00H ;VI TRI DU LIEU HIEN THI TRONG VUNG MA MOV P1,#0FEH ;CHO PHEP LED 7 SANG DISP: MOV A,R0 ;NAP VI TRI DU LIEU MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P0,A ;XUAT HIEN THI LCALL DELAY500MS INC R0 CJNE R0,#10,DISP ;KIEM TRA VI TRI DU LIEU > 9 (DEM XONG) SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** CODEDISP: ;VUNG DU LIEU HIEN THI DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 5 trên LED5. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0 lên 5 trên LED4. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5 xuống 0 trên LED4. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0 lên F trên LED4. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ F xuống 0 trên LED4. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL7 và
SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 98 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#0A4H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#0FDH ;CHO PHEP LED 6 SANG MOV P0,#0F9H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#100H ;NAP DIA CHI VUNG DU LIEU DISP: MOV R0,#02H ;SO LAN QUET (SO LED) MOV R1,#00H ;NAP DIA CHI (OFFSET) CUA DU LIEU MOV R2,#10H ;NAP DIA CHI (OFFSET) CUA MA QUET DISP1: MOV A,R1 ;LAY DU LIEU MOVC A,@A+DPTR MOV P0,A ;XUAT DU LIEU HIEN THI MOV A,R2 ;LAY MA QUET MOVC A,@A+DPTR MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P2,#0FFH ;CHONG LEM INC R1 ;DIA CHI (OFFSET) CUA DU LIEU KE TIEP INC R2 ;DIA CHI (OFFSET) CUA MA QUET KE TIEP DJNZ R0,DISP1 SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL7 và
SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 99 Biên soạn: Phạm Quang Trí
PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** ORG 100H CODEDISP: ;VUNG DU LIEU HIEN THI DB 0A4H,0F9H ORG 110H CODESCAN: ;VUNG MA QUET DB 0FEH,0FDH END
• Cách 3: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV R7,#12H ;SO HIEN THI LCALL BCD2TO7SEG ;GIAI MA BCD SANG MA 7 DOAN LCALL DISP7SEGMUL2 ;QUET HIEN THI SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (2 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL2. ;INPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL2: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0FDH ;MA QUET MOV R0,#61H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#05FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL7 và
SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 100 Biên soạn: Phạm Quang Trí
POP 01H POP 00H RET ;*************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (1 SO BCD NEN). ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD2TO7SEG. ;INPUT: R7 = SO BCD NEN (CHUC - DON VI). ;OUTPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;*************************************************** BCD2TO7SEG: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET ;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED7, LED6 được nối với
Port0; tín hiệu SEL7 và SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 101 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00 -> 99 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV R7,#00H ;SO HIEN THI BAN DAU MP1: LCALL BCD2TO7SEG ;GIAI MA BCD SANG MA 7 DOAN LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI MOV A,R7 ;TANG GIA TRI ADD A,#1 DA A MOV R7,A CJNE A,#00,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (2 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL2. ;INPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL2: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0FDH ;MA QUET MOV R0,#61H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#05FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED7, LED6 được nối với
Port0; tín hiệu SEL7 và SEL6 lần lượt được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 102 Biên soạn: Phạm Quang Trí
MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL2 ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (1 SO BCD NEN). ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD2TO7SEG. ;INPUT: R7 = SO BCD NEN (CHUC - DON VI). ;OUTPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;*************************************************** BCD2TO7SEG: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET ;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 34 trên hai LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 59 trên hai LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59 xuống 00 trên hai LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 23 trên hai LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00 lên FF trên hai LED. • Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ FF xuống 00 trên hai LED. • Bài 7: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00 lên AB trên hai LED. • Bài 8: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 9: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED (LED7, LED6, LED5 và LED4 được nối với
Port0; tín hiệu SEL7, SEL6, SEL5 và SEL4 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
Giáo trình thực hành vi xử lý. 103 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1234 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#99H ;HIEN THI SO 4 LCALL DELAYLED MOV P1,#0FDH ;CHO PHEP LED 6 SANG MOV P0,#0B0H ;HIEN THI SO 3 LCALL DELAYLED MOV P1,#0FBH ;CHO PHEP LED 5 SANG MOV P0,#0A4H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#0F7H ;CHO PHEP LED 4 SANG MOV P0,#0F9H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 6)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL7, SEL6, SEL5 và SEL4 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
Giáo trình thực hành vi xử lý. 104 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0000 -> 9999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV R7,#00H ;SO HIEN THI BAN DAU MOV R6,#00H MP1: LCALL BCD4TO7SEG ;GIAI MA BCD SANG MA 7 DOAN LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI MOV A,R6 ;TANG GIA TRI (CHUC - DON VI) ADD A,#1 DA A MOV R6,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (CHUC - DON VI) MOV A,R7 ;TANG GIA TRI (NGAN - TRAM) ADD A,#1 DA A MOV R7,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (NGAN - TRAM) SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL4. ;INPUT: 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P2 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL4: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0F7H ;MA QUET MOV R0,#63H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL7, SEL6, SEL5 và SEL4 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
Giáo trình thực hành vi xử lý. 105 Biên soạn: Phạm Quang Trí
DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL4 ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;*************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (2 SO BCD NEN). ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD4TO7SEG. ;INPUT: R7 = SO BCD NEN (NGAN - TRAM). ; R6 = SO BCD NEN (CHUC - DON VI). ;OUTPUT: 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;*************************************************** BCD4TO7SEG: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL7, SEL6, SEL5 và SEL4 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
Giáo trình thực hành vi xử lý. 106 Biên soạn: Phạm Quang Trí
POP DPH RET ;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 5678 trên bốn LED (LED4, LED5, LED6 và LED7
được nối với Port0; tín hiệu SEL4, SEL5, SEL6 và SEL7 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3). • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED4,
LED5, LED6 và LED7 được nối với Port0; tín hiệu SEL4, SEL5, SEL6 và SEL7 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
• Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 9999 xuống 0000 trên bốn LED (LED4, LED5, LED6 và LED7 được nối với Port0; tín hiệu SEL4, SEL5, SEL6 và SEL7 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
• Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 1234 trên bốn LED (LED4, LED5, LED6 và LED7 được nối với Port0; tín hiệu SEL4, SEL5, SEL6 và SEL7 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
• Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0000 lên FFFF trên bốn LED (LED4, LED5, LED6 và LED7 được nối với Port0; tín hiệu SEL4, SEL5, SEL6 và SEL7 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
• Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ FFFF xuống 0000 trên bốn LED (LED4, LED5, LED6 và LED7 được nối với Port0; tín hiệu SEL4, SEL5, SEL6 và SEL7 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
• Bài 7: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0000 lên ABCD trên bốn LED (LED4, LED5, LED6 và LED7 được nối với Port0; tín hiệu SEL4, SEL5, SEL6 và SEL7 lần lượt được nối với P1.0, P1.1, P1.2 và P1.3).
• Bài 8: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại sao? Tiến hành mô phỏng thử xem sao?
• Bài 9: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED (LED0 đến LED7 được nối với Port0; tín
hiệu SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7).
Giáo trình thực hành vi xử lý. 107 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối giải mã. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7
đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng).
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12345678 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#0FEH ;CHO PHEP LED 7 SANG MOV P0,#80H ;HIEN THI SO 8 LCALL DELAYLED MOV P1,#0FDH ;CHO PHEP LED 6 SANG MOV P0,#0F8H ;HIEN THI SO 7 LCALL DELAYLED MOV P1,#0FBH ;CHO PHEP LED 5 SANG MOV P0,#82H ;HIEN THI SO 6 LCALL DELAYLED MOV P1,#0F7H ;CHO PHEP LED 4 SANG MOV P0,#92H ;HIEN THI SO 5 LCALL DELAYLED MOV P1,#0EFH ;CHO PHEP LED 3 SANG MOV P0,#99H ;HIEN THI SO 4 LCALL DELAYLED MOV P1,#0DFH ;CHO PHEP LED 2 SANG MOV P0,#0B0H ;HIEN THI SO 3 LCALL DELAYLED MOV P1,#0BFH ;CHO PHEP LED 1 SANG MOV P0,#0A4H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#07FH ;CHO PHEP LED 0 SANG MOV P0,#0F9H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;****************************************************
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED (LED0 đến LED7 được nối với Port0; tín
hiệu SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7).
Giáo trình thực hành vi xử lý. 108 Biên soạn: Phạm Quang Trí
DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 8)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7).
Giáo trình thực hành vi xử lý. 109 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 7.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00000000 -> 99999999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV R7,#00H ;SO HIEN THI BAN DAU MOV R6,#00H MOV R5,#00H ;SO HIEN THI BAN DAU MOV R4,#00H MP1: LCALL BCD8TO7SEG ;GIAI MA BCD SANG MA 7 DOAN LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI MOV A,R4 ;TANG GIA TRI (CHUC - DON VI) ADD A,#1 DA A MOV R4,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (CHUC - DON VI) MOV A,R5 ;TANG GIA TRI (NGAN - TRAM) ADD A,#1 DA A MOV R5,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (NGAN - TRAM) MOV A,R6 ;TANG GIA TRI (TR NGAN - CH NGAN) ADD A,#1 DA A MOV R6,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (TR NGAN - CH NGAN) MOV A,R7 ;TANG GIA TRI (CH TRIEU - TRIEU) ADD A,#1 DA A MOV R7,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (CH TRIEU - TRIEU) SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL8. ;INPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU). ; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN). ; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P2 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL8: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#7FH ;MA QUET MOV R0,#67H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7).
Giáo trình thực hành vi xử lý. 110 Biên soạn: Phạm Quang Trí
MOV P1,#0FFH ;CHONG LEM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL8 ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;*************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (4 SO BCD NEN). ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD8TO7SEG. ;INPUT: R7 = SO BCD NEN (CH TRIEU - TRIEU). ; R6 = SO BCD NEN (TR NGAN - CH NGAN). ; R5 = SO BCD NEN (NGAN - TRAM). ; R4 = SO BCD NEN (CHUC - DON VI). ;OUTPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU). ; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN). ; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;*************************************************** BCD8TO7SEG: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R4 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R4 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (không dùng vi mạch
giải đa hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL0 đến SEL7 lần lượt được nối với P1.0 đến P1.7).
Giáo trình thực hành vi xử lý. 111 Biên soạn: Phạm Quang Trí
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 64H,A ;CAT BCD HANG CHUC NGAN VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 65H,A ;CAT BCD HANG TRAM NGAN VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 66H,A ;CAT BCD HANG TRIEU VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 67H,A ;CAT BCD HANG CHUC TRIEU VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET ;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 87654321 trên tám LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 59999999 trên tám LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59999999 xuống 00000000 trên tám LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 12345678 trên tám LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00000000 lên FFFFFFFF trên tám LED. • Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00000000 lên 89ABCDEF trên tám LED. • Bài 7: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 1: Chương trình điều khiển hiển thị số 1 trên LED7 (LED7 được nối với Port0, tín hiệu SEL-ABC được nối
với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 112 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng dây bus 2 nối J64 (PORT1) ở khối vi điều khiển với J23 (DEC. 2-4) ở khối giải ma (chú ý là ta chỉ
nối 2 bit thấp của J64 và J23)õ. • Dùng dây bus 4 nối J29 (DEC. OUT) ở khối giải mã với J1 (SEL IN1) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J16 (BCD IN 1-2) ở khối giải mã. • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn
+5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
BCD IN
1-2
POWER
7 SEG
OUT 1
7 SEG
OUT 2 BCD IN
3-4
7 SEG
OUT 3
7 SEG
OUT 4
DEC.
2-4
DEC.
3-8
DEC. OUTDEC.
2-4DEC.
OUT
DEC.
OUT
3
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#01H ;XUAT SO HIEN THI SJMP $ END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0, tín hiệu
SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 113 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#00H ;SO 0 LCALL DELAY500MS MOV P0,#01H ;SO 1 LCALL DELAY500MS MOV P0,#02H ;SO 2 LCALL DELAY500MS MOV P0,#03H ;SO 3 LCALL DELAY500MS MOV P0,#04H ;SO 4 LCALL DELAY500MS MOV P0,#05H ;SO 5 LCALL DELAY500MS MOV P0,#06H ;SO 6 LCALL DELAY500MS MOV P0,#07H ;SO 7 LCALL DELAY500MS MOV P0,#08H ;SO 8 LCALL DELAY500MS MOV P0,#09H ;SO 9 LCALL DELAY500MS SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0, tín hiệu
SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 114 Biên soạn: Phạm Quang Trí
MOV A,#00H ;GIA TRI BAT DAU LOOP: MOV P0,A ;XUAT HIEN THI LCALL DELAY500MS INC A ;TANG GIA TRI CJNE A,#10,LOOP SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 5 trên LED5. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0 lên 5 trên LED4. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5 xuống 0 trên LED4. • Bài 4: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL-
ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 115 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#02H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#01H ;CHO PHEP LED 6 SANG MOV P0,#01H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#100H ;NAP DIA CHI VUNG DU LIEU DISP: MOV R0,#02H ;SO LAN QUET (SO LED) MOV R1,#00H ;NAP DIA CHI (OFFSET) CUA DU LIEU MOV R2,#10H ;NAP DIA CHI (OFFSET) CUA MA QUET DISP1: MOV A,R1 ;LAY DU LIEU MOVC A,@A+DPTR MOV P0,A ;XUAT DU LIEU HIEN THI MOV A,R2 ;LAY MA QUET MOVC A,@A+DPTR MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P0,#0FFH ;CHONG LEM INC R1 ;DIA CHI (OFFSET) CUA DU LIEU KE TIEP INC R2 ;DIA CHI (OFFSET) CUA MA QUET KE TIEP DJNZ R0,DISP1 SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL-
ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 116 Biên soạn: Phạm Quang Trí
PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** ORG 100H CODEDISP: ;VUNG DU LIEU HIEN THI DB 02H,01H ORG 110H CODESCAN: ;VUNG MA QUET DB 00H,01H END
• Cách 3: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV 61H,#01H ;HANG CHUC MOV 60H,#02H ;HANG DON VI LCALL DISP7SEGMUL2EXT ;QUET HIEN THI SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (2 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL2EXT. ;INPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL2EXT: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#01H ;MA QUET MOV R0,#61H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P0,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP DEC A ;CHUYEN SANG LED KE TIEP CJNE R0,#05FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL-
ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 117 Biên soạn: Phạm Quang Trí
POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED7, LED6 được nối với
Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 118 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00 -> 99 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV 61H,#00H ;HANG CHUC MOV 60H,#00H ;HANG DON VI MP1: LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI INC 60H ;TANG HANG DON VI MOV A,60H CJNE A,#10,MP1 ;KIEM TRA HANG DON VI > 9 MOV 60H,#00H ;XOA HANG DON VI (DON VI = 0) INC 61H ;TANG HANG CHUC MOV A,61H CJNE A,#10,MP1 ;KIEM TRA HANG CHUC > 9 SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (2 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL2EXT. ;INPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL2EXT: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#01H ;MA QUET MOV R0,#61H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P0,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP DEC A ;CHUYEN SANG LED KE TIEP CJNE R0,#05FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL2EXT ;GOI CTC QUET HIEN THI JNB TF0,SCAN
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED7, LED6 được nối với
Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 119 Biên soạn: Phạm Quang Trí
CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 34 trên hai LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 59 trên hai LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59 xuống 00 trên hai LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 23 trên hai LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 23 xuống 00 trên hai LED. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED (LED7, LED6, LED5 và LED4 được nối với
Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 120 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1234 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#04H ;HIEN THI SO 4 LCALL DELAYLED MOV P1,#01H ;CHO PHEP LED 6 SANG MOV P0,#03H ;HIEN THI SO 3 LCALL DELAYLED MOV P1,#02H ;CHO PHEP LED 5 SANG MOV P0,#02H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#03H ;CHO PHEP LED 4 SANG MOV P0,#01H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 6)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 121 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0000 -> 9999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV 63H,#00H ;HANG NGAN MOV 62H,#00H ;HANG TRAM MOV 61H,#00H ;HANG CHUC MOV 60H,#00H ;HANG DON VI MP1: LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI INC 60H ;TANG HANG DON VI MOV A,60H CJNE A,#10,MP1 ;KIEM TRA HANG DON VI > 9 MOV 60H,#00H ;XOA HANG DON VI (DON VI = 0) INC 61H ;TANG HANG CHUC MOV A,61H CJNE A,#10,MP1 ;KIEM TRA HANG CHUC > 9 MOV 61H,#00H ;XOA HANG CHUC (CHUC = 0) INC 62H ;TANG HANG TRAM MOV A,62H CJNE A,#10,MP1 ;KIEM TRA HANG TRAM > 9 MOV 62H,#00H ;XOA HANG TRAM (TRAM = 0) INC 63H ;TANG HANG NGAN MOV A,63H CJNE A,#10,MP1 ;KIEM TRA HANG NGAN > 9 SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL4EXT. ;INPUT: 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL4EXT: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#03H ;MA QUET MOV R0,#63H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P0,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP DEC A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;***************************************************
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 122 Biên soạn: Phạm Quang Trí
DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL4EXT ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 5678 trên bốn LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 5999 trên bốn LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5999 xuống 0000 trên bốn LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 1234 trên bốn LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 1234 xuống 0000 trên bốn LED. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED (LED0 đến LED7 được nối với Port0; tín
hiệu SEL-ABC được nối với P1.0 - P1.2).
Giáo trình thực hành vi xử lý. 123 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J14 (7SEG OUT 1) ở khối giải mã với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7
đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng).
• Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J16 (BCD IN 1-2) ở khối giải mã. • Dùng dây bus 3 nối J64 (PORT1) ở khối vi điều khiển với J22 (DEC. 3-8) ở khối giải mã (chú ý là ta chỉ
nối 3 bit thấp của J64 và J22 với nhau). • Dùng dây bus 8 nối J23 (DEC. OUT) ở khối giải mã với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn
+5V ở khối nguồn.
LED 7 ÑOAÏN7SEG7 IN
SEL IN2POWER SEL IN1
7SEG6 IN 7SEG5 IN 7SEG4 IN7SEG7 INMUL
SEL LED IN VI ÑIEÀU KHIEÅN
PORT 0
A0..A7
PORT 1
PORT 3
PORT 2
SELECT CHIP
CLOCK OUT
PORT 1
PORT 3
40 PINS
20 PINS
POWERSW
NGUOÀN+5V
3
8
GIAÛI MAÕ
BCD IN
1-2
POWER
7 SEG
OUT 1
7 SEG
OUT 2 BCD IN
3-4
7 SEG
OUT 3
7 SEG
OUT 4
DEC.
2-4
DEC.
3-8
DEC. OUTDEC.
2-4DEC.
OUT
DEC.
OUT
3
8
8
3
8 8 8 8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12345678 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 3 TO 8, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#08H ;HIEN THI SO 8 LCALL DELAYLED MOV P1,#01H ;CHO PHEP LED 6 SANG MOV P0,#07H ;HIEN THI SO 7 LCALL DELAYLED MOV P1,#02H ;CHO PHEP LED 5 SANG MOV P0,#06H ;HIEN THI SO 6 LCALL DELAYLED MOV P1,#03H ;CHO PHEP LED 4 SANG MOV P0,#05H ;HIEN THI SO 5 LCALL DELAYLED MOV P1,#04H ;CHO PHEP LED 3 SANG MOV P0,#04H ;HIEN THI SO 4 LCALL DELAYLED MOV P1,#05H ;CHO PHEP LED 2 SANG MOV P0,#03H ;HIEN THI SO 3
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED (LED0 đến LED7 được nối với Port0; tín
hiệu SEL-ABC được nối với P1.0 - P1.2).
Giáo trình thực hành vi xử lý. 124 Biên soạn: Phạm Quang Trí
LCALL DELAYLED MOV P1,#06H ;CHO PHEP LED 1 SANG MOV P0,#02H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#07H ;CHO PHEP LED 0 SANG MOV P0,#01H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 8)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.2).
Giáo trình thực hành vi xử lý. 125 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 7.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00000000 -> 99999999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, BCD IN, MULTI EXT 3 TO 8, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV 67H,#00H ;HANG CH TRIEU MOV 66H,#00H ;HANG TRIEU MOV 65H,#00H ;HANG TR NGAN MOV 64H,#00H ;HANG CH NGAN MOV 63H,#00H ;HANG NGAN MOV 62H,#00H ;HANG TRAM MOV 61H,#00H ;HANG CHUC MOV 60H,#00H ;HANG DON VI MP1: LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI INC 60H ;TANG HANG DON VI MOV A,60H CJNE A,#10,MP1 ;KIEM TRA HANG DON VI > 9 MOV 60H,#00H ;XOA HANG DON VI (DON VI = 0) INC 61H ;TANG HANG CHUC MOV A,61H CJNE A,#10,MP1 ;KIEM TRA HANG CHUC > 9 MOV 61H,#00H ;XOA HANG CHUC (CHUC = 0) INC 62H ;TANG HANG TRAM MOV A,62H CJNE A,#10,MP1 ;KIEM TRA HANG TRAM > 9 MOV 62H,#00H ;XOA HANG TRAM (TRAM = 0) INC 63H ;TANG HANG NGAN MOV A,63H CJNE A,#10,MP1 ;KIEM TRA HANG NGAN > 9 MOV 63H,#00H ;XOA HANG NGAN (NGAN = 0) INC 64H ;TANG HANG CH NGAN MOV A,64H CJNE A,#10,MP1 ;KIEM TRA HANG CH NGAN > 9 MOV 64H,#00H ;XOA HANG CH NGAN (CH NGAN = 0) INC 65H ;TANG HANG TR NGAN MOV A,65H CJNE A,#10,MP1 ;KIEM TRA HANG TR NGAN > 9 MOV 65H,#00H ;XOA HANG TR NGAN (TR NGAN = 0) INC 66H ;TANG HANG TRIEU MOV A,66H CJNE A,#10,MP1 ;KIEM TRA HANG TRIEU > 9 MOV 66H,#00H ;XOA HANG TRIEU (TRIEU = 0) INC 67H ;TANG HANG CH TRIEU MOV A,67H CJNE A,#10,MP1 ;KIEM TRA HANG CH TRIEU > 9 SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL8EXT. ;INPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU). ; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN).
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu BCD (dùng vi mạch giải đa
hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.2).
Giáo trình thực hành vi xử lý. 126 Biên soạn: Phạm Quang Trí
; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL8EXT: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#07H ;MA QUET MOV R0,#67H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P0,#0FFH ;CHONG LEM DEC R0 ;LAY MA HIEN THI KE TIEP DEC A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL8EXT ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 87654321 trên tám LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 59999999 trên tám LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59999999 xuống 00000000 trên tám LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 12345678 trên tám LED. • Bài 5: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 6: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 1: Chương trình điều khiển hiển thị số 1 trên LED7 (LED7 được nối với Port0; tín hiệu SEL-ABC được nối
với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 127 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 2 nối J64 (PORT1) ở khối vi điều khiển với J23 (DEC. 2-4) ở khối giải ma (chú ý là ta chỉ
nối 2 bit thấp của J64 và J23)õ. • Dùng dây bus 4 nối J29 (DEC. OUT) ở khối giải mã với J1 (SEL IN1) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG7 IN MUL) ở khối LED 7
đoạn. • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn
+5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
BCD IN
1-2
POWER
7 SEG
OUT 1
7 SEG
OUT 2 BCD IN
3-4
7 SEG
OUT 3
7 SEG
OUT 4
DEC.
2-4
DEC.
3-8
DEC. OUTDEC.
2-4DEC.
OUT
DEC.
OUT
3
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#0F9H ;XUAT SO HIEN THI SJMP $ END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0; tín hiệu
SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 128 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#0C0H ;SO 0 LCALL DELAY500MS MOV P0,#0F9H ;SO 1 LCALL DELAY500MS MOV P0,#0A4H ;SO 2 LCALL DELAY500MS MOV P0,#0B0H ;SO 3 LCALL DELAY500MS MOV P0,#99H ;SO 4 LCALL DELAY500MS MOV P0,#92H ;SO 5 LCALL DELAY500MS MOV P0,#82H ;SO 6 LCALL DELAY500MS MOV P0,#0F8H ;SO 7 LCALL DELAY500MS MOV P0,#80H ;SO 8 LCALL DELAY500MS MOV P0,#90H ;SO 9 LCALL DELAY500MS SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0 -> 9 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 1 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 2: Chương trình điều khiển hiển thị đếm số BCD từ 0 lên 9 trên LED7 (LED7 được nối với Port0; tín hiệu
SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 129 Biên soạn: Phạm Quang Trí
MOV R0,#00H ;VI TRI DU LIEU HIEN THI TRONG VUNG MA MOV P1,#00H ;CHO PHEP LED 7 SANG DISP: MOV A,R0 ;NAP VI TRI DU LIEU MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P0,A ;XUAT HIEN THI LCALL DELAY500MS INC R0 CJNE R0,#10,DISP ;KIEM TRA VI TRI DU LIEU > 9 (DEM XONG) SJMP MAIN ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** CODEDISP: ;VUNG DU LIEU HIEN THI DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 5 trên LED5. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0 lên 5 trên LED4. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5 xuống 0 trên LED4. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0 lên F trên LED4. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ F xuống 0 trên LED4. • Bài 6: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL-
ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 130 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#0A4H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#01H ;CHO PHEP LED 6 SANG MOV P0,#0F9H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET
END
• Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#100H ;NAP DIA CHI VUNG DU LIEU DISP: MOV R0,#02H ;SO LAN QUET (SO LED) MOV R1,#00H ;NAP DIA CHI (OFFSET) CUA DU LIEU MOV R2,#10H ;NAP DIA CHI (OFFSET) CUA MA QUET DISP1: MOV A,R1 ;LAY DU LIEU MOVC A,@A+DPTR MOV P0,A ;XUAT DU LIEU HIEN THI MOV A,R2 ;LAY MA QUET MOVC A,@A+DPTR MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P2,#0FFH ;CHONG LEM INC R1 ;DIA CHI (OFFSET) CUA DU LIEU KE TIEP INC R2 ;DIA CHI (OFFSET) CUA MA QUET KE TIEP DJNZ R0,DISP1 SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL-
ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 131 Biên soạn: Phạm Quang Trí
PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** ORG 100H CODEDISP: ;VUNG DU LIEU HIEN THI DB 0A4H,0F9H ORG 110H CODESCAN: ;VUNG MA QUET DB 00H,01H END
• Cách 3: ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV R7,#12H ;SO HIEN THI LCALL BCD2TO7SEG ;GIAI MA BCD SANG MA 7 DOAN LCALL DISP7SEGMUL2EXT ;QUET HIEN THI SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (2 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL2EXT. ;INPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL2EXT: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#01H ;MA QUET MOV R0,#61H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P0,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP DEC A ;CHUYEN SANG LED KE TIEP CJNE R0,#05FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 3: Chương trình điều khiển hiển thị số 12 trên hai LED (LED7, LED6 được nối với Port0; tín hiệu SEL-
ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 132 Biên soạn: Phạm Quang Trí
POP 01H POP 00H RET ;*************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (1 SO BCD NEN). ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD2TO7SEG. ;INPUT: R7 = SO BCD NEN (CHUC - DON VI). ;OUTPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;*************************************************** BCD2TO7SEG: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET ;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED7, LED6 được nối với
Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 133 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00 -> 99 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 2 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV R7,#00H ;SO HIEN THI BAN DAU MP1: LCALL BCD2TO7SEG ;GIAI MA BCD SANG MA 7 DOAN LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI MOV A,R7 ;TANG GIA TRI ADD A,#1 DA A MOV R7,A CJNE A,#00,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (2 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL2EXT. ;INPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL2EXT: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#01H ;MA QUET MOV R0,#61H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P0,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP DEC A ;CHUYEN SANG LED KE TIEP CJNE R0,#05FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 4: Chương trình điều khiển hiển thị đếm số BCD từ 00 lên 99 trên hai LED (LED7, LED6 được nối với
Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 134 Biên soạn: Phạm Quang Trí
MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL2EXT ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (1 SO BCD NEN). ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD2TO7SEG. ;INPUT: R7 = SO BCD NEN (CHUC - DON VI). ;OUTPUT: 61H,60H = MA 7 DOAN (CHUC - DON VI). ;*************************************************** BCD2TO7SEG: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET ;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 34 trên hai LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 59 trên hai LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59 xuống 00 trên hai LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00 lên 23 trên hai LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00 lên FF trên hai LED. • Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ FF xuống 00 trên hai LED. • Bài 7: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00 lên CD trên hai LED. • Bài 8: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 9: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 5: Chương trình điều khiển hiển thị số 1234 trên bốn LED (LED7, LED6, LED5 và LED4 được
nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 135 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 1234 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#99H ;HIEN THI SO 4 LCALL DELAYLED MOV P1,#01H ;CHO PHEP LED 6 SANG MOV P0,#0B0H ;HIEN THI SO 3 LCALL DELAYLED MOV P1,#02H ;CHO PHEP LED 5 SANG MOV P0,#0A4H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#03H ;CHO PHEP LED 4 SANG MOV P0,#0F9H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 6)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 136 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 0000 -> 9999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 4 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV R7,#00H ;SO HIEN THI BAN DAU MOV R6,#00H MP1: LCALL BCD4TO7SEG ;GIAI MA BCD SANG MA 7 DOAN LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI MOV A,R6 ;TANG GIA TRI (CHUC - DON VI) ADD A,#1 DA A MOV R6,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (CHUC - DON VI) MOV A,R7 ;TANG GIA TRI (NGAN - TRAM) ADD A,#1 DA A MOV R7,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (NGAN - TRAM) SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL4EXT. ;INPUT: 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL4EXT: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#03H ;MA QUET MOV R0,#63H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P0,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP DEC A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 5MS PUSH 00H PUSH 01H MOV R1,#10 DEL: MOV R0,#250 DJNZ R0,$
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 137 Biên soạn: Phạm Quang Trí
DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL4EXT ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;*************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (2 SO BCD NEN). ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD4TO7SEG. ;INPUT: R7 = SO BCD NEN (NGAN - TRAM). ; R6 = SO BCD NEN (CHUC - DON VI). ;OUTPUT: 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;*************************************************** BCD4TO7SEG: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 6: Chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 9999 trên bốn LED (LED7, LED6, LED5 và
LED4 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.1).
Giáo trình thực hành vi xử lý. 138 Biên soạn: Phạm Quang Trí
;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 5678 trên bốn LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 5999 trên bốn LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 5999 xuống 0000 trên bốn LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 0000 lên 1234 trên bốn LED. • Bài 5: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 1234 xuống 0000 trên bốn LED. • Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0000 lên FFFF trên bốn LED. • Bài 7: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ FFFF xuống 0000 trên bốn LED. • Bài 8: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 0000 lên ABCD trên bốn LED. • Bài 9: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ ABCD xuống 0000 trên bốn LED. • Bài 10: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 11: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED (LED0 đến LED7 được nối với Port0; tín
hiệu SEL-ABC được nối với P1.0 - P1.2).
Giáo trình thực hành vi xử lý. 139 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối LED 7
đoạn. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7
đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng).
• Dùng dây bus 3 nối J64 (PORT1) ở khối vi điều khiển với J22 (DEC. 3-8) ở khối giải mã (chú ý là ta chỉ nối 3 bit thấp của J64 và J22 với nhau).
• Dùng dây bus 8 nối J23 (DEC. OUT) ở khối giải mã với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng hai dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn và J36 (POWER) ở khối giải mã với nguồn
+5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
BCD IN
1-2
POWER
7 SEG
OUT 1
7 SEG
OUT 2 BCD IN
3-4
7 SEG
OUT 3
7 SEG
OUT 4
DEC.
2-4
DEC.
3-8
DEC. OUTDEC.
2-4DEC.
OUT
DEC.
OUT
3
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI SO 12345678 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 2 TO 4, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;CHO PHEP LED 7 SANG MOV P0,#80H ;HIEN THI SO 8 LCALL DELAYLED MOV P1,#01H ;CHO PHEP LED 6 SANG MOV P0,#0F8H ;HIEN THI SO 7 LCALL DELAYLED MOV P1,#02H ;CHO PHEP LED 5 SANG MOV P0,#82H ;HIEN THI SO 6 LCALL DELAYLED MOV P1,#03H ;CHO PHEP LED 4 SANG MOV P0,#92H ;HIEN THI SO 5 LCALL DELAYLED MOV P1,#04H ;CHO PHEP LED 3 SANG MOV P0,#99H ;HIEN THI SO 4 LCALL DELAYLED MOV P1,#05H ;CHO PHEP LED 2 SANG MOV P0,#0B0H ;HIEN THI SO 3 LCALL DELAYLED MOV P1,#06H ;CHO PHEP LED 1 SANG
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 7: Chương trình điều khiển hiển thị số 12345678 trên tám LED (LED0 đến LED7 được nối với Port0; tín
hiệu SEL-ABC được nối với P1.0 - P1.2).
Giáo trình thực hành vi xử lý. 140 Biên soạn: Phạm Quang Trí
MOV P0,#0A4H ;HIEN THI SO 2 LCALL DELAYLED MOV P1,#07H ;CHO PHEP LED 0 SANG MOV P0,#0F9H ;HIEN THI SO 1 LCALL DELAYLED SJMP MAIN ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 8)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.2).
Giáo trình thực hành vi xử lý. 141 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 7.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI 00000000 -> 99999999 TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL ABC -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI EXT 3 TO 8, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV R7,#00H ;SO HIEN THI BAN DAU MOV R6,#00H MOV R5,#00H ;SO HIEN THI BAN DAU MOV R4,#00H MP1: LCALL BCD8TO7SEG ;GIAI MA BCD SANG MA 7 DOAN LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI MOV A,R4 ;TANG GIA TRI (CHUC - DON VI) ADD A,#1 DA A MOV R4,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (CHUC - DON VI) MOV A,R5 ;TANG GIA TRI (NGAN - TRAM) ADD A,#1 DA A MOV R5,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (NGAN - TRAM) MOV A,R6 ;TANG GIA TRI (TR NGAN - CH NGAN) ADD A,#1 DA A MOV R6,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (TR NGAN - CH NGAN) MOV A,R7 ;TANG GIA TRI (CH TRIEU - TRIEU) ADD A,#1 DA A MOV R7,A CJNE A,#0,MP1 ;KIEM TRA GIA TRI HIEN THI > 99 (CH TRIEU - TRIEU) SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL8EXT. ;INPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU). ; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN). ; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = EXT MULTIPLEXER - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL8EXT: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#07H ;MA QUET MOV R0,#67H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.2).
Giáo trình thực hành vi xử lý. 142 Biên soạn: Phạm Quang Trí
MOV P0,#0FFH ;CHONG LEM DEC R0 ;LAY MA HIEN THI KE TIEP DEC A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;**************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL8EXT ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;*************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (4 SO BCD NEN). ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB) ;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD6TO7SEG. ;INPUT: R7 = SO BCD NEN (CH TRIEU - TRIEU). ; R6 = SO BCD NEN (TR NGAN - CH NGAN). ; R5 = SO BCD NEN (NGAN - TRAM). ; R4 = SO BCD NEN (CHUC - DON VI). ;OUTPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU). ; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN). ; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;*************************************************** BCD8TO7SEG: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R4 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R4 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Bộ hiển thị LED 7 đoạn được thiết kế theo phương pháp đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (dùng vi mạch giải đa
hợp bên ngoài)) Bài 8: Chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 99999999 trên tám LED (LED0 đến
LED7 được nối với Port0; tín hiệu SEL-ABC được nối với P1.0 - P1.2).
Giáo trình thực hành vi xử lý. 143 Biên soạn: Phạm Quang Trí
MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 64H,A ;CAT BCD HANG CHUC NGAN VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 65H,A ;CAT BCD HANG TRAM NGAN VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 66H,A ;CAT BCD HANG TRIEU VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 67H,A ;CAT BCD HANG CHUC TRIEU VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET ;*************************************************** CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số 87654321 trên tám LED. • Bài 2: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 59999999 trên tám LED. • Bài 3: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 59999999 xuống 00000000 trên tám LED. • Bài 4: Hãy viết chương trình điều khiển hiển thị đếm số BCD từ 00000000 lên 12345678 trên tám LED. • Bài 6: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00000000 lên FFFFFFFF trên tám LED. • Bài 7: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ FFFFFFFF xuống 00000000 trên tám
LED. • Bài 8: Hãy viết chương trình điều khiển hiển thị đếm số HEX từ 00000000 lên 89ABCDEF trên tám LED. • Bài 10: Nếu trường hợp LED của ta là loại Cathode chung thì chương trình phải thay đổi như thế nào? Tại
sao? Tiến hành mô phỏng thử xem sao? • Bài 11: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 1: Chương trình điều khiển hiển thị đếm GIỜ – PHÚT – GIÂY trên sáu LED (LED6,7: đếm GIÂY; LED4,5: đếm PHÚT; LED2,3: đếm GIỜ).
Giáo trình thực hành vi xử lý. 144 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối giải mã. • Dùng ba dây bus 8 nối J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7 đoạn với J4 (7SEG IN MUL) ở
khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng). • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI GIO - PHUT - GIAY TREN LED 7 DOAN ;*************************************************** ;KET NOI: 6 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV R7,#00H ;GIO MOV R6,#00H ;PHUT MOV R5,#00H ;GIAY MP1: LCALL BCD6TO7SEG ;GIAI MA BCD SANG MA 7 DOAN LCALL DELAY_SCAN ;DELAY VA QUET HIEN THI MOV A,R5 ;TANG GIAY ADD A,#1 DA A MOV R5,A CJNE A,#60H,MP1 ;KIEM TRA GIAY > 59 MOV R5,#0 ;XOA GIAY MOV A,R6 ;TANG PHUT ADD A,#1 DA A MOV R6,A CJNE A,#60H,MP1 ;KIEM TRA PHUT > 59 MOV R6,#0 ;XOA PHUT MOV A,R7 ;TANG GIO ADD A,#1 DA A MOV R7,A CJNE A,#60H,MP1 ;KIEM TRA GIO > 59 SJMP MAIN ;*************************************************** ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (3 SO BCD NEN). ;*************************************************** ;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 1: Chương trình điều khiển hiển thị đếm GIỜ – PHÚT – GIÂY trên sáu LED (LED6,7: đếm GIÂY; LED4,5: đếm PHÚT; LED2,3: đếm GIỜ).
Giáo trình thực hành vi xử lý. 145 Biên soạn: Phạm Quang Trí
;GIA TRI GIAI MA: 0 -> 9 ;*************************************************** ;NAME: BCD6TO7SEG. ;INPUT: R7 = SO BCD NEN (TR NGAN - CH NGAN). ; R6 = SO BCD NEN (NGAN - TRAM). ; R5 = SO BCD NEN (CHUC - DON VI). ;OUTPUT: 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN). ; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;*************************************************** BCD6TO7SEG: PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R5 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 64H,A ;CAT BCD HANG CHUC NGAN VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 65H,A ;CAT BCD HANG TRAM NGAN VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (6 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM. ;*************************************************** ;NAME: DISP7SEGMUL6. ;INPUT: 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN). ; 63H,62H = MA 7 DOAN (NGAN - TRAM). ; 61H,60H = MA 7 DOAN (CHUC - DON VI). ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB).
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 1: Chương trình điều khiển hiển thị đếm GIỜ – PHÚT – GIÂY trên sáu LED (LED6,7: đếm GIÂY; LED4,5: đếm PHÚT; LED2,3: đếm GIỜ).
Giáo trình thực hành vi xử lý. 146 Biên soạn: Phạm Quang Trí
; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL6: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0DFH ;MA QUET MOV R0,#65H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;**************************************************** DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS CO GOI CTC QUET HIEN THI PUSH 00H MOV R0,#50 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY LCALL DISP7SEGMUL6 ;GOI CTC QUET HIEN THI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài tập: Hãy viết chương trình điều khiển hiển thị đếm NGÀY – THÁNG – NĂM trên tám LED (LED7,6:
đếm NGÀY; LED5,4: đếm THÁNG; LED3,2,1,0: đếm NĂM). Giả sử các tháng đều có 30 ngày. Tự chọn lựa phương pháp kết nối các LED 7 đoạn.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 2: Chương trình điều khiển hiển thị chuỗi ký tự “-HA-NOI-“ trên tám LED.
Giáo trình thực hành vi xử lý. 147 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối giải mã. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7
đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng).
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 3 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI CHUOI "-HA-NOI- TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI LCALL DISP7SEGMUL ;HIEN THI CHUOI KY TU SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG ROM (TRONG CHUONG TRINH) ;*************************************************** ;NAME: DISP7SEGMUL. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#7FH ;MA QUET MOV R1,#00H ;VI TRI CUA DU LIEU TRONG VUNG NHO DPTR SETB C DISP: MOV A,R1 MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P0,A ;XUAT MA HIEN THI MOV P1,R0 ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LEM
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 2: Chương trình điều khiển hiển thị chuỗi ký tự “-HA-NOI-“ trên tám LED.
Giáo trình thực hành vi xử lý. 148 Biên soạn: Phạm Quang Trí
INC R1 ;LAY MA HIEN THI KE TIEP MOV A,R0 ;LAY MA QUET KE TIEP RRC A MOV R0,A JC DISP ;KIEM TRA QUET XONG (C = 0) POP 01H POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** CODEDISP: ;VUNG CHUA MA CHU HIEN THI DB 0BFH,89H,88H,0BFH,0C8H,0C0H,0F9H,0BFH END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị chuỗi ký tự “-PEP-SI-“ trên tám LED. Tự chọn lựa
phương pháp kết nối LED 7 đoạn. • Bài 2: Hãy viết chương trình điều khiển hiển thị chuỗi ký tự “COCACOLA“ trên tám LED. Tự chọn lựa
phương pháp kết nối LED 7 đoạn. • Bài 3: Hãy viết chương trình điều khiển hiển thị chuỗi ký tự “--DHCN--“ trên tám LED. Tự chọn lựa
phương pháp kết nối LED 7 đoạn. • Bài 4: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 3: Chương trình điều khiển hiển thị và chớp tắt chuỗi ký tự “-HA-NOI-“ trên tám LED.
Giáo trình thực hành vi xử lý. 149 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 2.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI CHUOI "-HA-NOI-“ CHOP TAT TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MOV R0,#50 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH MP1: LCALL DISP7SEGMUL ;HIEN THI CHUOI KY TU DJNZ R0,MP1 LCALL TATLED ;TAT HIEN THI CHUOI SJMP MAIN ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG ROM (TRONG CHUONG TRINH) ;*************************************************** ;NAME: DISP7SEGMUL. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#7FH ;MA QUET MOV R1,#00H ;VI TRI CUA DU LIEU TRONG VUNG NHO DPTR SETB C DISP: MOV A,R1 MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P0,A ;XUAT MA HIEN THI MOV P1,R0 ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LEM INC R1 ;LAY MA HIEN THI KE TIEP MOV A,R0 ;LAY MA QUET KE TIEP RRC A MOV R0,A JC DISP ;KIEM TRA QUET XONG (C = 0) POP 01H POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;***************************************************
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 3: Chương trình điều khiển hiển thị và chớp tắt chuỗi ký tự “-HA-NOI-“ trên tám LED.
Giáo trình thực hành vi xử lý. 150 Biên soạn: Phạm Quang Trí
TATLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 1S PUSH 00H MOV R0,#100 MOV TMOD,#01H TAT: MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,TAT POP 00H RET ;*************************************************** CODEDISP: ;VUNG CHUA MA CHU HIEN THI DB 0BFH,89H,88H,0BFH,0C8H,0C0H,0F9H,0BFH END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 4: Chương trình điều khiển hiển thị lần lượt các chuỗi ký tự “-HA-NOI“, “-DA-LAT-“, “-SAIGON-“ trên tám LED. Mỗi chuỗi hiển thị cách nhau 1 giây.
Giáo trình thực hành vi xử lý. 151 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 2.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI CHUOI "-HA-NOI-","-DA-LAT-","-SAIGON-" TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MP1: MOV R0,#100 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH STATICDISP: LCALL DISP7SEGMUL ;HIEN THI CHUOI KY TU DJNZ R0,STATICDISP ;GIAM BIEN LAP MOV A,DPL ;DICH DEN DIA CHI CUA CHUOI KE TIEP ADD A,#8 ;ADDNEXT = ADDPREV + 8 (DO DAI CHUOI = 8) MOV DPL,A CJNE A,#LOW(CODEDISP+24),MP1 ;KIEM TRA HIEN THI XONG TAT CA CAC CHUOI SJMP MAIN ;3 CHUOI = 24 MA KY TU ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG ROM (TRONG CHUONG TRINH) ;*************************************************** ;NAME: DISP7SEGMUL. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#7FH ;MA QUET MOV R1,#00H ;VI TRI CUA DU LIEU TRONG VUNG NHO DPTR SETB C DISP: MOV A,R1 MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P0,A ;XUAT MA HIEN THI MOV P1,R0 ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LEM INC R1 ;LAY MA HIEN THI KE TIEP MOV A,R0 ;LAY MA QUET KE TIEP RRC A MOV R0,A JC DISP ;KIEM TRA QUET XONG (C = 0) POP 01H POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 4: Chương trình điều khiển hiển thị lần lượt các chuỗi ký tự “-HA-NOI“, “-DA-LAT-“, “-SAIGON-“ trên tám LED. Mỗi chuỗi hiển thị cách nhau 1 giây.
Giáo trình thực hành vi xử lý. 152 Biên soạn: Phạm Quang Trí
DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** CODEDISP: ;VUNG CHUA MA CHU HIEN THI DB 0BFH,89H,88H,0BFH,0C8H,0C0H,0F9H,0BFH ;MA CHUOI "-HA-NOI-" DB 0BFH,0A1H,88H,0BFH,0C7H,88H,0F8H,0BFH ;MA CHUOI "-DA-LAT-" DB 0BFH,92H,88H,0F9H,90H,0C0H,0C8H,0BFH ;MA CHUOI "-SAIGON-" END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị và chớp tắt chuỗi ký tự “-PEP-SI-“ trên tám LED. Tự chọn
lựa phương pháp kết nối LED 7 đoạn. • Bài 2: Hãy viết chương trình điều khiển hiển thị và chớp tắt 10 lần chuỗi ký tự “COCACOLA“ trên tám
LED. Tự chọn lựa phương pháp kết nối LED 7 đoạn. • Bài 3: Hãy viết chương trình điều khiển hiển thị lần lượt các chuỗi ký tự “COCACOLA“, “-PEP-SI-“, “-
FANTA-“ trên tám LED. Mỗi chuỗi hiển thị cách nhau 1 giây. Tự chọn lựa phương pháp kết nối LED 7 đoạn.
• Bài 4: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 5: Chương trình điều khiển hiển thị và dịch chuyển chuỗi ký tự “-HA-NOI-SAI-GON-“ trên tám LED từ phải sang trái.
Giáo trình thực hành vi xử lý. 153 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 2.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN HIEN THI CHUOI "-HA-NOI-SAIGON-" DICH CHUYEN TREN LED 7 DOAN ;*************************************************** ;KET NOI: 8 LED -> PORT0 ; SEL LED -> PORT1 ;CHE DO: MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0 ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MP1: MOV R0,#20 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH STATICDISP: LCALL DISP7SEGMUL ;HIEN THI CHUOI KY TU DJNZ R0,STATICDISP ;GIAM BIEN LAP INC DPTR ;DICH CHUOI DI MOT MA KY TU MOV A,DPL CJNE A,#LOW(CODEDISP+16),MP1 ;KIEM TRA HIEN THI XONG CHUOI SJMP MAIN ;SO KY TU CUA CHUOI = 24 MA KY TU ;*************************************************** ;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN). ;*************************************************** ;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB) ;DU LIEU HIEN THI CHUA TRONG ROM (TRONG CHUONG TRINH) ;*************************************************** ;NAME: DISP7SEGMUL. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI ;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB). ; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD). ;*************************************************** DISP7SEGMUL: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#7FH ;MA QUET MOV R1,#00H ;VI TRI CUA DU LIEU TRONG VUNG NHO DPTR SETB C DISP: MOV A,R1 MOVC A,@A+DPTR ;LAY MA HIEN THI MOV P0,A ;XUAT MA HIEN THI MOV P1,R0 ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LEM INC R1 ;LAY MA HIEN THI KE TIEP MOV A,R0 ;LAY MA QUET KE TIEP RRC A MOV R0,A JC DISP ;KIEM TRA QUET XONG (C = 0) POP 01H POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$
B. HỆ THỐNG ĐIỀU KHIỂN LED 7 ĐOẠN. (Ứng dụng điều khiển LED 7 đoạn tổng hợp)
Bài 5: Chương trình điều khiển hiển thị và dịch chuyển chuỗi ký tự “-HA-NOI-SAI-GON-“ trên tám LED từ phải sang trái.
Giáo trình thực hành vi xử lý. 154 Biên soạn: Phạm Quang Trí
DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** CODEDISP: ;VUNG CHUA MA CHU HIEN THI DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;MA CHUOI XOA MAN HINH DB 0BFH,89H,88H,0BFH,0C8H,0C0H,0F9H,0BFH ;MA CHUOI "-HA-NOI-" DB 92H,88H,0F9H,0BFH,90H,0C0H,0C8H,0BFH ;MA CHUOI "SAI-GON-" END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị và dịch chuyển chuỗi ký tự “-PEP-SI-“ trên tám LED từ
phải sang trái. Tự chọn lựa phương pháp kết nối LED 7 đoạn. • Bài 2: Hãy viết chương trình điều khiển hiển thị và dịch chuyển chuỗi ký tự “COCACOLA“ trên tám LED
từ trái sang phải. Tự chọn lựa phương pháp kết nối LED 7 đoạn. • Bài 3: Hãy viết chương trình điều khiển hiển thị và dịch chuyển chuỗi ký tự “COMPUTER-
CONTROLLER“ trên tám LED từ phải sang trái. Tự chọn lựa phương pháp kết nối LED 7 đoạn. • Bài 4: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN.
Giáo trình thực hành vi xử lý. 156 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển việc hiển thị bằng cách sử dụng LED ma trận. • Ưùng dụng thực hiện việc hiển thị các thông tin tĩnh và động trên LED ma trận dạng quang báo).
B. 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 LED ma trận ở các chế độ khác nhau. • Nắm được sơ đồ và nguyên lý hoạt động của khối LED ma trận trên mô hình thí nghiệm. • Nắm được nguyên lý điều khiển LED ma trận ở các chế độ khác nhau. • Biết cách viết các chương trình quang báo để hiển thị các thông tin được yêu cầu (thông tin dạng tĩnh và
dạng động).
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận (COL-RED được nối với Port1 có sử
dụng bộ đệm đảo, ROW được nối với Port2).
Giáo trình thực hành vi xử lý. 157 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J9 (COLUMN RED MATRIX) ở khối LED ma
tr?n. • Dùng dây bus 8 nối J65 (PORT2 / A8..A15) ở khối vi điều khiển với J13 (ROW MATRIX) ở khối LED
ma tr?n. • Dùng dây bus 3 nối J116 (POWER) ở khối LED ma tr?n với nguồn +5V ở khối nguồn.
COL. RED
COL. GREEN
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
• Cách 1: ;*************************************************** ;CHUONG TRINH HIEN THI KY TU A TREN MA TRAN LED ;*************************************************** ;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV P2,#07H ;XUAT MA HIEN THI RA HANG MOV P1,#01H ;XUAT MA QUET RA COT 1 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0DBH ;XUAT MA HIEN THI RA HANG MOV P1,#02H ;XUAT MA QUET RA COT 2 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0DDH ;XUAT MA HIEN THI RA HANG MOV P1,#04H ;XUAT MA QUET RA COT 3 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0DBH ;XUAT MA HIEN THI RA HANG MOV P1,#08H ;XUAT MA QUET RA COT 4 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#07H ;XUAT MA HIEN THI RA HANG MOV P1,#10H ;XUAT MA QUET RA COT 5 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0FFH ;XUAT MA HIEN THI RA HANG MOV P1,#20H ;XUAT MA QUET RA COT 6 LCALL DELAYLED
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận (COL-RED được nối với Port1 có sử
dụng bộ đệm đảo, ROW được nối với Port2).
Giáo trình thực hành vi xử lý. 158 Biên soạn: Phạm Quang Trí
MOV P1,#00H ;CHONG LEM MOV P2,#0FFH ;XUAT MA HIEN THI RA HANG MOV P1,#40H ;XUAT MA QUET RA COT 7 LCALL DELAYLED MOV P1,#00H ;CHONG LEM MOV P2,#0FFH ;XUAT MA HIEN THI RA HANG MOV P1,#80H ;XUAT MA QUET RA COT 8 LCALL DELAYLED MOV P1,#00H ;CHONG LEM LJMP MAIN ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
• Cách 2: ;*************************************************** ;CHUONG TRINH HIEN THI KY TU A TREN MA TRAN LED ;*************************************************** ;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;*************************************************** $MOD51 ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI LCALL SCANMATRIXSTA ;HIEN THI DU LIEU LJMP MAIN ;*************************************************** ;CTC QUET MA TRAN 8 X 8. ;*************************************************** ;NAME: SCANMATRIXSTA. ;OUTPUT: P1 = COLUMN MATRIX (NOT BUFFER). ; P2 = ROW MATRIX. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI. ;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0). ;*************************************************** SCANMATRIXSTA: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA MOV R1,#01H ;MA QUET COT DAU TIEN SCAN: MOV A,R0 MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI MOV P2,A ;XUAT MA HIEN THI RA HANG MOV P1,R1 ;XUAT MA QUET RA COT LCALL DELAYLED MOV P1,#00H ;CHONG LEM INC R0 ;LAY DU LIEU KE TIEP MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP RL A MOV R1,A CJNE R0,#8H,SCAN ;KIEM TRA QUET CAC COT (MA TRAN GOM 8 COT) POP 01H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP 00H
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 1: Chương trình điều khiển hiển thị chữ A màu đỏ trên LED ma trận (COL-RED được nối với Port1 có sử
dụng bộ đệm đảo, ROW được nối với Port2).
Giáo trình thực hành vi xử lý. 159 Biên soạn: Phạm Quang Trí
POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** CODEDISP: DB 07H,0DBH,0DDH,0DBH,07H,0FFH,0FFH,0FFH ;CHU A END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị chữ M màu đỏ trên LED ma trận (COL-RED được nối với
Port1, ROW được nối với Port2). • Bài 2: Hãy viết chương trình điều khiển hiển thị số 8 màu xanh trên LED ma trận (COL-GRE được nối với
Port1, ROW được nối với Port2). • Bài 3: Hãy viết chương trình điều khiển hiển thị chữ A màu vàng trên LED ma trận (COL-RED được nối
với Port 1, COL-GRE được nối với Port2, ROW được nối với Port3). • Bài 4: Hãy lập bảng mã cho tất cả các ký tự chữ, ký tự số và ký tự đặc biệt có trên bàn phím máy tính. Và
thử đưa các mã đã lập này vào chương trình điều khiển hiển thị ở trên để xem hình ảnh chúng như thế nào? • Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 2: Chương trình điều khiển hiển thị chữ S màu đỏ trên LED ma trận sáng tắt (COL-RED được nối với
Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
Giáo trình thực hành vi xử lý. 160 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH HIEN THI KY TU A CHOP TAT TREN MA TRAN LED ;*************************************************** ;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MOV R0,#50 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH LED MP1: LCALL SCANMATRIXSTA ;HIEN THI DU LIEU DJNZ R0,MP1 LCALL TATLED ;TAT MA TRAN LED LJMP MAIN ;*************************************************** ;CTC QUET MA TRAN 8 X 8. ;*************************************************** ;NAME: SCANMATRIXSTA. ;OUTPUT: P1 = COLUMN MATRIX (NOT BUFFER). ; P2 = ROW MATRIX. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI. ;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0). ;*************************************************** SCANMATRIXSTA: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA MOV R1,#01H ;MA QUET COT DAU TIEN SCAN: MOV A,R0 MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI MOV P2,A ;XUAT MA HIEN THI RA HANG MOV P1,R1 ;XUAT MA QUET RA COT LCALL DELAYLED MOV P1,#00H ;CHONG LEM INC R0 ;LAY DU LIEU KE TIEP MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP RL A MOV R1,A CJNE R0,#8H,SCAN ;KIEM TRA QUET CAC COT (MA TRAN GOM 8 COT) POP 01H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP 00H POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** TATLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 1S PUSH 00H MOV R0,#100
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 2: Chương trình điều khiển hiển thị chữ S màu đỏ trên LED ma trận sáng tắt (COL-RED được nối với
Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
Giáo trình thực hành vi xử lý. 161 Biên soạn: Phạm Quang Trí
MOV TMOD,#01H TAT: MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,TAT POP 00H RET ;*************************************************** CODEDISP: DB 07H,0DBH,0DDH,0DBH,07H,0FFH,0FFH,0FFH ;CHU A END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị chữ W màu đỏ sáng tắt trên LED ma trận (COL-RED
được nối với Port1, ROW được nối với Port2). • Bài 2: Hãy viết chương trình điều khiển hiển thị số 0 màu xanh sáng tắt trên LED ma trận (COL-GRE được
nối với Port1, ROW được nối với Port2). • Bài 3: Hãy viết chương trình điều khiển hiển thị chữ H màu vàng sáng tắt trên sáng tắt LED ma trận (COL-
RED được nối với Port 1, COL-GRE được nối với Port2, ROW được nối với Port3). • Bài 4: Hãy viết chương trình điều khiển hiển thị liên tục chữ A sáng màu đỏ, sau đó là màu xanh và cuối
cùng là màu vàng trên LED ma trận (COL-RED được nối với Port 1, COL-GRE được nối với Port2, ROW được nối với Port3).
• Bài 5: Hãy lập bảng mã cho tất cả các ký tự chữ, ký tự số và ký tự đặc biệt có trên bàn phím máy tính. Và thử đưa các mã đã lập này vào chương trình điều khiển hiển thị ở trên để xem hình ảnh chúng như thế nào?
• Bài 6: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 3: Chương trình điều khiển hiển thị lần lượt các chữ A, B, C, a, b, c màu đỏ trên LED ma trận (COL-RED
được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
Giáo trình thực hành vi xử lý. 162 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH HIEN THI CHUOI KY TU A,B,C,a,b,c LAN LUOT TREN MA TRAN LED ;*************************************************** ;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;***************************************************
ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MP1: MOV R0,#50 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH LED MP2: LCALL SCANMATRIXSTA ;HIEN THI DU LIEU DJNZ R0,MP2 MOV A,DPL ;DICH DEN DIA CHI CUA KY TU KE TIEP ADD A,#8 ;ADDNEXT = ADDPREV + 8 (DO DAI KY TU = 8) MOV DPL,A CJNE A,#LOW(CODEDISP+48),MP1 ;KIEM TRA HIEN THI XONG TAT CA CAC CHUOI LJMP MAIN ;*************************************************** ;CTC QUET MA TRAN 8 X 8. ;*************************************************** ;NAME: SCANMATRIXSTA. ;OUTPUT: P1 = COLUMN MATRIX (NOT BUFFER). ; P2 = ROW MATRIX. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI. ;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0). ;*************************************************** SCANMATRIXSTA: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA MOV R1,#01H ;MA QUET COT DAU TIEN SCAN: MOV A,R0 MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI MOV P2,A ;XUAT MA HIEN THI RA HANG MOV P1,R1 ;XUAT MA QUET RA COT LCALL DELAYLED MOV P1,#00H ;CHONG LEM INC R0 ;LAY DU LIEU KE TIEP MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP RL A MOV R1,A CJNE R0,#8H,SCAN ;KIEM TRA QUET XONG CAC COT (MA TRAN GOM 8 COT) POP 01H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP 00H POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 3: Chương trình điều khiển hiển thị lần lượt các chữ A, B, C, a, b, c màu đỏ trên LED ma trận (COL-RED
được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
Giáo trình thực hành vi xử lý. 163 Biên soạn: Phạm Quang Trí
;*************************************************** CODEDISP: DB 07H,0DBH,0DDH,0DBH,07H,0FFH,0FFH,0FFH ;CHU A DB 01H,6DH,6DH,6DH,93H,0FFH,0FFH,0FFH ;CHU B DB 83H,7DH,7DH,7DH,0BBH,0FFH,0FFH,0FFH ;CHU C DB 0BFH,57H,57H,57H,0FH,0FFH,0FFH,0FFH ;CHU a DB 01H,6FH,77H,77H,8FH,0FFH,0FFH,0FFH ;CHU b DB 8FH,77H,77H,77H,0BFH,0FFH,0FFH,0FFH ;CHU c END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị số đếm BCD từ 0 lên 9 màu đỏ trên LED ma trận (COL-
RED được nối với Port1, ROW được nối với Port2). • Bài 2: Hãy viết chương trình điều khiển hiển thị số đếm BCD từ 9 xuống 0 màu xanh trên LED ma trận
(COL-GRE được nối với Port1, ROW được nối với Port2). • Bài 3: Hãy viết chương trình điều khiển hiển thị các ký tự từ A đến Z màu đỏ trên LED ma trận (COL-
RED được nối với Port1, ROW được nối với Port2). • Bài 4: Hãy viết chương trình điều khiển hiển thị các ký tự từ Z đến A màu xanh trên LED ma trận (COL-
GRE được nối với Port1, ROW được nối với Port2). • Bài 5: Hãy viết chương trình điều khiển hiển thị số đếm BCD từ 0 đến 9 trên LED ma trận (COL-GRE
được nối với Port1, ROW được nối với Port2). Với điều kiện màu của các số sẽ thay đổi liên tục ĐỎ – XANH – VÀNG mỗi khi con số trên LED ma trận thay đổi.
• Bài 6: Hãy viết chương trình điều khiển hiển thị các ký tự từ A đến Z trên LED ma trận (COL-GRE được nối với Port1, ROW được nối với Port2). Với điều kiện màu của các ký tự sẽ thay đổi liên tục ĐỎ – XANH – VÀNG sau mỗi một giây đồng hồ.
• Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 4: Chương trình điều khiển hiển thị chuỗi ký tự “WELLCOME” màu đỏ trên LED ma trận dịch chuyển từ
phải sang trái (COL-RED được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
Giáo trình thực hành vi xử lý. 164 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH HIEN THI CHUOI KY TU WELLCOME LAN LUOT TREN MA TRAN LED ;*************************************************** ;ROW -> PORT2, RED COLUMN -> PORT1 (CO DEM DAO) ;PHUONG PHAP: QUET COT (ACT = 1) - HIEN THI HANG (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV DPTR,#CODEDISP ;NAP DIA CHI VUNG MA HIEN THI MP1: MOV R0,#20 ;BIEN LAP - THOI GIAN CUA 1 TRANG THAI MAN HINH LED MP2: LCALL SCANMATRIXSTA ;HIEN THI DU LIEU DJNZ R0,MP2 INC DPTR ;DICH CHUOI DI MOT MA KY TU MOV A,DPL CJNE A,#LOW(CODEDISP+48),MP1 ;KIEM TRA HIEN THI XONG CHUOI SJMP MAIN ;SO KY TU CUA CHUOI = 24 MA KY TU ;*************************************************** ;CTC QUET MA TRAN 8 X 8. ;*************************************************** ;NAME: SCANMATRIXSTA. ;OUTPUT: P1 = COLUMN MATRIX (NOT BUFFER). ; P2 = ROW MATRIX. ;INPUT: DPTR = VUNG NHO CHUA DU LIEU HIEN THI. ;MODE: STATIC DISP, SCAN COLUMN (ACT = 1) - DISPLAY ROW (ACT = 0). ;*************************************************** SCANMATRIXSTA: PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H PUSH 01H MOV R0,#00H ;VI TRI CUA DU LIEU COT DAU TIEN TRONG VUNG MA MOV R1,#01H ;MA QUET COT DAU TIEN SCAN: MOV A,R0 MOVC A,@A+DPTR ;LAY MA HIEN THI TRONG VUNG MA THEO VI TRI MOV P2,A ;XUAT MA HIEN THI RA HANG MOV P1,R1 ;XUAT MA QUET RA COT LCALL DELAYLED MOV P1,#00H ;CHONG LEM INC R0 ;LAY DU LIEU KE TIEP MOV A,R1 ;DICH MA QUET - MA QUET CHO COT KE TIEP RL A MOV R1,A CJNE R0,#8H,SCAN ;KIEM TRA QUET XONG CAC COT (MA TRAN GOM 8 COT) POP 01H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP 00H POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;***************************************************
C. HỆ THỐNG ĐIỀU KHIỂN LED MA TRẬN. Bài 4: Chương trình điều khiển hiển thị chuỗi ký tự “WELLCOME” màu đỏ trên LED ma trận dịch chuyển từ
phải sang trái (COL-RED được nối với Port1 có sử dụng bộ đệm đảo, ROW được nối với Port2).
Giáo trình thực hành vi xử lý. 165 Biên soạn: Phạm Quang Trí
CODEDISP: DB 81H,7FH,87H,7FH,81H,0FFH ;CHU W DB 01H,6DH,6DH,6DH,7DH,0FFH ;CHU E DB 01H,7FH,7FH,7FH,7FH,0FFH ;CHU L DB 01H,7FH,7FH,7FH,7FH,0FFH ;CHU L DB 83H,7DH,7DH,7DH,0BBH,0FFH ;CHU C DB 83H,7DH,7DH,7DH,83H,0FFH ;CHU O DB 01H,0FBH,0F7H,0FBH,01H,0FFH ;CHU M DB 01H,6DH,6DH,6DH,7DH,0FFH ;CHU E END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị chuỗi ký tự “KHOA DIEN TU” màu xanh dịch chuyển từ
phải sang trái trên LED ma trận (COL-GRE được nối với Port1, ROW được nối với Port2). • Bài 2: Hãy viết chương trình điều khiển hiển thị chuỗi ký tự “TRUONG DAI HOC CONG NGHIEP TP
HO CHI MINH – KHOA DIEN TU” màu đỏ dịch chuyển từ phải sang trái trên LED ma trận (COL-RED được nối với Port1, ROW được nối với Port2).
• Bài 3: Hãy viết chương trình điều khiển hiển thị tương tự như bài tập 1 và 2 nhưng màu của ma trận LED sẽ thay đổi liên tục ĐỎ – XANH – VÀNG sau mỗi một giây đồng hồ.
• Bài 4: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM.
Giáo trình thực hành vi xử lý. 167 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển các thiết bị ngoại vi bằng bàn phím (bàn phím thiết kế theo kiểu ma trận). • Trình bày kỹ thuật quét phím cho dạng bàn phím ma trận 16 phím (4 hàng x 4 cột). • Trình bày một số ứng dụng trong kỹ thuật điều khiển bàn phím.
B. 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.
D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 1: Chương trình đ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).
Giáo trình thực hành vi xử lý. 168 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • 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. • 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. • Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED với nguồn +5V ở khối nguồn.
KEYBOARD
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;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 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
D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 1: Chương trình đ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).
Giáo trình thực hành vi xử lý. 169 Biên soạn: Phạm Quang Trí
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 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
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển và hiển thị mã của phím nhấn trên 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. • Bài 2: Hãy viết chương trình điều khiển và hiển thị mã của phím nhấn 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. • Bài 3: Hãy viết chương trình điều khiển và hiển thị tên của phím nhấn trên 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. • Bài 4: Hãy viết chương trình điều khiển và hiển thị tên của phím nhấn 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. • Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: 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 “1”: 8 LED sáng tắt 3 lần. Nhấn phím “2”: 8 LED sáng dần và tắt dần. Nhấn phím “3”: 8 LED đếm lên nhị phân. Nhấn phím “ESC”: 8 LED sáng dồn.
Giáo trình thực hành vi xử lý. 170 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN LED HIEN THI CAC KIEU KHAC NHAU KHI ;TA NHAN CAC 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,#0CH,NEXT1 ;KHONG PHAI PHIM F1 -> KIEM TIEP LCALL CHOPTAT ;PHIM F1 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG NEXT1: CJNE A,#08H,NEXT2 ;KHONG PHAI PHIM F2 -> KIEM TIEP LCALL SANGDAN ;PHIM F2 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG NEXT2: CJNE A,#04H,NEXT3 ;KHONG PHAI PHIM F3 -> KIEM TIEP LCALL DEMLEN ;PHIM F3 DUOC NHAN -> CHAY CHUONG TRINH CON TUONG UNG NEXT3: CJNE A,#00H,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 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
D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: 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 “1”: 8 LED sáng tắt 3 lần. Nhấn phím “2”: 8 LED sáng dần và tắt dần. Nhấn phím “3”: 8 LED đếm lên nhị phân. Nhấn phím “ESC”: 8 LED sáng dồn.
Giáo trình thực hành vi xử lý. 171 Biên soạn: Phạm Quang Trí
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 LCALL DELAY500MS 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 LEN NHI PHAN PUSH ACC MOV A,#00H ;LED TAT LCALL DELAY500MS 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 LCALL DELAY500MS RLC A ;DICH BIT 1 SANG TRAI KEM C, SANG DAN JNC SD1 ;CHUA SANG HET THI LAM TIEP SD2: CLR C ;C=1 MOV P1,A ;HIEN THI LCALL DELAY500MS RLC A ;DICH BIT 1 SANG TRAI KEM C, TAT DAN JC SD2 ;CHUA TAT HET THI LAM TIEP POP ACC RET
D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: 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 “1”: 8 LED sáng tắt 3 lần. Nhấn phím “2”: 8 LED sáng dần và tắt dần. Nhấn phím “3”: 8 LED đếm lên nhị phân. Nhấn phím “ESC”: 8 LED sáng dồn.
Giáo trình thực hành vi xử lý. 172 Biên soạn: Phạm Quang Trí
;*************************************************** SANGDON: PUSH ACC MOV R0,#08H ;LUU SO LAN DICH BIT MOV R1,#00H ;TRANG THAI LED KHI DON LAN 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 DEC R0 ;GIAM SO LAN DON LED SETB C ;THAY DOI TRANG THAI LED CHO LAN DON TIEP THEO MOV A,R1 RRC A MOV R1,A CJNE R0,#00H,LAP2 ;CHUA HOAN TAT CHU TRINH? QUAY LAÁa POP ACC RET ;*************************************************** DELAY500MS: ;CTC TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H DEL1: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,DEL1 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • 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. � Nhấn phím “ENTER”: hiển thị chuỗi. � Nhấn phím “ESC”: không hiển thị chuỗi. � Nhấn phím “1”: sáng tắt chuỗi liên tục. � Nhấn phím “2”: dịch chuyển chuỗi từ phải sang trái liên tục. � Nhấn phím “3”: dịch chuyển chuỗi từ trái sang phải liên tục. � Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
• 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.
� Nhấn phím “ESC”: không hiển thị chuỗi. � Nhấn phím “1”: hiển thị chuỗi “COCACOLA”. � Nhấn phím “2”: hiển thị chuỗi “PEPSI”. � Nhấn phím “3”: hiển thị chuỗi “FANTA”. � Nhấn phím “4”: hiển thị chuỗi “TRIBECO”. � Nhấn phím “5”: hiển thị chuỗi “NUOCSUOI”.
D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: 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 “1”: 8 LED sáng tắt 3 lần. Nhấn phím “2”: 8 LED sáng dần và tắt dần. Nhấn phím “3”: 8 LED đếm lên nhị phân. Nhấn phím “ESC”: 8 LED sáng dồn.
Giáo trình thực hành vi xử lý. 173 Biên soạn: Phạm Quang Trí
� Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. • 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 LED1. Tự lựa chọn phương
pháp kết nối bàn phím và LED 7 đoạn. � Nhấn phím “ESC”: không hiển thị. � Nhấn phím “1”: hiển thị đếm BCD từ 0 lên 9 trên LED1. � Nhấn phím “2”: hiển thị đếm BCD từ 9 xuống 0 trên LED1. � Nhấn phím “3”: hiển thị đếm HEX từ 0 lên F trên LED1. � Nhấn phím “4”: hiển thị đếm HEX từ 9 xuống 0 trên LED1. � Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
• 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 ký tự “A” 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.
� Nhấn phím “F1”: hiển thị ký tự màu đỏ. � Nhấn phím “F2”: hiển thị ký tự màu xanh. � Nhấn phím “F3”: hiển thị ký tự màu vàng. � Nhấn phím “ESC”: không hiển thị ký tự. � Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
• Bài 5: 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.
� Nhấn phím “ESC”: không hiển thị. � Nhấn phím “1”: hiển thị đếm BCD từ 0 lên 9 trên LED ma trận. � Nhấn phím “2”: hiển thị đếm BCD từ 9 xuống 0 trên LED ma trận. � Nhấn phím “3”: hiển thị các ký tự từ A đến Z trên LED ma trận. � Nhấn phím “4”: hiển thị các ký tự từ Z đến A trên LED ma trận.
• Bài 6: 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.
� Nhấn phím “ESC”: không hiển thị chuỗi. � Nhấn phím “1”: dịch chuyển chuỗi từ phải sang trái liên tục. � Nhấn phím “2”: dịch chuyển chuỗi từ trái sang phải liên tục. � Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
• Bài 7: 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 hai chuỗi ký tự “DAI HOC CONG NGHIEP TP HO CHI MINH” và “KHOA DIEN TU” 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.
� Nhấn phím “ESC”: không hiển thị chuỗi. � Nhấn phím “1”: dịch chuyển chuỗi từ phải sang trái liên tục. � Nhấn phím “2”: dịch chuyển chuỗi từ trái sang phải liên tục. � Nhấn phím “F1”: chọn chuỗi hiển thị có màu đỏ. � Nhấn phím “F2”: chọn chuỗi hiển thị có màu xanh. � Nhấn phím “F3”: chọn chuỗi hiển thị là “DAI HOC CONG NGHIEP TP HO CHI MINH”. � Nhấn phím “F4”: chọn chuỗi hiển thị là “KHOA DIEN TU”.
• Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
Chương trình con quét phím có chống dội: o Lưu đồ:
o Chương trình mẫu:
;*************************************************** ;CTC QUET BAN PHIM MA TRAN 4 X 4, CO CHONG DOI. ;*************************************************** ;NAME: SCANKEYPAD. ;INPUT: PORT 0 (ROW1...ROW4 -> P0.0...P0.3 & COL1...COL4 -> P0.4...P0.7). ;OUTPUT: C = 1: CO PHIM NHAN - ACC = CHUA MA PHIM (00H -> FFH).
D. HỆ THỐNG ĐIỀU KHIỂN BÀN PHÍM. Bài 2: 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 “1”: 8 LED sáng tắt 3 lần. Nhấn phím “2”: 8 LED sáng dần và tắt dần. Nhấn phím “3”: 8 LED đếm lên nhị phân. Nhấn phím “ESC”: 8 LED sáng dồn.
Giáo trình thực hành vi xử lý. 174 Biên soạn: Phạm Quang Trí
; C = 0: KHONG CO PHIM NHAN. ;*************************************************** SCANKEYPAD: 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 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 ;***************************************************
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
E. HỆ THỐNG ĐIỀU KHIỂN LCD.
Giáo trình thực hành vi xử lý. 176 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Khảo sát nguyên lý hoạt động và nguyên lý điều khiển LCD. • Điều khiển để hiển thị các thông tin trên màn hình tinh thể lỏng LCD (chuẩn công nghiệp, loại 2 hàng x 16
ký tự).
B. 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 LCD. • Nắm được sơ đồ và nguyên lý hoạt động của khối LCD trên mô hình thí nghiệm. • Nắm được nguyên lý và kỹ thuật điều khiển để hiển thị các thông tin trên LCD. • Biết cách viết các chương trình ứng dụng để hiển thị các dạng thông tin khác nhau trên LCD tùy theo nhu
cầu sử dụng.
E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 1: Chương trình điều khiển LCD hiển thị hai dòng chữ “MICRO-CONTROLLER” và “DESIGNED BY:
PQT.” đứng yên trên hai dòng của màn hình LCD.
Giáo trình thực hành vi xử lý. 177 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 3 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J47 (CTRL LCD) ở khối LCDõ (chú ý
là ta chỉ nối 3 bit thấp của J63 và J47 với nhau). • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J46 (DATA / CODE LCD) ở khối LCD. • Dùng dây bus 3 nối J104 (POWER) ở khối LCDõ với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN LCD HIEN THI 2 DONG CHU DUNG YEN ;*************************************************** ;RS -> P0.0, RW -> P0.1, E -> P0.2 ;DATA BUS -> PORT 1 ;*************************************************** EN BIT P0.2 RW BIT P0.1 RS BIT P0.0 DATABUS EQU P1 ;*************************************************** ORG 00H MAIN: ACALL LCDINIT ;KHOI TAO LCD MP1: ACALL DISP_FLINE ;HIEN THI DONG 1 ACALL DISP_SLINE ;HIEN THI DONG 2 SJMP $ ;*************************************************** LCDINIT: ;CTC KHOI TAO LCD CLR RS ;RS = 0 - GUI LENH CLR RW ;RW = 0 - WRITE LCD MODE SETB EN ;E = 1 - ENABLE MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-4100) MOV TL0,#LOW(-4100) ACALL DELAY ;DELAY 4.1MS MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-100) MOV TL0,#LOW(-100) ACALL DELAY ;DELAY 100US MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#0CH ;CODE = C0H - CHO PHEP LCD HIEN THI ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#01H ;CODE = 01H - XOA LCD ACALL SENDCOMMAND ;GUI LENH RA LCD RET
E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 1: Chương trình điều khiển LCD hiển thị hai dòng chữ “MICRO-CONTROLLER” và “DESIGNED BY:
PQT.” đứng yên trên hai dòng của màn hình LCD.
Giáo trình thực hành vi xử lý. 178 Biên soạn: Phạm Quang Trí
;*************************************************** SENDCOMMAND: ;CTC GUI LENH (SENDCOMMAND) VA GUI DU LIEU (SENDDATA) RA LCD CLR RS ;RS = 0 - GUI LENH SJMP PULSE_EN SENDDATA: SETB RS ;RS = 1 - GUI DU LIEU NOP PULSE_EN: ;TAO XUNG ENABLE DE CHUYEN THONG TIN (COMMAND/DATA) VAO LCD CLR RW ;RW = 0 - WRITE LCD MODE CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP ;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN ;************************************************************* ;MOV TH0,#HIGH(-1000) ;DOAN LENH NAY DUOC THAY THE CHO DOAN LENH KIEM TRA DUOI DAY ;MOV TL0,#LOW(-1000) ;KHI CHAY CHUONG TRINH NAY TRONG PHAN MEM MO PHONG TOPVIEW ;ACALL DELAY ;************************************************************* MOV DATABUS,#0FFH ;CAU HINH PORT 1 CHO CHE DO PORT NHAP SETB RW ;RW = 1 - READ LCD MODE CLR RS ;RS = 0 - GUI LENH CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP BUSY: ;BUSY = 0 -> HOAN TAT, BUSY = 1 -> DANG THUC HIEN MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY ;KIEM TRA CO BUSY BUSY2: ;KIEM TRA CO BAO BAN (BUSY FLAG) LAN THU HAI MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY2 ;KIEM TRA CO BUSY LAN 2 CLR RW ;RW = 0 - WRITE LCD MODE ;************************************************************* RET ;*************************************************** DISP_FLINE: ;CTC DAT DIA CHI BAT DAU DONG 1 VA NAP DU LIEU DONG 1 VAO DDRAM MOV DATABUS,#80H ;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DPTR,#FLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 1 CUA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** DISP_SLINE: ;CTC DAT DIA CHI BAT DAU DONG 2 VA NAP DU LIEU DONG 2 VAO DDRAM MOV DATABUS,#0C0H ;CODE = C0H - DAT DDRAM DIA CHI BAT DAU CUA DONG 2 - 40H ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DPTR,#SLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 2 CUA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** WRITE: ;CTC GUI DU LIEU SANG LCD, KET THUC GUI DU LIEU KHI DU LIEU GUI DI LA 99H MOV A,#0 ;OFFSET DAU TIEN TRONG VUNG DU LIEU CUA DPTR MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG DU LIEU CJNE A,#99H,WRITE_CONT ;KIEM TRA LAY HET DU LIEU TRONG VUNG DU LIEU - 99H RET WRITE_CONT: ;KHONG PHAI LA DU LIEU KET THUC - CHUA LAY HET DU LIEU MOV DATABUS,A ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD ACALL SENDDATA ;GUI DU LIEU RA LCD INC DPTR ;CHUYEN SANG DU LIEU KE TIEP SJMP WRITE ;QUAY TRO VE DE GUI DU LIEU KE TIEP RET ;*************************************************** DELAY: MOV TMOD,#01H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0
RET
E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 1: Chương trình điều khiển LCD hiển thị hai dòng chữ “MICRO-CONTROLLER” và “DESIGNED BY:
PQT.” đứng yên trên hai dòng của màn hình LCD.
Giáo trình thực hành vi xử lý. 179 Biên soạn: Phạm Quang Trí
;*************************************************** FLINE_DATA: ;DU LIEU HIEN THI DONG 1 DB 'MICRO-CONTROLLER' DB 99H ;MA KET THUC DONG (TU CHON) SLINE_DATA: ;DU LIEU HIEN THI DONG 2 DB 'DESIGNED BY: PQT' DB 99H ;MA KET THUC DONG (TU CHON) END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 2: Chương trình điều khiển LCD hiển thị hai dòng chữ “WELLCOME TO MICROCONTROLLER
SYSTEM – 51” và “DESIGNED BY: PQT.” trên hai dòng của màn hình LCD với yêu cầu: dòng chữ thứ nhất sẽ dịch chuyển liên tục từ phải sang trái, dòng chữ thứ hai đứng yên.
Giáo trình thực hành vi xử lý. 180 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN LCD HIEN THI DONG CHU 1 DICH CHUYEN, DONG CHU 2 DUNG YEN ;*************************************************** EN BIT P0.2 RW BIT P0.1 RS BIT P0.0 DATABUS EQU P1 ;*************************************************** ORG 00H MAIN: ACALL LCDINIT ;KHOI TAO LCD MOV DPTR,#SLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 2 CUA LCD ACALL DISP_SLINE ;HIEN THI DONG 2 MP1: MOV DPTR,#FLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 1 CUA LCD SHIFT: ACALL DISP_FLINE ;HIEN THI DONG 1 MOV R1,#50 ;DELAY 500MS DEL500: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) ACALL DELAY DJNZ R1,DEL500 ;THOI GIAN DUNG YEN CUA MOT TRANG THAI MAN HINH LCD INC DPTR ;TANG GIA TRI DPTR DE DICH CHUYEN DONG CHU MOV A,DPL ;KIEM TRA DA DICH XONG DONG CHU RA MAN HINH LCD CJNE A,#LOW(FLINE_DATA+40),SHIFT MOV A,DPH CJNE A,#HIGH(FLINE_DATA+40),SHIFT SJMP MP1 ;*************************************************** LCDINIT: ;CTC KHOI TAO LCD CLR RS ;RS = 0 - GUI LENH CLR RW ;RW = 0 - WRITE LCD MODE SETB EN ;E = 1 - ENABLE MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-4100) MOV TL0,#LOW(-4100) ACALL DELAY ;DELAY 4.1MS MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-100) MOV TL0,#LOW(-100) ACALL DELAY ;DELAY 100US MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#0CH ;CODE = C0H - CHO PHEP LCD HIEN THI ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#01H ;CODE = 01H - XOA LCD ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#0C0H ;CODE = C0H - DAT DDRAM DIA CHI BAT DAU CUA DONG 2 - 40H ACALL SENDCOMMAND ;GUI LENH RA LCD (VI DONG 2 DUNG YEN TRONG KHI DONG 1 CHAY) RET ;*************************************************** SENDCOMMAND: ;CTC GUI LENH (SENDCOMMAND) VA GUI DU LIEU (SENDDATA) RA LCD CLR RS ;RS = 0 - GUI LENH SJMP PULSE_EN SENDDATA: SETB RS ;RS = 1 - GUI DU LIEU NOP PULSE_EN: ;TAO XUNG ENABLE DE CHUYEN THONG TIN (COMMAND/DATA) VAO LCD CLR RW ;RW = 0 - WRITE LCD MODE
E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 2: Chương trình điều khiển LCD hiển thị hai dòng chữ “WELLCOME TO MICROCONTROLLER
SYSTEM – 51” và “DESIGNED BY: PQT.” trên hai dòng của màn hình LCD với yêu cầu: dòng chữ thứ nhất sẽ dịch chuyển liên tục từ phải sang trái, dòng chữ thứ hai đứng yên.
Giáo trình thực hành vi xử lý. 181 Biên soạn: Phạm Quang Trí
CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP ;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN ;************************************************************* ;MOV TH0,#HIGH(-1000) ;DOAN LENH NAY DUOC THAY THE CHO DOAN LENH KIEM TRA DUOI DAY ;MOV TL0,#LOW(-1000) ;KHI CHAY CHUONG TRINH NAY TRONG PHAN MEM MO PHONG TOPVIEW ;ACALL DELAY ;************************************************************* MOV DATABUS,#0FFH ;CAU HINH PORT 1 CHO CHE DO PORT NHAP SETB RW ;RW = 1 - READ LCD MODE CLR RS ;RS = 0 - GUI LENH CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP BUSY: ;BUSY = 0 -> HOAN TAT, BUSY = 1 -> DANG THUC HIEN MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY ;KIEM TRA CO BUSY BUSY2: ;KIEM TRA CO BAO BAN (BUSY FLAG) LAN THU HAI MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY2 ;KIEM TRA CO BUSY LAN 2 CLR RW ;RW = 0 - WRITE LCD MODE ;************************************************************* RET ;*************************************************** DISP_FLINE: ;CTC DAT DIA CHI BAT DAU DONG 1 VA NAP DU LIEU DONG 1 VAO DDRAM MOV DATABUS,#80H ;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** DISP_SLINE: ;CTC DAT DIA CHI BAT DAU DONG 2 VA NAP DU LIEU DONG 2 VAO DDRAM MOV DATABUS,#0C0H ;CODE = C0H - DAT DDRAM DIA CHI BAT DAU CUA DONG 2 - 40H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** WRITE: ;CTC GUI DU LIEU SANG LCD, KET THUC GUI DU LIEU KHI DU LIEU GUI DI LA 99H MOV R0,#0 ;OFFSET DAU TIEN TRONG VUNG DU LIEU CUA DPTR WR1: MOV A,R0 ;NAP OFFSET MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG DU LIEU MOV DATABUS,A ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD ACALL SENDDATA ;GUI DU LIEU RA LCD INC R0 ;CHUYEN SANG DU LIEU KE TIEP CJNE R0,#16,WR1 ;KIEM TRA NAP DAY DU DU LIEU CHO MOT DONG MAN HINH - 16 CHU RET ;*************************************************** DELAY: MOV TMOD,#01H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET ;*************************************************** FLINE_DATA: ;DU LIEU HIEN THI DONG 1 DB ' WELLCOME TO MICROCONTROLLER SYSTEM - 51' SLINE_DATA: ;DU LIEU HIEN THI DONG 2 DB 'DESIGNED BY: PQT' END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 3: Chương trình điều khiển LCD hiển thị hai dòng chữ “PULSE = ” và “DESIGNED BY PHAM QUANG
TRI – ELECTRIC TRAINING CENTER - HO CHI MINH UNIVERSITY OF INDUSTRY” trên hai dòng của màn hình LCD với yêu cầu: số lượng xung đếm được (00 – 99) tại chân P3.0 sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “PULSE =”, dòng chữ thứ hai sẽ dịch chuyển từ phải sang trái. Xung được tạo ra bằng cách nhấn nút nhấn KEY0.
Giáo trình thực hành vi xử lý. 182 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 3 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J47 (CTRL LCD) ở khối LCDõ (chú ý
là ta chỉ nối 3 bit thấp của J63 và J47 với nhau). • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J46 (DATA / CODE LCD) ở khối LCD. • Dùng dây bus 8 nối J66 (PORT3 / FUNCTION) ở khối vi điều khiển với J76 (MOMENTARY SW) ở khối
nút nhấn. • Dùng dây hai bus 3 nối J104 (POWER) ở khối LCDõ và J114 (POWER) ở khối nút nhấn với nguồn +5V
ở khối nguồn.
MOMENTARY
SW
POWER
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN LCD HIEN THI DONG CHU 1 HIEN THI XUNG, DONG CHU 2 DICH CHUYEN ;*************************************************** ;RS -> P0.0, RW -> P0.1, E -> P0.2 ;DATA BUS -> PORT 1 OMENTARY SW -> PORT 3 (P3.0 -> ACT = 0) ;*************************************************** EN BIT P0.2 RW BIT P0.1 RS BIT P0.0 DATABUS EQU P1 ;*************************************************** ORG 00H MAIN: ACALL LCDINIT ;KHOI TAO LCD MOV R7,#0 ;SO XUNG BAN DAU MOV DPTR,#FLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 1 CUA LCD ACALL DISP_FLINE ;HIEN THI DONG 1 MP1: MOV DPTR,#SLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 2 CUA LCD SHIFT: ACALL DISP_SLINE ;HIEN THI DONG 2 ACALL DISP_PULSE ;HIEN THI SO XUNG MOV R1,#100 ;DELAY 500MS JB P3.0,DEL500 ;TIEP TUC CHUONG TRINH KHI KHONG NHAN NUT NHAN MOV A,R7 ;TANG GIA TRI KHI CO NHAN NUT NHAN (P3.0 = 0) ADD A,#1 DA A MOV R7,A DEL500: MOV TH0,#HIGH(-5000) MOV TL0,#LOW(-5000) ACALL DELAY
E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 3: Chương trình điều khiển LCD hiển thị hai dòng chữ “PULSE = ” và “DESIGNED BY PHAM QUANG
TRI – ELECTRIC TRAINING CENTER - HO CHI MINH UNIVERSITY OF INDUSTRY” trên hai dòng của màn hình LCD với yêu cầu: số lượng xung đếm được (00 – 99) tại chân P3.0 sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “PULSE =”, dòng chữ thứ hai sẽ dịch chuyển từ phải sang trái. Xung được tạo ra bằng cách nhấn nút nhấn KEY0.
Giáo trình thực hành vi xử lý. 183 Biên soạn: Phạm Quang Trí
DJNZ R1,DEL500 ;THOI GIAN DUNG YEN CUA MOT TRANG THAI MAN HINH LCD INC DPTR ;TANG GIA TRI DPTR DE DICH CHUYEN DONG CHU MOV A,DPL ;KIEM TRA DA DICH XONG DONG CHU RA MAN HINH LCD CJNE A,#LOW(SLINE_DATA+91),SHIFT MOV A,DPH CJNE A,#HIGH(SLINE_DATA+91),SHIFT SJMP MP1 ;*************************************************** LCDINIT: ;CTC KHOI TAO LCD CLR RS ;RS = 0 - GUI LENH CLR RW ;RW = 0 - WRITE LCD MODE SETB EN ;E = 1 - ENABLE MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-4100) MOV TL0,#LOW(-4100) ACALL DELAY ;DELAY 4.1MS MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-100) MOV TL0,#LOW(-100) ACALL DELAY ;DELAY 100US MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#0CH ;CODE = C0H - CHO PHEP LCD HIEN THI ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#01H ;CODE = 01H - XOA LCD ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#80H ;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H ACALL SENDCOMMAND ;GUI LENH RA LCD (VI DONG 1 DUNG YEN TRONG KHI DONG 2 CHAY) RET ;*************************************************** SENDCOMMAND: ;CTC GUI LENH (SENDCOMMAND) VA GUI DU LIEU (SENDDATA) RA LCD CLR RS ;RS = 0 - GUI LENH SJMP PULSE_EN SENDDATA: SETB RS ;RS = 1 - GUI DU LIEU NOP PULSE_EN: ;TAO XUNG ENABLE DE CHUYEN THONG TIN (COMMAND/DATA) VAO LCD CLR RW ;RW = 0 - WRITE LCD MODE CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP ;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN ;************************************************************* ;MOV TH0,#HIGH(-1000) ;LENH NAY DUOC THAY THE CHO DOAN MA KIEM TRA DUOI DAY KHI ;MOV TL0,#LOW(-1000) ;CHAY CHUONG TRINH NAY TRONG PHAN MEM MO PHONG TOPVIEW ;ACALL DELAY ;************************************************************* MOV DATABUS,#0FFH ;CAU HINH PORT 1 CHO CHE DO PORT NHAP SETB RW ;RW = 1 - READ LCD MODE CLR RS ;RS = 0 - GUI LENH CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP BUSY: ;BUSY = 0 -> HOAN TAT, BUSY = 1 -> DANG THUC HIEN MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY ;KIEM TRA CO BUSY BUSY2: ;KIEM TRA CO BAO BAN (BUSY FLAG) LAN THU HAI MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY2 ;KIEM TRA CO BUSY LAN 2 CLR RW ;RW = 0 - WRITE LCD MODE (THOAT READ MODE, TRO VE WRITE MODE) ;*************************************************************
E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 3: Chương trình điều khiển LCD hiển thị hai dòng chữ “PULSE = ” và “DESIGNED BY PHAM QUANG
TRI – ELECTRIC TRAINING CENTER - HO CHI MINH UNIVERSITY OF INDUSTRY” trên hai dòng của màn hình LCD với yêu cầu: số lượng xung đếm được (00 – 99) tại chân P3.0 sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “PULSE =”, dòng chữ thứ hai sẽ dịch chuyển từ phải sang trái. Xung được tạo ra bằng cách nhấn nút nhấn KEY0.
Giáo trình thực hành vi xử lý. 184 Biên soạn: Phạm Quang Trí
RET ;*************************************************** DISP_FLINE: ;CTC DAT DIA CHI BAT DAU DONG 1 VA NAP DU LIEU DONG 1 VAO DDRAM MOV DATABUS,#80H ;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** DISP_SLINE: ;CTC DAT DIA CHI BAT DAU DONG 2 VA NAP DU LIEU DONG 2 VAO DDRAM MOV DATABUS,#0C0H ;CODE = C0H - DAT DDRAM DIA CHI BAT DAU CUA DONG 2 - 40H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** DISP_PULSE: ;CTC HIEN THI SO XUNG TAI CHAN P3.0 MOV DATABUS,#88H ;CODE = 80H - DAT DDRAM DIA CHI HIEN THI SO XUNG - 08H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL BCDTOASCII ;GOI CHUONG TRING GIAI MA BCD SANG ASCII MOV DATABUS,7FH ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD (HANG CHUC) ACALL SENDDATA MOV DATABUS,7EH ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD (HANG DON VI) ACALL SENDDATA RET ;*************************************************** BCDTOASCII: ;CTC CHUYEN DOI TU SO BCD CHUA TRONG R7 (00 - 99) SANG MA ASCII (2 MA) MOV A,R7 ;LAY GIA TRI BCD (R7) CAN CHUYEN DOI ANL A,#0FH ;GIU LAI 4 BIT THAP (HANG DON VI) ADD A,#30H ;DOI SANG ASCII (ASCII = BCD + 30H) MOV 7EH,A ;CAT SO ASCII VAO VUNG NHO HANG DON VI MOV A,R7 ;LAY GIA TRI BCD (R7) CAN CHUYEN DOI ANL A,#0F0H ;GIU LAI 4 BIT CAO (HANG CHUC) SWAP A ADD A,#30H ;DOI SANG ASCII (ASCII = BCD + 30H) MOV 7FH,A ;CAT SO ASCII VAO VUNG NHO HANG CHUC RET ;*************************************************** WRITE: ;CTC GUI DU LIEU SANG LCD, KET THUC GUI DU LIEU KHI DU LIEU GUI DI LA 99H MOV R0,#0 ;OFFSET DAU TIEN TRONG VUNG DU LIEU CUA DPTR WR1: MOV A,R0 ;NAP OFFSET MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG DU LIEU MOV DATABUS,A ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD ACALL SENDDATA ;GUI DU LIEU RA LCD INC R0 ;CHUYEN SANG DU LIEU KE TIEP CJNE R0,#16,WR1 ;KIEM TRA NAP DAY DU DU LIEU CHO MOT DONG MAN HINH - 16 CHU RET ;*************************************************** DELAY: ;CTC DELAY CO KET HOP KIEM TRA NUT NHAN P3.0 MOV TMOD,#01H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET ;*************************************************** FLINE_DATA: ;DU LIEU HIEN THI DONG 1 DB 'PULSE = ' SLINE_DATA: ;DU LIEU HIEN THI DONG 2 DB ' ' DB 'DESIGNED BY PHAM QUANG TRI' DB ' - ELECTRIC TRAINING CENTER - ' DB 'HO CHI MINH UNIVERSITY OF INDUSTRY' END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 3: Chương trình điều khiển LCD hiển thị hai dòng chữ “PULSE = ” và “DESIGNED BY PHAM QUANG
TRI – ELECTRIC TRAINING CENTER - HO CHI MINH UNIVERSITY OF INDUSTRY” trên hai dòng của màn hình LCD với yêu cầu: số lượng xung đếm được (00 – 99) tại chân P3.0 sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “PULSE =”, dòng chữ thứ hai sẽ dịch chuyển từ phải sang trái. Xung được tạo ra bằng cách nhấn nút nhấn KEY0.
Giáo trình thực hành vi xử lý. 185 Biên soạn: Phạm Quang Trí
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển LCD hiển thị hai dòng chữ “TRUNG TAM” và “TNTH DIEN
TU” đứng yên trên hai dòng của màn hình LCD. • Bài 2: Hãy viết chương trình điều khiển LCD hiển thị hai dòng chữ “TRUNG TAM THI NGHIEM THUC
HANH DIEN TU – BO MON DIEN TU CONG NGHIEP” và “DH CONG NGHIEP” trên hai dòng của màn hình LCD với yêu cầu: dòng chữ thứ nhất dịch chuyển liên tục từ phải sang trái, dòng chữ thứ hai đứng yên.
• Bài 3: Hãy viết chương trình điều khiển LCD hiển thị hai dòng chữ “TRUONG DAI HOC CONG NGHIEP THANH PHO HO CHI MINH” và “TRUNG TAM THI NGHIEM THUC HANH DIEN TU – BO MON DIEN TU CONG NGHIEP” trên hai dòng của màn hình LCD với yêu cầu: hai dòng chữ đồng thời dịch chuyển liên tục từ phải sang trái.
• Bài 4: Hãy viết chương trình điều khiển LCD hiển thị hai dòng chữ “HO CHI MINH UNIVERSITY OF INDUSTRY – ELECTRONIC TRAINNING CENTER” và “IN 1 = … IN 2 = …” trên hai dòng của màn hình LCD với yêu cầu: dòng chữ thứ nhất sẽ dịch chuyển từ phải sang trái, số lượng xung đếm được tại chân P3.0 (IN 1) và chân P3.1 (IN 2) sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “UP = … DOWN= …”. Xung được tạo ra bằng cách nhấn nút nhấn KEY0.
• Bài 6: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN.
Giáo trình thực hành vi xử lý. 187 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển các thiết bị ngoại vi bằng nút nhấn. • Trình bày một số ứng dụng điều khiển các thiết bị ngoại vi có sử dụng nút nhấn.
B. 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 nút nhấn. • Nắm được sơ đồ và nguyên lý hoạt động của khối nút nhấn trên mô hình thí nghiệm. • Biết cách viết các chương trình ứng dụng có sử dụng nút nhấn để điều khiển các thiết bị ngoại vi khác
nhau.
F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 1: Chương trình điều khiển nút nhấn, khi ta nhấn nút nào trong 8 nút thì LED tương ứng sẽ sáng lên và
ngược lại (MOMENTARY SW được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 188 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • 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. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J76 (MOMENTARY SW) ở khối nút
nhấn. • Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED và J114 (POWER) ở khối nút nhấn với nguồn +5V ở
khối nguồn. MOMENTARY
SW
POWER
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
33
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN NUT NHAN LAM 8 LED HOAT DONG ;*************************************************** ;KET NOI: 8 LED -> PORT1 MOMENTARY SW -> PORT0 (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;TAT CAC LED KEY0: ;KEY0 JNB P0.0,KEY0OK ;KIEM TRA NUT KEY0 - Y: KEY0 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.0 ;KEY0 NHA -> LED TAT SJMP KEY1 ;KIEM TRA NUT KE TIEP KEY0OK: SETB P1.0 ;KEY0 NHAN -> LED SANG KEY1: ;KEY1 JNB P0.1,KEY1OK ;KIEM TRA NUT KEY1 - Y: KEY1 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.1 ;KEY1 NHA -> LED TAT SJMP KEY2 ;KIEM TRA NUT KE TIEP KEY1OK: SETB P1.1 ;KEY1 NHAN -> LED SANG KEY2: ;KEY2 JNB P0.2,KEY2OK ;KIEM TRA NUT KEY2 - Y: KEY2 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.2 ;KEY2 NHA -> LED TAT SJMP KEY3 ;KIEM TRA NUT KE TIEP KEY2OK: SETB P1.2 ;KEY2 NHAN -> LED SANG KEY3: ;KEY3 JNB P0.3,KEY3OK ;KIEM TRA NUT KEY3 - Y: KEY3 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.3 ;KEY3 NHA -> LED TAT SJMP KEY4 ;KIEM TRA NUT KE TIEP KEY3OK: SETB P1.3 ;KEY3 NHAN -> LED SANG KEY4: ;KEY4 JNB P0.4,KEY4OK ;KIEM TRA NUT KEY4 - Y: KEY4 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.4 ;KEY4 NHA -> LED TAT SJMP KEY5 ;KIEM TRA NUT KE TIEP KEY4OK: SETB P1.4 ;KEY4 NHAN -> LED SANG KEY5: ;KEY5
F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 1: Chương trình điều khiển nút nhấn, khi ta nhấn nút nào trong 8 nút thì LED tương ứng sẽ sáng lên và
ngược lại (MOMENTARY SW được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 189 Biên soạn: Phạm Quang Trí
JNB P0.5,KEY5OK ;KIEM TRA NUT KEY5 - Y: KEY5 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.5 ;KEY5 NHA -> LED TAT SJMP KEY6 ;KIEM TRA NUT KE TIEP KEY5OK: SETB P1.5 ;KEY5 NHAN -> LED SANG KEY6: ;KEY6 JNB P0.6,KEY6OK ;KIEM TRA NUT KEY6 - Y: KEY6 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.6 ;KEY6 NHA -> LED TAT SJMP KEY7 ;KIEM TRA NUT KE TIEP KEY6OK: SETB P1.6 ;KEY6 NHAN -> LED SANG KEY7: ;KEY7 JNB P0.7,KEY7OK ;KIEM TRA NUT KEY7 - Y: KEY7 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.7 ;KEY7 NHA -> LED TAT SJMP KEY0 ;KIEM TRA NUT KE TIEP KEY7OK: SETB P1.7 ;KEY7 NHAN -> LED SANG SJMP KEY0 END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)
F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 2: Chương trình điều khiển nút nhấn, khi ta nhấn nút KEY0 thì 8 LED sẽ chớp tắt với tần số 5 Hz và
ngược lại khi ta nhả nút KEY0 thì 8 LED sẽ chớp tắt với tần số 20 Hz (MOMENTARY SW được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 190 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN NUT NHAN LAM 8 LED HOAT DONG ;*************************************************** ;KET NOI: 8 LED -> PORT1 MOMENTARY SW -> PORT0 (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV A,#00H MP1: JNB P0.0,NHAN ;KIEM TRA NUT NHAN - Y: NUT DUOC NHAN ;NUT DUOC NHA -> F = 20 Hz ACALL DELAY50MS NHAN: ;NUT DUOC NHAN -> F = 5 Hz ACALL DELAY200MS SJMP MP1 ;*************************************************** DELAY50MS: ;CTC DELAY 500MS (F = 20 Hz) PUSH 00H CPL A ;CHOP TAT PORT 1 MOV P1,A MOV R0,#50 MOV TMOD,#01H DEL50: MOV TH0,#HIGH(-1000) MOV TL0,#LOW(-1000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,DEL50 POP 00H RET ;*************************************************** DELAY200MS: ;CTC DELAY 200MS (F = 5 Hz) PUSH 00H CPL A ;CHOP TAT PORT 1 MOV P1,A MOV R0,#100 MOV TMOD,#01H DEL5: MOV TH0,#HIGH(-2000) MOV TL0,#LOW(-2000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,DEL5 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển nút nhấn và biểu diễn các kiểu hiển thị trên 8 LED. Tự lựa chọn
phương pháp kết nối các nút nhấn và LED. � Nhấn nút “KEY0”: 8 LED sáng tắt liên tục. � Nhấn nút “KEY1”: 8 LED sáng dần và tắt hết liên tục. � Nhấn nút “KEY2”: 8 LED đếm lên nhị phân 8 bit liên tục. � Nhấn nút “KEY3”: 8 LED sáng đuổi liên tục.
F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 2: Chương trình điều khiển nút nhấn, khi ta nhấn nút KEY0 thì 8 LED sẽ chớp tắt với tần số 5 Hz và
ngược lại khi ta nhả nút KEY0 thì 8 LED sẽ chớp tắt với tần số 20 Hz (MOMENTARY SW được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 191 Biên soạn: Phạm Quang Trí
� Nhấn nút “KEY4”: 8 LED sáng dồn liên tục. � Nhấn nút “KEY5”: 8 LED tắt hết (không hoạt động).
• Bài 2: Hãy viết chương trình điều khiển khi nhấn nút nhấn nào thì số thứ tự của nút nhấn đó hiển thị lên LED 7 đoạn (LED0). Tự lựa chọn phương pháp kết nối các nút nhấn và LED 7 đoạn.
• Bài 3: Hãy viết chương trình điều khiển khi nhấn nút nhấn nào thì số thứ tự của nút nhấn đó hiển thị lên LED ma trận. Tự lựa chọn phương pháp kết nối các nút nhấn và LED ma trận.
• Bài 4: Hãy viết chương trình điều khiển khi nhấn nút nhấn KEY1 thì RELAY1 đóng, khi nhấn nút nhấn KEY2 thì RELAY2 đóng và ngược lại khi không nhấn nút nhấn thì các relay sẽ ngắt. Tự lựa chọn phương pháp kết nối các nút nhấn và relay.
• Bài 5: Hãy viết chương trình điều khiển khi nhấn nút nhấn KEY0 thì LED 7 đoạn (LED1) sẽ bắt đầu đếm BCD từ 9 xuống 0. Khi giá trị của LED 7 đoạn này giãm xuống tới giá trị 0 thì RELAY1 sẽ đóng lại. Sau đó khi nhấn nút nhấn KEY1 thì LED 7 đoạn tắt và RELAY1 ngắt. Tự lựa chọn phương pháp kết nối các nút nhấn, LED 7 đoạn và relay.
• Bài 6: Hãy viết chương trình điều khiển hiển thị số đếm BCD từ 00 lên 59 trên hai LED 7 đoạn (LED1 và LED2). Khi nhấn nút nhấn KEY0 thì qúa trình đếm dừng lại và giá trị trên hai LED 7 đoạn bắt đầu sáng tắt liên tục. Sau đó, khi nhấn nút KEY1 thì giá trị trên hai LED 7 đoạn tăng dần lên theo số lần nhấn nút, khi nhấn nút KEY2 thì giá trị trên hai LED 7 đoạn giãm dần lên theo số lần nhấn nút, khi nhấn nút KEY0 thì quá trình đếm lại tiếp tục. Tự lựa chọn phương pháp kết nối các nút nhấn và LED 7 đoạn.
• Bài 7: Hãy viết chương trình điều khiển hiển thị đồng hồ số trên sáu LED 7 đoạn (LED3 – LED7) có thể điều chỉnh dược thời gian bằng các nút nhấn:
� Nút “KEY0”: dùng để chọn lựa tính năng điều chỉnh (Giờ / Phút / Giây) hoặc dùng để thoát khỏi quá trình điều chỉnh thời gian.
� Nút “KEY1”: dùng để tăng giá trị thời gian. � Nút “KEY2”: dùng để giãm giá trị thời gian.
Trong quá trình điều chỉnh thời gian thì đồng hồ dừng hoạt động và khi chọn lựa tính năng điều chỉnh nào (Giờ / Phút / Giây) thì cặp LED 7 đoạn tương ứng sẽ sáng tắt liên tục. Tự lựa chọn phương pháp kết nối các nút nhấn và LED 7 đoạn.
• Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
G. HỆ THỐNG ĐIỀU KHIỂN CÔNG TẮC.
Giáo trình thực hành vi xử lý. 193 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển các thiết bị ngoại vi bằng công tắc. • Trình bày một số ứng dụng điều khiển các thiết bị ngoại vi có sử dụng công tắc.
B. 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 công tắc. • Nắm được sơ đồ và nguyên lý hoạt động của khối công tắc trên mô hình thí nghiệm. • Biết cách viết các chương trình ứng dụng có sử dụng công tắc để điều khiển các thiết bị ngoại vi khác
nhau.
G. HỆ THỐNG ĐIỀU KHIỂN CÔNG TẮC. Bài tập: Chương trình điều khiển công tắc và hiển thị lên tám LED mức logic hiện tại (LED sáng = mức cao,
LED tắt = mức thấp) của tám công tắc gạt (SWITCH được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 194 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • 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. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J34 (SWITCH) ở khối công tắc. • Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED và J106 (POWER) ở khối công tắc với nguồn +5V ở
khối nguồn.
POWER
SWITCH
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS3
3
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN CONG TAC LAM 8 LED HOAT DONG ;*************************************************** ;KET NOI: 8 LED -> PORT1 SWITCH -> PORT0 ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;TAT CAC LED SW0: ;SW0 JB P0.0,SW0OK ;KIEM TRA CONG TAC SW0 - Y: SW0 = 1 CLR P1.0 ;SW0 NHA -> LED TAT SJMP SW1 ;KIEM TRA CONG TAC KE TIEP SW0OK: SETB P1.0 ;SW0 NHAN -> LED SANG SW1: ;SW1 JB P0.1,SW1OK ;KIEM TRA CONG TAC SW1 - Y: SW1 = 1 CLR P1.1 ;SW1 NHA -> LED TAT SJMP SW2 ;KIEM TRA CONG TAC KE TIEP SW1OK: SETB P1.1 ;SW1 NHAN -> LED SANG SW2: ;SW2 JB P0.2,SW2OK ;KIEM TRA CONG TAC SW2 - Y: SW2 = 1 CLR P1.2 ;SW2 NHA -> LED TAT SJMP SW3 ;KIEM TRA CONG TAC KE TIEP SW2OK: SETB P1.2 ;SW2 NHAN -> LED SANG SW3: ;SW3 JB P0.3,SW3OK ;KIEM TRA CONG TAC SW3 - Y: SW3 = 1 CLR P1.3 ;SW3 NHA -> LED TAT SJMP SW4 ;KIEM TRA CONG TAC KE TIEP SW3OK: SETB P1.3 ;SW3 NHAN -> LED SANG SW4: ;SW4 JB P0.4,SW4OK ;KIEM TRA CONG TAC SW4 - Y: SW4 = 1 CLR P1.4 ;SW4 NHA -> LED TAT SJMP SW5 ;KIEM TRA CONG TAC KE TIEP SW4OK: SETB P1.4 ;SW4 NHAN -> LED SANG SW5: ;SW5
G. HỆ THỐNG ĐIỀU KHIỂN CÔNG TẮC. Bài tập: Chương trình điều khiển công tắc và hiển thị lên tám LED mức logic hiện tại (LED sáng = mức cao,
LED tắt = mức thấp) của tám công tắc gạt (SWITCH được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)).
Giáo trình thực hành vi xử lý. 195 Biên soạn: Phạm Quang Trí
JB P0.5,SW5OK ;KIEM TRA CONG TAC SW5 - Y: SW5 = 1 CLR P1.5 ;SW5 NHA -> LED TAT SJMP SW6 ;KIEM TRA CONG TAC KE TIEP SW5OK: SETB P1.5 ;SW5 NHAN -> LED SANG SW6: ;SW6 JB P0.6,SW6OK ;KIEM TRA CONG TAC SW6 - Y: SW6 = 1 CLR P1.6 ;SW6 NHA -> LED TAT SJMP SW7 ;KIEM TRA CONG TAC KE TIEP SW6OK: SETB P1.6 ;SW6 NHAN -> LED SANG SW7: ;SW7 JB P0.7,SW7OK ;KIEM TRA CONG TAC SW7 - Y: SW7 = 1 CLR P1.7 ;SW7 NHA -> LED TAT SJMP SW0 ;KIEM TRA CONG TAC KE TIEP SW7OK: SETB P1.7 ;SW7 NHAN -> LED SANG SJMP SW0 END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển hiển thị giá trị nhị phân của tám công tắc gạt dưới dạng số HEX
trên hai LED 7 đoạn (LED6 và LED7). • Bài 2: Hãy viết chương trình điều khiển hiển thị giá trị nhị phân của tám công tắc gạt dưới dạng số DEC
trên ba LED 7 đoạn (LED5, LED6 và LED7). • Bài 3: Hãy viết chương trình điều khiển công tắc và biểu diễn các kiểu hiển thị trên 8 LED.
� SW1 = ON (mức thấp): 8 LED tắt hết (không hoạt động). � SW2 = ON (mức thấp): 8 LED sáng tắt liên tục. � SW3 = ON (mức thấp): 8 LED sáng dần và tắt hết liên tục. � SW4 = ON (mức thấp): 8 LED đếm lên nhị phân 8 bit liên tục. � SW5 = ON (mức thấp): 8 LED sáng đuổi liên tục. � SW6 = ON (mức thấp): 8 LED sáng dồn liên tục. � SW7 = ON (mức thấp): 8 LED sáng hết và tắt dần liên tục. � SW8 = ON (mức thấp): 8 LED đếm xuống nhị phân 8 bit liên tục.
• Bài 4: Hãy viết chương trình điều khiển công tắc để đóng ngắt RELAY1. RELAY1 sẽ đóng khi các công tắc được gạt đúng vị trí đã chọn trước (SW1, 3, 5, 7 = ON và SW2, 4, 6, 8 = OFF) và nhấn nút nhấn KEY0. Ngược lại thì RELAY1 sẽ ngắt. Khi RELAY1 đóng thì trên LED ma trận hiển thị chữ Y, còn khi RELAY1 ngắt thì LED ma trận hiển thị chữ N.
• Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
H. HỆ THỐNG ĐIỀU KHIỂN RELAY.
Giáo trình thực hành vi xử lý. 197 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển các thiết bị ngoại vi công suất lớn thông qua việc điều khiển các relay. • Trình bày một số ứng dụng điều khiển đóng ngắt các thiết bị ngoại vi công suất lớn bằng cách sử dụng
relay.
B. 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 đóng ngắt relay. • Nắm được sơ đồ và nguyên lý hoạt động của khối relay trên mô hình thí nghiệm. • Biết cách viết các chương trình ứng dụng có sử dụng các relay để điều khiển các thiết bị ngoại vi khác
nhau.
H. HỆ THỐNG ĐIỀU KHIỂN RELAY. Bài tập: Chương trình điều khiển RELAY1 và RELAY2 đóng ngắt tuần tự và liên tục. Thời gian giữa hai lần
đóng ngắt là 1s (RELAY1 và RELAY2 được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 198 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 2 nối J64 (PORT1) ở khối vi điều khiển với J18 (RELAY CONTROL) ở khối relay (chú ý
là ta chỉ nối 2 bit thấp của J64 với J18). • Dùng dây bus 3 nối J111 (POWER) ở khối relay với nguồn +5V ở khối nguồn.
RELAY
CONTROL
POWER
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN 2 RELAY DONG NGAT ;*************************************************** ;KET NOI: RELAY CONTROL -> PORT1 ;*************************************************** ORG 00H CHOPTAT: MOV P1,#00000001B ;RELAY1 DONG, RELAY2 NGAT LCALL DELAY1S MOV P1,#00000010B ;RELAY2 DONG, RELAY1 NGAT LCALL DELAY1S SJMP CHOPTAT ;QUAY LAI ;**************************************************** DELAY1S: ;CHUONG TRINH CON TAO THOI GIAN TRE 1S PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
H. HỆ THỐNG ĐIỀU KHIỂN RELAY. Bài tập: Chương trình điều khiển RELAY1 và RELAY2 đóng ngắt tuần tự và liên tục. Thời gian giữa hai lần
đóng ngắt là 1s (RELAY1 và RELAY2 được nối với P1.0 và P1.1).
Giáo trình thực hành vi xử lý. 199 Biên soạn: Phạm Quang Trí
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển RELAY2 đóng ngắt liên tục. Thời gian giữa hai lần đóng ngắt là
3s. Tự lựa chọn phương pháp kết nối relay. • Bài 2: Hãy viết chương trình điều khiển RELAY1 đóng ngắt liên tục sau mỗi 1 giây đồng thời với
RELAY2 đóng ngắt sau mỗi 2 giây. Tự lựa chọn phương pháp kết nối relay. • Bài 3: Hãy viết chương trình điều khiển sao cho khi ta nhấn:
� Nhấn nút nhấn KEY1 thì LED 7 đoạn hiển thị số 1 và RELAY1 đóng. � Nhấn nút nhấn KEY2 thì LED 7 đoạn hiển thị số 1 và RELAY2 đóng. � Nhấn nút nhấn KEY0 thì LED 7 đoạn hiển thị số 0 và cả hai relay đều ngắt.
Tự lựa chọn phương pháp kết nối relay, nút nhấn và LED 7 đoạn. • Bài 4: Hãy viết chương trình điều khiển sao cho khi ta nhấn:
� Nhấn phím số “1” thì LED ma trận hiển thị số 1 và RELAY1 đóng. � Nhấn phím số “2” thì LED ma trận hiển thị số 1 và RELAY2 đóng. � Nhấn phím “ESC” thì LED ma trận hiển thị số 0 và cả hai relay đều ngắt.
Tự lựa chọn phương pháp kết nối relay, bàn phím và LED ma trận. • Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
I. HỆ THỐNG ĐIỀU KHIỂN MOTOR BƯỚC.
Giáo trình thực hành vi xử lý. 201 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Tìm hiểu nguyên lý hoạt động của các loại động cơ bước công suất nhỏ. • Tìm hiểu nguyên lý điều khiển động cơ bước bằng vi điều khiển và ứng dụng lập trình để điều khiển hoạt
động cho các động cơ bước này.
B. 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 động cơ bước quay thuận/ngược, quayliên tục/từng bước, …. • Nắm được sơ đồ và nguyên lý hoạt động của khối động cơ bước trên mô hình thí nghiệm. • Nắm được nguyên lý hoạt động và nguyên lý điều khiển động cơ bước. • Biết cách viết các chương trình ứng dụng điều khiển động cơ bước hoạt động theo các chế độ khác nhau.
I. HỆ THỐNG ĐIỀU KHIỂN MOTOR BƯỚC. Bài 1: Chương trình điều khiển STEPPER1 quay cùng chiều kim đồng hồ (CTRL MOTOR được nối với Port0).
Giáo trình thực hành vi xử lý. 202 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J31 (CONTROL MOTOR) ở khối
motor bước. • Dùng dây bus 4 nối J30 (MOTOR 1) ở khối motor bước với các dây điều khiển của motor bước (sử dụng
loại motor bước có 5 dây (4 điều khiển +1 nguồn) hoặc loại 6 dây (2 điều khiển + 1 nguồn và 2 điều khiển + 1 nguồn).
• Dùng dây bus 3 nối J105 (POWER) ở khối motor bước với nguồn +5V ở khối nguồn. • Dùng dây bus 1 nối các dây nguồn của motor bước với nguồn +5V ở khối nguồn.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN DONG CO BUOC (MOTOR 1) QUAY LIEN TUC ;*************************************************** ;KET NOI: MOTOR CONTROL -> PORT0 (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV P0,#00000001B ;XUAT PORT DIEU KHIEN MOTOR - BUOC 1 ACALL DELAY MOV P0,#00000010B ;XUAT PORT DIEU KHIEN MOTOR - BUOC 2 ACALL DELAY MOV P0,#00000100B ;XUAT PORT DIEU KHIEN MOTOR - BUOC 3 ACALL DELAY MOV P0,#00001000B ;XUAT PORT DIEU KHIEN MOTOR - BUOC 4 ACALL DELAY SJMP MAIN ;QUAY LAI ;**************************************************** DELAY: ;CHUONG TRINH CON TAO THOI GIAN TRE 1S PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
I. HỆ THỐNG ĐIỀU KHIỂN MOTOR BƯỚC. Bài 1: Chương trình điều khiển STEPPER1 quay cùng chiều kim đồng hồ (CTRL MOTOR được nối với Port0).
Giáo trình thực hành vi xử lý. 203 Biên soạn: Phạm Quang Trí
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
I. HỆ THỐNG ĐIỀU KHIỂN MOTOR BƯỚC. Bài 2: Chương trình điều khiển STEPPER1 quay cùng chiều kim đồng hồ một vòng rồi dừng lại (CTRL
MOTOR được nối với Port0).
Giáo trình thực hành vi xử lý. 204 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN DONG CO BUOC (MOTOR 1) QUAY 1 VONG ;*************************************************** ;KET NOI: MOTOR CONTROL -> PORT0 (ACT = 0), 1.8 DEG/STEP (200 STEP/ROUND) ;*************************************************** ORG 00H MAIN: MOV P0,#00H ;DUA MOTOR VE TRANG THAI TINH MOV R0,#0 ;BIEN DEM SO BUOC MOV A,#00000001B ;TRANG THAI BAN DAU (BUOC 1) STEPNEXT: MOV P0,A ;XUAT XUNG DIEU KHIEN MOTOR ACALL DELAY RL A ;CHUYEN DICH SANG TRANG THAI XUNG DIEU KHIEN KE TIEP INC R0 ;DEM SO BUOC QUAY CJNE A,#00010000B,NEXT ;KIEM TRA TRANG THAI XUNG DIEU KHIEN (4 BUOC ?) - Y: CHUA DU MOV A,#00000001B ;DUA XUNG DIEU KHIEN VE TRANG THAI BAN DAU (BUOC 1) NEXT: CJNE R0,#200,STEPNEXT ;KIEM TRA MOTOR DA QUAY DU 1 VONG - 200 BUOC SJMP $ ;DUNG KHI DA DU 1 VONG ;**************************************************** DELAY: ;CHUONG TRINH CON TAO THOI GIAN TRE 1S PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
I. HỆ THỐNG ĐIỀU KHIỂN MOTOR BƯỚC. Bài 3: Chương trình điều khiển STEPPER1 quay bằng cách nhấn nút KEY0: quay thuận, KEY1: quay ngược,
KEY2: dừng (CTRL MOTOR được nối với Port0, MOMENTARY SW: được nối với Port1).
Giáo trình thực hành vi xử lý. 205 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J31 (CONTROL MOTOR) ở khối
motor bước. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J76 (MOMENTARY SW) ở khối nút nhấn. • Dùng dây bus 4 nối J30 (MOTOR 1) ở khối motor bước với các dây điều khiển của motor bước (sử dụng
loại motor bước có 5 dây (4 điều khiển +1 nguồn) hoặc loại 6 dây (2 điều khiển + 1 nguồn và 2 điều khiển + 1 nguồn).
• Dùng hai dây bus 3 nối J105 (POWER) ở khối motor bước và J114 (POWER) ở khối nút nhấn với nguồn +5V ở khối nguồn.
• Dùng dây bus 1 nối các dây nguồn của motor bước với nguồn +5V ở khối nguồn.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN DONG CO BUOC (MOTOR 1) QUAY THUAN/NGHICH KHI NHAN NUT NHAN ;*************************************************** ;KET NOI: MOTOR CONTROL -> PORT0 (ACT = 0) MOMENTARY SW -> PORT1 (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV A,#01H ;XUNG KHIEN BUOC 1 MOV P0,A ;XUAT XUNG KHIEN MOV R0,#0 ;BIEN NHAN GIA TRI CUA NUT DUOC NHAN (KEY0 = 0) TESTKEY: JB P1.0,NEXTKEY1 ;Y: KEY0 KHONG DUOC NHAN MOV R0,#0 ;NAP GIA TRI CUA NUT -> KEY0 NHAN NEXTKEY1: JB P1.1,NEXTKEY2 ;Y: KEY1 KHONG DUOC NHAN MOV R0,#1 ;NAP GIA TRI CUA NUT -> KEY1 NHAN NEXTKEY2: JB P1.2,COMPARE ;Y: KEY2 KHONG DUOC NHAN MOV R0,#2 ;NAP GIA TRI CUA NUT -> KEY2 NHAN COMPARE: CJNE R0,#1,NEXT_COM1 ;Y: NUT NHAN KHONG PHAI LA KEY1 RL A ;NUT NHAN LA KEY1 -> QUAY THUAN 1 BUOC ACALL ROTATE NEXT_COM1: CJNE R0,#2,NEXT_COM2 ;Y: NUT NHAN KHONG PHAI LA KEY2 RR A ;NUT NHAN LA KEY2 -> QUAY NGHICH 1 BUOC ACALL ROTATE
I. HỆ THỐNG ĐIỀU KHIỂN MOTOR BƯỚC. Bài 3: Chương trình điều khiển STEPPER1 quay bằng cách nhấn nút KEY0: quay thuận, KEY1: quay ngược,
KEY2: dừng (CTRL MOTOR được nối với Port0, MOMENTARY SW: được nối với Port1).
Giáo trình thực hành vi xử lý. 206 Biên soạn: Phạm Quang Trí
NEXT_COM2: SJMP TESTKEY ;QUAY TRO VE ;**************************************************** ROTATE: ;CTC DIEU KHIEN QUAY MOTOR CJNE A,#10H,BIT4_BIT0 ;KIEM TRA TRANG THAI XUNG MOV A,#01H ;DIEU CHING TRANG THAI XUNG VE BUOC 1 BIT4_BIT0: CJNE A,#80H,BIT7_BIT3 ;KIEM TRA TRANG THAI XUNG MOV A,#08H ;DIEU CHING TRANG THAI XUNG VE BUOC 4 BIT7_BIT3: MOV P0,A ;XUAT XUNG KHIEN ACALL DELAY RET ;**************************************************** DELAY: ;CHUONG TRINH CON TAO THOI GIAN TRE 1S PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển STEPPER2 quay ngược chiều kim đồng hồ. • Bài 2: Hãy viết chương trình điều khiển STEPPER1 và 2 quay cùng chiều kim đồng hồ. • Bài 3: Hãy viết chương trình điều khiển STEPPER1 quay ngược chiều kim đồng hồ và STEPPER2 quay
cùng chiều kim đồng hồ. Tự lựa chọn phương pháp kết nối motor bước. • Bài 4: Hãy viết chương trình điều khiển STEPPER1 hoạt động khi ta nhấn phím trên bàn phím:
� Nhấn phím “1”: STEPPER1 quay cùng chiều kim đồng hồ. � Nhấn phím “2”: STEPPER1 quay ngược chiều kim đồng hồ. � Nhấn phím “ESC”: STEPPER1 dừng.
• Bài 5: Hãy viết chương trình điều khiển STEPPER1 quay cùng chiều kim đồng hồ khi ta nhấn phím trên bàn phím:
� Nhấn phím “1”: STEPPER1 tăng dần tốc độ quay. � Nhấn phím “2”: STEPPER1 giãm dần tốc độ quay. � Nhấn phím “ESC”: STEPPER1 dừng.
• Bài 6: Hãy viết chương trình điều khiển STEPPER1 hoạt động khi ta nhấn nut nhấn: � Nhấn nút KEY0: STEPPER1 quay cùng chiều kim đồng hồ. � Nhấn nút KEY1: STEPPER1 quay ngược chiều kim đồng hồ. � Nhấn nút KEY2: STEPPER1 tăng dần tốc độ quay. � Nhấn nút KEY3: STEPPER1 giãm dần tốc độ quay. � Nhấn nút KEY4: STEPPER1 dừng.
• Bài 7: Hãy viết chương trình điều khiển STEPPER1 quay cùng chiều kim đồng hồ, motor sẽ quay khi ta nhập từ bàn phím số bước cần quay (0 đến 200) và nhấn phím “ENTER”, motor sẽ dừng bất cứ lúc nào khi ta nhấn phím “ESC”. Số bước motor nhập vào và số bước motor quay sẽ được hiển thị lên ba LED 7 đoạn.
• Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
J. HỆ THỐNG ĐIỀU KHIỂN NGẮT (INTERRUPT).
Giáo trình thực hành vi xử lý. 208 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Thiết kế các ứng dụng điều khiển thực tế có sử dụng ngắt (Interrupt). • So sánh ưu và nhược điểm của các chương trình điều khiển có sử dụng ngắt và không sử dụng ngắt.
B. YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước hoạt động của ngắt (Interrupt) ở các chế độ khác nhau. • Nắm được phương pháp lập trình và điều khiển có sử dụng các ngắt.
J. HỆ THỐNG ĐIỀU KHIỂN NGẮT (INTERRUPT). Bài 1: Chương trình điều khiển tạo sóng vuông tuần hoàn có tần số 10 Hz (sử dụng ngắt Timer) tại chân P0.0
và hiển thị mức logic tại chân này lên LED0 (LED0 được nối với P0.0).
Giáo trình thực hành vi xử lý. 209 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J64 (PORT0 / DATA) ở khối vi điều khiển với J12 (BAR LED 2) ở khối dãy LED. • Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED với nguồn +5V ở khối nguồn.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN TAO SONG VUONG TAI P0.0 CO SU DUNG NGAT TIMER0 ;*************************************************** ;KET NOI: 8 LED -> PORT0 ;*************************************************** ORG 00H ;DIEM NHAP RESET SJMP MAIN ORG 0BH ;DIEM NHAP ISR TIMER0 T0ISR: CPL P0.0 ;DAO TRANG THAI P0.0 (TAO XUNG) RETI ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV TMOD,#01H ;TIMER0 -> TIMER 16 BIT MOV TH0,#(-50000) ;THOI GIAN TRE = 50 MS (THOI GIAN XUNG O MUC THAP HOAC MUC CAO) MOV TL0,#(-50000) ;CHU KY = 2 x 50 = 100 MS -> F = 10 Hz SETB TR0 ;CHO TIMER BAT DAU CHAY MOV IE,#82H ;CHO PHEP NGAT TIMER0 HOAT DONG SJMP $ ;DUNG YEN END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)
J. HỆ THỐNG ĐIỀU KHIỂN NGẮT (INTERRUPT). Bài 2: Chương trình điều khiển đếm số xung tại chân INT0 (sử dụng ngắt ngoài) và hiển thị số xung này (tối đa
là 255 lần) lên ba LED 7 đoạn (LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1, PULSE được nối với chân INT0).
Giáo trình thực hành vi xử lý. 210 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 4 nối J64 (PORT1) ở khối vi điều khiển với J1 (SEL IN1) ở khối LED 7 đoạn (chú ý là ta
chỉ nối 4 bit thấp của J64 với J1) • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối giải mã. • Dùng dây bus 1 nối J33 (PULSE) ở khối tạo xung với J66 (PORT3 / FUNCTION) ở khối vi điều khiển
(chú ý là ta chỉ nối bit 2 (chân INT0\) của J66 và J33 lại với nhau). • Dùng dây bus 3 nối J113 (POWER) ở khối tạo xung và J110 (POWER) ở khối LED 7 đoạn với nguồn
+5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
4
POWER
PULSE
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN DEM SO XUNG TAI CHAN INT0 (SU DUNG NGAT NGOAI INT0) ;*************************************************** ;KET NOI: 7 SEG -> PORT0, SEL LED -> PORT1, PULSE -> INT0 ;*************************************************** ORG 00H ;DIEM NHAP RESET SJMP MAIN ORG 03H ;DIEM NHAP ISR NGOAI 0 EX0ISR: INC 40H ;TANG GIA TRI XUNG KICH RETI ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV 40H,#0 ;NAP GIA TRI XUNG KICH BAN DAU MOV IE,#81H ;CHO PHEP NGAT NGOAI 0 HOAT DONG SETB IT0 ;DAT CHE DO NGAT NGOAI KICH KHOI CANH MP1: MOV R7,40H ;SO LUONG XUNG KICH ACALL BIN8TOBCD ;CHUYEN DOI BIN SANG BCD ACALL BCD4TO7SEG ;CHUYEN DOI BCD SANG 7 DOAN ACALL DISP7SEGMUL4 ;HIEN THI SJMP MP1 ;*************************************************** BIN8TOBCD: ;CTC CHUYEN DOI SO BINARY 8 BIT (<= 255) SANG SO BCD. PUSH ACC PUSH B MOV B,#10 MOV A,R7 DIV AB ;LAY R7 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 DIV AB ;LAY KET QUA TREN CHIA TIEP CHO 10 MOV R7,A ;R7 = TRAM MOV A,B ;LAY SO HANG CHUC
J. HỆ THỐNG ĐIỀU KHIỂN NGẮT (INTERRUPT). Bài 2: Chương trình điều khiển đếm số xung tại chân INT0 (sử dụng ngắt ngoài) và hiển thị số xung này (tối đa
là 255 lần) lên ba LED 7 đoạn (LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1, PULSE được nối với chân INT0).
Giáo trình thực hành vi xử lý. 211 Biên soạn: Phạm Quang Trí
SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** BCD4TO7SEG: CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (2 SO BCD NEN). PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;*************************************************** DISP7SEGMUL4: ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN) PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0F7H ;MA QUET MOV R0,#63H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$
J. HỆ THỐNG ĐIỀU KHIỂN NGẮT (INTERRUPT). Bài 2: Chương trình điều khiển đếm số xung tại chân INT0 (sử dụng ngắt ngoài) và hiển thị số xung này (tối đa
là 255 lần) lên ba LED 7 đoạn (LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1, PULSE được nối với chân INT0).
Giáo trình thực hành vi xử lý. 212 Biên soạn: Phạm Quang Trí
DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển đếm số lần nhấn nút nhấn KEY1 (sử dụng ngắt ngoài) và hiển thị
số lần nhấn nút này (tối đa là 255 lần) lên ba LED 7 đoạn (LED4, LED5 và LED6). Tự lựa chọn phương pháp kết nối nút nhấn và LED 7 đoạn.
• Bài 2: Hãy viết chương trình điều khiển đếm số lần nhấn nút nhấn KEY1 và KEY2 (sử dụng hai ngắt ngoài) và hiển thị số lần nhấn nút KEY1 (tối đa là 255 lần) lên ba LED 7 đoạn (LED0, LED1 và LED2), hiển thị số lần nhấn nút KEY2 (tối đa là 255 lần) lên ba LED 7 đoạn (LED5, LED6 và LED7). Tự lựa chọn phương pháp kết nối nút nhấn và LED 7 đoạn.
• Bài 3: Hãy viết chương trình điều khiển tạo sóng vuông tuần hoàn có tần số 5 Hz (sử dụng ngắt Timer) tại chân P1.0 và hiển thị mức logic tại chân này lên LED0. Tự lựa chọn phương pháp kết nối LED.
• Bài 4: Hãy viết chương trình điều khiển tạo sóng vuông tuần hoàn có tần số 1 Hz (sử dụng ngắt Timer) tại chân P1.0 và hiển thị mức logic tại chân này lên LED0. Tự lựa chọn phương pháp kết nối LED.
• Bài 5: Hãy viết chương trình điều khiển đồng thời tạo hai sóng vuông tuần hoàn có tần số 1 Hz và 5 Hz (sử dụng ngắt Timer) tại chân P1.0 và P1.1, hiển thị mức logic tại các chân này lên LED0 và LED1. Tự lựa chọn phương pháp kết nối LED.
• Bài 6: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
Chế độ Counter: o Sử dụng ngắt ngoài 0. Mỗi lần nhấn nút là một lần tác động cho ngắt. o Chương trình phục vụ ngắt ngoài 0 sẽ làm công việc tăng nội dung ô nhớ chứa kết quả lên 1 đơn
vị. o Chương trình chính sẽ liên tục lấy nội dung của ô nhớ chứa kết quả đổi sang mã BCD nén và hiển
thị lên LED 7 đoạn.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
K. HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER.
Giáo trình thực hành vi xử lý. 214 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Tìm hiểu các chế độ hoạt động của Timer và Counter. • Khảo sát nguyên lý hoạt động và phương pháp lập trình điều khiển Timer và Counter. • Thiết kế các ứng dụng thực tế có sử dụng các bộ định thời gian (Timer) và các bộ đếm sự kiện (Counter).
B. YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51. • Nắm vững phương pháp vận hành các Timer và Counter có trong chip vi điều khiển. • Biết cách lập trình Timer và Counter ở các chế độ khác nhau, cách tính toán các khoảng thời gian định thời
mong muốn. • Thiết kế và điều khiển được các ứng dụng có sử dụng Timer và Counter như: đồng hồ, bộ đếm sản phẩm,
…
K. HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER. Bài 1: Chương trình điều khiển đếm liên tục số lượng xung (0000 – 9999) được đưa vào chân T1 của vi điều
khiển và hiển thị số lượng xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1).
Giáo trình thực hành vi xử lý. 215 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 4 nối J64 (PORT1) ở khối vi điều khiển với J1 (SEL IN1) ở khối LED 7 đoạn (chú ý là ta
chỉ nối 4 bit thấp của J64 với J1). • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối giải mã. • Dùng dây bus 1 nối J33 (PULSE) ở khối tạo xung với J66 (PORT3 / FUNCTION) ở khối vi điều khiển
(chú ý là ta chỉ nối bit 5 (chân T1) của J66 và J33 lại với nhau). • Dùng dây bus 3 nối J113 (POWER) ở khối tạo xung và J110 (POWER) ở khối LED 7 đoạn với nguồn
+5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
4
POWER
PULSE
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN TIMER/COUNTER DEM (0000 - 9999) VA HIEN THI XUNG TAI CHAN T1 ;*************************************************** ;KET NOI: PORT0 -> 7 SEGMENT (DP -> A), PORT1 -> SELECT LED, PULSE -> T1 PIN ;*************************************************** ORG 00H MAIN: MOV TMOD,#50H ;COUNTER 16 BIT (MODE 1) MOV TH1,#0 ;XOA COUNTER 1 MOV TL1,#0 SETB TR1 ;CHO PHEP COUNTER BAT DAU HOAT DONG MP1: MOV R7,TH1 ;CHUYEN SO XUNG DEM DUOC (TH1, TL1) RA HIEN THI MOV R6,TL1 ACALL BIN16TOBCD ;DOI MA BIN SANG MA BCD ACALL BCD4TO7SEG ;DOI MA BCD SANG MA 7 DOAN ACALL DISP7SEGMUL4 ;HIEN THI GIA TRI LEN LED SJMP MP1 ;*************************************************** BIN16TOBCD: ;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD. PUSH ACC PUSH B MOV B,#10 ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG CHUC MOV B,#10 MOV A,R6 DIV AB ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO POP B ;LAY SO HANG TRAM TU STACK
K. HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER. Bài 1: Chương trình điều khiển đếm liên tục số lượng xung (0000 – 9999) được đưa vào chân T1 của vi điều
khiển và hiển thị số lượng xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1).
Giáo trình thực hành vi xử lý. 216 Biên soạn: Phạm Quang Trí
ORL A,B ;KET HOP SO HANG NGAN VA SO HANG TRAM MOV R7,A ;R7 = NGAN - TRAM POP ACC ;LAY SO HANG CHUC TU STACK SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** DIV16TO8: ;CTC CHIA SO BINARY 16 BIT CHO SO BINARY 8 BIT. PUSH 02H ;CAT THANH GHI R2 PUSH ACC ;CAT THANH GHI A MOV R2,#16 ;CHO PHEP DICH 16 LAN CLR A DIVIDE: XCH A,R6 CLR C ;DICH BIT 7 CU R6 VAO RLC A ;CARRY, BIT 0 CUA R6 XCH A,R6 ;BANG 0. XCH A,R7 ;DICH BIT CARRY VAO RLC A ;BIT 0 CUA R7 XCH A,R7 RLC A ;DICH BIT 7 CUA R7 VAO A. CJNE A,B,NOT_EQUAL ;XEM SO BIT DA DICH >= SJMP A_GREATER_EQ_B ;SO CHIA CHUA ? NOT_EQUAL: JC BELOW ;N: THUONG SO = 0 TRONG R6. A_GREATER_EQ_B: SUBB A,B ;Y: SO DU CAT TRONG A. XCH A,R6 ORL A,#1 ;THUONG SO = 1 XCH A,R6 ;CAT TRONG R6 BELOW: DJNZ R2,DIVIDE ;DICH TIEP DEN 16 LAN. XCH A,B ;SAU 16 LAN DICH TA DUOC B = SO DU. POP ACC POP 02H RET ;*************************************************** BCD4TO7SEG: ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (2 SO BCD NEN). PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH
K. HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER. Bài 1: Chương trình điều khiển đếm liên tục số lượng xung (0000 – 9999) được đưa vào chân T1 của vi điều
khiển và hiển thị số lượng xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1).
Giáo trình thực hành vi xử lý. 217 Biên soạn: Phạm Quang Trí
RET CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;*************************************************** DISP7SEGMUL4: ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN). PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0F7H ;MA QUET MOV R0,#63H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
K. HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER. Bài 2: Chương trình điều khiển đo tần số của xung (0000 – 9999, đơn vị là Hz) được đưa vào chân T1 của vi
điều khiển và hiển thị tần số của xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1).
Giáo trình thực hành vi xử lý. 218 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN TIMER/COUNTER DO TAN SO XUNG TAI CHAN T1 ;*************************************************** ;KET NOI: PORT0 -> 7 SEGMENT (DP -> A), PORT1 -> SELECT LED, PULSE -> T1 PIN ;*************************************************** ORG 00H ;DIEM NHAP RESET SJMP MAIN ORG 0BH ;DIEM NHAP ISR TIMER0 LJMP T0ISR ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV TMOD,#51H ;TIMER1: COUNTER 16 BIT (MODE 1), TIMER0: TIMER 16 BIT (MODE 1) MOV TH0,#HIGH(-50000) ;NAP GIA TRI THOI GIAN TRE 50 MS MOV TL0,#LOW(-50000) SETB TR0 ;CHO TIMER BAT DAU CHAY MOV IE,#82H ;CHO PHEP NGAT TIMER0 HOAT DONG MP1: MOV 40H,#0 ;NAP GIA TRI BIEN DEM SO LAN NGAT TIMER0 MOV R7,TH1 ;CHUYEN SO XUNG DEM DUOC (TH1, TL1) RA HIEN THI MOV R6,TL1 MOV TH1,#0 ;XOA COUNTER 1, CHUAN BI CHO LAN DEM XUNG TIEP THEO MOV TL1,#0 SETB TR1 ;COUNTER BAT DAU DEM ACALL BIN16TOBCD ;DOI MA BIN SANG MA BCD ACALL BCD4TO7SEG ;DOI MA BCD SANG MA 7 DOAN MP2: ACALL DISP7SEGMUL4 ;HIEN THI GIA TRI LEN LED MOV A,40H CJNE A,#20,MP2 ;KIEM TRA DU 20 LAN NGAT = 1S CLR TR1 ;DUNG COUNTER SAU 1S -> SO XUNG TRONG 1S = TAN SO XUNG SJMP MP1 ;*************************************************** BIN16TOBCD: ;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD. PUSH ACC PUSH B MOV B,#10 ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG CHUC MOV B,#10 MOV A,R6 DIV AB ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO POP B ;LAY SO HANG TRAM TU STACK ORL A,B ;KET HOP SO HANG NGAN VA SO HANG TRAM MOV R7,A ;R7 = NGAN - TRAM POP ACC ;LAY SO HANG CHUC TU STACK SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** DIV16TO8: ;CTC CHIA SO BINARY 16 BIT CHO SO BINARY 8 BIT. PUSH 02H ;CAT THANH GHI R2 PUSH ACC ;CAT THANH GHI A
K. HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER. Bài 2: Chương trình điều khiển đo tần số của xung (0000 – 9999, đơn vị là Hz) được đưa vào chân T1 của vi
điều khiển và hiển thị tần số của xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1).
Giáo trình thực hành vi xử lý. 219 Biên soạn: Phạm Quang Trí
MOV R2,#16 ;CHO PHEP DICH 16 LAN CLR A DIVIDE: XCH A,R6 CLR C ;DICH BIT 7 CU R6 VAO RLC A ;CARRY, BIT 0 CUA R6 XCH A,R6 ;BANG 0. XCH A,R7 ;DICH BIT CARRY VAO RLC A ;BIT 0 CUA R7 XCH A,R7 RLC A ;DICH BIT 7 CUA R7 VAO A. CJNE A,B,NOT_EQUAL ;XEM SO BIT DA DICH >= SJMP A_GREATER_EQ_B ;SO CHIA CHUA ? NOT_EQUAL: JC BELOW ;N: THUONG SO = 0 TRONG R6. A_GREATER_EQ_B: SUBB A,B ;Y: SO DU CAT TRONG A. XCH A,R6 ORL A,#1 ;THUONG SO = 1 XCH A,R6 ;CAT TRONG R6 BELOW: DJNZ R2,DIVIDE ;DICH TIEP DEN 16 LAN. XCH A,B ;SAU 16 LAN DICH TA DUOC B = SO DU. POP ACC POP 02H RET ;*************************************************** BCD4TO7SEG: ;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (2 SO BCD NEN). PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC
MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;*************************************************** DISP7SEGMUL4: ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN). PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0F7H ;MA QUET
K. HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER. Bài 2: Chương trình điều khiển đo tần số của xung (0000 – 9999, đơn vị là Hz) được đưa vào chân T1 của vi
điều khiển và hiển thị tần số của xung này lên các LED 7 đoạn (PULSE được nối với chân T1, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1).
Giáo trình thực hành vi xử lý. 220 Biên soạn: Phạm Quang Trí
MOV R0,#63H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LAM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET ;*************************************************** T0ISR: ;ISR TIMER0 - 50MS CLR TR0 CLR TF0 MOV TH0,#HIGH(-50000) ;NAP GIA TRI THOI GIAN TRE 50 MS MOV TL0,#LOW(-50000) INC 40H ;TANG BIEN DEM SO LAN NGAT - 1 LAN = 50MS SETB TR0 RETI END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
K. HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER. Bài 3: Chương trình điều khiển đo độ rộng của xung (đơn vị là ms) được đưa vào chân INT0 của vi điều khiển
và hiển thị độ rộng của xung này lên các LED 7 đoạn (PULSE được nối với chân INT0, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1).
Giáo trình thực hành vi xử lý. 221 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 4 nối J64 (PORT1) ở khối vi điều khiển với J1 (SEL IN1) ở khối LED 7 đoạn (chú ý là ta
chỉ nối 4 bit thấp của J64 với J1). • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối giải mã. • Dùng dây bus 1 nối J33 (PULSE) ở khối tạo xung với J66 (PORT3 / FUNCTION) ở khối vi điều khiển
(chú ý là ta chỉ nối vào bit 2 (chân INT0) của J66). • Dùng dây bus 3 nối J113 (POWER) ở khối tạo xung và J110 (POWER) ở khối LED 7 đoạn với nguồn
+5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
4
POWER
PULSE
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển tạo xung 1 Hz (sử dụng Timer) tại chân P1.0 và hiển thị mức logic
tại chân này lên LED. Tự lựa chọn phương pháp kết nối LED. • Bài 2: Hãy viết chương trình điều khiển tạo xung 3 Hz (sử dụng Timer) tại chân P1.0 và hiển thị mức logic
tại chân này lên LED. Tự lựa chọn phương pháp kết nối LED. • Bài 3: Hãy viết chương trình điều khiển tạo xung 1 Hz hoặc 3 Hz (sử dụng Timer) tại chân P1.0 tùy thuộc
vào ta nhấn hay nhả nút nhấn KEY0 và hiển thị mức logic tại chân này lên LED. Tự lựa chọn phương pháp kết nối LED và nút nhấn.
• Bài 4: Hãy viết chương trình điều khiển đếm liên tục số lượng xung được đưa vào chân T0 của vi điều khiển và hiển thị số lượng xung này lên các LED 7 đoạn. Tự lựa chọn phương pháp kết nối thiết bị tạo xung và các LED 7 đoạn.
• Bài 5: Hãy viết chương trình điều khiển đo tần số của xung (đơn vị tính là Hz) được đưa vào chân T0 của vi điều khiển và hiển thị giá trị tần số lên LED 7 đoạn. Tự lựa chọn phương pháp kết nối thiết bị tạo xung và các LED 7 đoạn.
• Bài 6: Hãy viết chương trình điều khiển đo độ rộng xung (đơn vị tính là ms) được đưa vào chân T0 của vi điều khiển và hiển thị giá trị độ rộng xung lên LED 7 đoạn. Tự lựa chọn phương pháp kết nối thiết bị tạo xung và các LED 7 đoạn.
• Bài 7: Thực hiện thay đổi tần số của thiết bị tạo xung (bằng cách điều chỉnh biến trở trên thiết bị) hoặc thay đổi nguồn tạo xung khác vào. Thực hiện lại các bài tập trên và quan sát trên LED 7 đoạn để nhận xét sự thay đổi của chương trình.
• Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
Chế độ Counter: o Sử dụng Timer1 ở chế độ 1 counter.
K. HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER. Bài 3: Chương trình điều khiển đo độ rộng của xung (đơn vị là ms) được đưa vào chân INT0 của vi điều khiển
và hiển thị độ rộng của xung này lên các LED 7 đoạn (PULSE được nối với chân INT0, LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1).
Giáo trình thực hành vi xử lý. 222 Biên soạn: Phạm Quang Trí
o Khi cho Timer1 chạy, đọc liên tục các giá trị của TH1 và TL1. o Đổi qua mã BCD nén và hiển thị lên LED 7 đoạn.
Chế độ đo tần số: o Viết chương trình đếm số xung trong 1s và hiển thị lên LED 7 đoạn (trong khi đếm thì không hiển
thị số đếm mà vẫn hiển thị giá trị tần số trước đó).
Chế độ đo độ rộng xung (chế độ Gate = 1): o Viết chương trình sử dụng Timer0 ở chế độ Gate = 1.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
L. HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP.
Giáo trình thực hành vi xử lý. 224 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Ưùng dụng port nối tiếp của vi điều khiển để mở rộng port nhập và xuất. • Điều khiển việc thu phát nối tiếp.
B. 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 hoạt động của port nối tiếp ở các chế độ khác nhau. • Biết cách lập trình điều khiển việc xuất nhập dữ liệu thông qua port nối tiếp ở các chế độ khác nhau.
L. HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP. Bài 1: Chương trình điều khiển (ứng dụng mở rộng port xuất) xuất liên tục các giá trị 00H, 01H, 03H, 07H,
0FH, 1FH, 3FH, 7FH và FFH ra 8 LED thông qua port nối tiếp và sử dụng vi mạch 4094, mỗi lần xuất cách nhau 1s.
Giáo trình thực hành vi xử lý. 225 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J45 (PARALLEL OUT 2) ở khối thanh ghi dịch với J12 (BAR LED 2) ở khối dãy
LED. • Dùng dây bus 1 nối J39 (SERIAL IN 1) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi
điều khiển (chú ý là ta chỉ nối bit 1 (IN) của J39 với bit 0 (RXD) của J66). • Dùng dây bus 1 nối J39 (SERIAL IN 1) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi
điều khiển (chú ý là ta chỉ nối bit 2 (CLK) của J39 với bit 1 (TXD) của J66). • Dùng hai dây bus 3 nối J115 (POWER) ở khối thanh ghi dịch và J103 (POWER) ở khối LED dãy với
nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
PARALLEL
OUT 1
POWER
SERIAL
IN 1
PARALLEL
OUT 2
SERIAL
IN 2
PARALLEL
INSERIAL
OUT
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN THU PHAT DU LIEU DANG NOI TIEP (MO RONG PORT XUAT) ;*************************************************** ;KET NOI: LED -> PARALLEL OUT, RXD -> IN, TXD -> CLK ;*************************************************** ORG 00H MAIN: MOV SCON,#12H ;KHOI TAO SERIAL PORT (MODE0, REN = 1, TI = 1, RI = 0) MOV DPTR,#DATABYTE ;NAP DIA CHI VUNG DU LIEU MOV R0,#0 ;OFFSET VUNG DU LIEU WAIT: JNB TI,WAIT ;KIEM TRA CO TI (KIEM TRA PHAT XONG) CLR TI ;XOA CO TI MOV A,R0 ;LAY OFFSET MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG DU LIEU MOV SBUF,A ;PHAT DU LIEU RA SERIAL PORT ACALL DELAY INC R0 ;CHUYEN SANG DU LIEU KE TIEP CJNE R0,#9,WAIT ;KIEM TRA DA PHAT XONG HET CAC DU LIEU TRONG VUNG DU LIEU SJMP MAIN ;*************************************************** DELAY: PUSH 00H MOV R0,#100 MOV TMOD,#01H DEL: MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0 JNB TF0,$ CLR TR0
L. HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP. Bài 1: Chương trình điều khiển (ứng dụng mở rộng port xuất) xuất liên tục các giá trị 00H, 01H, 03H, 07H,
0FH, 1FH, 3FH, 7FH và FFH ra 8 LED thông qua port nối tiếp và sử dụng vi mạch 4094, mỗi lần xuất cách nhau 1s.
Giáo trình thực hành vi xử lý. 226 Biên soạn: Phạm Quang Trí
CLR TF0 DJNZ R0,DEL POP 00H RET DATABYTE: DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH END
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
L. HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP. Bài 2: Chương trình điều khiển (ứng dụng mở rộng port nhập) thực hiện liên tục việc nhập dữ liệu từ 8 công
tắc thông qua port nối tiếp và sử dụng vi mạch 74165, dữ liệu nhập vào này sẽ được xuất ra 8 LED.
Giáo trình thực hành vi xử lý. 227 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • 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. • Dùng dây bus 8 nối J41 (PARALLEL IN) ở khối thanh ghi dịch với J34 (SWITCH) ở khối công tắc. • Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi
điều khiển (chú ý là ta chỉ nối bit 0 (CLK) của J43 với bit 1 (TXD) của J66). • Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi
điều khiển (chú ý là ta chỉ nối bit 1 (LD) của J43 với bit 2 (INT0\) của J66). • Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi
điều khiển (chú ý là ta chỉ nối bit 2 (OUT) của J43 với bit 0 (RXD) của J66). • Dùng ba dây bus 3 nối J115 (POWER) ở khối thanh ghi dịch, J106 (POWER) ở khối công tắc và J103
(POWER) ở khối LED dãy với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
PARALLEL
OUT 1
POWER
SERIAL
IN 1
PARALLEL
OUT 2
SERIAL
IN 2
PARALLEL
INSERIAL
OUT
3
POWER
SWITCH
3 1
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN THU PHAT DU LIEU DANG NOI TIEP (MO RONG PORT NHAP) ;*************************************************** ;KET NOI: LED -> P1, RXD -> OUT, TXD -> CLK, INT0 -> LD, SW -> PARALLEL IN ;*************************************************** ORG 00H MAIN: MOV SCON,#02H ;KHOI TAO SERIAL PORT (MODE0, REN = 0, TI = 1, RI = 0) MP1: CLR P3.2 ;INT = LD = 0 NOP ;NAP GIA TRI CHO VI MACH CHUYEN DOI (PARALLEL -> SERIAL) SETB P3.2 ;INT = LD = 1 SETB REN ;REN = 1 - CHO PHEP THU DU LIEU WAIT: JNB RI,WAIT ;KIEM TRA CO RI (KIEM TRA THU XONG) CLR RI ;XOA CO RI CLR REN ;REN = 0 - KHONG CHO PHEP THU MOV A,SBUF ;DOC DU LIEU DA THU DUOC TU SERIAL PORT MOV P1,A ;XUAT RA LED SJMP MP1 END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
L. HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP. Bài 3: Chương trình điều khiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữ liệu gồm 9 bytes (00H,
01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH). Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (chân TXD) rồi thu vào port nối tiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H. Việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte. Dữ liệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội.
Giáo trình thực hành vi xử lý. 228 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • 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. • Dùng dây bus 1 nối J66 (PORT3 / FUNCTION) ở khối vi điều khiển với J66 (PORT3 / FUNCTION) ở
khối vi điều khiển (chú ý là ta chỉ nối bit 0 (RXD) của J66 với bit 1 (TXD) của J66). • Dùng dây bus 1 nối J76 (MONENTARY SW) ở khối nút nhấn với J66 (PORT3 / FUNCTION) ở khối vi
điều khiển (chú ý là ta chỉ nối bit 0 (KEY0) của J76 với bit 2 (INT0\) của J66). • Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi
điều khiển (chú ý là ta chỉ nối bit 2 (OUT) của J43 với bit 0 (RXD) của J66). • Dùng hai dây bus 3 nối J114 (POWER) ở khối nút nhấn và J103 (POWER) ở khối LED dãy với nguồn
+5V ở khối nguồn.
MOMENTARY
SW
POWER
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
33
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN THU PHAT DU LIEU DANG NOI TIEP. ;*************************************************** ;KET NOI: LED -> P1, RXD -> TXD, KEY0 -> INT0 (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV TMOD,#20H ;TIMER 1: MODE 2 - TAO TOC DO BAUD SERIAL PORT MOV TH1,#-26 ;BAUD RATE = 1200 SETB TR1 ;TIMER HOAT DONG MOV SCON,#52H ;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1 MP1: MOV DPTR,#DATABYTE ;NAP DIA CHI VUNG DU LIEU MP2: MOV R0,#50 ;BIEN LAP - CHONG DOI PHIM KEY_NHAN: JB INT0,$ ;CHO PHIM DUOC NHAN DJNZ R0,KEY_NHAN ;GIAM BIEN LAP - CHONG DOI (PHIM DA NHAN) MOV R0,#50 ;BIEN LAP - CHONG DOI PHIM KEY_NHA: JNB INT0,$ ;CHO PHIM DUOC NHA DJNZ R0,KEY_NHA ;GIAM BIEN LAP - CHONG DOI (PHIM DA NHAN) ;PHIM DA DUOC NHAN VA NHA HOAN TAT MOV A,#0 ;OFFSET CUA DU LIEU MOVC A,@A+DPTR ;LAY DU LIEU TRONG VUNG DU LIEU ACALL TRANS_DATA ;GOI CTC PHAT DU LIEU QUA SERIAL PORT ACALL RECEI_DATA ;GOI CTC THU DU LIEU QUA SERIAL PORT MOV 40H,A ;NAP DU LIEU THU DUOC VAO O NHO 40H MOV P1,40H ;XUAT PORT HIEN THI INC DPTR ;CHUYEN SANG DU LIEU KE TIEP
L. HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP. Bài 3: Chương trình điều khiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữ liệu gồm 9 bytes (00H,
01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH). Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (chân TXD) rồi thu vào port nối tiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H. Việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte. Dữ liệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội.
Giáo trình thực hành vi xử lý. 229 Biên soạn: Phạm Quang Trí
MOV A,DPL ;KIEM TRA DA PHAT/THU XONG VUNG DU LIEU CJNE A,#LOW(DATABYTE+9),MP2 SJMP MP1 ;QUAY TRO LAI ;*************************************************** TRANS_DATA: ;CTC PHAT DU LIEU JNB TI,$ ;KIEM TRA PHAT XONG CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP MOV SBUF,A ;PHAT DU LIEU RET ;*************************************************** RECEI_DATA: ;CTC THU DU LIEU JNB RI,$ ;KIEM TRA THU XONG CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP MOV A,SBUF ;THU DU LIEU RET ;*************************************************** DATABYTE: ;VUNG DU LIEU DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH END
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển việc truyền dữ liệu dạng nối tiếp giữa hai chip vi điều khiển với
nhau (phương pháp nối dây cho từng vi điều khiển tương tự bài mẫu 3): o Vi điều khiển 1: Viết chương trình tạo một bảng dữ liệu gồm 9 bytes (00H, 01H, 03H, 07H, 0FH,
1FH, 3FH, 7FH, FFH). Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (TXD) để truyền sang cho vi điều khiển 2, việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất một byte. Đồng thời, vi điều khiển 1 liên tục kiểm tra và thu dữ liệu vào từ port nối tiếp (RXD) các dữ liệu do vi điều khiển 2 gửi sang và cất vào RAM nội có địa chỉ bắt đầu là 40H, dữ liệu sau khi nhập vào được xuất ra 8 LED đồng thời với việc ghi vào RAM nội.
o Vi điều khiển 2: Viết chương trình tạo một bảng dữ liệu gồm 9 bytes (FFH, 7FH, 3FH, 1FH, 0FH, 07H, 03H, 01H, 00H). Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (TXD) để truyền sang cho vi điều khiển 1, việc xuất dữ liệu được điều khiển bằng nút nhấn KEY1, mỗi lần xuất một byte. Đồng thời, vi điều khiển 2 liên tục kiểm tra và thu dữ liệu vào từ port nối tiếp (RXD) các dữ liệu do vi điều khiển 2 gửi sang và cất vào RAM nội có địa chỉ bắt đầu là 40H, dữ liệu sau khi nhập vào được xuất ra 8 LED đồng thời với việc ghi vào RAM nội.
• Bài 2: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
Phần mở rộng port xuất: o Port thu phát nối tiếp của 8051 có thể sử dụng để mở rộng thành nhiều port xuất song song. Để
thực hiện điều này, sử dụng port nối tiếp ở chế độ thanh ghi dịch (Shift Register – Mode 0) và vi mạch chuyển đổi từ nối tiếp ra song song (Serial In – Parallel Out) như 74164, 4094, …
o Chế độ thanh ghi dịch: RXD là ngõ ra dữ liệu nối tiếp, TXD là ngõ ra xung clock. o Viết chương trình: xuất dữ liệu ra port nối tiếp ở chế độ thanh ghi dịch.
Phần mở rộng port nhập: o Port thu phát nối tiếp của 8051 có thể sử dụng để mở rộng thành nhiều port nhập song song. Để
thực hiện điều này, sử dụng port nối tiếp ở chế độ thanh ghi dịch (Shift Register – Mode 0) và vi mạch chuyển đổi song song từ ra nối tiếp (Serial Out – Parallel In) như 74165.
o Chế độ thanh ghi dịch: RXD là ngõ ra dữ liệu nối tiếp, TXD là ngõ ra xung clock. o Viết chương trình:
� Cho LD\ = 0 để nhập dữ liệu từ các công tắc. � Cho LD\ = 1 để chuẩn bị thực hiện việc ghi dịch. � Nhập dữ liệu từ port nối tiếp ở chế độ thanh ghi dịch. � Xuất dữ liệu ra các LED.
Phần thu phát nối tiếp:
L. HỆ THỐNG ĐIỀU KHIỂN THU PHÁT DỮ LIỆU DẠNG NỐI TIẾP. Bài 3: Chương trình điều khiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữ liệu gồm 9 bytes (00H,
01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH). Thực hiện việc xuất từng byte của bảng này ra port nối tiếp (chân TXD) rồi thu vào port nối tiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H. Việc xuất dữ liệu được điều khiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte. Dữ liệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội.
Giáo trình thực hành vi xử lý. 230 Biên soạn: Phạm Quang Trí
o Nối chân RXD của vi điều khiển 1 với chân TXD của vi điều khiển 2. o Nối chân TXD của vi điều khiển 1 với chân RXD của vi điều khiển 2.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
M. HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI).
Giáo trình thực hành vi xử lý. 232 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Khảo sát nguyên lý hoạt động và phương pháp điều khiển vi mạch PPI 8255. • Khảo sát phương pháp mở rộng port xuất nhập của vi điều khiển bằng cách sử dụng các vi mạch 8255,
74573 và 74245. • Khảo sát nguyên lý và phương pháp lập trình điều khiển xuất nhập dữ liệu theo phương pháp song song.
B. YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51. • Nắm được sơ đồ và nguyên lý hoạt động của khối mở rộng port I/O trên mô hình thí nghiệm. • Nắm được nguyên lý hoạt động và phương pháp điều khiển vi mạch PPI 8255. • Biết cách lập trình điều khiển xuất nhập dữ liệu theo phương pháp song song. • Biết cách lập trình và nắm được phương pháp mở rộng port xuất nhập của vi điều khiển bằng cách sử dụng
các vi mạch 8255, 74573 và 74245.
M. HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI). Bài 1: Chương trình điều khiển Port I/O, làm cho 8 LED đếm lên nhị phân 8 bit (LED được nối với DATAOUT
A, CS573A được nối với SELCHIP 0). Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 233 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 1 nối J70 (SELECT CHIP) ở khối vi điều khiển với J92 (CS573A) ở khối mở rộng port I/O
(chú ý là tùy thuộc vào tầm địa chỉ yêu cầu mà ta nối dây bus 1 vào đúng bit tương ứng của J70). • Dùng dây bus 8 nối J85 (DATA OUT) ở khối mở rộng port I/O với J11 (BAR LED 1) ở khối dãy LED. • Dùng dây hai bus 3 nối J107 (POWER) ở khối mở rộng port I/O và J103 (POWER) ở khối dãy LED với
nguồn +5V ở khối nguồn.
LED DAÕYBAR LED 2 BAR LED 1POWER
VI ÑIEÀU KHIEÅN
PORT 0
A0..A7
PORT 1
PORT 3
PORT 2
SELECT CHIP
CLOCK OUT
PORT 1
PORT 3
40 PINS
20 PINS
POWERSW
NGUOÀN+5V
MÔÛ ROÄNG PORT I/O
PORT A
DATA IN
PORT C
PORT B
DATA OUT
DATA OUT
CS8255
POWER
CS245
CS573A
CS573B
3
8
31
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2)
M. HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI). Bài 2: Chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các công tắc gạt SW0 – SW7 và hiển thị mức
logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED (LED được nối với DATAOUT A, SWITCH được nối với DATAIN, CS573A được nối với SELCHIP 0, CS245 được nối với SELCHIP 1). Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 234 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 1 nối J70 (SELECT CHIP) ở khối vi điều khiển với J92 (CS573A) ở khối mở rộng port I/O
(chú ý là tùy thuộc vào tầm địa chỉ yêu cầu mà ta nối dây bus 1 vào đúng bit tương ứng của J70). • Dùng dây bus 1 nối J70 (SELECT CHIP) ở khối vi điều khiển với J83 (CS245) ở khối mở rộng port I/O
(chú ý là tùy thuộc vào tầm địa chỉ yêu cầu mà ta nối dây bus 1 vào đúng bit tương ứng của J70). • Dùng dây bus 8 nối J85 (DATA OUT) ở khối mở rộng port I/O với J11 (BAR LED 1) ở khối dãy LED. • Dùng dây bus 8 nối J80 (DATA IN) ở khối mở rộng port I/O với J34 (SWITCH) ở khối công tắc. • Dùng dây ba bus 3 nối J107 (POWER) ở khối mở rộng port I/O, J106 (POWER) ở khối công tắc và J103
(POWER) ở khối dãy LED với nguồn +5V ở khối nguồn.
LED DAÕYBAR LED 2 BAR LED 1POWER
VI ÑIEÀU KHIEÅN
PORT 0
A0..A7
PORT 1
PORT 3
PORT 2
SELECT CHIP
CLOCK OUT
PORT 1
PORT 3
40 PINS
20 PINS
POWERSW
NGUOÀN+5V
MÔÛ ROÄNG PORT I/O
PORT A
DATA IN
PORT C
PORT B
DATA OUT
DATA OUT
CS8255
POWER
CS245
CS573A
CS573B
3
8
3
1
COÂNG TAÉC
POWER
SWITCH
3
81
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển Port I/O, làm cho 8 LED tắt hết và sáng dần liên tục (LED được
nối với DATAOUT B, CS573B được nối với SELCHIP 5). • Bài 2: Hãy viết chương trình điều khiển Port I/O, làm cho 16 LED sáng hết và tắt dần liên tục (LED được
nối với DATAOUT A và DATAOUT B, CS573A được nối với SELCHIP 4, CS573B được nối với SELCHIP 5).
• Bài 3: Hãy viết chương trình điều khiển Port I/O, làm cho LED 7 đoạn hiển thị đếm BCD từ 0 lên 9 liên tục (LED0 được nối với DATAOUT A, CS573A được nối với SELCHIP 6).
• Bài 4: Hãy viết chương trình điều khiển Port I/O, làm cho hai LED 7 đoạn hiển thị đếm BCD từ 00 lên 99 liên tục (LED0 được nối với DATAOUT A, LED1 được nối với DATAOUT B, CS573A được nối với SELCHIP 6, CS573B được nối với SELCHIP 7).
• Bài 5: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các công tắc gạt SW0 – SW7 và hiển thị mức logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED (LED được nối với DATAOUT A, SWITCH được nối với DATAIN, CS573A được nối với SELCHIP 4, CS245 được nối với SELCHIP 1).
• Bài 6: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các nút nhấn KEY0 – KEY7 và hiển thị trạng thái hiện tại (LED sáng = nút nhấn, LED tắt = nút nhả) của các nút nhấn này lên LED (LED được nối với DATAOUT A, PUSH KEY được nối với DATAIN, CS573A được nối với SELCHIP 5, CS245 được nối với SELCHIP 2).
M. HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI). Bài 2: Chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các công tắc gạt SW0 – SW7 và hiển thị mức
logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED (LED được nối với DATAOUT A, SWITCH được nối với DATAIN, CS573A được nối với SELCHIP 0, CS245 được nối với SELCHIP 1). Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 235 Biên soạn: Phạm Quang Trí
• Bài 7: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các nút nhấn KEY0 – KEY7 và hiển thị tên của các nút nhấn này lên LED 7 đoạn (LED0 được nối với DATAOUT A, PUSH KEY được nối với DATAIN, CS573A được nối với SELCHIP 6, CS245 được nối với SELCHIP 3).
• Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
M. HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI). Bài 3: Chương trình điều khiển Port I/O, làm cho 8 LED đếm lên nhị phân 8 bit (LED được nối với PortA,
CS8255 được nối với SELCHIP 0). Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 236 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 1 nối J70 (SELECT CHIP) ở khối vi điều khiển với J88 (CS8255) ở khối mở rộng port I/O
(chú ý là tùy thuộc vào tầm địa chỉ yêu cầu mà ta nối dây bus 1 vào đúng bit tương ứng của J70). • Dùng dây bus 8 nối J79 (PORT A) ở khối mở rộng port I/O với J11 (BAR LED 1) ở khối dãy LED. • Dùng dây hai bus 3 nối J107 (POWER) ở khối mở rộng port I/O và J103 (POWER) ở khối dãy LED với
nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
PORT A
DATA IN
PORT C
PORT B
DATA OUT
DATA OUT
CS8255
POWER
CS245
CS573A
CS573B
1
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
M. HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI). Bài 4: Chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các công tắc gạt SW0 – SW7 và hiển thị mức
logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED. Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 237 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 1 nối J70 (SELECT CHIP) ở khối vi điều khiển với J88 (CS8255) ở khối mở rộng port I/O
(chú ý là tùy thuộc vào tầm địa chỉ yêu cầu mà ta nối dây bus 1 vào đúng bit tương ứng của J70). • Dùng dây bus 8 nối J79 (PORT A) ở khối mở rộng port I/O với J11 (BAR LED 1) ở khối dãy LED. • Dùng dây bus 8 nối J84 (PORT B) ở khối mở rộng port I/O với J34 (MOMENTARY SW) ở khối công
tắc. • Dùng dây ba bus 3 nối J107 (POWER) ở khối mở rộng port I/O, J106 (POWER) ở khối công tắc và J103
(POWER) ở khối dãy LED với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
PORT A
DATA IN
PORT C
PORT B
DATA OUT
DATA OUT
CS8255
POWER
CS245
CS573A
CS573B
1
POWER
SWITCH
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển Port I/O, làm cho 8 LED sáng đuổi liên tục (LED được nối với
PortB, CS8255 được nối với SELCHIP 5). • Bài 2: Hãy viết chương trình điều khiển Port I/O, làm cho 16 LED sáng đuổi liên tục (LED được nối với
PortA và PortB, CS8255 được nối với SELCHIP 4). • Bài 3: Hãy viết chương trình điều khiển Port I/O, làm cho LED 7 đoạn hiển thị đếm HEX từ F xuống A
liên tục (LED0 được nối với PortA, CS8255 được nối với SELCHIP 6). • Bài 4: Hãy viết chương trình điều khiển Port I/O, làm cho hai LED 7 đoạn hiển thị đếm HEX từ 00 lên FF
liên tục (LED0 được nối với PortA, LED1 được nối với PortB, CS8255 được nối với SELCHIP 7). • Bài 5: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các công tắc gạt SW0 – SW7 và
hiển thị mức logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED (LED được nối với PortA, SWITCH được nối với PortB, CS8255 được nối với SELCHIP 4).
• Bài 6: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các nút nhấn KEY0 – KEY7 và hiển thị trạng thái hiện tại (LED sáng = nút nhấn, LED tắt = nút nhả) của các nút nhấn này lên LED (LED được nối với PortA, PUSH KEY được nối với PortB, CS8255 được nối với SELCHIP 5).
• Bài 7: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các nút nhấn KEY0 – KEY7 và hiển thị tên của các nút nhấn này lên LED 7 đoạn (LED0 được nối với PortA, PUSH KEY được nối với PortB, CS8255 được nối với SELCHIP 6).
• Bài 8: Hãy viết chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các nút nhấn KEY0 – KEY7 và hiển thị tên của các nút nhấn này lên LED ma trận (COL-RED được nối với PortA, ROW được nối với PortB, PUSH KEY được nối với PortC, CS8255 được nối với SELCHIP 6).
M. HỆ THỐNG ĐIỀU KHIỂN PORT I/O (ĐIỀU KHIỂN XUẤT/NHẬP QUA CÁC THIẾT BỊ NGOẠI VI). Bài 4: Chương trình điều khiển Port I/O, liên tục đọc các giá trị từ các công tắc gạt SW0 – SW7 và hiển thị mức
logic hiện tại (LED sáng = mức cao, LED tắt = mức thấp) của các công tắc này lên LED. Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 238 Biên soạn: Phạm Quang Trí
• Bài 9: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Giáo trình thực hành vi xử lý. 240 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Khảo sát nguyên lý hoạt động của vi mạch ADC 0809. • Thực hiện việc biến đổi từ tín hiệu tương tự (Analog) sang tín hiệu số (Digital).
B. YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước và nắm được hoạt động của vi mạch ADC 0809.
N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 1: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh
IN0) lên hai LED 7 đoạn (LED1 và LED0; dưới dạng số HEX từ 00H -> FFH). Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 241 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J49 (DIGITAL OUT) ở khối ADC. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7
đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng).
• Dùng dây bus 8 nối J90 (DATA OUT) ở khối mở rộng port I/O với J4 (7SEG IN MUL) ở khối LED 7 đoạn.
• Dùng dây bus 8 nối J85 (DATA OUT) ở khối mở rộng port I/O với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 1 nối J77 (V1) ở khối tạo áp với J48 (ANALOG IN) ở khối ADC (chú ý là ta chỉ nối bit 0
(IN0) của J48 và J77 lại với nhau). • Dùng dây bus 1 nối J93 (CS573B) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển
(chú ý là ta chỉ nối bit 0 (0000H – 1FFFH) của J70 và J93 lại với nhau). • Dùng dây bus 1 nối J92 (CS573A) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển
(chú ý là ta chỉ nối bit 1 (2000H – 3FFFH) của J70 và J92 lại với nhau). • Dùng dây bus 1 nối J60 (CS0809) ở khối ADC với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta
chỉ nối bit 2 (4000H – 5FFFH) của J70 và J60 lại với nhau). • Dùng bốn dây bus 3 nối D35 (POWER) ở khối tạo áp, D34 (POWER) ở khối ADC, J107 (POWER) ở khối
mở rộng port I/O và J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
3
8
PORT A
DATA IN
PORT C
PORT B
DATA OUT
DATA OUT
CS8255
POWER
CS245
CS573A
CS573B
ANALOG
INCS0809
DIGITAL
OUT
POWER
TAÏO AÙPV1POWER
V2
V3
V4
3
11
1 1
8
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 1: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh
IN0) lên hai LED 7 đoạn (LED1 và LED0; dưới dạng số HEX từ 00H -> FFH). Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 242 Biên soạn: Phạm Quang Trí
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 2: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh
IN0) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số DEC từ 0 -> 255). Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 243 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 3: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị điện áp của kênh ngõ vào
(kênh IN0) lên bốn LED 7 đoạn (LED3: hàng đơn vị; LED2, LED1 và LED0: ba số phần thập phân). Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 244 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)
N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào
(kênh IN0 và IN1) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 245 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J76 (MOMENTARY SW) ở khối nút nhấn với J80 (DATA IN) ở khối mở rộng port
I/O. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J49 (DIGITAL OUT) ở khối ADC. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7
đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng).
• Dùng dây bus 8 nối J90 (DATA OUT) ở khối mở rộng port I/O với J4 (7SEG IN MUL) ở khối LED 7 đoạn.
• Dùng dây bus 8 nối J85 (DATA OUT) ở khối mở rộng port I/O với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 1 nối J77 (V1) ở khối tạo áp với J48 (ANALOG IN) ở khối ADC (chú ý là ta chỉ nối bit 0
(IN0) của J48 và J77 lại với nhau). • Dùng dây bus 1 nối J78 (V2) ở khối tạo áp với J48 (ANALOG IN) ở khối ADC (chú ý là ta chỉ nối bit 1
(IN1) của J48 và J78 lại với nhau). • Dùng dây bus 1 nối J93 (CS573B) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển
(chú ý là ta chỉ nối bit 0 (0000H – 1FFFH) của J70 và J93 lại với nhau). • Dùng dây bus 1 nối J92 (CS573A) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển
(chú ý là ta chỉ nối bit 1 (2000H – 3FFFH) của J70 và J92 lại với nhau). • Dùng dây bus 1 nối J83 (CS245) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển
(chú ý là ta chỉ nối bit 2 (4000H – 5FFFH) của J70 và J83 lại với nhau). • Dùng dây bus 1 nối J60 (CS0809) ở khối ADC với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta
chỉ nối bit 4 (6000H – 7FFFH) của J70 và J60 lại với nhau). • Dùng năm dây bus 3 nối D35 (POWER) ở khối tạo áp, D34 (POWER) ở khối ADC, J114 (POWER) ở
khối nút nhấn, J107 (POWER) ở khối mở rộng port I/O và J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
LED 7 ÑOAÏN7SEG7 IN
SEL IN2POWER SEL IN1
7SEG6 IN 7SEG5 IN 7SEG4 IN7SEG7 INMUL
SEL LED IN
8 8 8 8
VI ÑIEÀU KHIEÅN
PORT 0
A0..A7
PORT 1
PORT 3
PORT 2
SELECT CHIP
CLOCK OUT
PORT 1
PORT 3
40 PINS
20 PINS
POWERSW
NGUOÀN+5V
3
8
8
MÔÛ ROÄNG PORT I/O
PORT A
DATA IN
PORT C
PORT B
DATA OUT
DATA OUT
CS8255
POWER
CS245
CS573A
CS573B
ADC
ANALOG
INCS0809
DIGITAL
OUT
POWER
TAÏO AÙPV1POWER
V2
V3
V4
3
3 3
1
8
1
1 1
8
8
NUÙT NHAÁN
MOMENTARY
SW
POWER
1
8
1
3
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào
(kênh IN0 và IN1) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 246 Biên soạn: Phạm Quang Trí
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh
ngõ vào (IN0 và IN1) lên bốn LED 7 đoạn (LED1 và LED0: kênh IN0; LED4 và LED3: kênh IN1; dưới dạng số HEX từ 00H -> FFH). Sử dụng cơ chế bộ nhớ ngoài.
• Bài 2: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của ba kênh ngõ vào (IN2, IN3 và IN4) lên sáu LED 7 đoạn (LED1 và LED0: kênh IN2; LED4 và LED3: kênh IN3; LED7 và LED6: kênh IN4; dưới dạng số HEX từ 00H -> FFH). Sử dụng cơ chế bộ nhớ ngoài.
• Bài 3: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào (kênh IN6, IN7) lên sáu LED 7 đoạn (LED2, LED1 và LED0: kênh IN6; LED7, LED6 và LED5: kênh IN7; dưới dạng số DEC từ 0 -> 255). Sử dụng cơ chế bộ nhớ ngoài.
• Bài 4: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của tám kênh ngõ vào (kênh IN0 -> IN7) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn lần lượt các nút nhấn KEY0 -> KEY7. Sử dụng cơ chế bộ nhớ ngoài.
• Bài 5: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của tám kênh ngõ vào (kênh IN0 -> IN7) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài.
• Bài 6: Hãy viết chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị điện áp của hai kênh ngõ vào (kênh IN0, IN1) lên bốn LED 7 đoạn (LED3: hàng đơn vị; LED2, LED1 và LED0: ba số phần thập phân), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài.
• Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
Quá trình biến đổi A/D được thực hiện qua các bước sau: o Xác lập địa chỉ chọn kênh ngõ vào (A0, A1, A2). o Tạo xung START/ALE bằng cách xuất một giá trị bất kỳ ra ngoại vi ADC0809 với địa chỉ ngoại vi
đã chọn (CS: Chip Select). o Tạo thời gian delay 120 µs. o Đọc giá trị từ ngoại vi ADC0809 với địa chỉ ngoại vi đã chọn (giá trị này có tầm từ 0 - 255 tùy
theo điện áp ngõ vào từ 0 - 5V ⇒ độ phân giải là 5V/255 = 19,6 mV). o Đổi giá trị này thành điện áp (tính bằng mV) bằng cách nhân với 19,6 ≈ 20. o Đổi giá trị này ra mã BCD nén. o Xuất ra LED 7 đoạn để hiển thị.
Đổi số nhị phân 8 bit thành mã BCD nén (packed BCD): o Lấy giá trị cần chuyển đổi (0 – 255) chia cho 10 ⇒ Số dư sẽ là mã BCD hàng đơn vị. o Lấy kết quả (thương số) của phép chia trên chia tiếp cho 10 ⇒ Số dư sẽ là mã BCD hàng chục. o Kết quả (thương số) của phép chia trên ⇒ Mã BCD hàng trăm. o Kết hợp mã BCD của hàng chục và hàng đơn vị lại thành mã BCD nén. Còn mã BCD của hàng
trăm thì giữ nguyên. o Chương trình mẫu:
;*************************************************** ;CTC CHUYEN DOI SO BINARY 8 BIT (<= 255) SANG SO BCD. ;*************************************************** ;NAME: BIN8TOBCD. ;INPUT: R7 = SO BCD 8 BIT (<= 255). ;OUTPUT: R7,R6 = SO BCD (TRAM - CHUC - DON VI). ;*************************************************** BIN8TOBCD: PUSH ACC PUSH B MOV B,#10
N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào
(kênh IN0 và IN1) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 247 Biên soạn: Phạm Quang Trí
MOV A,R7 DIV AB ;LAY R7 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 DIV AB ;LAY KET QUA TREN CHIA TIEP CHO 10 MOV R7,A ;R7 = TRAM MOV A,B ;LAY SO HANG CHUC SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;***************************************************
Đổi số nhị phân 16 bit thành mã BCD nén: o Công việc thực hiện tương tự như đối với số nhị phân 8 bit là lần lượt chia giá trị cần chuyển đổi
cho 10. Tuy nhiên, cần phải tạo ra một chương trình con thực hiện việc chia số 16 bit cho 10 (vì giá trị cần đổi lúc này là số 16 bit).
o Chương trình mẫu: ;*************************************************** ;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD. ;*************************************************** ;NAME: BIN16TOBCD. ;INPUT: R7,R6 = SO BCD 16 BIT (<= 9999). ;OUTPUT: R7,R6 = SO BCD (NGAN - TRAM - CHUC - DON VI). ;*************************************************** BIN16TOBCD: PUSH ACC PUSH B MOV B,#10 ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG CHUC MOV B,#10 MOV A,R6 DIV AB ;TIEP TUC CHIA CHO 10 PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO POP B ;LAY SO HANG TRAM TU STACK ORL A,B ;KET HOP SO HANG NGAN VA SO HANG TRAM MOV R7,A ;R7 = NGAN - TRAM POP ACC ;LAY SO HANG CHUC TU STACK SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** ;CTC CHIA SO BINARY 16 BIT CHO SO BINARY 8 BIT. ;*************************************************** ;NAME: DIV16TO8. ;INPUT: R7,R6: SO BINARY 16 BIT ; B: SO BINARY 8 BIT ;OUTPUT: R7,R6: KET QUA CUA PHEP CHIA ; B: SO DU CUA PHEP CHIA ;*************************************************** DIV16TO8: PUSH 02H ;CAT THANH GHI R2 PUSH ACC ;CAT THANH GHI A
N. HỆ THỐNG ĐIỀU KHIỂN ADC. Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của hai kênh ngõ vào
(kênh IN0 và IN1) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi được thực hiện bằng cách nhấn nút KEY0. Sử dụng cơ chế bộ nhớ ngoài.
Giáo trình thực hành vi xử lý. 248 Biên soạn: Phạm Quang Trí
MOV R2,#16 ;CHO PHEP DICH 16 LAN CLR A DIVIDE: XCH A,R6 CLR C ;DICH BIT 7 CU R6 VAO RLC A ;CARRY, BIT 0 CUA R6 XCH A,R6 ;BANG 0. XCH A,R7 ;DICH BIT CARRY VAO RLC A ;BIT 0 CUA R7 XCH A,R7 RLC A ;DICH BIT 7 CUA R7 VAO A. CJNE A,B,NOT_EQUAL ;XEM SO BIT DA DICH >= SJMP A_GREATER_EQ_B ;SO CHIA CHUA ? NOT_EQUAL: JC BELOW ;N: THUONG SO = 0 TRONG R6. A_GREATER_EQ_B: SUBB A,B ;Y: SO DU CAT TRONG A. XCH A,R6 ORL A,#1 ;THUONG SO = 1 XCH A,R6 ;CAT TRONG R6 BELOW: DJNZ R2,DIVIDE ;DICH TIEP DEN 16 LAN. XCH A,B ;SAU 16 LAN DICH TA DUOC B = SO DU. POP ACC POP 02H RET ;***************************************************
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
O. HỆ THỐNG ĐIỀU KHIỂN DAC.
Giáo trình thực hành vi xử lý. 250 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Khảo sát nguyên lý hoạt động của vi mạch DAC 0808. • Thực hiện việc biến đổi từ tín hiệu số (Digital) sang tín hiệu tương tự (Analog).
B. YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước và nắm được hoạt động của vi mạch DAC 0808.
O. HỆ THỐNG ĐIỀU KHIỂN DAC. Bài 1: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi giá trị lưu trong thanh
ghi R0 thành điện áp tương tự. Giá trị trong thanh ghi R0 thay đổi liên tục 00H, 40H, 80H, C0H và FFH, mỗi lần cách nhau 2 giây.
Giáo trình thực hành vi xử lý. 251 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J37 (DIGITAL IN) ở khối DACõ. • Dùng máy đo VOM để đo điện áp tại J38 (ANALOG OUT) ở khối DAC. • Dùng dây bus 8 nối J108 (POWER) ở khối DAC với nguồn ±5V, ±12V ở khối nguồn.
VI ÑIEÀU KHIEÅN
PORT 0
A0..A7
PORT 1
PORT 3
PORT 2
SELECT CHIP
CLOCK OUT
PORT 1
PORT 3
40 PINS
20 PINS
POWERSW
DAC
POWER
DIGITAL
IN
ANALOG
OUT
NGUOÀN5V, 12V
8
8
VOM
1
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
O. HỆ THỐNG ĐIỀU KHIỂN DAC. Bài 2: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi giá trị lưu trong thanh
ghi R0 thành điện áp tương tự. Giá trị trong thanh ghi R0 thay đổi liên tục từ 00H -> FFH, mỗi lần cách nhau 2 giây và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255).
Giáo trình thực hành vi xử lý. 252 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7
đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng).
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 8 nối J65 (PORT2 / A8..A15) ở khối vi điều khiển với J37 (DIGITAL IN) ở khối DACõ. • Dùng máy đo VOM để đo điện áp tại J38 (ANALOG OUT) ở khối DAC. • Dùng dây bus 8 nối J108 (POWER) ở khối DAC với nguồn ±5V, ±12V ở khối nguồn. • Dùng dây bus 8 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn.
PORT 0
PORT 1
PORT 3
PORT 2
PORT 1
PORT 3
40 PINS
20 PINS
POWER
DIGITAL
IN
ANALOG
OUT
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3)
O. HỆ THỐNG ĐIỀU KHIỂN DAC. Bài 3: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện tạo sóng sin có tần số bất kỳ tại
ngõ ra.
Giáo trình thực hành vi xử lý. 253 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J37 (DIGITAL IN) ở khối DACõ. • Dùng máy hiện sóng (Oscilloscope) để kiểm tra dạng sóng tại J38 (ANALOG OUT) ở khối DAC. • Dùng dây bus 8 nối J108 (POWER) ở khối DAC với nguồn ±5V, ±12V ở khối nguồn.
VI ÑIEÀU KHIEÅN
PORT 0
A0..A7
PORT 1
PORT 3
PORT 2
SELECT CHIP
CLOCK OUT
PORT 1
PORT 3
40 PINS
20 PINS
POWERSW
DAC
POWER
DIGITAL
IN
ANALOG
OUT
NGUOÀN5V, 12V
8
8
1
OSC
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển biến đổi D/A thông qua vi mạch DAC0808 và thực hiện tạo sóng
tam giác có tần số bất kỳ. • Bài 2: Hãy viết chương trình điều khiển biến đổi D/A thông qua vi mạch DAC0808 và thực hiện tạo sóng
vuông có tần số bất kỳ. • Bài 3: Hãy viết chương trình điều khiển biến đổi D/A thông qua vi mạch DAC0808 và thực hiện biến đổi
giá trị lưu trong thanh ghi R0 thành điện áp tương tự. Giá trị trong thanh ghi R0 thay đổi theo việc nhấn nút KEY0 hoặc KEY1 (KEY0: tăng giá trị, KEY1: giãm giá trị) từ 00H -> FFH và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255).
• Bài 4: Hãy viết chương trình điều khiển biến đổi D/A thông qua vi mạch DAC0808 và thực hiện tạo sóng sin có tần số thay đổi trong một khoảng tần số tự chọn tùy theo việc nhấn nút KEY0 hoặc KEY1 (KEY0: tăng tần số, KEY1: giãm tần số ) và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255)..
• Bài 5: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
Phần tạo sóng sin: o Tạo một bảng dữ liệu gồm 128 bytes là giá trị của 128 mẫu có được từ hình sin, đỉnh cao nhất của
hình sin có giá trị là 255 (FFH), đỉnh thấp nhất của hình sin có giá trị là 0 (00H). Do đó trục của hình sin có giá trị là 127,5 (80H hay 7FH).
o Giá trị của mẫu thứ x là: 5,1275,127128
360sin +×
× Ox
o Liên tục xuất bảng giá trị này ra vi mạch DAC0808, thay đổi thời gian delay giữa các lần xuất sẽ tạo ra các tần số khác nhau.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
���
�
�
P. HỆ THỐNG ĐIỀU KHIỂN ĐO NHIỆT ĐỘ.
Giáo trình thực hành vi xử lý. 255 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Khảo sát và sử dụng cảm biến nhiệt LM335. • Minh họa ứng dụng của hệ thống vi điều khiển vào công việc đo lường, hiển thị và điều khiển.
B. YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước nguyên lý hoạt động của các dạng mạch khuếch đại dùng Op-Amp và cảm biến nhiệt
LM335
P. HỆ THỐNG ĐIỀU KHIỂN ĐO NHIỆT ĐỘ. Bài tập: Chương trình đo nhiệt độ và hiển thị giá trị lên bốn LED 7 đoạn (một LED hiển thị phần thập phân).
Giáo trình thực hành vi xử lý. 256 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J49 (DIGITAL OUT) ở khối ADC. • Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7
đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thông qua khối mở rộng).
• Dùng dây bus 8 nối J90 (DATA OUT) ở khối mở rộng port I/O với J4 (7SEG IN MUL) ở khối LED 7 đoạn.
• Dùng dây bus 8 nối J85 (DATA OUT) ở khối mở rộng port I/O với J2 (SEL LED IN) ở khối LED 7 đoạn. • Dùng dây bus 1 nối J89 (V OUT) ở khối cảm biến nhiệt với J48 (ANALOG IN) ở khối ADC (chú ý là ta
chỉ nối bit 0 (IN0) của J48 và J89 lại với nhau). • Dùng dây bus 1 nối J93 (CS573B) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển
(chú ý là ta chỉ nối bit 0 (0000H – 1FFFH) của J70 và J93 lại với nhau). • Dùng dây bus 1 nối J92 (CS573A) ở khối mở rộng port I/O với J70 (SELECT CHIP) ở khối vi điều khiển
(chú ý là ta chỉ nối bit 1 (2000H – 3FFFH) của J70 và J92 lại với nhau). • Dùng dây bus 1 nối J60 (CS0809) ở khối ADC với J70 (SELECT CHIP) ở khối vi điều khiển (chú ý là ta
chỉ nối bit 2 (4000H – 5FFFH) của J70 và J60 lại với nhau). • Dùng ba dây bus 3 nối D34 (POWER) ở khối ADC, J107 (POWER) ở khối mở rộng port I/O và J110
(POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn. • Dùng dây bus 4 nối J35 (POWER) ở khối cảm biến nhiệt với nguồn ±5V ở khối nguồn.
NGUOÀN5V
CAÛMBIEÁNNHIEÄT
V IN2
V IN1
POWER
LM335
V OUT
LED 7 ÑOAÏN7SEG7 IN
SEL IN2POWER SEL IN1
7SEG6 IN 7SEG5 IN 7SEG4 IN7SEG7 INMUL
SEL LED IN
8 8 8 8
VI ÑIEÀU KHIEÅN
PORT 0
A0..A7
PORT 1
PORT 3
PORT 2
SELECT CHIP
CLOCK OUT
PORT 1
PORT 3
40 PINS
20 PINS
POWERSW
NGUOÀN+5V
3
8
8
MÔÛ ROÄNG PORT I/O
PORT A
DATA IN
PORT C
PORT B
DATA OUT
DATA OUT
CS8255
POWER
CS245
CS573A
CS573B
ADC
ANALOG
INCS0809
DIGITAL
OUT
POWER
34
3
8
1
1
1 1
8
8
1
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
P. HỆ THỐNG ĐIỀU KHIỂN ĐO NHIỆT ĐỘ. Bài tập: Chương trình đo nhiệt độ và hiển thị giá trị lên bốn LED 7 đoạn (một LED hiển thị phần thập phân).
Giáo trình thực hành vi xử lý. 257 Biên soạn: Phạm Quang Trí
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển đo nhiệt độ và hiển thị lên bốn LED 7 đoạn (một LED hiển thị
phần thập phân) với những yêu cầu sau: o Cho biết trước nhiệt độ là 50OC. o Đo nhiệt độ hiện tại. o Nếu nhiệt độ đo được nhỏ hơn nhiệt độ đặt thì kích đóng RELAY 1. o Nếu nhiệt độ đo được lớn hơn nhiệt độ đặt thì kích ngắt RELAY 1.
• Bài 2: Hãy viết chương trình điều khiển đo nhiệt độ và hiển thị lên bốn LED 7 đoạn (một LED hiển thị phần thập phân) với những yêu cầu sau:
o Cho phép đặt trước nhiệt độ là (10OC - 50OC) bằng các nút nhấn KEY0 (tăng nhiệt độ) và KEY1 (giãm nhiệt độ).
o Đo nhiệt độ hiện tại. o Nếu nhiệt độ đo được nhỏ hơn nhiệt độ đặt thì kích đóng RELAY 1. o Nếu nhiệt độ đo được lớn hơn nhiệt độ đặt thì kích ngắt RELAY 1.
• Bài 3: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
Cân chỉnh khối cảm biến nhiệt: o Chỉnh biến trở R137 sao cho V1 = 2,73 + 0,01 x tOC (V). Trong thực tế để chính xác thì ta nhúng
LM335 vào nước đá đang tan (0OC). o Chỉnh biến trở R133 sao cho V2 = 2,73 V.
Đo nhiệt độ với độ phân giải 0,5OC: o Nhiệt độ sau khi qua khối cảm biến nhiệt sẽ tạo ra một điện áp tại J93 (V OUT) có giá trị là VOUT
= 39 * tOC (mV). o Với độ phân giải của ADC0809 là 19,6 mV thì điện áp trên sau khi qua ADC0809 sẽ có giá trị là
39 * tOC / 19,6 ≈ 2 * tOC. o Để hiển thị giá trị nhiệt độ lên LED 7 đoạn với một số phần thập phân thì giá trị hiển thị sẽ phải là
10 * t. Do đó, giá trị thu được sau khi biến đổi A/D sẽ được nhân với 5 rồi biến đổi qua mã BCD nén → hiển thị lên LED 7 đoạn.
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
Q. HỆ THỐNG ĐIỀU KHIỂN MOTOR DC.
Giáo trình thực hành vi xử lý. 259 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Tìm hiểu nguyên lý hoạt động của các loại động cơ DC công suất nhỏ. • Tìm hiểu nguyên lý điều khiển động cơ DC bằng vi điều khiển và ứng dụng lập trình để điều khiển hoạt
động cho các động cơ DC này.
B. 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 động cơ quay thuận/ngược, thay đổi tốc độ quay, …. • Nắm được sơ đồ và nguyên lý hoạt động của khối động cơ DC trên mô hình thí nghiệm. • Nắm được nguyên lý hoạt động và nguyên lý điều khiển động cơ DC. • Biết cách viết các chương trình ứng dụng điều khiển động cơ DC hoạt động theo các chế độ khác nhau.
Q. HỆ THỐNG ĐIỀU KHIỂN MOTOR DC. Bài tập: Chương trình
Giáo trình thực hành vi xử lý. 260 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. •
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển • Bài 2: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
: o
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
R. HỆ THỐNG ĐIỀU KHIỂN SERIAL EEPROM.
Giáo trình thực hành vi xử lý. 262 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Tìm hiểu nguyên lý lưu trữ thông tin và phương pháp ghi/đọc dữ liệu từ một số bộ nhớ Serial EEPROM
thông dụng của hãng Atmel: 24C01, 24C04, ... • Điều khiển việc ghi/đọc dữ liệu giữa vi điều khiển với bộ nhớ Serial EEPROM.
B. YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51. • Nắm được nguyên lý lưu trữ thông tin và phương pháp ghi/đọc dữ liệu từ bộ nhớ Serial EEPROM. • Biết cách lập trình và điều khiển việc ghi/đọc dữ liệu giữa vi điều khiển với bộ nhớ Serial EEPROM.
R. HỆ THỐNG ĐIỀU KHIỂN SERIAL EEPROM. Bài tập: Chương trình
Giáo trình thực hành vi xử lý. 263 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. •
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển • Bài 2: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
: o
TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TTÀÀII LLIIỆỆUU HHƯƯỚỚNNGG DDẪẪNN TTHHÍÍ NNGGHHIIỆỆMM -- TTHHỰỰCC HHÀÀNNHH
S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK).
Giáo trình thực hành vi xử lý. 265 Biên soạn: Phạm Quang Trí
A. MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Khảo sát và sử dụng các loại RTC (đồng hồ thời gian thực) thông dụng trên thực tế. • Tìm hiểu nguyên lý hoạt động một số thiết bị điều khiển ứng dụng RTC giao tiếp với vi điều khiển.
B. YÊU CẦU:
• Nắm vững tập lệnh của vi điều khiển MCS-51. • Tham khảo trước nguyên lý hoạt động của các RTC thông dụng như: PCF8583, DS1307, … (Serial RTC)
và DS12887 (Parallel RTC). • Thiết kế một số thiết bị điều khiển ứng dụng RTC giao tiếp với vi điều khiển.
S. HỆ THỐNG ĐIỀU KHIỂN RTC (REAL TIME CLOCK). Bài tập: Chương trình
Giáo trình thực hành vi xử lý. 266 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm. •
1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
1.3 Lưu chương trình và biên dịch chương trình.
1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.5 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động.
1.6 Nạp chương trình vào vi điều khiển.
1.7 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.8 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9.
2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển • Bài 2: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
: o