Tải bản đầy đủ (.pdf) (53 trang)

Bài tâp môn học vi xử lý vi điều khiển

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.9 MB, 53 trang )

Nguyễn Hải CĐT.01
MSSV: DTK1151010234

NGÂN HÀNG CÂU HỎI ÔN THI VẤN ĐÁP TRÊN MÁY TÍNH
Môn học: Vi xử lý – Vi điều khiển

DẠNG 1:
Bài 1: thiết kế mạch và điếm số lần nhấn công tác trên p1.0 và
hiển thị lên 1 led7 thanh
Mình thấy nếu chỉ hiển thị 1 led 7 thanh thì dễ và đếm được 9 lần vậy mình làm 2
led7 thanh đếm từ 01->99 lần
Câu 2 như câu 1 chỉ thay chân công tác
ORG 00H
MAIN:
MOV R0,#0
DIEM:
JB P1.0,$ ; nhay tai cho cho p1.0 = 0 thi chuyen di
INC R0
HIENTHI:
; hien thi so thu nhat hang don vi
MOV A,R0
MOV B,#10
DIV AB
MOV DPTR,#MALED7
MOVC A,@A+DPTR
MOV P0,A
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

CLR P2.1
SETB P2.1


; hien thi so thu hai hang chuc
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
CLR P2.2
SETB P2.2

CALL DELAY
JMP DIEM

DELAY:MOV R7,#255
KT2:MOV R6,#255
KT1:NOP
NOP
NOP
DJNZ R6,KT1
DJNZ R7,KT2
RET
MALED7:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
Hình vẽ
Nguyễn Hải CĐT.01
MSSV: DTK1151010234


CÂU 3: thiết kế mạch và viết chương trình hiện thị các led sáng liên tiếp trong
mạch có 8led được nối vào port2 của vi điều khiển ( led 1 sáng các led còn lại tát,
led 2 sáng các led còn lại tát… ) thời gian trễ tùy chọn để hiển thị phù hợn với led.
Bài làm

Câu 3 và câu 4 giống nhau chỉ thay port2 -> port1.
Hình vẽ:
Nguyễn Hải CĐT.01
MSSV: DTK1151010234



Code:
; biet led sang muc 0 tat muc 1
ORG 00H
MAIN:
CALL SANGTRAI ; neu ban xoay muon xoay trai thi bo
CALL SANGPHAI ; CALL SANGPHAI va nguoc lai
JMP MAIN

; sang lan luot trai qua phai
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

SANGTRAI:
MOV A,#0FFH
CLR C
MOV R0,#9 ;//////////so lan lap lai
LAP:
MOV P2,A ; gan gia tri A=P2
CALL DELAY ; goi thoi gian tre
RLC A ; xoay trai voi co C
DJNZ R0,LAP ; lap lai 9 lan
RET
; sang lan luot phai qua trai

SANGPHAI:
MOV A,#0FFH
CLR C
MOV R1,#9
LAP1:
MOV P2,A
CALL DELAY
RRC A
DJNZ R1,LAP1
RET
; thoi gian tre
DELAY:
MOV R7,#255
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

KT2: MOV R6,#255
KT1: DJNZ R6,KT1
DJNZ R7,KT2
RET
END
Câu 5: Thiết kế mạch và viết chương trình hiển thị mạch có 8 LED được nối vào
port P3 của vi điều khiển các LED sáng lần lượt từ LED giữa sang dần 2 bên(khoảng
thời gian trễ tùy chọn để phù hợp với hiển thị)
Bài làm
Hình vẽ

Code:
Nguyễn Hải CĐT.01
MSSV: DTK1151010234


ORG 00H
MAIN:
CALL LEDSANG
JMP MAIN
LEDSANG:
MOV P3,#0FFH
CALL DELAY
MOV P3,#0E7H
CALL DELAY
MOV P3,#0DBH
CALL DELAY
MOV P3,#0BDH
CALL DELAY
MOV P3,#7EH
CALL DELAY
RET
DELAY:
MOV R7,#255
KT1:MOV R6,#255
KT2:DJNZ R6,KT2
DJNZ R7,KT1
RET
END
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

Câu 6:Sử dụng Timer 0 hoặc Timer 1 viết chương trình tạo 2 xung trên 2 chân P1.0
và P1.1 với tần số lần lượt là 2KHz và 4KHz (Sử dụng osillocope để quan sát). Biết
tần số thạch anh là 12MHz

Bài làm
Hình vẽ:


Nguyễn Hải CĐT.01
MSSV: DTK1151010234



Code:
; CHU KY SONG VUONG LA: T = 1/f = 1/2 = 0,5ms = 500us
; khoang thoi gian cao( hoac thap) la: 0,5T =250us
; so nhip n = T/T(timer) = 250/1=250xung
;T(timer)=12/F(xtal)=12/12
; gia tri can nap 65536-250= 65282 = FF02H
;VAY TH0 = 0FFH, TL0 = 02H

; chu ky song vuong la: T=1/f = 1/4=0,25ms=250us
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

