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