- Các vectơ ngắt.
210 KIỂM TRA NGẮT PHÁT
KIỂM TRA NGẮT PHÁT (TI) = 1 Đ S BEGIN SP_ISR: RECEI_DATA:
XĨA CỜ BÁO THU
RI = 0
CẤT DỮ LIỆU NHẬN ĐƯỢC TỪ PORT NỐI TIẾP PORT NỐI TIẾP
(A) = (SBUF)
XUẤT GIÁ TRỊ RA LED
(P1) = (A)EXIT_SP_ISR: EXIT_SP_ISR: END TRANS_DATA: XĨA CỜ BÁO PHÁT TI = 0 ĐỌC TRẠNG THÁI CÁC SW (A) = (P0)
ĐẢO TRẠNG THÁI LOGIC CỦA CÁC SW CÁC SW
TẢI DỮ LIỆU CẦN PHÁT VÀO PORT NỐI TIẾP PORT NỐI TIẾP
(SBUF) = (A)
MASTER & SLAVE
BEGIN
THIẾT LẬP VECTƠ
Vectơ RESET: 0000H
Vectơ ngắt port nối tiếp: 0023H Vectơ chương trình: 0030H SP1
MAIN:
ĐIỀU KHIỂN TẮT LED
(P1) = 00H
CẤU HÌNH PORT NỐI TIẾP
T1 AUTO RELOADBAUD RATE = 9600 BPS BAUD RATE = 9600 BPS DATA = 8 BIT
STOP = 1 BITPARITY = NONE PARITY = NONE
KÍCH HOẠT TIMER 1 TẠO BAUD RATE
(TR1) = 1
CHO PHÉP NGẮT PORT NỐI TIẾP
(IE) = 90H
Hình 0.22: Lưu đồ giải thuật của chương trình.
+ Chương trình điều khiển.
Sử dụng phần mềm Topview Simulation để thực hiện việc viết chương trình và biên dịch, kiểm tra lỗi cú pháp của chương trình.
❖ Bước 2: Khởi động phần mềm Topview Simulation.
❖ Bước 3: Mở chức năng soạn thảo một chương trình mới và đặt tên tập tin
chương trình là: SP_1_M.ASM và SP_1_S.ASM
❖ Bước 4: Viết chương trình điều khiển dưới đây vào máy tính.
Chương trình cho vi điều khiển Master:
;***************************************************
;CHUONG TRINH DIEU KHIEN GIAO TIEP PORT NOI TIEP TRUC TIEP GIUA HAI VI DIEU KHIEN.
;CHUONG TRINH CHO VI DIEU KHIEN MASTER.
;DIEU KHIEN CAC LED SANG/TAT THEO SU DIEU KHIEN CUA CAC SW TUONG UNG.
;MO PHONG PROTUES: SERIALPORT_1.
;*************************************************** ;*************************************************** ;KET NOI: 8 SWITCH -> PORT 0 (ACT = 0)
; 8 LED -> PORT 1 (CO SU DUNG DEM DAO - ACT = 1) ;***************************************************
$MOD51
ORG 00H ;DIEM NHAP RESET.
SJMP MAIN
ORG 23H ;DIEM NHAP NGAT PORT NOI TIEP.
211
ORG 30H ;DIEM NHAP CHUONG TRINH CHINH.
MAIN:
MOV P1,#00H ;LED TAT
;**************************************************** ;KHOI DONG PORT NOI TIEP.
MOV SCON,#52H ;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1.
MOV TMOD,#20H ;TIMER 1: MODE 2 - TAO TOC DO BAUD CHO
SERIAL PORT.
MOV TH1,#(-3) ;BAUD RATE = 9600.
SETB TR1 ;TIMER HOAT DONG - PORT NOI TIEP HOAT DONG. ;****************************************************
;THIET LAP CAC NGAT CHO PORT NOI TIEP.
MOV IE,#90H ;CHO PHEP NGAT PORT NOI TIEP.
;**************************************************** MP1:
;DOAN CHUONG TRINH SE THUC HIEN KHI KHONG CO TIN HIEU NGAT
SJMP MP1 ;QUAY LAI
;**************************************************** SP_ISR: ;CTC PHUC VU NGAT PORT NOI TIEP.
;P0 = DU LIEU PHAT. ;P1 = DU LIEU THU. PUSH ACC
JB TI,TRANS_DATA ;KIEM TRA TIN HIEU NGAT LA NGAT PHAT
HAY NGAT THU.
RECEI_DATA: ;XU LY THU DU LIEU TU PORT NOI TIEP VAO THANH GHI A.
CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP. MOV A,SBUF ;THU DU LIEU.
MOV P1,A ;XUAT DU LIEU THU DUOC RA PORT LED.
SJMP EXIT_SP_ISR ;THOAT KHOI ISR.
TRANS_DATA: ;XU LY PHAT DU LIEU TU THANH GHI A RA PORT NOI TIEP.
CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP. MOV A,P0 ;DOC DU LIEU LAY TU PORT SW.
CPL A ;DAO TRANG THAI (SW ACT = 0, LED ACT = 1).