Hoạt động Nghiên cứu
HƯỚNG DẪN CHƯƠNG TRÌNH NÚT ẤN VÀ NGẮT NGOÀI
Chương trình ví dụ về lập trình Assembly cho nút ấn và ngắt ngoài, sử dụng KIT thực tế tại phòng thí nghiệm. Với chương trình này giúp các bạn có thể hiểu được khi sử dụng ngắt thì vi điều khiển sẽ hoạt động như thế nào và sử dụng chức năng nút ấn ( input) thì vi điều khiển sẽ hoạt động như thế nào.
Như chương trình náy, sử dụng hai nút ấn tại chân P3.0 và P3.1 để bật 8 led chạy theo 2 kiểu khác nhau và khi ấn nút P3.0 ta phải chờ chương trình tại chân P3.0 chạy xong nút ấn P3.1 mới có tác dụng. Nhưng hai nút ấn làm chức năng ngắt ngoài p3.2 và P3.3 thì có thể tác động vào bất cứ thời điểm nào bạn muốn.
ORG 00H
JMP MAIN
ORG 0003H
MOV P2,#0FFH
RETI
ORG 0013H
MOV P2,#00H
RETI
DELAY:
MOV R0,#5
LAP1:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,LAP1
RET
SANGDAN:
MOV DPTR,#100H
MOV R1,#16
LAP:
MOV A,#0
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
INC DPTR
DJNZ R1,LAP
RET
NHIPHAN:
MOV R2,#255
LAP2:
MOV P2,R2
CALL DELAY
DEC R2
CJNE R2,#0,LAP2
RET
MAIN:
MOV TMOD,#01H
MOV IE,#10000101B
MOV P3,#0FFH; THIET LAP P3 LA DAU VAO
JNB P3.0,CV_SANG
JNB P3.1,CV_NHI
SJMP MAIN
CV_SANG:
CALL SANGDAN
SJMP MAIN
CV_NHI:
CALL NHIPHAN
SJMP MAIN
ORG 100H
TABLE: DB 01111111B,00111111B,00011111B,00001111B,00000111B,00000011B,00000001B,0H
TABLE1: DB 00000001B,03H,07H,0FH,1FH,3FH,7FH,0FFH
END