PIC Vietnam

Go Back   PIC Vietnam > Mua bán & Trao đổi > Trao đổi ngoài luồng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trao đổi ngoài luồng Các loại vi điều khiển khác, tản mạn của các anh chàng và cô nàng kỹ thuật ...

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 14-06-2008, 11:46 AM   #1
conchoxu
Nhập môn đệ tử
 
Tham gia ngày: Apr 2008
Bài gửi: 4
:
Cool Adc 0804 Out ?? Hay Do Chương Trình Sai ????

Mình thiết kế một mạch dùg biến trỏ thong qua adc0804 xuất bit vào port1 để điều khiển stepping motor loại đơn cực 6 day ,1.8 độ/12v. 5,5 ohm.và dung ngắt ngoài để đếm encoder 100xung/vong , ngắt ngoài 1 thì nhận biết adc0804 đã convert xong chưa , ngat timer dẻ xuat toc do ra 3 7segment…
vấn đề này xinh là để text mạch adc 0804 này mình mov p1,#0, và mỗi lần reset at89c51 thì thấy 8 led đầu ra của adc sang tức mạch này hoạt động. 8 led này mình thiết kế vào mạch chỉ nhằm bít xem adc có hoạt động không thôi còn mục đích chính là đua giá trị này vào hàm delay của dong co.

nhung khi nạp chuong trình mình viét duoi day vao thì khong thay led nào sang nua. Tuc port1 lun o muc cao mac du co reset vat hay doi bien trỏ… còn 3 led 7 doan thuc hien viec quet led thi chi sang nhap nhay mo thoi……….dong co thi dung yên….. mach dong co nay minh da text khi khong co su can thiep cua chuong trinh lay gia tri tu adc và ham delay la (-5000) thi chay tot…… nhung on ap 7812 thi rat nong de co chung phut la stop dong co lien ……mình chi con kha nang nua la do chuong trinh minh viet co loi gi chang ?? cac bạn có thể chỉ ra điểm sai của chuơng trinh mình viết này không ??/ mỗi dòng lệnh mình viết khá rõ lý giải ,,,, đành nhờ cao thủ chỉ giáo vậy ……..


;----- Chuong trinh dieu khien & hien thi toc do encoder-------------

