vi xử lý hệ thống điều khiển adc - Pdf 13


KHOA CÔNG NGHỆ ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP

T
T
À
À
I
IL
L
I
I


U
UH
H
Ư
Ư





M
M-
-T
T
H
H


C
CH
H
À
À
N
N
H
H
• Nắm vững tập lệnh của vi điều khiển MCS-51.
• Tham khảo trước và nắm được hoạt động của vi mạch ADC 0809.
N. H THNG IU KHIN ADC.
Bi 1: Chng trỡnh iu khin bin i A/D thụng qua ADC0809 v hin th giỏ tr ca kờnh ngừ vo (kờnh
IN0) lờn hai LED 7 on (LED1 v LED0; di dng s HEX t 00H -> FFH).
Giỏo trỡnh thc hnh vi x lý. 3 Biờn son: Phm Quang Trớ
1 Trỡnh t tin hnh thớ nghim:
1.1 Kt ni thit b thớ nghim.
Tt ngun cp cho mụ hỡnh thớ nghim.
Dựng dõy bus 8 ni J64 (PORT1) khi vi iu khin vi J2 (SEL LED IN) khi LED 7 on.
Dựng bn dõy bus 8 ni J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) v J8 (7SEG4 IN) khi LED 7
on vi J4 (7SEG IN MUL) khi LED 7 on (ta ni chung cỏc bus ny li vi nhau thụng qua khi
m rng).
Dựng dõy bus 8 ni J63 (PORT0 / DATA) khi vi iu khin vi J4 (7SEG IN MUL) khi LED 7
on.
Dựng dõy bus 8 ni J49 (DIGITAL OUT) khi ADC vi J66 (PORT3/FUNCTION) khi vi iu
khin.
Dựng dõy bus 4 ni J152 (CONTROL ADC) khi ADC vi J65 (PORT2/A8 A15) khi vi iu khin
(chỳ ý l ta ch ni 4 bit thp ca J65 v J152 li vi nhau).
Dựng dõy bus 3 ni D36 (ADDRESS) khi ADC vi J65 (PORT2/A8 A15) khi vi iu khin (chỳ ý
l ta ch ni 3 bit cao k tip ca J65 v D36 li vi nhau).
Dựng dõy bus 1 ni J77 (V1) khi to ỏp vi J48 (ANALOG IN) khi ADC (chỳ ý l ta ch ni bit 0
(IN0) ca J48 v J77 li vi nhau).
Dựng ba dõy bus 3 ni D35 (POWER) khi to ỏp, D34 (POWER) khi ADC v J110 (POWER)
khi LED 7 on vi ngun +5V khi ngun.
ADC
ANALOG

8
8
TAẽO AP
V1 POWERV2V3V4
1
1
8
3
3
8
3
4

1.2 S nguyờn lý ca h thng:
N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 1: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh
IN0) lên hai LED 7 đoạn (LED1 và LED0; dưới dạng số HEX từ 00H -> FFH).
Giáo trình thực hành vi xử lý. 4 Biên soạn: Phạm Quang Trí
AD7
AD0
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD6
AD5

F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G

A0
A1
A2
ALE
OE
EOC
ST
AD6
AD0
AD1
AD2
AD3
AD4
AD5
D7
ST
D3
EOC
OE
D6
D2
D4
D5
A0
D0
D1
A1
A2
ALE
P1.7

P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR
16
P3.5/T1
15

8
9
1
RP1
10K
+5V
MAÏCH ÑIEÀU KHIEÅN ADC (ANALOG TO DIGITAL CONVERTER)
MAÏCH ÑIEÀU KHIEÅN ADC (ANALOG TO DIGITAL CONVERTER)MAÏCH ÑIEÀU KHIEÅN ADC (ANALOG TO DIGITAL CONVERTER)
MAÏCH ÑIEÀU KHIEÅN ADC (ANALOG TO DIGITAL CONVERTER)
LED7
Q1
A1015
+5V
LED6
Q2
A1015
+5V
R2
1K
R3
1K
R4
56
R5
56
R6
56
R7
56
R8

Q7
A1015
+5V
LED0
Q8
A1015
+5V
R15
1K
R16
1K
C3
10uF
R1
10k
+5V
+5V
RV1
100K
+5V
U3(CLOCK)
OUT1
21
ADD B
24
ADD A
25
ADD C
23
VREF(+)

17
OUT4
18
OUT3
19
IN2
28
IN1
27
IN0
26
ALE
22
U3
ADC0808
+88.8
Volts

1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.

N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 1: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh
IN0) lên hai LED 7 đoạn (LED1 và LED0; dưới dạng số HEX từ 00H -> FFH).
Giáo trình thực hành vi xử lý. 5 Biên soạn: Phạm Quang Trí
;***************************************************
;CHUONG TRINH DIEU KHIEN BIEN DOI A/D THONG QUA ADC0809 VA
;HIEN THI GIA TRI SO (DANG SO HEX) CUA KENH 0 LEN HAI LED 7 DOAN
;***************************************************
;KET NOI: 8 LED -> PORT1
; SEL LED -> PORT0

