LẬP TRÌNH CHO VI XỬ LÝ

Một phần của tài liệu GIỚI THIỆU LED 7 DOẠN (Trang 87 - 99)

* 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 ủồ gii thut

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ị

Một phần của tài liệu GIỚI THIỆU LED 7 DOẠN (Trang 87 - 99)

Tải bản đầy đủ (PDF)

(109 trang)