Tải bản đầy đủ (.docx) (44 trang)

Giải NGAN HANG CAU HOI vi xử lý cuối kì

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 (974.62 KB, 44 trang )

TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T

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 p3.2 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ừ 00->99 lần
Câu 2 như câu 1 chỉ thay chân công tác
ORG 0H
MOV R0,#0
CALL HIENTHI
MAIN:
JNB P3.2,BUTTON
JMP MAIN
RET
BUTTON:
INC R0
CJNE R0,#100,HIENTHI
MOV R0,#0
CALL HIENTHI
JMP MAIN
RET


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T


HIENTHI:
MOV DPTR,#MALED7
MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
JMP MAIN
RET
DELAY:
MOV R7,#10
MOV TMOD,#01H
LAP:
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R7,LAP


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
RET
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END
Hình vẽ

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
Hình vẽ:


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T

Code:
ORG 00H
MAIN:
CALL SANGTRAI
CALL SANGPHAI
JMP MAIN
RET
SANGTRAI:
MOV A,#00000001B
CLR C
MOV R0,#8
LED:


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
SETB C

MOV P2,A
CALL DELAY
RLC A
DJNZ R0,LED
RET
SANGPHAI:
MOV A,#10000000B
CLR C
MOV R1,#8
LED1:
SETB C
MOV P2,A
CALL DELAY
RRC A
DJNZ R1,LED1
RET
DELAY:
MOV R7,#10
MOV TMOD,#01H
LAP:
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
JNB TF0,$
CLR TR0
CLR TF0

DJNZ R7,LAP
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 P2 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:
CÁCH 1:
ORG 00H


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
MAIN:
CALL LEDSANG
JMP MAIN
LEDSANG:
MOV P2,#00011000B
CALL DELAY
MOV P2,#00111100B
CALL DELAY
MOV P2,#01111110B
CALL DELAY
MOV P2,#11111111B
CALL DELAY
MOV P2,#00000000B
CALL DELAY

RET
DELAY:
MOV R7,#10
MOV TMOD,#01H
LAP:
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TR0


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
CLR TF0
DJNZ R7,LAP
RET
END

CÁCH 2:
ORG 00H
MAIN:
CALL LEDSANG
JMP MAIN
LEDSANG:
MOV P2,#11111111B
CALL DELAY
MOV P2,#11100111B
CALL DELAY
MOV P2,#11000011B

CALL DELAY
MOV P2,#10000001B
CALL DELAY
MOV P2,#00000000B
CALL DELAY
RET
DELAY:
MOV R7,#10


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
MOV TMOD,#01H
LAP:
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R7,LAP
RET
END
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ẽ:



TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
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

(đổi từ mã dec sang hexa = FF02H)

;VAY gán 2 giá trị đầu vào TH0 = 0FFH, 2 giá trị sau vào TL0 = 02H

; chu ky song vuong la: T=1/f = 1/4=0,25ms=250us..
;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
CODE:
Cách 1:
ORG 00H
CLR P1.0
CLR P1.1
MAIN:
SETB P1.0
SETB P1.1
CALL DELAY4KHZ
SETB P1.0
CLR P1.1



TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
CALL DELAY4KHZ
CLR P1.0
SETB P1.1
CALL DELAY4KHZ
CLR P1.0
CLR P1.1
CALL DELAY4KHZ
JMP MAIN
RET
DELAY4KHZ: // DELAY 4KHZ
MOV TMOD,#01H
MOV TH0,#0FFH
MOV TL0,#83H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
END
Cách 2:
ORG 00H
CLR P1.0
CLR P1.1
MAIN:


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01

DESIGN L&T
CPL P1.0
CALL DELAY2KHZ
JMP MAIN
RET
DELAY2KHZ:
MOV R0,#2
DELAY4KHZ:
MOV TMOD,#01H
MOV TH0,#0FFH
MOV TL0,#83H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
CPL P1.1
DJNZ R0,DELAY4KHZ
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
XUNG 2KHz:
; chu ky song vuong la:T= 1/f =1/2=0,5ms= 500us
;khoang thoi gian cao ( hoac thap) la: 0,5T= 250Us


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T