SETB START ;TAO XUNG START (START = 1)
NOP
NOP
CLR ALE ;KET THUC XUNG ALE (ALE = 0)
CLR START ;KET THUC XUNG START (START = 0)
ACALL DELAY_ADC ;TAO THOI GIAN TRE CHO VIEC CHUYEN DOI A/D CUA ADC0809
SETB OE ;TAO XUNG OE (OE = 1)
NOP
NOP
NOP
NOP
MOV A,DIG_OUT ;DOC GIA TRI TU ADC0809
CLR OE ;KET THUC XUNG OE (OE = 0)
MOV R4,A ;LAY GIA TRI ADC DE GIAI MA VA HIEN THI
ACALL HEX2ADCTO7SEG ;GIAI MA GIA TRI ADC
ACALL DISP7SEGMUL8 ;HIEN THI GIA TRI LEN LED 7 DOAN
SJMP MP1
;****************************************************
DELAY_ADC: ;CHUONG TRINH CON TAO THOI GIAN TRE 120US DE THUC HIEN CHUYEN DOI A/D
PUSH 00H
MOV R0,#60
DJNZ R0,$
POP 00H
RET
;***************************************************
;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN).
;***************************************************
;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)
;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM.
;***************************************************

PUSH 00H
PUSH 01H
MOV R1,#5
DEL:
MOV R0,#250
DJNZ R0,$
DJNZ R1,DEL
POP 01H
POP 00H
RET
;***************************************************
;CTC GIAI MA TU SO HEX SANG MA 7 DOAN (2 SO HEX) CO KEM CHUOI "ADC = ".
;***************************************************
;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB)
;GIA TRI GIAI MA: 0 -> F
;***************************************************
;NAME: HEX2ADCTO7SEG.
;INPUT: R4 = CAP S0 HEX 1 (CHUC - DON VI).
;OUTPUT: 67H,66H = CHUOI KY TU "AD".
; 65H,64H = CHUOI KY TU "C ".
; 63H,62H = CHUOI KY TU "= ".
; 61H,60H = MA 7 DOAN (CHUC - DON VI).
;***************************************************
HEX2ADCTO7SEG:
PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI
PUSH DPL
PUSH ACC

MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN


END
1.4 Lưu chương trình và biên dịch chương trình.
1.5 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có.
1.6 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip
hoạt động.
1.7 Nạp chương trình vào vi điều khiển.
1.8 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển.
1.9 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu
cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ
bước 3 đến bước 9.
2 Bài tập:
(xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)

N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 2: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của kênh ngõ vào (kênh
IN0) lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số DEC từ 0 -> 255).
Giáo trình thực hành vi xử lý. 8 Biên soạn: Phạm Quang Trí
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm.
• Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1.
1.2 Sơ đồ nguyên lý của hệ thống:
• Sơ đồ nguyên lý của hệ thống tương tự như Bài 1.
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển.
DELAYLED
(XEM CTC NÀY TẠI VÍ DỤ B3.1 MBI)
DISP7SEGMUL8
(XEM CTC NÀY TẠI VÍ DỤ B8 MBI)
BEGIN
MAIN:
N2

BIN8TOBCD
GỌI CTC GIẢI MÃ BCD SANG MÃ 7 ĐOẠN
BCD3ADCTO7SEG
GỌI CTC HIỂN THỊ
DISP7SEGMUL8
DELAY_ADC
(XEM CTC NÀY TẠI VÍ DỤ N1)
BIN8TOBCD
(XEM CTC NÀY TẠI PHẦN HƯỚNG
DẪN CỦA VÍ DỤ G)
XỬ LÝ ĐỂ LẤY GIÁ TRỊ THỨ NHẤT TRONG
SỐ BCD NÉN (4 BIT THẤP)
(A) =
XỬ LÝ ĐỂ LẤY GIÁ TRỊ THỨ HAI TRONG SỐ
BCD NÉN (4 BIT CAO)
(A) =
CẤT TẠM GIÁ TRỊ CỦA DPH,
DPL, ACC VÀO STACK
BCD3ADCTO7SEG
NAME: BCD3ADCTO7SEG - GIẢI MÃ SANG MÃ 7 ĐOẠN.
INPUT: R7,R6 = SỐ BCD (TRĂM/CHỤC/ĐƠN VỊ).
OUTPUT: 67H, 66H = CHUỖI KÝ TỰ “AD”.
65H, 64H = CHUỖI KÝ TỰ “C=“.
63H = CHUỖI KÝ TỰ “ “.
62H = MÃ 7 ĐOẠN (TRĂM).
61H, 60H = MÃ 7 ĐOẠN (CHỤC/ĐƠN VỊ).
BCD3ADCTO7SEG:
LẤY LẠI GIÁ TRỊ CHO DPH, DPL,
ACC TỪ STACK
NẠP ĐỊA CHỈ VÙNG MÃ

