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

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

8 443 0
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

Tiêu đề Hệ Thống Điều Khiển Ngắt
Tác giả Phạm Quang Trí
Trường học Khoa Công Nghệ Điện Tử
Chuyên ngành Điện Tử Công Nghiệp
Thể loại Giáo Trình Thực Hành
Định dạng
Số trang 8
Dung lượng 541,71 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.. Bài 1: Chương trình điều khiển tạo só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

J HỆ THỐNG ĐIỀU KHIỂN NGẮT (INTERRUPT)

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

Trang 3

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

AD7 AD7

AD0

D0 AD0 AD0

AD1 AD1 AD2 AD2 AD3 AD3 AD4 AD4 AD5 AD5 AD6 AD6

AD7 AD6 AD5 AD4 AD3 AD2 AD1

D7 D6 D5 D4 D3 D2 D1 D0 D1 D2 D3 D4 D5 D6 D7

XTAL2 18

XTAL1 19

ALE 30 EA 31 PSEN 29

RST 9

P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32

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

P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28

P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27

U1

C1

33p

C2

33p

X1

12MHz

C3

10uF

R1

10k

+5V

D1

R2

330 +5V

D2

R3

330 +5V

D3

R4

330 +5V

D4

R5

330 +5V

D5

R6

330 +5V

D6

R7

330 +5V

D7

R8

330 +5V

D8

R9

330 +5V

1B 1 2B 2 3B 3 4B 4 5B 5 6B 6 7B 7 8B 8

1C 18 2C 17 3C 16 4C 15 5C 14 6C 13 7C 12 8C 11

COM 10

U2

ULN2803

+5V

2 3 4 5 6 7 8 9

1

RP1

10K

2 3 4 5 6 7 8 9

1

RP2

10K +5V

A

B

Trang 4

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) có sử dụng bộ đệm đảo

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

BEGIN (ORG 30H)

KHỞI ĐỘNG TIMER (TIMER 0, MODE 1) (TMOD) = 01H NẠP GIÁ TRỊ CHO TIMER (TDELAY= 50000.TMÁY) (TH0/TL0) = -50000 = 3CB0H CHO TIMER HOẠT ĐỘNG

(TR0) = 1 CHO PHÉP NGẮT TIMER0 (IE) = 10000010B = 82H

MAIN:

J1

END

T0ISR (ORG 0BH) T0ISR:

TẠO XUNG (ĐẢO TRẠNG THÁI)

CPL P0.0

RETI

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

;CHUONG TRINH DIEU KHIEN TAO SONG VUONG TAI P0.0 CO SU DUNG NGAT TIMER0

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

;KET NOI: 8 LED -> PORT0

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

SJMP MAIN

T0ISR:

CPL P0.0 ;DAO TRANG THAI P0.0 (TAO XUNG)

RETI

MAIN:

SETB TR0 ;CHO TIMER BAT DAU CHAY

SJMP $ ;DUNG YEN

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 5

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

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

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

AD7

AD0

AD0 AD2 AD4 AD6

AD7 AD5 AD3 AD1

A C E F G

A C E F G

A C E F G

A C E F G

P1.3

P1.0

P1.2

XTAL2 18

XTAL1 19

ALE 30

EA 31

PSEN 29

RST 9

P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32

P1.0 1

P1.1 2

P1.2 3

P1.3 4

P1.4 5

P1.5 6

P1.6 7

P1.7 8

P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28

P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27

U1

C1

33p

C2

33p

X1

12MHz

2 4 6 8

1

RP1

10K

MẠCH ĐIỀU KHIỂN NGẮT (NGẮT NGOÀI)

LED7

Q1

A1015 +5V

LED6

Q2

A1015

+5V

R2

1K

R3

1K

R4

56

R5

56

R6

56

R7

56

R8

56

R9

56

R10

56

LED5

Q3

A1015 +5V

LED4

Q4

A1015

+5V

R11

1K

R12

1K

C3

10uF

R1

10k

+5V

U1(P3.2/INT0)

Trang 6

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)

1.3 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

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

EX0ISR:

RETI

MAIN:

SETB IT0 ;DAT CHE DO NGAT NGOAI KICH KHOI CANH

MP1:

ACALL BIN8TOBCD ;CHUYEN DOI BIN SANG BCD

ACALL BCD4TO7SEG ;CHUYEN DOI BCD SANG 7 DOAN

ACALL DISP7SEGMUL4 ;HIEN THI

SJMP MP1

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

PUSH ACC

PUSH B

MOV A , R7

POP B

POP ACC

Trang 7

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)

RET

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

PUSH DPL

PUSH ACC

MOVC A , @A+DPTR ;LAY MA 7 DOAN TUONG UNG

MOVC A , @A+DPTR ;LAY MA 7 DOAN TUONG UNG

MOVC A , @A+DPTR ;LAY MA 7 DOAN TUONG UNG

MOVC A , @A+DPTR ;LAY MA 7 DOAN TUONG UNG

POP DPL

POP DPH

RET

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

PUSH 00H

DISP:

MOV P0, @R0 ;XUAT MA HIEN THI

LCALL DELAYLED

POP ACC

RET

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

PUSH 00H

PUSH 01H

MOV R1 ,#5

DEL:

Trang 8

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)

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 đế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

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