;khong thoi gian cao hoac thap la 0.5T= 125us
; so nhip n=125
;gia tri can nap la: 65536-125= 65411=0FF83H
; VAY TH0= 0FFH, TL0=83H
ORG 00H
MAIN:
CALL XUNG1
CALL XUNG2
JMP MAIN

XUNG1:
CPL P1.0
CALL TS2
CPL P1.0
CALL TS2
RET
XUNG2:
CPL P1.1
CALL TS3
CPL P1.1
CALL TS3
RET
TS2:
MOV TMOD,#01H ;CHON TIMER0 CHE DO 1
MOV TL0,#02H ; TL0 = 1AH
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

MOV TH0,#0FFH
SETB TR0 ; khoi dong bo dinh thoi timer0
JNB TF0,$ ;kiem tra bo dinh thoi
CLR TR0 ; tat timer0
CLR TF0 ; xoa co timer0
RET
TS3:
MOV TMOD,#01H
MOV TH0,#0FFH
MOV TL0,#83H
SETB TR0
JNB TF0,$

CLR TR0
CLR TF0
RET

END

Câu 7:Sử dụng Timer 0 hoặc/ và Timer 1 viết chương trình tạo 2 xung trên 2 chân
P1.0 và P1.1 với tần số lần lượt là 2KHz và 500Hz (Sử dụng osillocope để quan
sát). Biết tần số thạch anh là 12MHz
Bài làm
Hình vẽ
Nguyễn Hải CĐT.01
MSSV: DTK1151010234


Nguyễn Hải CĐT.01
MSSV: DTK1151010234



CODE:

ORG 00H
MAIN:
CALL XUNG1
CALL XUNG2
JMP MAIN
XUNG1:
CPL P1.0
Nguyễn Hải CĐT.01

MSSV: DTK1151010234

CALL TS2
CPL P1.0
CALL TS2
RET
XUNG2:
CPL P1.1
CALL TS3
CPL P1.1
CALL TS3
RET
; chu ky song vuong la:T= 1/f =1/2=0,5ms= 500us
;khoang thoi gian cao ( hoac thap) la: 0,5T= 250Us
; so nhip: n= 250/1= 250nhip
; gia trin can nap la: 65536-250=65286 = 0FF06H
; TH0= 0FFH, TL0=06H

TS2:
MOV TMOD,#01H ;SU DUNG TIMER0 CHE DO 1
MOV TH0,#0FFH
MOV TL0,#06H
SETB TR0 ;khoi dong bo dinh thoi timer0
JNB TF0,$ ; KIEM TRA TF0
CLR TR0 ; TAT TIMER0
CLR TF0 ; XOA CO TF0
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

RET

;chu ky song vuong la: T=1/f= 1/0,5 =2ms = 2000us
;khoang thoi gian cao ( hoac thap)la: 0,5T=1000us
; so nhip: n=1000us
;gia tri can nap la: 65536-1000=64536 = 0FC18H
;THO=0FCH, TL0=18H
TS3:MOV TMOD,#01H ;SU DUNG TIMER0 CHE DO 1
MOV TH0,#0FCH
MOV TL0,#18H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
END

Câu 8: Sử dụng Timer 0 hoặc/ và Timer 1 viết chương trình tạo 2 xung trên 2 chân
P1.0 và P1.1 với tần số lần lượt là 10KHz và 1KHz (Sử dụng osillocope để quan
sát). Biết tần số thạch anh là 12MH
Bài làm
Với tần số là 10khz
Ta có chu kỳ song vuông là: T=1/f= 1/10=0,1ms = 100us
Khoảng thời gian cao ( hoặc thấp) là: 0,5T=50us
Số nhịp đếm cần trong khoảng thời gian đó là: n=50/T(timer)
Mà F(timer)=F(xtal)/12 = 12MHZ/12=1MHZ => T(timer)=1/1MHZ =1us
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

 n=250 nhip vậy giá trị cần nạp vào thanh ghi TH0,TL0 là:
65536-50=65486xung = FFC3H
 TH0= 0FFH , TL0=C3H

Với tần số là 1khz thì tương tự làm như trên ta có
TH0=0FEH, TL0=0CH
Viết chương trình giống như bài 6,7
Câu 9:Thiết kế mạch điều khiển và viết chương trìnhhiển thị Led 7 thanh sáng các
số từ 00 đến 99. Biết tần số thạch anh là 12MHz
Bài làm
Hình vẽ:

CODE:
ORG 000H
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

MAIN:
MOV P2,#0FFH ;TAT LED 7 THANH
MOV R0,#100 ;SO LAN LAP
MOV R1,#0
HIENTHI:
; HIEN THI SO HANG CHUC
MOV A,R1
MOV B,#10
DIV AB
MOV DPTR,#MALED7
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
SETB P2.1
; HIEN THI SO HANG DON VI
MOV A,B
MOVC A,@A+DPTR

MOV P0,A
CLR P2.0
SETB P2.0

INC R1
CALL DELAY
DJNZ R0,HIENTHI
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

