START
Đọc nhiệt độ từ bàn phím
Có phím ấn không
Hiển thị ra LEDĐọc nhiệt độ môi trường từ ADCHiển thị ra LEDEND
I, Lưu đồ thuật toán
Y
N
II, Phần mềm
ORG 00H
mov p2,#00H
mov p1,#0ffh
main:
;--------------------------DAT NHIET DO TU BAN PHIM -------------------------------
nhap_phim1:
jnb p3.4 , READ_ADC ;kiem tra xem co nhan phim khong?
mov a,p3 ;chuyen du lieu phim an thu 1 vao thanh ghi a
anl a,#00001111b ;loc bo 4 bit cao khong dung den
acall quet_phim ;kiem tra phim gi
mov b,r1 ;tam thoi chuyen du lieu vao thanh ghi b
cho_nha_phim1: jb p3.4 , cho_nha_phim1 ;doi phim an nha ra
nhap_phim_2:jnb p3.4 , nhap_phim_2 ;nhap phim thu 2
nhap_phim2 :
mov a,p3
anl a,#00001111b
acall quet_phim
mov a,b ;chuyen du
lieu phim 1 tro lai a
swap a ;dao len 4 bit cao
add a,r1 ;cong voi phim hang don vi
cho_nha_phim2: jb p3.4 , cho_nha_phim2
mov r7,a ;luu vao thanh ghi
r7
mov p2,r7 ;xuat ra led
;-----------------------DOC NHIET DO TU ADC - XUAT RA LED---------------------
READ_ADC:
setb p3.5 ;tao xung START va ALE
cho ADC
clr p3.5
cho_biendoi: jnb p3.6 ,cho_biendoi ;doi xung EOC
setb p3.7 ;tao xung OE
nop
nop
mov a,p1 ;chuyen du lieu tu ADC vao a
mov b,#10
div ab ;chia a cho b,lay phan nguyen vao a
swap a ; dao phan nguyen len 4
bit cao
mov r3,b ;chuyen phan du vao r3
add a,r3 ;cong phan nguyen va phan du
mov r6,a ;luu du lieu vao r6
clr p3.7 ; dua xung OE ve muc 0
mov p0,r6 ;xuat du lieu nhiet
do ra cong P0
;--------------------------------Lap chuong trinh
sjmp main ;lap lai chuong trinh
;---------------------------------chuong trinh TRA_MA--------------------------------------
quet_phim:
cjne a,#0,next2
mov r1,#1 ;neu an phim 1
jmp ket_thuc
next2:
cjne a,#1,next3
mov r1,#2 ;neu an phim 2
jmp ket_thuc
next3:
cjne a,#2,next4
mov r1,#3 ;neu an phim 3
jmp ket_thuc
next4:
cjne a,#4,next5
mov r1,#4 ;neu an phim 4
jmp ket_thuc
next5:
cjne a,#5,next6
mov r1,#5 ;neu an phim 5
jmp ket_thuc
next6:
cjne a,#6,next7
mov r1,#6 ;neu an phim 6
jmp ket_thuc
next7:
cjne a,#8,next8
mov r1,#7 ;neu an phim 7
jmp ket_thuc
next8:
cjne a,#9,next9
mov r1,#8 ;neu an phim 8
jmp ket_thuc
next9:
cjne a,#10,next0 ;neu an phim 9
mov r1,#9
jmp ket_thuc
next0:
mov r1,#0
ket_thuc:
RET
;---------------------------------------------------------------------------------------------------
END