Org 0000h
Ljmp Main
Org 0003h ; ngat dem xung encoder
Inc R0 ; bien dem xung
Mov A, R0
Cjne A,#100,finish ; neu du 100 xung/vong
INC 60H ; thi luu so vong vao R1
Mov R0, #0 ; va xoa bien dem xung R0cho lan dem sau
finish:
nop
RETI
Org 0013H ; ngat tu ADC bao da chuyen xong tu (voltage to digital)
Clr P3.5 ; cho phep vi dieu khien doc tu ADC (chan p3.5 dieu khien chan "READ" cua 0804
Mov A,p1

Setb P3.5 ; set cho lan doc tu adc sau.
Clr P3.6 ;
Setb P3.6 ; tao xung tu 0-->1 de cho phep "WR" from analogue to digital (dieu khien chan Write of 0804)
RETI

Org 001BH ; ngat bao thoi diem hien toc do ra 7segment
ljmp Hien_thi ; ngat time 1 bao led---

Main:

Mov R0, #0
Mov R1, #0
Mov TMOD,#11H ; khai bao su dung timer 1 va 0
Mov IE,#10001101B ; khai bao cho phep su dung 3 ngat ( INT0,INT1,TIMER1)
Setb IT0
Setb IT1
Clr P3.6
Setb P3.6 ;--------------- Khai bao cho phep convert voltage to digital lan dau tien

Mov TH1,#HIGH(-50000) ; nap gia tri dau cho ngat timer 1
Mov TL1,#LOW(-50000) ;***********
SetB TR1 ;-------------------------cho phep timer 1 hoat dong
;****************************************
;/////; **---cho motor hoat dong---**//
Kiem_tra:
Mov A,P1 ; kiem tra bien tro qua trung gian ic ADC va P1
Cjne A,#0FFH,Begin ; bien tro khong o min thi cho motor hoat dong
Mov P2,#0 ;-------------neu de o min thi stop moto and wait
; a new value; dùng port 2 de kich opto ..-->motor
Sjmp Kiem_tra
Begin:
Mov R5,#4 ; 4 xung de kich du mot chu trinh kich 4 cuon day .....vv...
Mov R6,#0 ; thay doi thu tu cac cuon day kich...
Mov DPTR,#buoc_quay
Chay_tiep:
Mov A,R6
Movc A,@A+DPTR
Mov P2, A
Inc R6
Call Delay_chay
Djnz R5,Chay_tiep ; neu kich chua du chu trinh thi Jmp chay_tiep
Sjmp Kiem_tra ; khi kich du chu trình 4 cuon dây thì Jmp to Kiem_tra

Delay_chay:

;***** neu nap #63H vào Th0 và tl0 thì motor quay min..
;***** neu nap #0F0H vào th0 và tl0 thì motor quay max
;***** do do sau khi check motor not " min" thì
;****** kiem tra xem #63h<= P1<= #0F0h ???

Mov A,P1
Clr C ; xoa co nho ve "Zero"
Mov R3, #63h ; dua value min "#63h " vao R3de so sanh voi gia tri tu Port 1
Subb A,R3
Jc Next ;if #63H thi nhay den label Next
Mov R0,#0F0H ; tiep tu so sanh voi chuan "max" #0F0H"
Mov A,P1
Subb A,R3
Jc Inner ; P1< #0F0h thi nhay den label "Inner"
Mov A,#0F0H ; P1>= max thì chon max chuan lam gia tri cho ham delay
Sjmp Delay1
Next:
Mov A,#63H ; neu P1 <#63h thi chon TH0= #63H lam gia tri delay
Sjmp Delay1
Inner:
Mov A,P1 ; neu #63h <= P1 <= #0F0h thi lay P1 lam gia tri ham delay

; ********* ham delay cho motor***********
Delay1:
Mov TH0,A
Mov TL0,A
Setb TR0
Jnb TF0,$
Clr TF0
Clr TR0
RET
buoc_quay: DB 01h,02h,04h,08h

;************************ phan hien thi ra led *******************************
Hien_thi:
Clr TR1 ; stop timer 1
Clr TF1 ; xoa co tran timer 1
Mov TH1,#HIGH(-50000) ;---nap lai gia tri cho timer 1
Mov TL1,#LOW(-50000) ;----nap lai gia tri cho timer 1
SETB TR1 ;---------------------tiep tuc cho timer 1 hoat dong
Inc R7 ; bien R7 de kiem soat lap 20 lan cho du 1s
Mov A,R7 ; kiem tra xem da du 1s chua ??

Cjne A,#20,Nothing ; thoat khoi ngat neu chua du 1s
Mov R7,#0 ; neu du 1s thi R7 cho lan sau
Mov DPTR,#ma_led ; thuc hien viec giai ma xuat led
Mov B,#60
Mov A, 60H ; dua so vong quay sau 1s vao A
Mov 60H, #0 ; dua bien dem vong ve "zero" cho lan dem sau/
Mul AB ; so vong /phut
Xch A,B
Swap A
Orl A,B
Mov B,#10
Div AB
Xch A,B
Movc A,@A+DPTR
Mov P0, A ; ; hien thi hang don vi
Clr P3.4 ; p3.4 noi voi cua baze cua transistor kich hang don vi
Acall Small_d ; goi tre de quan sat led
Setb P3.4 ; tat led don vi
Xch A,B
Mov B,#10
Div AB
Movc A,@A+DPTR
Mov P0,A ;**************
Clr P3.0 ;----On led hàng tram
Acall Small_d
Setb P3.0 ;----Off led hang tram
Mov A,B
Movc A,@A+DPTR
Mov P0,A ;------hien thi hang chuc
Clr P3.1 ;------on led hang chuc
Acall Small_d
Setb P3.1 ; off led hàng chuc
Sjmp Nothing ; hien thi xong thi nhay den "nothing de thoat khoi ngat timer 1
Small_d:
Mov R4, #255
Djnz R4, $
Ret

ma_led: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
Nothing:
nop
RETI
End
Hình Kèm Theo
File Type: jpg mach dong co.jpg (96.0 KB, 85 lần tải)
conchoxu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 11:19 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam