PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụ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

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 31-10-2012, 11:42 AM   #3
nguyenducdktd13
Nhập môn đệ tử
 
Tham gia ngày: Aug 2011
Bài gửi: 7
:
Trích:
Nguyên văn bởi binhcddt09b View Post
em có code này viết cho cảm biến siêu âm,nhưng giá trị đọc về từ cảm biến nó chỉ giữ nguyên chứ ko chuyển đổi j khi em di chuyển cảm biến, các bác giúp em sử nó với.mà mỗi đoạn code em coi thì nó lại có một cách chia giá trị khác nhau,em ko biết nên chia ntn nên em lấy trong datasheet luôn.
#include <16f887.h>
#FUSES,nowdt,noprotect,nolvp,put
#use delay(clock=20000000)
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)
#byte porta=0x5
#byte portc=0x7
#byte portd=0x8
#byte portb=0x6
#byte porte=0x9
#bit c3=portc.3
#include <lcd.c>
float kc=0;

#INT_CCP1
void ccp1_isr()
{
set_timer1(0); //Cai gia tri cho Timer1
setup_ccp1(CCP_CAPTURE_FE); //chuyen sang do canh xuong
kc=(get_timer1())/58;

}

void hienthi(int16 )
{
lcd_gotoxy(1,1);
printf(lcd_putc,"CACH VAT:%f",kc);
lcd_gotoxy(14,1);
Printf(LCD_putc,"cm");
lcd_gotoxy(2,2);
lcd_putc("ROBOT TU HANH");
delay_ms(30);
}
void main()
{
LCD_init();
setup_timer_1(T1_INTERNAL|T1_DIV_BY_2);
setup_ccp1(CCP_CAPTURE_RE);
enable_interrupts(INT_CCP1); // Cho phép ng?t khi CCP1 có tín hi?u
enable_interrupts(GLOBAL);
//---hien thi LCD---

while(TRUE) {
set_tris_c(0x04);
c3 = 1; //trigger
delay_us(10);
c3 = 0;
hienthi(kc);
delay_ms(50);
}
}
cho cai code nay toi lam mach chay on hien thi ra led7seg


//nguyen van duc
//KS tu dong hoa
//cong thuc tinh thoi gian T= (65536-VALUE)*(4/Fosc)*P

#include <16F877A.h>
#include <def_877a.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#use fast_io(d)//Dùng cái này thì trong chu+o+ng trình khi dùng các le^.nh io nhu+ output_low() , . . . nó se~ set chi? vo+'i 1 le^.nh ,
#use fast_io(b)
#use fast_io(a)
int16 thoigiantruyen,CCP1value;
int16 CCP1Oldvalue;
BOOLEAN CCP1Captured;
int8 hangdonvi,hangchuc,hangtram;
int16 ketqua;
int8 i,k;

#INT_CCP1
void ngat_ccp1()
{
set_timer1(0);
}

#INT_CCP2
void ngat_ccp2()
{
CCP1Value =CCP_2;
CCP_2=0;
CCP1Captured = TRUE;
//j=0;
}
#INT_TIMER0
void interrup_timer0()
{i++;
set_timer0(8);
if(i==5){
output_d(hangtram);
output_high(pin_d5);
}
if(i==10){
output_d(hangchuc);
output_high(pin_d6);}
if(i==15){
output_d(hangdonvi);
output_high(pin_d7);}
if(i>=16){i=0;}
}
void triger()
{
output_high(PIN_A0);
delay_us(12);
output_low(PIN_A0);
}
void init_ccp()
{
setup_ccp1(CCP_capture_RE);//do xung canh len R
setup_ccp2(CCP_capture_FE);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_4); //tang mot gia tri timer1 mat 4/5uS
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_32);
CCP1value=0;
CCP1Oldvalue=0;
CCP1Captured=TRUE;
enable_interrupts(INT_CCP1);
enable_interrupts(INT_CCP2);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
}
void Main()
{
init_ccp();
set_tris_d(0x00);
set_tris_b(0x00);
set_tris_c(0xff); //ff xac lap cac chan port C la chan input
set_tris_a(0x00);
set_timer0(8);
while(true){
delay_ms(100);
triger();
if(CCP1Captured){
thoigiantruyen=CCP1value*0.8;
ketqua=thoigiantruyen/58;
CCP1Captured=FALSE;

if(ketqua>999){hangdonvi=0;hangchuc=0;hangtram=0;}
else{
hangdonvi=ketqua%10;
hangchuc=(ketqua/10)%10;
hangtram=(ketqua/100);
}

}

if(ketqua<175){output_high(PIN_A1);
delay_ms(500);
k=0;}
k++;
if(k>=5){
output_low(PIN_A1);
delay_ms(500);
k=0;
}
}
}
nguyenducdktd13 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à 03:26 AM.


Đượ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