TỰA BÀ I: CHƯƠNGTRÌNH ĐIỀU KHIỂN ADC0809 CHUYỂN ĐỔI DỮ LIỆU KÊNH

Một phần của tài liệu điều khiển Led đơn (Trang 62 - 68)

ỨNG DỤNG HỆ THỐN GI ĐIỀU KHIỂN ADC DAC

TỰA BÀ I: CHƯƠNGTRÌNH ĐIỀU KHIỂN ADC0809 CHUYỂN ĐỔI DỮ LIỆU KÊNH

THỨ 0 – HIỂN THỊ KẾT QUẢ BẰNG SỐ THẬP PHÂN

Begin

Chọn kênh thứ 0, tạo xung ALE, Star

End Đọc kết quả Chờ chuyển đổi xong, giải

ALE bit p0.3 start bit p0.4 org 0000h

mov dptr,#ma7doan

mov 20h,#88h ;nap ma chu A mov 21h,#0a1h ;nap ma chu d mov 22h,#0c6h ;nap ma chu C mov 23h,#0c0h ;luu thu tu kenh so 0 mov 24h,#0ffh

mov 25h,#0ffh

main: lcall ctcd_adc ;goi chtr con chuyen doi du lieu lcall gma_hex_bcd ;goi chtrinh con chuyen so hex sang ma 7 doan ljmp main ;nhay ve chuyen doi tro lai

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con chuyen doi du lieu analog sang so ket qua luu trong A

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ctcd_adc: mov control,#00000000B ;goi ra port 3

setb ale cho ALE=1 nop ;delay 1 it thoi gian

nop

setb start ;start = 1 nop

nop clr ale clr start

lcall delayhthi ;goi chtr con delay co hien thi mov a,inadc ;doc du lieu sau khi chuyen doi ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chtrinh con chuyen so hex thanh so BCD va sau do thi chuyen

;ma BCD thanh ma 7 doan de hien thi so thap phan

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx gma_hex_bcd:

mov b,#10 ;chuyen so hex sang ma BCD div ab

mov 10h,b ;luu hang don vi BCD mov b,#10

div ab ;(a) chua so hang tram, (b) chua hang chuc movc a,@a+dptr

mov 25h,a ;cat so hang tram mov a,b movc a,@a+dptr mov 26h,a mov a,10h movc a,@a+dptr mov 27h,a ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delayhthi: mov 7eh,#1

pqn: mov 7fh,#30

djnz 7fh,delpqn djnz 7eh,pqn ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx hthi: mov r0,#27h mov a,#01111111b

hth: mov led7,@r0 ;lay du lieu mov quet,a

lcall delay10

mov quet,#0ffh ; tat het de chong lem dec r0 setb c rrc a jc hth ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay10: mov 7ch,#50h djnz 7ch,$ ret

;khai bao ma 7 doan tu so '0' den so '9'

ma7doan: db 0C0h,0F9h,0A4h,0B0h,099h,092h,082h,0F8h db 080h,090h,088h,083h,0c6h,0a1h,086h,08eh end

4. Thực hiện các bước giống như các bài chuẩn cho đến khi mạch chạy đúng yêu cầu.

Chú ý: nếu muốn làm mạch đo nhiệt độ chỉ cần xử lý phần cảm biến và khuếch đại tín hiệu cho tương thích với độ phân giải của ADC và dùng hệ thống vi điều khiển và dùng chương trình này là có thể thực hiện được quá trình đo. Nếu muốn khống che điều khiển thì thêm chương trình và ngõ ra điều khiển.

III. Bài tập ứng dụng:

1. Hãy viết chương trình điều khiển ADC chuyển đổi dữ liệu 2 kênh thứ 0 và thứ 1 – hiển thị bằng số thập phân.

I. Mục đích yêu cầu: biết được cách viết chương trình điều khiển ADC 0809 chuyển đổi lần lượt từng kênh sang dữ liệu số và kết hợp với các chương trình giải mã, hiển thị kết quả bằng số thập phân.

II. Trình tự thực hiện:

1. Kết nối mạch theo trình tự :

- Gắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul nạp của hệ thống 2 . 2. Khởi động phần mềm, mở File mới và đặt tên file. Vd: bai4_3.asm

3. Viết chương trình với tên file vừa đặt :

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;Chuong trinh dieu khien ADC 0809 chuyen doi tin hieu kenh lan luot 8 kenh

;dung he thong 1: vi dieu khien 8951 ket noi voi khoi ADC0809 va 8 led 7 doan ;nhap du lieu tu 8 kenh ngo vao lien tuc

