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