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:

pdf275 trang | Chia sẻ: maiphuongdc | Lượt xem: 2043 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Tài liệu hướng dẫn Thí nghiệm - Thực hành: Vi điều khiển MCS - 51, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
o? • 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ÏN 7SEG7 IN SEL IN2POWER SEL IN1 7SEG6 IN 7SEG5 IN 7SEG4 IN 7SEG7 IN MUL SEL LED IN VI ÑIEÀU KHIEÅN P O R T 0 A0..A7 P O R T 1 P O R T 3 P O R T 2 SELECT CHIP CLOCK OUT P O R T 1 P O R T 3 40 P IN S 20 P IN S POWER SW NGUOÀN +5V 3 8 GIAÛI MAÕ B C D I N 1- 2 P O W E R 7 SE G O U T 1 7 SE G O U T 2 B C D I N 3- 4 7 SE G O U T 3 7 SE G O U T 4 D E C . 2- 4 D E C . 3- 8 D E C . O U T D E C . 2-4 D E C . O U T D E C . O U T 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

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_thuc_hanh_vi dieu khien MCS51.pdf