Giáo trình hướng dẫn quy trình sấy để bảo quản thực phẩm lương thực tránh hư,hỏng phần 9 - Pdf 19


*Các chỉ dẫn của hợp ngữ:
Ch dn include
ây l ch dn cho chng trình dch bit ni lu gi th vin các
thanh ghi .
Cấu trúc:
#include <th vin bn cn s dng>
Khi viết chng trình cho MCS51
#include <sfr51.inc>
Ch dn ORG : Ch dn ny giúp cho chng trình dch bit c mã
lnh theo sau ch dn ny.
c ghi vo t a ch no trong ROM.
Ch dn END: Ch dn ny thông báo cho chng trình dch bit
chng trình đã kt thúc.
Chỉ dẫn EQU: Đợc dùng để định nghĩa một hằng số. Chỉ dẫn EQU
không sử dụng ô nhớ để cất dữ liệu, mà thực hiện gán một hằng số cho nhãn
sao cho khi nhãn xuất hiện trong chơng trình thì giá trị hằng số sẽ đợc thay
thế cho nhãn.
Chỉ dẫn DB: DB là chỉ dẫn dữ liệu 8 bit và đợc sử dụng hết sức rộng
rãi khi lập trình hợp ngữ, 8 bit dữ liệu đợc định nghĩa có thể ở dạng thập
phân, nhị phân , Hexa hay Ascii. Đối với dữ liệu thập phân thì có D sau số
thập phân, số nhị phân thì có chữ B và dữ liệu dạng Hexa thì có chữ H và
dù dữ liệu ở dạng nào thì hợp ngữ luôn chuyển về dạng hexa.
Để lập trình cho 8051 có rất nhiều phần mềm nhng các lập trình
khuyên là khi lập trình cho 8051 nên sử dụng phần mềm Reads51. Sau khi
chạy file reads51.exe ta có giao diện của reads51 sau đó vào Project chọn
New project và đặt tên sau đó nhấn ok. Tiếp theo nhấn chuột phải vào tên và
chọn Create New Module đặt tên và lựa chọn ngôn ngữ lập trình. Sau khi lập
trình xong nhấn F2 để dịch ra file Hex
Giao diện của Read51 nh sau:


MAIN:
MOV R7,#50
MOV P0,#0ffh ; Chon P0 lam cong vao
MOV IE,#10000110B ; Cho phep ngat ngoai 0,1
MOV IP,#00000001B ; Uu tien ngat mgoai0
MOV R5,#0 ; De dem so ngat 0 xay ra
MOV R4,#00h ; Thanh ghi thap cua T0
MOV R3,#DCh ; Thanh ghi cao cua T0
ACALL Display
Back:
MOV A,#CBh
ACALL Command
CLR P1.4 ; Cho CS = 0 de kich hoat chip
CLR P1.3

nop
nop
nop
SETB P1.3 ; Gui xung thap len cao toi WR de bat dau chuyen doi
Here1:
JB P3.7,Here1 ;Cho ket thuc chuyen doi khi INT=0
CLR P1.2 ; Ket thuc chuyen doi cho phep doc du lieu RD=0
MOV R6,P0 ; Luu tru gia tri doc duoc tu ADC
MOV A,P0 ; Doc du lieu vao A
ACALL Ascii ; Chuyen doi tu so Hexa ra ma Ascii
ACALL Delay
SETB P1.2
SJMP Back
; Chuong trinh con hien thi len LCD nhiet do dat va nhiet do lo say
Display:

RET

; Chuong trinh con hien thi nhiet do dat
Ndodat:
MOV R1,#11
MOV DPTR,#STR1
Read1:
CLR A ; Xoa A
MOVC A,@A+DPTR ; Xuat mot ki tu
ACALL Datastr
INC DPTR
DJNZ R1,Read1
MOV A,R7
ACALL Ascii
RET

; Chuong trinh con hien thi nhiet do lo say
Ndolo:
MOV A,#C0H ; Dua con tro ve dau dong thu 2

ACALL Command ; Xuat lenh
MOV R1,#11
MOV DPTR,#STR2
Read2:
CLR A ; Xoa A
MOVC A,@A+DPTR ; Xuat mot ki tu
ACALL Datastr
INC DPTR ; Tang Dptr
DJNZ R1,Read2
RET

JB P2.7,Back1 ;P2.7#0 quay ve BACK1
RET

; Chuong trinh chuyen doi tu so nhi phan ra ma Ascii
Ascii:
; Chuyen doi tu so nhi phan ra BCD va luu vao o nho co dia chi
;30H,31H,32H
MOV B,#10
DIV AB
MOV R2,A
MOV 32H,B
MOV A,R2
MOV B,#10
DIV AB
MOV 31H,B
MOV 30H,A
; Chuyen tu BCD ra Acsii va cho hien thi len LCD
MOV A,30H
ORL A,#30H
ACALL Datastr
MOV A,31H
ORL A,#30H

ACALL Datastr
MOV A,32H
ORL A,#30H
ACALL Datastr
RET

; Chuong trinh vi dieu khien lam viec khi co ngat ngoai INT0

ORG 200H
Interrupt1:
Start: MOV A,P1
ACALL Delay ; Goi chuong trinh tao tre
ANL A,#11000000B
CJNE A,#00000000B,Case1 ; Neu la phim tang thi thuc hien tang nhiet
;do dat
CJNE R7,#100,Tang
SJMP Jump1
Tang:
INC R7 ; Tang gia tri trong thanh ghi R7
Jump1: ACALL LCD_init
ACALL Ndodat
case1:
CJNE A,#01000000B,Case2 ;Neu la phim giam thi thuc hien giam nhiet
;do dat
CLR C
MOV A,R7
SUBB A,R6
CJNE A,#0,Giam
SJMP Jump2
Giam:
DEC R7 ; Giam gia tri trong thanh ghi R7
Jump2: ACALL LCD_init
ACALL Ndodat ; Goi chuong trinh hien thi nhiet do dat

Case2:CJNE A,#10000000B,Start ; Neu la phim lua chon thi hien thi nhu ban
;dau khoi dong
ACALL Ndolo
RETI


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status