SỐ BCD NÉN (4 BIT THẤP)
(A) =
NẠP SỐ BCD NÉN CẦN GIẢI MÃ
(A) = (R7) = X Y
0 Y
GIẢI MÃ DỮ LIỆU
(A) = (@A+DPTR)
CẤT MÃ 7 ĐOẠN CỦA BCD HÀNG TRĂM VÀO
Ô NHỚ
(62H) = (A)
VÙNG DỮ LIỆU CODE7SEG
C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H

;***************************************************
;CHUONG TRINH DIEU KHIEN BIEN DOI A/D THONG QUA ADC0809 VA
;HIEN THI GIA TRI SO (DANG SO DEC) CUA KENH 0 LEN BA LED 7 DOAN
;***************************************************
;KET NOI: 8 LED -> PORT1
; SEL LED -> PORT0
; MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0
; ANALOG IN -> IN0 ADC0809
; DIGITAL OUT -> PORT3
; START -> P2.0 EOC -> P2.1
; OE -> P2.2 ALE -> P2.3
; A0 -> P2.4 A1 -> P2.5 A2 -> P2.6
; CLOCK -> 500KHz
;***************************************************
;DINH NGHIA CAC THONG SO
;***************************************************
N. HỆ THỐNG ĐIỀU KHIỂN ADC.

NOP
NOP
NOP
NOP
MOV A,DIG_OUT ;DOC GIA TRI TU ADC0809
CLR OE ;KET THUC XUNG OE (OE = 0)
MOV R7,A ;LAY GIA TRI ADC DE GIAI MA VA HIEN THI
ACALL BIN8TOBCD ;GIAI MA GIA TRI ADC (DANG BIN) SANG BCD
ACALL BCD3ADCTO7SEG ;GIAI MA GIA TRI ADC (DANG BCD) SANG MA 7 DOAN
ACALL DISP7SEGMUL8 ;HIEN THI GIA TRI LEN LED 7 DOAN
SJMP MP1
;****************************************************
DELAY_ADC: ;CHUONG TRINH CON TAO THOI GIAN TRE 120US DE THUC HIEN CHUYEN DOI A/D
PUSH 00H
MOV R0,#60
DJNZ R0,$
POP 00H
RET
;***************************************************
;CTC CHUYEN DOI SO BINARY 8 BIT (<= 255) SANG SO BCD.
;***************************************************
;NAME: BIN8TOBCD.
;INPUT: R7 = SO BIN 8 BIT (<= 255).
;OUTPUT: R7,R6 = SO BCD (TRAM - CHUC - DON VI).
;***************************************************
BIN8TOBCD:
PUSH ACC
PUSH B
MOV B,#10
MOV A,R7

;***************************************************
DISP7SEGMUL8:
PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI
PUSH 00H
MOV A,#7FH ;MA QUET
MOV R0,#67H ;DIA CHI VUNG MA HIEN THI
DISP:
MOV P0,@R0 ;XUAT MA HIEN THI
MOV P1,A ;XUAT MA QUET
LCALL DELAYLED
MOV P1,#0FFH ;CHONG LEM
DEC R0 ;LAY MA HIEN THI KE TIEP
RR A ;CHUYEN SANG LED KE TIEP
CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA
POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI
POP ACC
RET
;****************************************************
DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS
PUSH 00H
PUSH 01H
MOV R1,#5
DEL:
MOV R0,#250
DJNZ R0,$
DJNZ R1,DEL
POP 01H
POP 00H
RET
;***************************************************

MOV A,R6 ;LAY SO BCD NEN 1 (CHUC - DON VI) CAN GIAI MA
ANL A,#0F0H ;XOA 4 BIT THAP
SWAP A ;HOAN CHUYEN CAO - THAP
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
MOV 61H,A ;CAT HANG CHUC VAO O NHO

MOV A,R7 ;LAY SO BCD NEN 2 (TRAM) CAN GIAI MA
ANL A,#0FH ;XOA 4 BIT CAO
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
MOV 62H,A ;CAT HANG TRAM VAO O NHO

MOV 63H,#0FFH ;CAT MA KY TU " "
MOV 64H,#0B7H ;CAT MA KY TU "="
MOV 65H,#0C6H ;CAT MA KY TU "C"
MOV 66H,#0A1H ;CAT MA KY TU "D"
MOV 67H,#88H ;CAT MA KY TU "A"

POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI
POP DPL
POP DPH
RET
;***************************************************
CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9)
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
1.4 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên.
2 Bài tập:
(xem thêm trong phần hướng dẫn và phần bài tập của Bài 4)

N. HỆ THỐNG ĐIỀU KHIỂN ADC.

