Tài liệu hướng dẫn Thí nghiệm - Thực hành: Vi điều khiển MCS - 51
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. 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ố 12345678trê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ố 12345678trê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ố 12345678trê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ố 12345678trê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ắtchuỗ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 nhau1 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útnhấ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ânINT0 (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ácLED 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ạch74165, 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ựchiệ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, LED1và 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:
Các file đính kèm theo tài liệu này:
- giao_trinh_thuc_hanh_vi dieu khien MCS51.pdf