;hien thi tren 8 led 7 doan so nhi phan la ket qua sau khi chuyen doi

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx led7 equ p1 ;dieu khien cac doan a,b,c,...

quet equ p2 ;dieu khien quet transistor inadc equ p3 ;nhap du lieu tu adc control equ p0 ;dieu khien adc ALE bit p0.3

start bit p0.4 org 0000h

mov dptr,#ma7doan

mov 20h,#88h ;nap ma chu A mov 21h,#0a1h ;nap ma chu d mov 22h,#0c6h ;nap ma chu C

NGÀY : SỐ TIẾT : LỚP : MSSV : THỰC HÀNH VI ĐIỀU KHIỂN BÀI SỐ : 4-3

TỰA BÀI : CHƯƠNG TRÌNH ĐIỀU KHIỂN ADC0809 CHUYỂN ĐỔI DỮ LIỆU 8

mov 24h,#0ffh mov 25h,#0ffh

mov r6,#000 ;bien dem thu tu kenh can chuyen maina: mov r5,#200 ;so lan lap lai cho moi kenh

main: lcall ctcd_adc ;goi chtr con chuyen doi du lieu

lcall gma_hex_bcd ;goi chtrinh con chuyen so hex sang ma 7 doan djnz r5,main

inc r6 ;khoa gia tri R7 chi trong vung[0->7] mov a,r6

anl a,#7 mov r6,a

ljmp maina ;nhay ve chuyen doi tro lai

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con chuyen doi du lieu analog sang so ket qua luu trong A

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ctcd_adc: mov control,r6 ;goi ma chon kenh ra port 3

setb ale ;cho ALE=1

nop ;delay 1 it thoi gian nop

setb start ;start = 1 nop

nop clr ale clr start

lcall delayhthi ;goi chtr con delay co hien thi mov a,inadc ;doc du lieu sau khi chuyen doi ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chtrinh con chuyen so hex thanh so BCD va sau do thi chuyen

;ma BCD thanh ma 7 doan de hien thi so thap phan

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx gma_hex_bcd:

mov b,#10 ;chuyen so hex sang ma BCD div ab

mov 10h,b ;luu hang don vi BCD mov b,#10

div ab ;(a) chua so hang tram, (b) chua hang chuc movc a,@a+dptr

mov 25h,a ;cat so hang tram mov a,b movc a,@a+dptr mov 26h,a mov a,10h movc a,@a+dptr mov 27h,a

mov a,r6 ;giai ma thu tu kenh tuong ung movc a,@a+dptr

mov 23h,a ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delayhthi: mov 7eh,#1

pqn: mov 7fh,#30

delpqn: lcall hthi ;goi chuong trinh con hien thi djnz 7fh,delpqn djnz 7eh,pqn ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx hthi: mov r0,#27h mov a,#01111111b

hth: mov led7,@r0 ;lay du lieu mov quet,a

lcall delay10

mov quet,#0ffh ; tat het de chong lem dec r0 setb c rrc a jc hth ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay10: mov 7ch,#50h djnz 7ch,$ ret

;khai bao ma 7 doan tu so '0' den so '9'

ma7doan: db 0C0h,0F9h,0A4h,0B0h,099h,092h,082h,0F8h db 080h,090h,088h,083h,0c6h,0a1h,086h,08eh end

4. Thực hiện các bước giống như các bài chuẩn cho đến khi mạch chạy đúng yêu cầu. III. Bài tập ứng dụng:

I. Mục đích yêu cầu: biết cách viết chương trình điều khiển DAC 0808 chuyển đổi dữ liệu số sang tín hiệu và kết hợp với các chương trình giải mã, hiển thị kết quả bằng số thập phân.

II. Trình tự thực hiện: 1. Giải thuật:

2. Kết nối mạch theo trình tự :

- Gắn vi điều khiển vào đế nạp 40 pin ( socket ) ở modul nạp của hệ thống 2 . 3. Khởi động phần mềm, mở File mới và đặt tên file.

4. Viết chương trình với tên file vừa đặt :

;Chuong trinh dieu khien DAC 0808 chuyen doi tin hieu so ;thanh tin hieu tuong tu

220 NGÀY : SỐ TIẾT : LỚP : MSSV : THỰC HÀNH VI ĐIỀU KHIỂN BÀI SỐ : 4

Một phần của tài liệu điều khiển Led đơn (Trang 62 - 68)

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

(96 trang)
w