Professional Documents
Culture Documents
VI XỬ LÝ
GVHD: Nguyễn Trung Hiếu
Thành viên:
Phạm Hoàng Đông 1811942
Lâm Vinh Phú 1813541
Nguyễn Mạnh Toàn 1814368
TP.HCM – 10/2021
1a. Viết một chương trình xuất chuỗi xung vuông đối xứng tần số 5KHz ra P1.0 sử dụng Timer1.
ORG 0000H
ORG 0000H
ORG 0000H
ORG 0000H
- Khi nút nhấn tại chân P1.2 được nhấn thì xuất xung có tần số f = 100Hz với D=50% tại chân P1.0.
- Khi nút nhấn tại chân P1.2 nhả ra thì P1.0 ở mức cao.
Cho phép viết chương trình cho bài toán có độ trễ vừa phải.
ORG 0000H
- Nút nhấn tại chân P1.5 được nhấn thì D tăng 5%, tối đa Dmax.
- Nút nhấn tại chân P1.6 được nhấn thì D giảm 5%, tối đa Dmin.
Cho phép viết chương trình cho bài toán có độ trễ vừa phải.
f = 1000 Hz T = 1 000 us 1 000 MCs T high = 900 MCs T low = 100 MCs
Giải thuật:
Chương trình:
ORG 0
MOV TMOD,#01H
MOV R2, #2
MOV 31H,R3
CLR P1.0
DJNZ 30H,LAP1
SETB P1.0
DJNZ 31H,LAP2
JMP AGAIN
MOV TH0,#HIGH(-50)
MOV TL0,#LOW(-50)
SETB TR0
CLR TF0
CLR TR0
RET
INC R2
DEC R3
RET
LOC2: CJNE R2,#2,AGAIN
INC R3
DEC R2
RET
Thời gian có xung = thời gian mức thấp = 50 000 us = 50 000 MCs
Khi có xung:
ORG 000H
MOV TMOD, #01H
END
6. Trong 1 loại kỹ thuật điều chế tín hiệu:
Viết chương trình xuất 8 bit nằm trong thanh ghi R7 thành chuỗi xung ra chân P1.0 theo nguyên tắc đã
cho. (Lưu ý: Bit MSB truyền đi trước)
Ví dụ: Trong thanh ghi R7 chứa 1001 0101 thì chuỗi xung phát có dạng như hình
Giải thuật:
ACC.7=1
ACALL BIT0
ACALL BIT1
R0=0
UOT
DJNZ R0
R≠ 0
RL A
Chương trình:
MOV R0,#8
BDAU:
JB ACC.7,CTBIT1
ACALL BIT0
SJMP SS
CTBIT1:
ACALL BIT1
SS: DJNZ R0,NHAY
SJMP OUT
NHAY: RL A
SJMP BDAU
SJMP $
BIT1:
SETB P1.0
ACALL DELAY250
CLR B P1.0
ACALL DELAY250
ACALL DELAY250
ACALL DELAY250
RET
DELAY250:
MOV TMOD, #01H
MOV TH0,#HIGH(-250)
MOV TL0,#LOW(-250)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
BIT0:
SETB P1.0
ACALL DELAY200
ACALL DELAY200
ACALL DELAY200
CLR B P1.0
ACALL DELAY200
ACALL DELAY200
RET
DELAY200:
MOV TMOD, #01H
MOV TH0,#HIGH(-200)
MOV TL0,#LOW(-200)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
7. Một hệ thống dùng vi xử lý 8051 được dùng để đếm số sản phẩm trên 1 băng tải. Cho biết số sản
phẩm tối đa mà hệ thống có thể đếm được là 250 sản phẩm. Số sản phẩm đếm được sẽ được hiển thị
dùng LED 7 đoạn. Khi số sản phẩm đạt tối đa thì 1 LED đơn gắn với P0.0 sẽ phát sáng.
a. Thiết kế mạch dùng để hiển thị số sản phẩm đếm được. Yêu cầu có thêm nút reset để khi nhấn thì sẽ
reset số sản phẩm đếm được về 0.
7b. Viết chương trình dùng để thực thi yêu cầu bài toán.
Giải thuật:
Chương trình:
ORG 0
MOV TL0,#00H
MOV TH0,#00H
SETB TR0
JNB P0.0,$
JB P0.0,$
CLR TR0
MOV 25H,TH0
MOV A,25H
MOV B, #10
DIV AB
MOV R0,A
MOV A,B
ANL A,#0FH
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV A,R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P1,A
SJMP L1
TABLE: DB 3Fh,06h,5Bh,4Fh,66h
DB 6Dh,7Dh,07h,7Fh,6Fh
DONE: NOP
END
Mô phỏng trên protues
10. Vi xử lý 8051 được sử dụng để đo tần số của xung ngõ vào. Biết xung đó có tần số từ 1KHz tới 99KHz.
Kết quả hiển thị trên LED 7 đoạn.
Giải thuật:
ORG 0000H
DONE: NOP
END