MỤC ĐÍCH: • Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng.. Bài 1: Chương trình điều khiển biến đổ
Trang 1KHOA CÔNG NGHỆ ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP
TÀI LIỆU HƯỚNG DẪN THÍ NGHIỆM - THỰC HÀNH
Trang 2A MỤC ĐÍCH:
• Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng
• Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển
• Khảo sát nguyên lý hoạt động của vi mạch DAC 0808
• Thực hiện việc biến đổi từ tín hiệu số (Digital) sang tín hiệu tương tự (Analog)
B YÊU CẦU:
• 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 DAC 0808
Trang 3Bài 1: Chương trình điều khiển biến đổi D/A thơng qua DAC0808 và thực hiện biến đổi các giá trị lưu trong vi
điều khiển thành điện áp tương tự Giá trị thay đổi liên tục 00H, 01H, 02H, 04H, 08H, 10H, 20H, 40H ,80H, C0H và FFH, mỗi lần cách nhau 2 giây
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm
• Tắt nguồn cấp cho mơ hình thí nghiệm
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J37 (DIGITAL IN) ở khối DACõ
• Dùng máy đo VOM để đo điện áp tại J38 (ANALOG OUT) ở khối DAC
• Dùng dây bus 8 nối J108 (POWER) ở khối DAC với nguồn ±5V, ±12V ở khối nguồn
VI ĐIỀU KHIỂN
A0 A7
SELECT
POWER SW DAC
NGUỒN 5V, 12V 8
8
VOM
1
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD2 AD4 AD6
AD7 AD5 AD3 AD1
P1.7
P1.0
P1.6 P1.4 P1.2
P1.0
P1.2
P1.4
P1.6
XTAL2 18
XTAL1 19
ALE 30
EA 31
PSEN 29
RST 9
P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 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 16 P3.5/T1 15 P2.7/A15 28
P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27
U1
AT89C51 VCC=+5V
C1
33p
C2
33p
X1
12MHz
C3
10uF
R1
10k
+5V
2 4 6 8
1
RP1
10K
MẠCH ĐIỀU KHIỂN DAC (DIGITAL TO ANALOG CONVERTER)
A2
14
A1 5
A3 7 A4 8 A5 9 A6 10 A7 11 A8 12
VREF- 15
U2
DAC0808 VCC=+12V
+88.8
Volts
DIEN AP ANALOG R2
2K7
R3
2K7
D1
5V
RV2
10K
C4
10uF
C5
100nF
R6
2K7
C6
100nF
C7
100nF
C8
100nF
U3
LM741
+88.8
Volts
DIEN AP CHUAN
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển
;***************************************************
;CHUONG TRINH DIEU KHIEN BIEN DOI D/A THONG QUA DAC0808 VA
;HIEN THI GIA TRI ANALOG (DANG DIEN AP) LEN VOLT KE
;***************************************************
;KET NOI: DIGITAL IN -> PORT1
;***************************************************
ORG 00H
MAIN:
MOV DPTR,#MYDATA ;NAP DIA CHI VUNG DU LIEU CAN CHUYEN DOI D/A
MOV R0 ,#11 ;SO BIEN DU LIEU TRONG VUNG DU LIEU
MP1:
Trang 4Bài 1: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi các giá trị lưu trong vi
điều khiển thành điện áp tương tự Giá trị thay đổi liên tục 00H, 01H, 02H, 04H, 08H, 10H, 20H, 40H ,80H, C0H và FFH, mỗi lần cách nhau 2 giây
CLR A
MOVC A , @A+DPTR ;LAY DU LIEU TU VUNG DU LIEU
MOV P1 , A ;XUAT DU LIEU DIGITAL RA DAC0808
ACALL DELAY2S ;TAO THOI GIAN TRE GIUA HAI LAN XUAT DU LIEU
INC DPTR ;CHUAN BI LAY DU LIEU KE TIEP
DJNZ R0 ,MP1 ;KIEM TRA HOAN TAT MOT CHU TRINH XUAT DU LIEU
;****************************************************
DELAY2S: ;CHUONG TRINH CON TAO THOI GIAN TRE 2S
PUSH 00H
MOV R0 ,#200
MOV TMOD ,#01H
LOOP2:
MOV TH0 ,#HIGH(-10000)
MOV TL0 ,#LOW(-10000)
SETB TR0
JNB TF0 ,$
CLR TR0
CLR TF0
DJNZ R0 ,LOOP2
POP 00H
RET
;****************************************************
MYDATA:
DB 00H,01H,02H,04H,08H,10H,20H,40H,80H,0C0H,0FFH
END
DELAY2S
(XEM CTC NÀY TẠI VÍ DỤ A7.3)
NẠP SỐ DỮ LIỆU TRONG VÙNG
(R0) = 11
BEGIN NẠP ĐỊA CHỈ VÙNG DỮ LIỆU (DPTR) = MYDATA
NẠP ĐỊA CHỈ OFFSET BAN ĐẦU
(A) = 0 LẤY DỮ LIỆU (A) = (@A+DPTR) O1
XUẤT DỮ LIỆU RA PORT (P1) = (A) GỌI CTC TẠO TRỄ DELAY2S CHUYỂN SANG DỮ LIỆU KẾ TIẾP (DPTR) = (DPTR) + 1
MAIN:
MP1:
CHƯA HẾT DỮ LIỆU
(R0) ≠ 0
Đ
S VÙNG DỮ LIỆU MYDATA 00H,01H,02H,04H,08H,10H,20H,40H,80H,C0H,FFH
GIÃM BIẾN ĐỀM SỐ DỮ LIỆU (R0) = (R0) - 1
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 3)
Trang 5Bài 2: Chương trình điều khiển biến đổi D/A thơng qua DAC0808 và thực hiện biến đổi các giá trị lưu trong vi
điều khiển thành điện áp tương tự Giá trị thay đổi liên tục từ 00H -> FFH, mỗi lần cách nhau 2 giây và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255)
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm
• Tắt nguồn cấp cho mơ hình thí nghiệm
• Dùng bốn dây bus 8 nối J5 (7SEG7 IN), J6 (7SEG6 IN), J7 (7SEG5 IN) và J8 (7SEG4 IN) ở khối LED 7 đoạn với J4 (7SEG IN MUL) ở khối LED 7 đoạn (ta nối chung các bus này lại với nhau thơng qua khối
mở rộng)
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối LED 7 đoạn
• Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J2 (SEL LED IN) ở khối LED 7 đoạn
• Dùng dây bus 8 nối J65 (PORT2 / A8 A15) ở khối vi điều khiển với J37 (DIGITAL IN) ở khối DACõ
• Dùng máy đo VOM để đo điện áp tại J38 (ANALOG OUT) ở khối DAC
• Dùng dây bus 8 nối J108 (POWER) ở khối DAC với nguồn ±5V, ±12V ở khối nguồn
• Dùng dây bus 8 nối J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD2 AD4 AD6
AD7 AD5 AD3 AD1
A C E G
A C E G
A C E G
A C E G
A C E G
A C E G
A C E G
A C E G
A C E G
P1.6
P1.4
P1.2
P1.0
AD6
AD0 AD2 AD4
P1.7
P2.7
P2.0
P2.6 P2.4 P2.2
P2.0 P2.2 P2.4 P2.6
XTAL2
18
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
U1
AT89C51
C1
33p
C2
33p
X1
12MHz
2 4 6 8
1
RP1
10K
LED7
Q1
A1015 +5V
LED6
Q2
A1015 +5V
R2
1K
R3
1K
R4
56
R5
56
R6
56
R7
56
R8
56
R9
56
R10
56
LED5
Q3
A1015 +5V
LED4
Q4
A1015 +5V
R11
1K
R12
1K
LED3
Q5
A1015 +5V
LED2
Q6
A1015 +5V
R13
1K
R14
1K
LED1
Q7
A1015 +5V
LED0
Q8
A1015 +5V
R15
1K
R16
1K
C3
10uF
R1
10k
+5V
MẠCH ĐIỀU KHIỂN DAC (DIGITAL TO ANALOG CONVERTER)
A2
14
A1 5
A3 7 A4 8 A5 9 A6 10 A7 11 A8 12
U3
DAC0808 VCC=+12V
+88.8
Volts
DIEN AP ANALOG R21
2K7
R20
2K7
D1
5V
RV1
10K
C5
10uF
C?
100nF
R17
2K7
C7
100nF
C4
100nF
C6
100nF
U2
LM741
+88.8
Volts
DIEN AP CHUAN
Trang 6Bài 2: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi các giá trị lưu trong vi
điều khiển thành điện áp tương tự Giá trị thay đổi liên tục từ 00H -> FFH, mỗi lần cách nhau 2 giây và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255)
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển
BEGIN
ĐẶT GIÁ TRỊ SỐ BAN ĐẦU
(A) = 0
O2
MAIN:
MP1:
XUẤT GIÁ TRỊ SỐ RA DAC
(P2) = (A)
LẤY GIÁ TRỊ SỐ ĐỂ GIẢI MÃ - HIỂN THỊ
(R7) = (A)
GỌI CTC GIẢI MÃ GIÁ TRỊ SANG BCD
BIN8TOBCD
GỌI CTC GIẢI MÃ BCD SANG MÃ 7 ĐOẠN
BCD3ADCTO7SEG
GỌI CTC HIỂN THỊ
DELAY_SCAN
LẤY GIÁ TRỊ KẾ TIẾP
(A) = (A) + 1
BIN8TOBCD
(XEM CTC NÀY TẠI PHẦN HƯỚNG
DẪN CỦA VÍ DỤ G)
DISP7SEGMUL8
(XEM CTC NÀY TẠI VÍ DỤ B8 MBI)
DELAYLED
(XEM CTC NÀY TẠI VÍ DỤ B3.1 MBI)
DELAY_SCAN
(XEM CTC NÀY TẠI VÍ DỤ B6 MBO)
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
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Ã (DPTR) = CODE7SEG
RET
NẠP SỐ BCD NÉN CẦN GIẢI MÃ
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Ớ (60H) = (A)
NẠP SỐ BCD NÉN CẦN GIẢI MÃ
GIẢI MÃ DỮ LIỆU (A) = (@A+DPTR)
CẤT MÃ 7 ĐOẠN CỦA BCD HÀNG CHỤC VÀO
Ô NHỚ (61H) = (A)
CẤT MÃ 7 ĐOẠN CỦA KÝ TỰ “ “ VÀO Ô NHỚ
(63H) = FFH
CẤT MÃ 7 ĐOẠN CỦA KÝ TỰ “=“ VÀO Ô NHỚ
(64H) = FFH
CẤT MÃ 7 ĐOẠN CỦA KÝ TỰ “C“ VÀO Ô NHỚ
(65H) = C6H
CẤT MÃ 7 ĐOẠN CỦA KÝ TỰ “A“ VÀO Ô NHỚ
(66H) = 88H
CẤT MÃ 7 ĐOẠN CỦA KÝ TỰ “D“ VÀO Ô NHỚ
(67H) = A1H
XỬ LÝ ĐỂ LẤY GIÁ TRỊ THỨ NHẤT TRONG
SỐ BCD NÉN (4 BIT THẤP)
(A) =
NẠP SỐ BCD NÉN CẦN GIẢI MÃ
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 D/A THONG QUA DAC0808 VA
;HIEN THI GIA TRI ANALOG (DANG DIEN AP) LEN VOLT KE
;HIEN THI GIA TRI DIGITAL (DANG DEC) LEN BO HIEN THI LED 7 DOAN
;***************************************************
;KET NOI: DIGITAL IN -> PORT1
; 8 LED -> PORT0
; SEL LED -> PORT1
; MULTI, 7SEG IN (DP -> A), MULTI INT, CA, ACTIVE = 0
;***************************************************
ORG 00H
MAIN:
CLR A ;GIA TRI DIGITAL BAN DAU ACC = 0
MP1:
MOV P2 , A ;XUAT GIA TRI DIGITAL RA DAC0808 DE CHUYEN DOI D/A
MOV R7 , A ;LAY GIA TRI DIGITAL DE GIAI MA VA HIEN THI
ACALL BIN8TOBCD ;GIAI MA GIA TRI DIGITAL (DANG BIN) SANG MA BCD
ACALL BCD3ADCTO7SEG ;GIAI MA GIA TRI DIGITAL (DANG BCD) SANG MA 7 DOAN
ACALL DELAY_SCAN ;TAO TRE GIUA HAI LAN XUAT GIA TRI VA GOI CTC QUET HIEN THI GIA TRI
INC A ;TANG LEN DE XUAT GIA TRI KE TIEP
;***************************************************
Trang 7Bài 2: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi các giá trị lưu trong vi
điều khiển thành điện áp tương tự Giá trị thay đổi liên tục từ 00H -> FFH, mỗi lần cách nhau 2 giây và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255)
;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
DIV AB ;LAY R7 CHIA CHO 10
PUSH B ;CAT SO HANG DON VI
MOV B ,#10
DIV AB ;LAY KET QUA TREN CHIA TIEP CHO 10
MOV R7 , A ;R7 = TRAM
MOV A , B ;LAY SO HANG CHUC
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 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)
; 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
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
;***************************************************
Trang 8Bài 2: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi các giá trị lưu trong vi
điều khiển thành điện áp tương tự Giá trị thay đổi liên tục từ 00H -> FFH, mỗi lần cách nhau 2 giây và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255)
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
;***************************************************
;CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (3 SO BCD) CO KEM CHUOI "DAC= "
;***************************************************
;LED: ANODE CHUNG, 7 DOAN: DP (MSB) -> A (LSB)
;GIA TRI GIAI MA: 0 -> 9
;***************************************************
;NAME: BCD3ADCTO7SEG
;INPUT: R7,R6 = SO BCD (TRAM - CHUC - DON VI)
;OUTPUT: 67H,66H = CHUOI KY TU "DA"
; 65H,64H = CHUOI KY TU "C="
; 63H = CHUOI KY TU " "
; 62H = MA 7 DOAN (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 (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,#88H ;CAT MA KY TU "A"
MOV 67H,#0A1H ;CAT MA KY TU "D"
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
Trang 9Bài 2: Chương trình điều khiển biến đổi D/A thông qua DAC0808 và thực hiện biến đổi các giá trị lưu trong vi
điều khiển thành điện áp tương tự Giá trị thay đổi liên tục từ 00H -> FFH, mỗi lần cách nhau 2 giây và được hiển thị lên ba LED 7 đoạn (LED2, LED1 và LED0; dưới dạng số thập phân từ 0 -> 255)
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 3)
Trang 10Bài 3: Chương trình điều khiển biến đổi D/A thơng qua DAC0808 và thực hiện tạo sĩng cĩ tần số tự chọn tại
ngõ ra
1 Trình tự tiến hành thí nghiệm:
1.1 Kết nối thiết bị thí nghiệm
• Tắt nguồn cấp cho mơ hình thí nghiệm
• Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J37 (DIGITAL IN) ở khối DACõ
• Dùng máy hiện sĩng (Oscilloscope) để kiểm tra dạng sĩng tại J38 (ANALOG OUT) ở khối DAC
• Dùng dây bus 8 nối J108 (POWER) ở khối DAC với nguồn ±5V, ±12V ở khối nguồn
VI ĐIỀU KHIỂN
A0 A7
SELECT
POWER SW
DAC
NGUỒN 5V, 12V 8
8 1
OSC
1.2 Sơ đồ nguyên lý của hệ thống:
AD7
AD0
AD0 AD2 AD4 AD6
AD7 AD5 AD3 AD1
P1.7
P1.0
P1.6 P1.4 P1.2
P1.0
P1.2
P1.4
P1.6
XTAL2 18
XTAL1 19
ALE 30
EA 31
PSEN 29
RST 9
P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 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 16 P3.5/T1 15 P2.7/A15 28
P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27
U1
AT89C51
VCC=+5V
C1
33p
C2
33p
X1
12MHz
C3
10uF
R1
10k
+5V
2 4 6 8
1
RP1
10K
MẠCH ĐIỀU KHIỂN DAC (DIGITAL TO ANALOG CONVERTER)
A2
14
A1 5
A3 7 A4 8 A5 9 A6 10 A7 11 A8 12
VREF- 15
U2
DAC0808 VCC=+12V
R2
2K7
R3
2K7
D1
5V
RV2
10K
C4
10uF
C5
100nF
R6
2K7
C6
100nF
C7
100nF
C8
100nF
U3
LM741
+88.8
Volts
DIEN AP CHUAN
A
B
DANG TIN HIEU ANALOG
1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển
;***************************************************
;CHUONG TRINH DIEU KHIEN BIEN DOI D/A THONG QUA DAC0808 VA
;UNG DUNG TAO RA TIN HIEU SONG SIN TUAN HOAN (TUONG DOI)
;***************************************************
;KET NOI: DIGITAL IN -> PORT1
;***************************************************
ORG 00H
MAIN:
MOV R0 ,#0 ;BIEN DEM SO MAU DU LIEU
MOV DPTR,#MYDATA ;NAP DIA CHI VUNG MAU DU LIEU