Chương trình đi ều khiển

Một phần của tài liệu ĐỒ ÁN CƠ ĐIỆN TỬ HT ĐẾM SẢN PHẨM (Trang 24 - 36)

Chương 5.THIẾT KẾ CHƯƠNG TRÌNH ĐIỀU KHIỂN

5.2 Chương trình đi ều khiển

;********************ĐỊNH NGHĨA CÁC CỔNG VÀO RA,BYTE DỮ LIỆU DÙNG***

RS EQU P2.5 RW EQU P2.6 EN EQU P2.7 STAR T EQU P2.0 B_NGAN EQU P2.1 B_TRAM EQU P2.2 B_CHUC EQU P2.3 B_DONVI EQU P2.4 DONG_CO EQU P3.5 BYTECAODAT DATA 31H BYTELOWDAT DATA 32H DONVI DATA 33H CHUC DATA 34H TRAM DATA 35H NGAN DATA 36H

;*************************************************

ORG 0000H JMP MAIN ORG 0013H LJMP NGAT1 ORG 0030H MAIN:

MOV SP,#50H

SVTH: Trang 25

MOV TMOD,#11H; Timer0,1 chế độ 1 CLR DONG_CO

MOV R0,#0;THANH GHI HANG DON VI LUC DAT MOV R1,#0;THANH GHI HANG CHUC LUC DAT MOV R2,#0;THANH GHI HANG TRAM LUC DAT MOV R3,#0;THANH GHI HANG NGAN LUC DAT MOV R4,#0;BYTE THAP SO DEM TUC THI

MOV R5,#0;BYTE CAO SO DEM TUC THI LCALL KHOI_TAO

LCALL DELAYMS MOV A,#01H LCALL GHI_LENH LCALL DELAYMS MOV A,#80H LCALL GHI_LENH LCALL DELAYMS MOV DP TR,#CHUOI1 LCALL GHI_CHUOI MOV A,#0C0H LCALL GHI_LENH LCALL DELAYMS MOV DP TR,#CHUOI2 LCALL GHI_CHUOI LCALL DELAYMS MOV A,#01H LCALL GHI_LENH

SVTH: Trang 26

LCALL DELAYMS MOV A,#80H LCALL GHI_LENH LCALL DELAYMS MOV DP TR,#CHUOI3 LCALL GHI_CHUOI MOV A,#0C0H LCALL GHI_LENH LCALL DELAYMS MOV DP TR,#CHUOI4 LCALL GHI_CHUOI LCALL DELAYMS MOV A,#01H LCALL GHI_LENH LCALL DELAYMS MOV A,#80H LCALL GHI_LENH LCALL DELAYMS MOV DP TR,#CHUOI5 LCALL GHI_CHUOI LOOP:

CALL DAT_SP MOV A,#88H LCALL GHI_LENH MOV DP TR,#MA_LCD MOV A,R3

SVTH: Trang 27

MOVC A,@A+DPTR LCALL GHI_DULIEU MOV A,#89H

LCALL GHI_LENH MOV A,R2

MOVC A,@A+DPTR LCALL GHI_DULIEU MOV A,#8AH

LCALL GHI_LENH MOV A,R1

MOVC A,@A+DPTR LCALL GHI_DULIEU MOV A,#8BH

LCALL GHI_LENH MOV A,R0

MOVC A,@A+DPTR LCALL GHI_DULIEU JB START,LOOP

;************KHAI BÁO NGẮT ***************************

MOV IE,#10000001B SETB IT0

;*********CHẠY ĐỘNG CƠ VÀ LƯU SẢN PHẨM ĐẶT****

SETB DONG_CO MOV A,R1

MOV B,#10 MUL AB

SVTH: Trang 28

ADD A,R0

MOV BYTELOWDAT,A MOV A,R3

MOV B,#10 MUL AB ADD A,R2

MOV BYTECAODAT,A

;*****************************************************

MOV A,#0C0H LCALL GHI_LENH MOV DP TR,#CHUOI6 LCALL GHI_CHUOI LOOP9:

LCALL XU_LY MOV A,#0C8H LCALL GHI_LENH MOV DP TR,#MA_LCD MOV A,NGAN

MOVC A,@A+DPTR LCALL GHI_DULIEU MOV A,#0C9H LCALL GHI_LENH MOV A,TRAM MOVC A,@A+DP TR LCALL GHI_DULIEU MOV A,#0CAH

SVTH: Trang 29

LCALL GHI_LENH MOV A,CHUC MOVC A,@A+DPTR LCALL GHI_DULIEU MOV A,#0CBH LCALL GHI_LENH MOV A,DONVI MOVC A,@A+DPTR LCALL GHI_DULIEU LJMP LOOP9

;************XỬ LÝ SỐ ĐẾM ĐỂ HIỂN THỊ*******************

XU_LY: MOV A,R5 MOV B,#10 DIV AB

MOV NGAN,A MOV A,B MOV TRAM,A MOV A,R4 MOV B,#10 DIV AB

MOV CHUC,A MOV A,B MOV DONVI,A RET

SVTH: Trang 30

;*******************ĐẶT SẢN PHẨM****************************

DAT_SP:

JB B_NGAN,NEXT INC R3

CJNE R3,#10,NEXT MOV R3,#0

NEXT:

JB B_TRAM,NEXT1 INC R2

CJNE R2,#10,NEXT1 MOV R2,#0

NEXT1:

JB B_CHUC,NEXT2 INC R1

CJNE R1,#10,NEXT2 MOV R1,#0

NEXT2:

JB B_DONVI,EXIT INC R0

CJNE R0,#10,EXIT MOV R0,#0

EXIT: RET

SVTH: Trang 31

;********************CHƯƠNG TRÌNH CON GHI CHUỖI*******

GHI_CHUOI:

CLR A LOP:

MOVC A,@A+DPTR JZ THOAT

LCALL GHI_DULIEU LCALL DELAYMS MOV A,#06H LCALL GHI_LENH LCALL DELAYMS MOV A,#0

INC DPTR JMP LOP THOAT:

RET

;********************CHƯƠNG TRÌNH CON KH ỞI TẠO LCD**********

KHOI_TAO:

MOV A,#38H LCALL GHI_LENH LCALL DELAYMS MOV A,#06H LCALL GHI_LENH LCALL DELAYMS MOV A,#0CH LCALL GHI_LENH

SVTH: Trang 32

LCALL DELAYMS MOV A,#0EH LCALL GHI_LENH LCALL DELAYMS RET

;****************CHƯƠNG TRÌNH CON GHI LỆNH LÊN LCD*********

GHI_LENH:

LCALL READY CLR RS

CLR RW MOV P0,A SETB EN NOP

CLR EN

CALL DELAYMS RET

;*************CHƯƠNG TRÌNH CON GHI DỮ LIỆU LÊN LCD**************

GHI_DULIEU:

LCALL READY SETB RS

CLR RW MOV P0,A SETB EN NOP

CLR EN

SVTH: Trang 33

CALL DELAYMS RET

;****************CHƯƠNG TRÌNH CON KIỂM TRA CỜ BẬN LCD***********

READY:

SETB P0.7 CLR RS SETB RW

Back:

CLR EN SETB EN JB P0.7,Back RET

;**************CHƯƠNG TRÌNH NGẮT************************

NGAT1: PUSH A INC R4

CJNE R4,#99,LOP10 INC R5

MOV R4,#0 LOP10:

MOV A,R4

CJNE A,BYTELOWDAT,EXIT9 MOV A,R5

CJNE A,BYTECAODAT,EXIT9 SETB DONG_CO

CLR EA

SVTH: Trang 34

MOV R4,#0 MOV R5,#0 MOV R6,#15 LOP1:

CALL DELAY1S DJNZ R6,LOP1 SETB EA

EXIT9: POP A RETI

;************************DELAY 30MS********************

DELAYMS:

MOV TH0,#HIGH(-30000) MOV TL0,#LOW(-30000) SETB TR0

JNB TF0,$

CLR TR0 CLR TF0 RET

;********************DELAY 1S******************

DELAY1S:

MOV R7,#20 BACK9:

MOV TH1,#HIGH(-50000) MOV TL1,#LOW(-50000)

SVTH: Trang 35

SETB TR1 JNB TF1,$

CLR TR1 CLR TF1

DJNZ R7,BACK9 RET

;***************** KHAI BÁO DỮ LIỆU **********************

CHUOI1: DB 'DO_AN_VDK' DB 0

CHUOI2: DB 'SVTH:D_T_VU' DB 0

CHUOI3: DB 'LOP:10CDTLT' DB 0

CHUOI4: DB 'GVHD:Ths.LE_XUNG' DB 0

CHUOI5: DB 'SP_DAT:' DB 0

CHUOI6: DB 'SP_DEM:' DB 0

;**************BẢNG MÃ ASCII CỦA CÁC SỐ TỪ 0 9*********

MA_LCD: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H END

SVTH: Trang 36

Một phần của tài liệu ĐỒ ÁN CƠ ĐIỆN TỬ HT ĐẾM SẢN PHẨM (Trang 24 - 36)

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

(36 trang)