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

Vi Mạch MCS 51 - Ứng Dụng Thực Tế (Phần 2) part 5 ppt

9 381 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

Định dạng
Số trang 9
Dung lượng 471,15 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.. • Thiết kế các ứng dụng điều khiển thự

Trang 1

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 2

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:

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

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)

Trang 3

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

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

Trang 4

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

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 P1 ,A ;XUAT MA QUET

LCALL DELAYLED

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,$

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

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

Trang 6

TRUNG TÂM THÍ NGHIỆM THỰC HÀNH Đ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 7

K HỆ THỐNG ĐIỀU KHIỂN TIMER/COUNTER

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,

Trang 8

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

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

Trang 9

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)

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

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

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

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:

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

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

PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI

PUSH DPL

PUSH ACC

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

POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI

POP DPL

POP DPH

Ngày đăng: 09/07/2014, 23:20

TỪ KHÓA LIÊN QUAN