* Chương trình lập trình cho vi xử lý trên Kit 1
#include <sfr51.inc>
ORG 0000
RA BIT P1.1 ; Nut bao giao dich xong LED0 BIT P1.5
LED1 BIT P1.6
KICH BIT P3.5 ; Cho phep truyen hoac nhan MOV 13H,#0
MOV 15H,#0 MOV R6,#0 MOV R7,#0 MOV A,#0 LJMP MAIN ORG 0030H MAIN:
MOV TMOD,#20H ; Chon Timer 1 mode 2 MOV TH1,#-3 ; Toc do baud 9600
SETB TR1 ; Cho timer 1 chay CLR KICH ; Kich chan dieu khien MOV R2,#0
RE:
LCALL NHAN ; Goi chuong trinh nhan
LCALL HIENTHI ; Goi chuong trinh hien thi gia tri hien tai trong thanh ghi R6 va R7
SJMP RE ; Quay lai chuong trinh Re RET
NHAN:
MOV SCON,#50H ; Khai bao thanh ghi Scon che do nhan JB RA,DOINHAN ; Kiem tra nut nhan
LCALL HIENTHI
LCALL XULY ; Goi chuong trinh xu ly DOINHAN:
LCALL HIENTHI ; Goi chuong trinh hien thi CLR KICH
JNB RI,NHAN ; Kiem tra thanh ghi RI neu chua nhan xong thi quay ve chuong trinh nhan
CLR RI ; Neu da nhan xong roi thi clear chan RI MOV A,SBUF ; Ghi du lieu vao thanh ghi A
CJNE A,#225,KOPHAI ; Kiem tra du lieu nhan duoc co phai la du lieu cua kit 2 truyen len may tinh hay ko
LJMP NHAN ; Nhay lai chuong trinh nhan KOPHAI:
MOV R0,A ; Ghi du lieu vao thanh ghi R0 MOV R2,A ; Ghi du lieu vao thanh ghi R2
LCALL XACDINH ; Goi chuong trinh kiem tra du lieu xem la cua Kit nao LCALL HIENTHI ; Hien thi gia tri trong thanh ghi R6 va R7
RET XULY:
MOV SCON,#40H ; Khai bao thanh ghi Scon che do truyen len SETB KICH ; Dua chan kich len 1
LCALL DELAY ; Goi chuong trinh delay
JNB RA,$ ; Neu nut nhan RA van con dang bi nhan thi doi
MOV A,#222 ; Truyen gia tri 222 len may tinh de bao la kit 1 da giao dich xong
MOV SBUF,A
JNB TI,$ ; Doi du lieu truyen len
CLR KICH ; clear chan kich de san sang cho che do nhan CLR TI ; xoa co bao truyen
RET DELAY:
MOV R1,#255 DISPLAY:
LCALL HIENTHI DJNZ R1,DISPLAY RET
MALED:
DB 0C0H DB 0F9H DB 0A4H DB 0B0H DB 99H DB 92H DB 82H DB 0F8H DB 80H DB 90H RET DELAY500US:
MOV R3,#247 NOP
DJNZ R3,$
RET XACDINH:
MOV B,#10 ; Dua gia tri 10 vao thanh ghi B DIV AB ; Chia a cho 10
MOV 12H,A ; Dua so nguyen vao o 12h MOV 13H,B ; Dua so du vao o 13h
MOV B,#10 ; Dua gia tri 10 vao thanh ghi B
DIV AB ; Chia gia tri so nguyen cua lan chia dau cho 10 MOV 14H,A ; Dua so nguyen vao o 14h
MOV 15H,B ; Dua so du vao thanh ghi 15h
LCALL KIT2 ; Neu trong thanh ghi A la 0 thi goi chuong trinh Kit2 RET
KIT2:
MOV R6,13H ; Nho gia tri hang don vi vao thanh ghi R6 MOV R7,15H ; Nho gia tri hang chuc vao thanh ghi R7 MOV DPTR,#MALED ; Dua ma led vao thanh ghi 16 bit MOV A,13H ; Dua gia tri trong o 13h vao thanh ghi A
MOVC A,@A+DPTR ; Tra bang Ma Led lay gia tri tuong ung voi gia tri trong thanh ghi A
MOV P0,A ; Dua du lieu ra Port P0 CLR LED0 ; Cho Led0 sang LCALL DELAY500MS ; Delay 500MS SETB LED0 ; Tat Led 0
MOV DPTR,#MALED MOV A,15H
MOVC A,@A+DPTR MOV P0,A
CLR LED1
LCALL DELAY500US SETB LED1
RET
HIENTHI:
MOV DPTR,#MALED ; Chuong trinh nay hien thi gia tri dung trong VXL . Vidu neu dang hien thi gia tri 01 khi may tinh truyen xuong 02 thi neu Kit 1 chua giao dich xong thi no van hien thi gia tri 01 . Gia tri do lay trong 2 thanh ghi R6 va R7 MOV A,R6
MOVC A,@A+DPTR MOV P0,A
CLR LED0
LCALL DELAY500US SETB LED0
MOV DPTR,#MALED MOV A,R7
MOVC A,@A+DPTR MOV P0,A
CLR LED1
LCALL DELAY500US SETB LED1
RET END
* Chương trình lập trình cho vi xử lý trên Kit 2
#include <sfr51.inc>
ORG 0000H RA BIT P1.1 LED0 BIT P1.5 LED1 BIT P1.6 KICH BIT P3.5 MOV 13H,#0 MOV 15H,#0 MOV R6,#0 MOV R7,#0 MOV A,#0 LJMP MAIN ORG 0030H MAIN:
MOV TMOD,#20H MOV TH1,#-3 SETB TR1 CLR KICH MOV R2,#0 RE:
LCALL NHAN LCALL HIENTHI SJMP RE
RET NHAN:
MOV SCON,#50H JB RA,DOINHAN LCALL HIENTHI LCALL XULY DOINHAN:
LCALL HIENTHI CLR KICH JNB RI,NHAN CLR RI
MOV A,SBUF
CJNE A,#222,KOPHAI LJMP NHAN
KOPHAI:
MOV R0,A MOV R2,A
LCALL XACDINH LCALL HIENTHI RET
XULY:
MOV SCON,#40H
LCALL DELAY JNB RA,$
MOV A,#225 MOV SBUF,A JNB TI,$
CLR KICH CLR TI RET DELAY:
MOV R1,#255 DISPLAY:
LCALL HIENTHI DJNZ R1,DISPLAY RET
MALED:
DB 0C0H DB 0F9H DB 0A4H DB 0B0H DB 99H DB 92H DB 82H DB 0F8H DB 80H DB 90H RET DELAY500US:
MOV R3,#247 NOP
DJNZ R3,$
RET XACDINH:
MOV B,#10 DIV AB MOV 12H,A MOV 13H,B MOV B,#10 DIV AB MOV 14H,A MOV 15H,B CJNE A,#0,KIT2 LCALL HIENTHI RET
NHIEU:
LJMP MAIN RET
KIT2:
CJNE A,#1,NHIEU MOV R6,13H
MOV R7,15H
MOV DPTR,#MALED MOV A,13H
MOVC A,@A+DPTR MOV P0,A
CLR LED0
LCALL DELAY500US SETB LED0
MOV DPTR,#MALED MOV A,15H
MOVC A,@A+DPTR MOV P0,A
CLR LED1
LCALL DELAY500US SETB LED1
RET HIENTHI:
MOV DPTR,#MALED MOV A,R6
MOVC A,@A+DPTR MOV P0,A
CLR LED0
LCALL DELAY500US SETB LED0
MOV DPTR,#MALED MOV A,R7
MOVC A,@A+DPTR MOV P0,A
CLR LED1
LCALL DELAY500US SETB LED1
RET END
• Lưu ủồ giải thuật
Chương trình chính
Ch ươ ng trình con nh ậ n
Chương trỡnh con ủợi nhận
Chương trỡnh con xỏc ủịnh
Chương trình con kit 2
Chương trình con hiển thị