Đề: Dùng chế độ INTERRUPT 0, sao cho mỗi lần tác động ngắt ngoài thì Port 1 dịch trái rồi sau đó dịch phải, và cứ tiếp tục như vây. (nhấn Switch ngắt ngoài lần 1 thì P1.0 sáng, lần nữa thì P1.1 sáng,......,sau khi P1.7 sáng, nếu nhấn lần nữa thì P1.6 sáng, lần nữa thì P1.5 sáng,.....)
Em chỉ làm được có 1 chiều thôi, đảo ngược lại thì em không biết, các anh chỉ giúp em với.
////////////
#include <sfr51.inc>
ORG 0000H ; noi khoi dau chuong trinh
LJMP MAIN ; nhay toi nhan MAIN
ORG 0003H ; dia chi vecto ngat ngoai 0
LJMP NGAT ; nhay toi nhan NGAT
ORG 0030H ; dia chi chuong trinh MAIN
MAIN:
MOV A, #7FH ; nap gia tri 7FH vao thanh ghi A
SETB EX0 ; cho phep ngat ngoai 0
SETB EA ; cho phep ngat toan cuc
SETB IT0 ; kich boi canh
SJMP $ ; khong lam gi, cho ngat
NGAT: ; ham ngat
RL A ; dich trái thanh ghi A
MOV P1, A ; nap gia tri thanh ghi A vao P1
RETI ; tro ve chuong trinh chinh
END
//////////////
Thanks.
Em chỉ làm được có 1 chiều thôi, đảo ngược lại thì em không biết, các anh chỉ giúp em với.
////////////
#include <sfr51.inc>
ORG 0000H ; noi khoi dau chuong trinh
LJMP MAIN ; nhay toi nhan MAIN
ORG 0003H ; dia chi vecto ngat ngoai 0
LJMP NGAT ; nhay toi nhan NGAT
ORG 0030H ; dia chi chuong trinh MAIN
MAIN:
MOV A, #7FH ; nap gia tri 7FH vao thanh ghi A
SETB EX0 ; cho phep ngat ngoai 0
SETB EA ; cho phep ngat toan cuc
SETB IT0 ; kich boi canh
SJMP $ ; khong lam gi, cho ngat
NGAT: ; ham ngat
RL A ; dich trái thanh ghi A
MOV P1, A ; nap gia tri thanh ghi A vao P1
RETI ; tro ve chuong trinh chinh
END
//////////////
Thanks.