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

Tài liệu I/O và ngắt của 8051 doc

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 (396.55 KB, 27 trang )

I/O và ngắtcủa 8051I/O và ngắt của 8051
Bài 8
Bộ môn TĐ
Khoa KTĐK
Nội dung nghiên cứu
ế• Giao tiếp I/O của 8051
– Quét LED
–Hiển thị LCD
– Bàn phím
• Các ngắt của 8051
– IVT, ISRIVT, ISR
– Cho phép và mức ưu tiên của ngắt
– Các ngắt bên ngoàiCác ngắt bên ngoài
Quét LED 7 đoạnQuét LED 7 đoạn
• Các LED hiểnthị là
– Nguồn nuôi (10ma trên mỗi
LED)
– Các chân (8 chân cho 1
LED 7 đoạn)LED 7 đoạn)
•HiệnLEDđược quét
–Chỉ 1LEDđược sáng tại
m
ộtthời điểmộ
–Cácđầu vào a-h đượcnối
tương ứng với nhau
•Tổng số chân cầnthiết
tê ổ làtrêncổng là:
–8+số LED
–VớiVD:8+4
Quét LED 7 đoạnQuét LED 7 đoạn
•Thuậttoánđể hiệnmộtậ ệ ộ


giá trị gồm4số
•Tầnsố quét đủ lớn để
khô ó ả iákhông có cảmgiác
dung hình
– Ít nhất là 30HzÍt nhất là 30Hz
–Thờigianmộtsố bật
•1/30s
ầ ố ả– Tầnsố cao hơnsẽ giảm
dung hình tốthơn
(60Hz)
Quét LED 7 đoạnQuét LED 7 đoạn
Quét LED 7 đoạnQuét LED 7 đoạn

Giao tiếpvới bàn phímGiao tiếp với bàn phím
• 16 phím sắp xếp thành 4x4
•Thuật toán
– Điều khiển 0 trên 1 hàng
– Đọc tất cả các cột
ế ấ ấ– Nếu một phím bất kỳ được ấn
cột đó sẽ bằng 0, không ấn cột
đó sẽ bằng 1
– Lặplại cho các hàng tiếp theoLặp lại cho các hàng tiếp theo
•Ví dụ
:
– Công tắc 4 được ấn
• R1← 0 C1:C4 = 1111• R1← 0, C1:C4 = 1111
•R2← 0, C1:C4 = 0111
– Công tắc 2 được ấn
• R1← 0, C1:C4 = 1101R1 0, C1:C4 1101
Giao tiếpvới bàn phímGiao tiếp với bàn phím

Giao tiếp với bàn phím
; Ba`n phi'm hex no^'i va`o P1
; Chuo+ng tri`nh hie^?n thi. phi'm nha^'n ra LED 7 ddoa.n
; P1.0-P1.3: columns
; P1.4-P1.7: rows
; DDi.a chi? LED: A000h
LOOP: LCALL READKB ; tri. tra? ve^`: A = 0-15
MOV DPTR,#T7SEG
MOVC A,@A+DPTR
MOV DPTR,#0A000H ; A000h: ddi.a chi? LED 1
MOVX @DPTR,A
SJMP LOOP
READKB: PUSH 7
SCAN: MOV A,#11111110B ; col_0 -> GND
MOV R7,#0 ; R7 = i
CONT: MOV P1,A ; no^'i col i -> GND
MOV A,P1 ; ddo.c row
JNB ACC.4,ROW_0 ; xe't xem row na`o?
JNB ACC.5,ROW_1
JNB ACC.6,ROW_2
JNB ACC.7,ROW_3
RL A ; chua^?n bi. no^'i GND
INC R7 ; co^.t tie^'p theo
CJNE R7,#4,CONT ; la^`n luo+.t no^'i GND 4 co^.t
SJMP SCAN ; quay la.i que't tu+` co^.t 0
ROW_0: MOV A,R7 ; Row=0, Col=R7
ADD A,#0 ; A = 0 + R7
SJMP EXIT
ROW_1: MOV A,R7 ; Row=1, Col=R7
ADD A,#4 ; A = 4 + R7

SJMP EXIT
ROW_2: MOV A,R7 ; Row=2, Col=R7
ADD A,#8 ; A = 8 + R7
SJMP EXIT
ROW_3: MOV A,R7 ; Row=3, Col=R7
ADD A,#12 ; A = 12 + R7
EXIT: POP 7
RET
T7SEG: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H,
DB 08H,03H,46H,21H,04H,0EH
END

×