JMP MAIN
; TAO CTRINH TRE
DELAY: MOV R7,#255
KT1: MOV R6,#255
KT2: NOP
NOP
NOP
DJNZ R6,KT2
DJNZ R7,KT1
RET
; TAO MA LED 7 THANH
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
; | | | | | | | | | |
; 0 1 2 3 4 5 6 7 8 9
END
Câu 10:Thiết kế mạch điều khiển và viết chương trìnhhiển thị Led 7 thanh sáng
các số từ 99 về 00. Biết tần số thạch anh là 12MHz
Bài làm
Code:
ORG 000H

MAIN:
MOV P2,#0FFH ;TAT LED 7 THANH
MOV R0,#100 ;SO LAN LAP
MOV R1,#99
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

HIENTHI:
; HIEN THI SO HANG CHUC
MOV A,R1
MOV B,#10
DIV AB
MOV DPTR,#MALED7
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
SETB P2.1
; HIEN THI SO HANG DON VI
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
SETB P2.0

DEC R1
CALL DELAY
DJNZ R0,HIENTHI
JMP MAIN
; TAO CTRINH TRE
DELAY: MOV R7,#255

KT1: MOV R6,#255
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

KT2: NOP
NOP
NOP
DJNZ R6,KT2
DJNZ R7,KT1
RET
; TAO MA LED 7 THANH
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
Câu 11:Thiết kế mạch điều khiển và viết chương trìnhhiển thị Led 7 thanh sáng
các số từ lẻ từ 00 đến 99 (khoảng thời gian trễ tùy chọn để phù hợp với hiển thị).
Biết tần số thạch anh là 12MHz
Bài làm
Code:
ORG 000H
MAIN:
MOV P2,#0FFH ;TAT LED 7 THANH
MOV R0,#50 ;SO LAN LAP
MOV R1,#0
HIENTHI:
; HIEN THI SO HANG CHUC
INC R1
MOV A,R1
MOV B,#10
DIV AB
Nguyễn Hải CĐT.01

MSSV: DTK1151010234

MOV DPTR,#MALED7
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
SETB P2.1
; HIEN THI SO HANG DON VI
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
CLR P2.0
SETB P2.0

INC R1
CALL DELAY
DJNZ R0,HIENTHI
JMP MAIN
; TAO CTRINH TRE
DELAY: MOV R7,#255
KT1: MOV R6,#255
KT2: NOP
NOP
NOP
DJNZ R6,KT2
DJNZ R7,KT1
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

RET

; TAO MA LED 7 THANH
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
Câu 12: Thiết kế mạch điều khiển và viết chương trìnhhiển thị Led 7 thanh sáng
các số chẵn từ 00 đến 99 (khoảng thời gian trễ tùy chọn để phù hợp với hiển thị).
Biết tần số thạch anh là 12MHz
Bài làm
CODE:
ORG 000H
MAIN:
MOV P2,#0FFH ;TAT LED 7 THANH
MOV R0,#50 ;SO LAN LAP
MOV R1,#0
HIENTHI:
; HIEN THI SO HANG CHUC

MOV A,R1
MOV B,#10
DIV AB
MOV DPTR,#MALED7
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
SETB P2.1
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

; HIEN THI SO HANG DON VI
MOV A,B
MOVC A,@A+DPTR

MOV P0,A
CLR P2.0
SETB P2.0

INC R1
INC R1
CALL DELAY
DJNZ R0,HIENTHI
JMP MAIN
; TAO CTRINH TRE
DELAY: MOV R7,#255
KT1: MOV R6,#255
KT2: NOP
NOP
NOP
DJNZ R6,KT2
DJNZ R7,KT1
RET
; TAO MA LED 7 THANH
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

Câu 13:Thiết kế mạch điều khiển và viết chương trìnhhiển thị Led 7 thanh sáng
các số lẻ từ 99 về00 (khoảng thời gian trễ tùy chọn để phù hợp với hiển thị). Biết
tần số thạch anh là 12MHz
Bài làm
Code:
ORG 000H

MAIN:
MOV P2,#0FFH ;TAT LED 7 THANH
MOV R0,#50 ;SO LAN LAP
MOV R1,#100
HIENTHI:
; HIEN THI SO HANG CHUC
DEC R1
MOV A,R1
MOV B,#10
DIV AB
MOV DPTR,#MALED7
MOVC A,@A+DPTR
MOV P0,A
CLR P2.1
SETB P2.1
; HIEN THI SO HANG DON VI
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
Nguyễn Hải CĐT.01
MSSV: DTK1151010234

CLR P2.0
SETB P2.0

DEC R1
CALL DELAY
DJNZ R0,HIENTHI
JMP MAIN
; TAO CTRINH TRE

DELAY: MOV R7,#255
KT1: MOV R6,#255
KT2: NOP
NOP
NOP
DJNZ R6,KT2
DJNZ R7,KT1
RET
; TAO MA LED 7 THANH
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
Câu 14:14. Thiết kế mạch điều khiển và viết chương trình hiển thị Led 7 thanh
sáng các số chẵn từ 99 về 00. (khoảng thời gian trễ tùy chọn để phù hợp với hiển
thị). Biết tần số thạch anh là 12MHz
Bài làm
Code:
ORG 000H

×