;***************************************************
START BIT P2.0 ;BIT KHOI DONG ADC
EOC BIT P2.1 ;BIT BAO KET THUC QUA TRINH CHUYEN DOI A/D
OE BIT P2.2 ;BIT CHO PHEP XUAT GIA TRI ADC
ALE BIT P2.3 ;BIT CHO PHEP CHOT DIA CHI
A0 BIT P2.4 ;BIT CHON NGO VAO ANALOG CAN BIEN DOI
A1 BIT P2.5
A2 BIT P2.6
DIG_OUT EQU P3 ;PORT DOC GIA TRI TU ADC XUAT RA
;***************************************************
ORG 00H
MAIN:
MOV P2,#02H ;CAU HINH CA CHAN DIEU KHIEN BAN DAU CHO ADC
MOV DIG_OUT,#0FFH ;CAU HINH PORT 3 LA PORT NHAP GIA TRI
MP1:
;****************************************************
CLR A0 ;CHON TIN HIEU ANALOG TAI KENH 0 (IN0)
CLR A1
CLR A2
SETB ALE ;TAO XUNG ALE (ALE = 1)
NOP
NOP
SETB START ;TAO XUNG START (START = 1)
NOP
NOP
CLR ALE ;KET THUC XUNG ALE (ALE = 0)
CLR START ;KET THUC XUNG START (START = 0)
ACALL DELAY_ADC ;TAO THOI GIAN TRE CHO VIEC CHUYEN DOI A/D CUA ADC0809
SETB OE ;TAO XUNG OE (OE = 1)
NOP

PUSH B
N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 3: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị điện áp của kênh ngõ vào
(kênh IN0) lên bốn LED 7 đoạn (LED3, LED2, LED1 và LED0: theo giá trị điện áp thực, đơn vị là mV).
Giáo trình thực hành vi xử lý. 14 Biên soạn: Phạm Quang Trí
MOV B,#10
ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10
PUSH B ;CAT SO HANG DON VI
MOV B,#10
ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10
PUSH B ;CAT SO HANG CHUC
MOV B,#10
MOV A,R6
DIV AB ;TIEP TUC CHIA CHO 10
PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN
SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO
POP B ;LAY SO HANG TRAM TU STACK
ORL A,B ;KET HOP SO HANG NGAN VA SO HANG TRAM
MOV R7,A ;R7 = NGAN - TRAM
POP ACC ;LAY SO HANG CHUC TU STACK
SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO
POP B ;LAY SO HANG DON VI TU STACK
ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI
MOV R6,A ;R6 = CHUC - DON VI
POP B
POP ACC
RET
;***************************************************
;CTC CHIA SO BINARY 16 BIT CHO SO BINARY 8 BIT.
;***************************************************

DJNZ R2,DIVIDE ;DICH TIEP DEN 16 LAN.
XCH A,B ;SAU 16 LAN DICH TA DUOC B = SO DU.
POP ACC
POP 02H
RET
;***************************************************
;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN).
;***************************************************
;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)
;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM.
;***************************************************
;NAME: DISP7SEGMUL8.
;INPUT: 67H,66H = MA 7 DOAN (CH TRIEU - TRIEU).
; 65H,64H = MA 7 DOAN (TR NGAN - CH NGAN).
N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 3: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị điện áp của kênh ngõ vào
(kênh IN0) lên bốn LED 7 đoạn (LED3, LED2, LED1 và LED0: theo giá trị điện áp thực, đơn vị là mV).
Giáo trình thực hành vi xử lý. 15 Biên soạn: Phạm Quang Trí
; 63H,62H = MA 7 DOAN (NGAN - TRAM).
; 61H,60H = MA 7 DOAN (CHUC - DON VI).
;OUTPUT: P0 = 7 DOAN LED - DP (MSB) -> A (LSB).
; P1 = CHON LED - LEFT (MSD) -> RIGHT (LSD).
;***************************************************
DISP7SEGMUL8:
PUSH ACC ;CAT TAM THOI GIA TRI CAC THANH GHI
PUSH 00H
MOV A,#7FH ;MA QUET
MOV R0,#67H ;DIA CHI VUNG MA HIEN THI
DISP:
MOV P0,@R0 ;XUAT MA HIEN THI

; 65H,64H = CHUOI KY TU "C=".
; 63H,62H = MA 7 DOAN (NGAN - TRAM)
; 61H,60H = MA 7 DOAN (CHUC - DON VI).
;***************************************************
BCD3ADCTO7SEG:
PUSH DPH ;CAT TAM THOI GIA TRI CAC THANH GHI
PUSH DPL
PUSH ACC

MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN

MOV A,R6 ;LAY SO BCD NEN 1 (CHUC - DON VI) CAN GIAI MA
ANL A,#0FH ;XOA 4 BIT CAO
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
MOV 60H,A ;CAT HANG DON VI VAO O NHO

MOV A,R6 ;LAY SO BCD NEN 1 (CHUC - DON VI) CAN GIAI MA
ANL A,#0F0H ;XOA 4 BIT THAP
SWAP A ;HOAN CHUYEN CAO - THAP
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
MOV 61H,A ;CAT HANG CHUC VAO O NHO MOV A,R7 ;LAY SO BCD NEN 2 (NGAN - TRAM) CAN GIAI MA
ANL A,#0FH ;XOA 4 BIT CAO
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
MOV 62H,A ;CAT HANG TRAM VAO O NHO

N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 3: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị điện áp của kênh ngõ vào

