1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

vi xử lý hệ thống điều khiển nút nhấn

8 1,1K 7
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 468,69 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.. • Trình bày một số ứng dụng điều khiển

Trang 1

KHOA CÔNG NGHỆ ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP TÀI LIỆU HƯỚNG DẪN

THÍ NGHIỆM - THỰC HÀNH

Trang 2

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

Trang 3

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))

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

1.2 Sơ đồ nguyên lý của hệ thống:

AD7

AD0

AD0 AD2 AD4 AD6

AD7 AD5 AD3 AD1

D D D D D D D

XTAL2 18 XTAL1 19

ALE 30 EA 31 PSEN 29

RST 9

P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8

U1

AT89C51

C1 33p

C2 33p

X1 12MHz

C3 10uF

R1 10k +5V

D0

R2 330 +5V

D1

R3 330 +5V

D2

R4 330 +5V

D3

R5 330 +5V

D4

R6 330 +5V

D5

R7 330 +5V

D6

R8 330 +5V

D7

R9 330 +5V

1C 18

2C 17

3C 16

4C 15

5C 14

6C 13

7C 12

8C 11

COM 10

U2

ULN2803

2 4 6 8

1 RP1

10K

MẠCH ĐIỀU KHIỂN NÚT NHẤN

2

4

6

8

1

RP2

10K

+5V

+5V

1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển

Trang 4

ĐIỀU KHIỂN TẮT LED 0

(P1.0) = 0

MAIN:

F1

Đ

S

KEY0 NHẤN ?

(P0.0) = 0

ĐIỀU KHIỂN TẮT LED

(P1) = 00H

KEY1:

ĐIỀU KHIỂN SÁNG LED 0 (P1.0) = 1 KEY0:

KEY0OK:

ĐIỀU KHIỂN TẮT LED 1 (P1.1) = 0

Đ

S

KEY1 NHẤN ? (P0.1) = 0

KEY2:

ĐIỀU KHIỂN SÁNG LED 1 (P1.1) = 1 KEY1OK:

ĐIỀU KHIỂN TẮT LED 2 (P1.2) = 0

Đ

S

KEY2 NHẤN ? (P0.2) = 0

KEY3:

ĐIỀU KHIỂN SÁNG LED 2 (P1.2) = 1 KEY2OK:

ĐIỀU KHIỂN TẮT LED 3

(P1.3) = 0

Đ

S

KEY3 NHẤN ?

(P0.3) = 0

KEY4:

ĐIỀU KHIỂN SÁNG LED 3 (P1.3) = 1 KEY3:

KEY3OK:

ĐIỀU KHIỂN TẮT LED 4 (P1.4) = 0

Đ

S

KEY4 NHẤN ? (P0.4) = 0

KEY5:

ĐIỀU KHIỂN SÁNG LED 4 (P1.4) = 1 KEY4OK:

ĐIỀU KHIỂN TẮT LED 5 (P1.5) = 0

Đ

S

KEY5 NHẤN ? (P0.5) = 0

KEY6:

ĐIỀU KHIỂN SÁNG LED 5 (P1.5) = 1 KEY5OK:

ĐIỀU KHIỂN TẮT LED 6

(P1.6) = 0

Đ

S

KEY6 NHẤN ?

(P0.6) = 0

KEY7:

ĐIỀU KHIỂN SÁNG LED 6 (P1.6) = 1 KEY6OK:

ĐIỀU KHIỂN TẮT LED 7 (P1.7) = 0

Đ

S

KEY7 NHẤN ? (P0.7) = 0

ĐIỀU KHIỂN SÁNG LED 7 (P1.7) = 1 KEY7OK:

KEY6:

;***************************************************

;CHUONG TRINH DIEU KHIEN NUT NHAN LAM 8 LED HOAT DONG

;***************************************************

;KET NOI: 8 LED -> PORT1

; MOMENTARY SW -> PORT0 (ACT = 0)

;***************************************************

MAIN:

Trang 5

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))

KEY0OK:

SETB P1.0 ;KEY0 NHAN -> LED SANG

CLR P1.1 ;KEY1 NHA -> LED TAT

KEY1OK:

SETB P1.1 ;KEY1 NHAN -> LED SANG

CLR P1.2 ;KEY2 NHA -> LED TAT

KEY2OK:

SETB P1.2 ;KEY2 NHAN -> LED SANG

CLR P1.3 ;KEY3 NHA -> LED TAT

KEY3OK:

SETB P1.3 ;KEY3 NHAN -> LED SANG

CLR P1.4 ;KEY4 NHA -> LED TAT

KEY4OK:

SETB P1.4 ;KEY4 NHAN -> LED SANG

CLR P1.5 ;KEY5 NHA -> LED TAT

KEY5OK:

SETB P1.5 ;KEY5 NHAN -> LED SANG

CLR P1.6 ;KEY6 NHA -> LED TAT

KEY6OK:

SETB P1.6 ;KEY6 NHAN -> LED SANG

CLR P1.7 ;KEY7 NHA -> LED TAT

KEY7OK:

SETB P1.7 ;KEY7 NHAN -> LED SANG

END

1.4 Lưu chương trình và biên dịch chương trình

1.5 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có

1.6 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.7 Nạp chương trình vào vi điều khiển

1.8 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.9 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)

Trang 6

Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo))

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 Sơ đồ nguyên lý của hệ thống:

• Sơ đồ nguyên lý của hệ thống tương tự như Bài 1

1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển

BEGIN

GỌI CTC CHỚP TẮT 20 Hz

DELAY50MS

MAIN:

F2

Đ

S

KEY0 NHẤN ?

(P0.0) = 0

XÓA THANH GHI A

(A) = 00H

GỌI CTC CHỚP TẮT 5 Hz DELAY200MS MP1:

NHAN:

DELAY50MS

CẤT TẠM GIÁ TRỊ CỦA R0 VÀO

STACK NẠP GIÁ TRỊ VÒNG LẶP (R0) = 50

DEL50:

GIÃM SỐ LẦN LẶP

SỐ LẦN LẶP ≠ 0 (CHƯA LẶP XONG)

Đ

S LẤY LẠI GIÁ TRỊ CHO R0 TỪ STACK

RET

KHỞI ĐỘNG TIMER (TIMER 0, MODE 1) (TMOD) = 01H

NẠP GIÁ TRỊ CHO TIMER (TDELAY = 1000.TMÁY) (TH0/TL0) = -1000 = FC18H

CHƯA ĐỦ THỜI GIAN (TF0) = 0

Đ

S

CHO TIMER HOẠT ĐỘNG (TR0) = 1

DỪNG TIMER (TR0) = 0 XÓA CỜ TRÀN TIMER (TF0) = 0

DELAY200MS

CẤT TẠM GIÁ TRỊ CỦA R0 VÀO

STACK NẠP GIÁ TRỊ VÒNG LẶP (R0) = 100

DEL5:

GIÃM SỐ LẦN LẶP

SỐ LẦN LẶP ≠ 0 (CHƯA LẶP XONG)

Đ

S LẤY LẠI GIÁ TRỊ CHO R0 TỪ STACK

RET

KHỞI ĐỘNG TIMER (TIMER 0, MODE 1) (TMOD) = 01H

NẠP GIÁ TRỊ CHO TIMER (TDELAY = 1000.TMÁY) (TH0/TL0) = -2000 = F830H

CHƯA ĐỦ THỜI GIAN (TF0) = 0

Đ

S

CHO TIMER HOẠT ĐỘNG (TR0) = 1

DỪNG TIMER (TR0) = 0 XÓA CỜ TRÀN TIMER (TF0) = 0

;***************************************************

;CHUONG TRINH DIEU KHIEN NUT NHAN LAM 8 LED HOAT DONG

;***************************************************

;KET NOI: 8 LED -> PORT1

; MOMENTARY SW -> PORT0 (ACT = 0)

;***************************************************

MAIN:

MP1:

;NUT DUOC NHA -> F = 20 Hz

SJMP MP1 ;THOAT RA

SJMP MP1 ;THOAT RA

;***************************************************

Trang 7

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))

;***************************************************

DEL5:

END

1.4 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

 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

Trang 8

Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo))

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

Ngày đăng: 09/05/2014, 21:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm