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

Giải bài tập vi xử lý chương 7 Lưu Phú full

23 538 9

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 145,38 KB

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

Nội dung

Viết một chương trình xuất 2 chuỗi xung vuông đối xứng tần số 8Khz ra P1.0, tần số 500Hz ra P1.1 sử dụng ngắt Timer.Viết một chương trình sử dụng ngắt tạo chuỗi xung vuông đối xứng tần số fs=20Hz điều chế sóng mang là chuỗi xung vuông đối xứng tần số fc=38Khz như hình vẽ.: Viết một chương trình tạo chuỗi xung mã hóa 4 bit data (nhập từ nibble thấp P2)điều chế sóng mang tần số 38Khz trong thời gian mức1(tương tự như bài 2) như hình dưới đây, xuất chuỗi xung nối tiếp ra P1.0.Viết một chương trình tạo chuỗi xung mã hóa 4 bit data (nhập từ nibble thấp P2)điều chế sóng mang tần số 38Khz trong thời gian mức1(tương tự như bài 2) như hình dưới đây, xuất chuỗi xung nối tiếp ra P1.0.Viết một chương trình tạo chuỗi xung mã hóa 4 bit data (nhập từ nibble thấp P2)điều chế sóng mang tần số 38Khz trong thời gian mức1(tương tự như bài 2) như hình dưới đây, xuất chuỗi xung nối tiếp ra P1.0.

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ -*** -

VI XỬ LÝ BÀI TẬP CHƯƠNG 7 GIẢNG VIÊN HƯỚNG DẪN : LƯU PHÚ

Trang 2

Câu 1: Viết một chương trình xuất 2 chuỗi xung vuông đối xứng tần số 8Khz ra P1.0, tần số 500Hz ra P1.1 sử dụng ngắt Timer.

;P1.0: XUNG 8KHZ => DEM 62.5US => TIMER0 MODE 2 (AUTORELOAD 8BIT)

;P1.1: XUNG 500HZ => DEM 1000US => TIMER1 MODE 1 16BIT

MOV TL0,#-63MOV TH0,#-63SETB TR0

SETB TF1 ;ep timer 1 tao ngatMOV IE,#8AH ;cho phep ngat cua hai timer

Trang 3

; -T0ISR: CPL P1.0

RETI

T1ISR: CLR TR1

; -MOV TH1,#HIGH(-1000)MOV TL1,#LOW(-1000)SETB TR1

CPL P1.1RETI

; -END

Trang 4

Câu 2: Viết một chương trình sử dụng ngắt tạo chuỗi xung vuông đối xứng tần số fs=20Hz điều chế sóng mang là chuỗi xung vuông đối xứng tần số fc=38Khz như hình vẽ.

;XUNG VUONG DOI XUNG 20HZ DIEU CHE SONG MANG XUNG 38KHZ

; -ORG 0000HLJMP MAINORG 000BH ;dia chi vector cua T0LJMP T0ISR

ORG 001BH ;dia chi vector cua T1CPL P1.0

RETI

; -ORG 0030HMAIN: CLR P1.0

MOV TMOD,#21H;timer1 mode2 timer0 mod1MOV TH1,#-13 ;tao xung 38kHz

MOV TL1,#-13 ;tao xung 38kHzSETB TR0

SETB TF0 ;ep ngat timer 0SETB EA ;cho phep ngat toan cuc

Trang 5

SETB ET0 ;cho phep ngat timer0

T0ISR:

CLR P1.0CLR TR0 ;tat timer0MOV TH0,#HIGH(-25000) ;tao xung 20HzMOV TL0,#LOW(-25000) ;tao xung 20HzCPL TR1 ;timer1 dang tat => bat; bat=>tat

RETIEND

Trang 6

Câu 3: Viết một chương trình tạo chuỗi xung mã hóa 4 bit data (nhập từ nibble thấp P2)điều chế sóng mang tần số 38Khz trong thời gian mức1(tương tự như bài 2) như hình dưới đây, xuất chuỗi xung nối tiếp ra P1.0.

Chu kỳ T=50ms,bit 1 Tp=3/4T,bit 0 Tp=1/4T,bit sync Tp=1/2T kết thúc chuỗi

xung,Tp là thời gian mức 1,MSB truyền trước.Ví dụ trong hình trên mạch mã hóa 4 bit 0101.

ORG 0000HLJMP MAINORG 000BHLJMP T0_ISRORG 001BHLJMP T1_ISR

; -ORG 0030HMAIN:

MOV R1,#5MOV TMOD,#11H LCALL CHECKP2SETB TF0

SETB TF1SETB EASETB ET0

Trang 7

SJMP $

; -CHECKP2:

MOV P2,#0FHMOV A,P2ANL A,#0FHSWAP A

MOV R6,#HIGH(-37500)MOV R7,#LOW(-37500)CHECKSYNC: DJNZ R1,KT

SYNC:

MOV R6,#HIGH(-25000)MOV R7,#LOW(-25000)MOV R1,#5

Trang 8

LCALL CHECKP2KT: RET

; -T0_ISR:

LCALL CONDSETB ET1CLR TR0

JC SKIPCLR P1.0CLR ET1SKIP:

MOV TL0,R6MOV TH0,R7SETB TR0RETI

; -T1_ISR:

CLR TR1MOV TL1,#LOW(-13)MOV TH1,#HIGH(-13)SETB TR1

CPL P1.0RETI

Trang 9

Câu 4: Viết một chương trình tạo chuỗi xung mã hóa 4 bit data (nhập từ nibble thấp P2)điều chế sóng mang tần số 38Khz trong thời gian mức1(tương tự như bài 2) như hình dưới đây, xuất chuỗi xung nối tiếp ra P1.0.

Thiết kế một mạch đo độ rộng xung có Tmax=10000µs.Hiển thị giá trị đo 4 digit bằng LED 7 đoạn.Hiển thị LED cảnh báo khi T>10000µs

Trang 10

ORG 0000HLJMP MAINLJMP EX0ISRORG 0013HLJMP EX1ISRORG 0030HMAIN: SETB IT1

SETB IT0MOV TMOD,#10HMOV IE,#85HLCALL SCAN_LED

; -BAOTRAN: ;TRAN THI CHI BAO LED DON

MOV A,TH1CJNE A,#27H,$+3

MOV A,TL1CJNE A,#10H,$+3

CLR P1.7ZIP: RET

Trang 11

; -EX0ISR: MOV TL1,#0

MOV TH1,#0SETB TR1RETI

EX1ISR: CLR TR1

LCALL BAOTRANJNB P1.7,KTMOV A,TL1MOV R2,TH1LCALL HEX16_BCDLCALL SCAN_LEDKT: MOV DPTR,#1000H; TATLED

MOV A,#0FFHMOVX @DPTR,ACLR ET1

RETI

Trang 12

Câu 5: Viết một chương trình sử dụng ngắt Timer và cổng nối tiếp cứ mỗi 1s phát data nhập từ DIP-SW8 ở Port 2 Cho fosc=11.059Mhz,baurate=9600.

COUNT EQU -48400

LJMP MAINORG 000BH ;timer0 vectorLJMP TIMER0_ISR

ORG 0023H ;serialport vectorLJMP SP_ISR

; -ORG 0030HMAIN: MOV TMOD,#21H ;timer1 tao baudrate timer0 dem 1s

MOV TL1,#-3 ;baudrate 9600MOV TH1,#-3

SETB TR1 ;chay timer1MOV SCON,#52H ;cho phep truyenMOV R0,#20 ;50000x20=1sSETB TF0 ;ki thuat ep' ngat timer 0SETB TR0

Trang 13

SETB ET0LOOP: CJNE R0,#0,LOOP ;lap de tao 1s

MOV R0,#20SJMP LOOP

Trang 14

Câu 6: Viết một chương trình sử dụng ngắt cổng nối tiếp thu data và hiển thị data

ra barled8 kết nối ở Port1.Cho fosc=11.059Mhz,baurate=9600 Mô phỏng bài 5

và 6 kết hợp.

LJMP MAINORG 0023H ;serialport vectorLJMP SP_ISR

; -ORG 0030HMAIN: MOV TMOD,#20H;timer1 tao baudrate

MOV TL1,#-3 ;baudrate 9600MOV TH1,#-3

SETB TR1 ;chay timer1MOV SCON,#52H ;cho phep truyenSETB EA ;cho phep ngat toan cucSETB ES ;cho phep ngat serial

; -SP_ISR: MOV A,SBUF

MOV P1,A ;dua kq ra barled8

RETI

Trang 15

; -END

Câu 7: Vẽ sơ đồ MCU8051 kết nối trực tiếp với ADC0808,nhận dạng kết thúc chuyển đổi AD bằng ngắt,DIPSW3 chọn kênh chuyển đổi AD,LCD 16x2.Viết một chương trình đọc data từ ngõ vào analog đã chọn, hiển thị giá trị data và kênh tương ứng trên LCD.

Chương trình có sử dụng các chương trình con về LCD đã được dựng ở các chương trước

Trang 16

; -;CHUONG TRINH CHINH

MAIN: LCALL CLEAR ;XOA MAN HINH LCD

LCALL INIT ;KHOI DONG LCDMOV IE,#81H ;CHO PHEP NGAT TOAN CUC

VA NGAT NGOAI0

SETB IT0 ;NGAT CANH XUONGLOOP: SETB ALE

SETB STARTCLR ALE ;XUAT XUNG ALE CHOT DIA CHI KENH

CLR START ;XUAT XUNG START BAT DAU CHUYEN DOI

LCALL WRITECOMLCALL XUATCHUOI1MOV A,40H

LCALL XULY ;XU LY KET QUALCALL XUATCHUOI2

Trang 17

MOV A,P2 ;LAY KET QUAMOV 40H,A

RETI

; -;CHUONG TRINH CON XU LY KET QUA VA XUAT KET QUA

XULY: MOV B,#195 ;NHAN A VOI 19.5mV DE CO

KQ BAN DAU

MOV R2,B ;KQ LA SO 16BIT (R2_A)LCALL HEX16_BCD ;KQ LA SO BCD LUU TRONG (R2_B_A)

MOV A,R2 ;XUAT CHU SO PHAN NGUYEN

ADD A,#30HLCALL WRITETEXTMOV A,#"."

LCALL WRITETEXT ;XUAT DAU (.) THAP PHAN

ANL A,#11110000B

ADD A,#30HLCALL WRITETEXT

Trang 18

MOV A,BANL A,#00001111BADD A,#30H

LCALL WRITETEXTMOV A,#"V"

LCALL WRITETEXTRET

; -;XUAT CHUOI KI TU "GIA TRI DO DUOC LA:"

XUATCHUOI1:

PUSH ACCMOV DPTR,#TAB1

Trang 19

MOV A,#0C0HLCALL WRITECOMMOV DPTR,#TAB2TTUC1: CLR A

MOVC A,@A+DPTR

LCALL WRITETEXTJNZ TTUC1

MOV A,P0ANL A,#00000111BADD A,#30H

LCALL WRITETEXT

RET

TAB1: DB "GIA TRI:",0TAB2: DB "KENH:",0

; -END

Trang 20

Câu 8: Lập lại bài tập 4.6 sử dụng ngắt khi có một trong bốn phím nhấn và thực hiện hiển thị ra barled8 tương ứng.

ORG 0000HLJMP MAINLJMP ISRORG 0030HMAIN: MOV IE,#81H ;CHO PHEP NGAT TOAN CUC, NGAT NGOAI INT0

SETB IT0 ;NGAT CANH XUONGCONTINUE: CLR C

CJNE A, #00001110B, TIEP1LJMP MODE1 ;NHAY VAO CHE DO 1TIEP1: CJNE A, #00001101B, TIEP2

LJMP MODE2 ;NHAY VAO CHE DO 2TIEP2: CJNE A, #00001011B, TIEP3

LJMP MODE3 ;NHAY VAO CHE DO 3TIEP3: CJNE A, #00000111B, CONTINUE

LJMP MODE4 ;NHAY VAO CHE DO 4

; -MODE1: MOV P2, #0 ;SANG TAT CA CAC LED

Trang 21

SJMP CONTINUE

; -MODE2: MOV P2,#00000000B;CHOP NHAY CAC LED

LCALL DELAY500MSMOV P2,#11111111BLCALL DELAY500MSSJMP CONTINUE

; -MODE3: MOV R0,A ;CAT GIA TRI A

MOV A, #01HXOAY2: MOV R0,#8

XOAY1: MOV P2,A

; -MODE4: MOV R0,A

Trang 22

MOV A, #01111111BXOAY4: MOV R0,#8

XOAY3: MOV P2,A

LCALL DELAY500MS

DJNZ R0, XOAY3SJMP XOAY4MOV A,R0EXIT2: SJMP CONTINUE

; -ISR: MOV A,P1 ;DOC SWITCH

ANL A,#0FH ;LAY 4 BIT THAPSETB C ;DUNG CO C DE NHAN BIET

CO THAY DOI (KHONG DUNG A)

Trang 23

RETIEND

Ngày đăng: 23/10/2020, 19:41

TỪ KHÓA LIÊN QUAN

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

w