hin mt cỏch ln lt, mi ln cỏch nhau 5s.
Giỏo trỡnh thc hnh vi x lý. 17 Biờn son: Phm Quang Trớ
1 Trỡnh t tin hnh thớ nghim:
1.1 Kt ni thit b thớ nghim.
Tt ngun cp cho mụ hỡnh thớ nghim.
Dựng dõy bus 8 ni J64 (PORT1) khi vi iu khin vi J2 (SEL LED IN) khi LED 7 on.
Dựng bn dõy bus 8 ni J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) v J8 (7SEG4 IN) khi LED 7
on vi J4 (7SEG IN MUL) khi LED 7 on (ta ni chung cỏc bus ny li vi nhau thụng qua khi
m rng).
Dựng dõy bus 8 ni J63 (PORT0 / DATA) khi vi iu khin vi J4 (7SEG IN MUL) khi LED 7
on.
Dựng dõy bus 8 ni J49 (DIGITAL OUT) khi ADC vi J66 (PORT3/FUNCTION) khi vi iu
khin.
Dựng dõy bus 4 ni J152 (CONTROL ADC) khi ADC vi J65 (PORT2/A8 A15) khi vi iu khin
(chỳ ý l ta ch ni 4 bit thp ca J65 v J152 li vi nhau).
Dựng dõy bus 3 ni D36 (ADDRESS) khi ADC vi J65 (PORT2/A8 A15) khi vi iu khin (chỳ ý
l ta ch ni 3 bit cao k tip ca J65 v D36 li vi nhau).
Dựng dõy bus 1 ni J77 (V1) khi to ỏp vi J48 (ANALOG IN) khi ADC (chỳ ý l ta ch ni bit 3
(IN3) ca J48 v J77 li vi nhau).
Dựng dõy bus 1 ni J78 (V1) khi to ỏp vi J48 (ANALOG IN) khi ADC (chỳ ý l ta ch ni bit 2
(IN2) ca J48 v J77 li vi nhau).
Dựng dõy bus 1 ni J81 (V1) khi to ỏp vi J48 (ANALOG IN) khi ADC (chỳ ý l ta ch ni bit 1
(IN1) ca J48 v J77 li vi nhau).
Dựng dõy bus 1 ni J82 (V1) khi to ỏp vi J48 (ANALOG IN) khi ADC (chỳ ý l ta ch ni bit 0
(IN0) ca J48 v J77 li vi nhau).
Dựng ba dõy bus 3 ni D35 (POWER) khi to ỏp, D34 (POWER) khi ADC v J110 (POWER)
khi LED 7 on vi ngun +5V khi ngun.
ADC
ANALOG
IN

TAẽO AP
V1 POWERV2V3V4
1
3
3
8
3
4
1
1
1
8
8

N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của bốn kênh ngõ vào
(kênh IN0, IN1, IN2 và IN3) lên bốn LED 7 đoạn (LED3, LED2, LED1 và LED0: theo giá trị điện áp
thực, đơn vị là mV), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi và hiển thị được thực
hiện một cách lần lượt, mỗi lần cách nhau 5s.
Giáo trình thực hành vi xử lý. 18 Biên soạn: Phạm Quang Trí
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0
AD1
AD2
AD3
AD4
AD5
AD6

C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D
E
F
G
A
B
C
D

D4
D5
D6
A0
A1
A2
ALE
OE
EOC
ST
AD6
AD0
AD1
AD2
AD3
AD4
AD5
D7
ST
D3
EOC
OE
D6
D2
D4
D5
A0
D0
D1
A1

32
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR

5
6
7
8
9
1
RP1
10K
+5V
MAÏCH ÑIEÀU KHIEÅN ADC (ANALOG TO DIGITAL CONVERTER)
MAÏCH ÑIEÀU KHIEÅN ADC (ANALOG TO DIGITAL CONVERTER)MAÏCH ÑIEÀU KHIEÅN ADC (ANALOG TO DIGITAL CONVERTER)
MAÏCH ÑIEÀU KHIEÅN ADC (ANALOG TO DIGITAL CONVERTER)
LED7
Q1
A1015
+5V
LED6
Q2
A1015
+5V
R2
1K
R3
1K
R4
56
R5
56
R6
56

R14
1K
LED1
Q7
A1015
+5V
LED0
Q8
A1015
+5V
R15
1K
R16
1K
C3
10uF
R1
10k
+5V
+5V
RV4
100K
+5V
U3(CLOCK)
OUT1
21
ADD B
24
ADD A
25

OUT6
15
OUT8
17
OUT4
18
OUT3
19
IN2
28
IN1
27
IN0
26
ALE
22
U3
ADC0808
RV3
100K
RV2
100K
RV1
100K
+88.8
Volts
+88.8
Volts
+88.8
Volts

MP1:
ĐẶT GIÁ TRỊ KÊNH MẶC ĐỊNH (KÊNH 0)
(R5) = 0
GỌI CTC GIẢI MÃ GIÁ TRỊ SANG BCD
BIN16TOBCD
GỌI CTC GIẢI MÃ BCD SANG MÃ 7 ĐOẠN
BCD3ADCTO7SEG
GỌI CTC HIỂN THỊ
DELAY_SCAN
MP2:
GỌI CTC ĐIỀU KHIỂN CHUYỂN ĐỔI ADC
CONVERSATION
LẤY GIÁ TRỊ ĐIỆN ÁP ĐỂ GIẢI MÃ - HIỂN THỊ
(R6) = (A)
LẤY GIÁ TRỊ ĐIỆN ÁP ĐỂ GIẢI MÃ - HIỂN THỊ
(R7) = (B)
ĐỔI GIÁ TRỊ DIGITAL NHẬN TỪ ADC THÀNH
GIÁ TRỊ ĐIỆN ÁP (mV)
(ĐIỆN ÁP = GIÁ TRỊ x ĐỘ PHÂN GIẢI ADC)
(A) x (B)
ĐẶT GIÁ TRỊ ĐỘ PHÂN GIẢI ADC
(Vref/255 = 5/255 = 19.6 mV 20 mV)
(B) = 20
CHUYỂN SANG KÊNH KẾ TIẾP
(R5) = (R5) + 1
KIỂM TRA SỐ KÊNH
(CHƯA XONG)
Đ
S
TẠO XUNG CHỐT ĐỊA CHỈ KÊNH ADC

SỐ BCD NÉN (4 BIT THẤP)
(A) =
XỬ LÝ ĐỂ LẤY GIÁ TRỊ THỨ HAI TRONG SỐ
BCD NÉN (4 BIT CAO)
(A) =
CẤT TẠM GIÁ TRỊ CỦA DPH,
DPL, ACC VÀO STACK
BCD3ADCTO7SEG
NAME: BCD3ADCTO7SEG - GIẢI MÃ SANG MÃ 7 ĐOẠN.
INPUT: R7,R6 = SỐ BCD (TRĂM/CHỤC/ĐƠN VỊ).
R5 = SỐ THỨ TỰ CÁC KÊNH.
OUTPUT: 67H, 66H = CHUỖI KÝ TỰ “CH”.
65H = SỐ THỨ TỰ KÊNH
64H = CHUỖI KÝ TỰ “=“.
63H, 62H = = MÃ 7 ĐOẠN (NGÀN/TRĂM).
61H, 60H = MÃ 7 ĐOẠN (CHỤC/ĐƠN VỊ).
BCD3ADCTO7SEG:
LẤY LẠI GIÁ TRỊ CHO DPH, DPL,
ACC TỪ STACK
NẠP ĐỊA CHỈ VÙNG MÃ
(DPTR) = CODE7SEG
RET
NẠP SỐ BCD NÉN CẦN GIẢI MÃ
(A) = (R6) =
X Y
0 Y
GIẢI MÃ DỮ LIỆU
(A) = (@A+DPTR)
CẤT MÃ 7 ĐOẠN CỦA BCD HÀNG ĐƠN VỊ
VÀO Ô NHỚ

(A) =
NẠP SỐ BCD NÉN CẦN GIẢI MÃ
(A) = (R7) =
X Y
0 X
GIẢI MÃ DỮ LIỆU
(A) = (@A+DPTR)
CẤT MÃ 7 ĐOẠN CỦA BCD HÀNG NGÀN VÀO
Ô NHỚ
(63H) = (A)
XỬ LÝ ĐỂ LẤY GIÁ TRỊ THỨ NHẤT TRONG
SỐ THỨ TỰ KÊNH (4 BIT THẤP)
(A) =
NẠP SỐ THỨ TỰ KÊNH CẦN GIẢI MÃ
(A) = (R5) = X Y
0 Y
GIẢI MÃ DỮ LIỆU
(A) = (@A+DPTR)
CẤT MÃ 7 ĐOẠN CỦA SỐ THỨ TỰ KÊNH
CẦN CHUYỂN ĐỔI A/D VÀO Ô NHỚ
(65H) = (A)

N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của bốn kênh ngõ vào
(kênh IN0, IN1, IN2 và IN3) lên bốn LED 7 đoạn (LED3, LED2, LED1 và LED0: theo giá trị điện áp
thực, đơn vị là mV), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi và hiển thị được thực
hiện một cách lần lượt, mỗi lần cách nhau 5s.
Giáo trình thực hành vi xử lý. 20 Biên soạn: Phạm Quang Trí
;***************************************************
;CHUONG TRINH DIEU KHIEN BIEN DOI A/D THONG QUA ADC0809 VA