; so nhip: n= 250/1= 250nhip
; gia trin can nap la: 65536-250=65286 = 0FF06H
; TH0= 0FFH, TL0=06H

XUNG 500Hz:
;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

Hình vẽ


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
CODE:
ORG 00H
CLR P1.0
CLR P1.1
MAIN:
CPL P1.0
CALL DELAY500HZ
JMP MAIN
RET
DELAY500HZ:
MOV R0,#4 //chu kì xung 500hz gấp 4 lần xung 2khz
DELAY2KHZ:
MOV TMOD,#01H
MOV TH0,#0FFH

MOV TL0,#06H
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
CPL P1.1
DJNZ R0,DELAY2KHZ
RET
END


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
//---------------XUNG 2KHz:
---------------------------; 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

//--------------XUNG 500Hz:---------------------------;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
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



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


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
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ẽ:

ORG 00H
MOV R0,#0
CALL HIENTHI
MAIN:
INC R0
CJNE R0,#100,HIENTHI
MOV R0,#0



TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
CALL HIENTHI
JMP MAIN
RET
HIENTHI:
MOV DPTR,#MALED7
MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
JMP MAIN
RET
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DELAY:
MOV TMOD,#01H
MOV R1,#10
LAP:
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01

DESIGN L&T
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R1,LAP
RET
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 00H
MOV R0,#99
CALL HIENTHI
MAIN:
DEC R0
CJNE R0,#-1,HIENTHI
MOV R0,#99
CALL HIENTHI
JMP MAIN
RET
HIENTHI:
MOV DPTR,#MALED7
MOV A,R0
MOV B,#10


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
DIV AB

MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
JMP MAIN
RET
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DELAY:
MOV TMOD,#01H
MOV R1,#10
LAP:
MOV TH0,#3CCH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R1,LAP
RET
END


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
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 00H
MOV R0,#1
CALL HIENTHI
MAIN:
INC R0
INC R0
CJNE R0,#99,HIENTHI
MOV R0,#1
CALL HIENTHI
JMP MAIN
HIENTHI:
MOV DPTR,#MALED7
MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
CALL DELAY
JMP MAIN
RET
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DELAY:

MOV TMOD,#01H
MOV R1,#10
LAP:
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R1,LAP
RET
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 00H
MOV R0,#0
CALL HIENTHI


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
MAIN:
INC R0
INC R0
CJNE R0,#100,HIENTHI
MOV R0,#0
CALL HIENTHI

JMP MAIN
HIENTHI:
MOV DPTR,#MALED7
MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
JMP MAIN
RET
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DELAY:
MOV TMOD,#01H
MOV R1,#10


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
LAP:
MOV TH0,#3Ch
MOV TL0,#0B0h
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R1,LAP

RET
END
Câu 13: 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ố 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 00H
MOV R0,#99
CALL HIENTHI
MAIN:
DEC R0
DEC R0
CJNE R0,#-1,HIENTHI
MOV R0,#99
CALL HIENTHI
JMP MAIN


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
HIENTHI:
MOV DPTR,#MALED7
MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOVC A,@A+DPTR

MOV P2,A
CALL DELAY
JMP MAIN
RET
MALED7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DELAY:
MOV TMOD,#01H
MOV R1,#10
LAP:
MOV TH0,#3Ch
MOV TL0,#0B0h
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0


TRẦN VĂN THI & NGÔ TUẤN LÂM K48 KDT.01
DESIGN L&T
DJNZ R1,LAP
RET
END
Câu 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 00H
MOV R0,#98
CALL HIENTHI

MAIN:
DECR0
DEC R0
CJNE R0,#0,HIENTHI
MOV R0,#98
CALL HIENTHI
JMP MAIN
HIENTHI:
MOV DPTR,#MALED7
MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A


×