MOV R5,#00H ;KENH MAC DINH - KENH 0 (IN0)
MP2:
ACALL CONVERSATION ;THUC HIEN CHUYEN DOI ADC
;****************************************************
MOV B,#20 ;DO PHAN GIAI CUA ADC = VREF / 255 = 5V / 255 = 19.6mV -> 20mV
MUL AB ;DOI GIA TRI DIGITAL NHAN TU ADC SANG THANH GIA TRI DIEN AP (mV)
MOV R7,B ;LAY GIA TRI DIEN AP QUI DOI DE GIAI MA VA HIEN THI
MOV R6,A
ACALL BIN16TOBCD ;GIAI MA GIA TRI ADC (DANG BIN) SANG BCD
ACALL BCD3ADCTO7SEG ;GIAI MA GIA TRI ADC (DANG BCD) SANG MA 7 DOAN
ACALL DELAY_SCAN ;TAO THOI GIAN TRE GIUA CAC KENH CO GOI CTC QUET HIEN THI
INC R5 ;CHUYEN SANG KENH CHUYEN DOI KE TIEP
CJNE R5,#04H,MP2 ;KIEM TRA DA CHUYEN DOI XONG TAT CA CAC KENH QUI DINH
SJMP MP1
;****************************************************
;CTC DIEU KHIEN ADC THUC HIEN CHUYEN DOI A/D VA DOC GIA TRI ADC VE VI DIEU KHIEN
;****************************************************
;NAME: CONVERSATION.
;INPUT: R5 = SO THU TU KENH CAN CHUYEN DOI
; START BIT P2.0 ;BIT KHOI DONG ADC
; EOC BIT P2.1 ;BIT BAO KET THUC QUA TRINH CHUYEN DOI A/D
; OE BIT P2.2 ;BIT CHO PHEP XUAT GIA TRI ADC
; ALE BIT P2.3 ;BIT CHO PHEP CHOT DIA CHI
; A0 BIT P2.4 ;BIT CHON NGO VAO ANALOG CAN BIEN DOI
; A1 BIT P2.5
; A2 BIT P2.6
; DIG_OUT EQU P3 ;PORT DOC GIA TRI TU ADC XUAT RA .
;OUTPUT: ACC = GIA TRI DIGITAL SAU KHI CHUYEN DOI THU DUOC TU ADC0809.
;****************************************************
CONVERSATION:

CLR OE ;KET THUC XUNG OE (OE = 0)
RET
;****************************************************
DELAY_ADC: ;CHUONG TRINH CON TAO THOI GIAN TRE 120US DE THUC HIEN CHUYEN DOI A/D
PUSH 00H
MOV R0,#60
DJNZ R0,$
POP 00H
RET
;***************************************************
;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD.
;***************************************************
;NAME: BIN16TOBCD.
;INPUT: R7,R6 = SO BCD 16 BIT (<= 9999).
;OUTPUT: R7,R6 = SO BCD (NGAN - TRAM - CHUC - DON VI).
;***************************************************
BIN16TOBCD:
PUSH ACC
PUSH B
MOV B,#10
ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10
PUSH B ;CAT SO HANG DON VI
MOV B,#10
ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10
PUSH B ;CAT SO HANG CHUC
MOV B,#10
MOV A,R6
DIV AB ;TIEP TUC CHIA CHO 10
PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN
SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO

CLR A
DIVIDE:
XCH A,R6
CLR C ;DICH BIT 7 CU R6 VAO
RLC A ;CARRY, BIT 0 CUA R6
XCH A,R6 ;BANG 0.
XCH A,R7 ;DICH BIT CARRY VAO
RLC A ;BIT 0 CUA R7
XCH A,R7
RLC A ;DICH BIT 7 CUA R7 VAO A.
CJNE A,B,NOT_EQUAL ;XEM SO BIT DA DICH >=
SJMP A_GREATER_EQ_B ;SO CHIA CHUA ?
NOT_EQUAL:
JC BELOW ;N: THUONG SO = 0 TRONG R6.
A_GREATER_EQ_B:
SUBB A,B ;Y: SO DU CAT TRONG A.
XCH A,R6
ORL A,#1 ;THUONG SO = 1
XCH A,R6 ;CAT TRONG R6
BELOW:
DJNZ R2,DIVIDE ;DICH TIEP DEN 16 LAN.
XCH A,B ;SAU 16 LAN DICH TA DUOC B = SO DU.
POP ACC
POP 02H
RET
;***************************************************
;CTC QUET HIEN THI LED 7 DOAN (8 LED 7 DOAN).
;***************************************************
;LED: ANODE CHUNG, KICH HOAT MUC 0, 7 DOAN: DP (MSB) -> A (LSB)
;DU LIEU HIEN THI CHUA TRONG O NHO CUA RAM.

Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của bốn kênh ngõ vào
(kênh IN0, IN1, IN2 và IN3) lên bốn LED 7 đoạn (LED3, LED2, LED1 và LED0: theo giá trị điện áp
thực, đơn vị là mV), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi và hiển thị được thực
hiện một cách lần lượt, mỗi lần cách nhau 5s.
Giáo trình thực hành vi xử lý. 23 Biên soạn: Phạm Quang Trí
MOV R1,#5
DEL:
MOV R0,#250
DJNZ R0,$
DJNZ R1,DEL
POP 01H
POP 00H
RET
;***************************************************
DELAY_SCAN: ;CHUONG TRINH CON TAO THOI GIAN TRE 2S CO GOI CTC GIAI MA VA QUET HIEN THI
PUSH 00H
MOV R0,#200
MOV TMOD,#01H
LOOP2:
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
SETB TR0
SCAN: ;LIEN TUC GOI CTC QUET HIEN THI TRONG LUC TIMER DANG CHAY
ACALL DISP7SEGMUL8 ;HIEN THI GIA TRI LEN LED 7 DOAN
JNB TF0,SCAN
CLR TR0
CLR TF0
DJNZ R0,LOOP2
POP 00H
RET

MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
MOV 61H,A ;CAT HANG CHUC VAO O NHO

MOV A,R7 ;LAY SO BCD NEN 2 (NGAN - TRAM) CAN GIAI MA
ANL A,#0FH ;XOA 4 BIT CAO
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
MOV 62H,A ;CAT HANG TRAM VAO O NHO

MOV A,R7 ;LAY SO BCD NEN 2 (NGAN - TRAM) CAN GIAI MA
ANL A,#0F0H ;XOA 4 BIT THAP
SWAP A ;HOAN CHUYEN CAO - THAP
N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của bốn kênh ngõ vào
(kênh IN0, IN1, IN2 và IN3) lên bốn LED 7 đoạn (LED3, LED2, LED1 và LED0: theo giá trị điện áp
thực, đơn vị là mV), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi và hiển thị được thực
hiện một cách lần lượt, mỗi lần cách nhau 5s.
Giáo trình thực hành vi xử lý. 24 Biên soạn: Phạm Quang Trí
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
MOV 63H,A ;CAT HANG NGAN VAO O NHO

MOV 64H,#0B7H ;CAT MA KY TU "="

MOV A,R5 ;LAY SO BCD CUA THU TU KENH CAN CHUYEN DOI
ANL A,#0FH ;XOA 4 BIT CAO
MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG
MOV 65H,A ;CAT SO THU TU KENH VAO O NHO

MOV 66H,#89H ;CAT MA KY TU "H"
MOV 67H,#0C6H ;CAT MA KY TU "C"


nhấn nút KEY0.
• Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình.
3 Hướng dẫn:
Quá trình biến đổi A/D được thực hiện qua các bước sau:
o Xác lập địa chỉ chọn kênh ngõ vào (A0, A1, A2).
o Tạo xung START/ALE bằng cách xuất một giá trị bất kỳ ra ngoại vi ADC0809 với địa chỉ ngoại vi
đã chọn (CS: Chip Select).
o Tạo thời gian delay 120
µ
s.
o Đọc giá trị từ ngoại vi ADC0809 với địa chỉ ngoại vi đã chọn (giá trị này có tầm từ 0 - 255 tùy
theo điện áp ngõ vào từ 0 - 5V

độ phân giải là 5V/255 = 19,6 mV).
o Đổi giá trị này thành điện áp (tính bằng mV) bằng cách nhân với 19,6

20.
o Đổi giá trị này ra mã BCD nén.
o Xuất ra LED 7 đoạn để hiển thị.
N. HỆ THỐNG ĐIỀU KHIỂN ADC.
Bài 4: Chương trình điều khiển biến đổi A/D thông qua ADC0809 và hiển thị giá trị của bốn kênh ngõ vào
(kênh IN0, IN1, IN2 và IN3) lên bốn LED 7 đoạn (LED3, LED2, LED1 và LED0: theo giá trị điện áp
thực, đơn vị là mV), LED7 hiển thị kênh ngõ vào. Việc chuyển đổi kênh biến đổi và hiển thị được thực
hiện một cách lần lượt, mỗi lần cách nhau 5s.
Giáo trình thực hành vi xử lý. 25 Biên soạn: Phạm Quang Trí
Đổi số nhị phân 8 bit thành mã BCD nén (packed BCD):
o Lấy giá trị cần chuyển đổi (0 – 255) chia cho 10

Số dư sẽ là mã BCD hàng đơn vị.
o Lấy kết quả (thương số) của phép chia trên chia tiếp cho 10

POP ACC
RET
;***************************************************
Đổi số nhị phân 16 bit thành mã BCD nén:
o Công việc thực hiện tương tự như đối với số nhị phân 8 bit là lần lượt chia giá trị cần chuyển đổi
cho 10. Tuy nhiên, cần phải tạo ra một chương trình con thực hiện việc chia số 16 bit cho 10 (vì giá trị cần đổi
lúc này là số 16 bit).
o Chương trình mẫu:
;***************************************************
;CTC CHUYEN DOI SO BINARY 16 BIT (<= 9999) SANG SO BCD.
;NAME: BIN16TOBCD.
;INPUT: R7,R6 = SO BCD 16 BIT (<= 9999).
;OUTPUT: R7,R6 = SO BCD (NGAN - TRAM - CHUC - DON VI).
;***************************************************
BIN16TOBCD:
PUSH ACC
PUSH B
MOV B,#10
ACALL DIV16TO8 ;LAY R7,R6 CHIA CHO 10
PUSH B ;CAT SO HANG DON VI
MOV B,#10
ACALL DIV16TO8 ;TIEP TUC CHIA CHO 10
PUSH B ;CAT SO HANG CHUC
MOV B,#10
MOV A,R6
DIV AB ;TIEP TUC CHIA CHO 10
PUSH B ;CAT SO HANG TRAM, ACC CHUA SO HANG NGAN
SWAP A ;DUA SO HANG NGAN LEN 4 BIT CAO
POP B ;LAY SO HANG TRAM TU STACK
ORL A,B ;KET HOP SO HANG NGAN VA SO HANG TRAM


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