A
amitrana3348
Guest
모든 hii
가속도계 오전 mma7260을 만들어 사용을 현재 프로젝트의 작업에
난 모니터 가속도계를 사용하여 원하는 주파수를 찾을 수 진동 아웃
진동
하드웨어가 여기에 사용되는 가속도계 mma7260입니다 PIC18F452
컴파일러는 PIC가있다 mikroC 프로0 mma7260의 오프셋 아웃 전압이다 일반적으로 1.65 볼트
난 감지하고 싶어요 1.75 볼트, 어떻게 위에 여러 번갑니다
주파수를주지 않습니다 1.55 또는 아래의 나에게 볼트에서 1 초
진동의 아래 코드와 함께 제는 의견 자체가 아니에요,
어디로 잘못되어 가고, 나는 광고 전환 속도를 최대가 선택한
와 나는 결과를 계산하지만 사용하여 만들어 낸 PIC18 타이머를 위해
주파수를 보여주는 대신에 액정 연속 1에 RD5_bit LCD_RS sbit;
에 RD4_bit LCD_EN sbit;
에 RB4_bit LCD_D4 sbit;
에 RB3_bit LCD_D5 sbit;
sbit LCD_D6 RB2_bit에;
에 RB1_bit LCD_D7 sbit;
에 TRISD5_bit LCD_RS_Direction sbit;
에 TRISD4_bit LCD_EN_Direction sbit;
에 TRISB4_bit LCD_D4_Direction sbit;
에 TRISB3_bit LCD_D5_Direction sbit;
에 TRISB2_bit LCD_D6_Direction sbit;
에 TRISB1_bit LCD_D7_Direction sbit;
/ / 끝 LCD 모듈 연결
서명되지 않은 긴 getadcvalue (서명 번째 문자)
무효 메인 (무효
(
int 값;
서명되지 않은 번째 문자 DISP 정보 [15]은, 디지털 방식 중] [15;
서명되지 않은 번째 문자 카운트, 주파수 [5];
int는 ACC;
TRISA = 0xFF가; / / 입력을 포트
ADCON1 = 0x81;
Lcd_Init은 (); / / 액정 초기화
Lcd_Cmd (_LCD_CLEAR); / / 지우기 디스플레이
Lcd_Cmd (_LCD_CURSOR_OFF); / / 커서 해제
lcd_out (1,1, "안녕하세요");
Delay_ms (2000);
Lcd_Cmd (_LCD_CLEAR);
) 동안 (1
(
다시 :
T0CON = 0x06; / / timer0, 16 비트 모드, prescalar fosc / 4 / 128
TMR0H = 0x67; / / 몇 가지 초기 카운트 카운트 2 1 개까지에게
TMR0L = 0x69; / / 몇 가지 초기 카운트
T0CON.TMR0ON = 1;
루프를하는 동안 (INTCON.TMR0IF은 == 0) 반복 / / 때까지 타이머 오버플로 (1 초)
(
2 값 = getadcvalue (2); / 입 / ADC를 얻을에서 ADC의 값을 읽고, Vref는과 3.3V이기 때문에과 3.3V 최대 mma7260 오입니다 / P는
값 = 값은 / 31; / / 1.6Volts다고, 변환 값을 얻을에서 전압을, 그것은 16이 표시됩니다
Delay_ms (10);
IntToStr은 (가치, DISP); / /이 DISP 여기 참조를 위해 우리가 그냥 볼트의 전압을 나타냅니다에 1.2로 12
Lcd_Out (2,1, DISP); / /
/ / Delay_ms (10);
값 | 값 <14) / / 체크 wheather 경우 (| 17 값> 1.4V 즉보다 14입니다> 이하 17 수단을 1.7Volt
(
카운트 ; / /면 어느 정도 증가 한 번 카운터
ByteToStr (카운트, 주파수);
Lcd_out (1,1, 주파수);
가치 동안 (값> 17 | | <14) / / 값 기다리는까지입니다 이상 17 또는 14 이하
()
)
다른 사람
Lcd_Out (1,1, "Cle"); / /면 아무것도 그러한 의미에서 일어나는 "을 누른 다음 디스플레이 Cle"을 선택 취소
)
T0CON.TMR0ON = 0; / / 후 타이머를 해제 1 초
INTCON.TMR0IF = 0; / / 타이머 인터럽트 비활성화
고토 다시; / / 다시 고토 초기 단계
)
)
서명되지 않은 긴 getadcvalue (서명 메기 채널)
(
서명되지 않은 int b;
서명되지 않은 int C;
)면 (채널 == 0
(ADCON0 = 0x81![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
)면 (채널 == 1
(ADCON0 = 0x89![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
)면 (채널 == 2
(ADCON0 = 0x91![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Delay_ms (5);
ADCON0.GO = 1;
(동안 ADCON0.DONE == 1)
()
b = ADRESH <<8;
C = b | ADRESL;
반환 C;
)
가속도계 오전 mma7260을 만들어 사용을 현재 프로젝트의 작업에
난 모니터 가속도계를 사용하여 원하는 주파수를 찾을 수 진동 아웃
진동
하드웨어가 여기에 사용되는 가속도계 mma7260입니다 PIC18F452
컴파일러는 PIC가있다 mikroC 프로0 mma7260의 오프셋 아웃 전압이다 일반적으로 1.65 볼트
난 감지하고 싶어요 1.75 볼트, 어떻게 위에 여러 번갑니다
주파수를주지 않습니다 1.55 또는 아래의 나에게 볼트에서 1 초
진동의 아래 코드와 함께 제는 의견 자체가 아니에요,
어디로 잘못되어 가고, 나는 광고 전환 속도를 최대가 선택한
와 나는 결과를 계산하지만 사용하여 만들어 낸 PIC18 타이머를 위해
주파수를 보여주는 대신에 액정 연속 1에 RD5_bit LCD_RS sbit;
에 RD4_bit LCD_EN sbit;
에 RB4_bit LCD_D4 sbit;
에 RB3_bit LCD_D5 sbit;
sbit LCD_D6 RB2_bit에;
에 RB1_bit LCD_D7 sbit;
에 TRISD5_bit LCD_RS_Direction sbit;
에 TRISD4_bit LCD_EN_Direction sbit;
에 TRISB4_bit LCD_D4_Direction sbit;
에 TRISB3_bit LCD_D5_Direction sbit;
에 TRISB2_bit LCD_D6_Direction sbit;
에 TRISB1_bit LCD_D7_Direction sbit;
/ / 끝 LCD 모듈 연결
서명되지 않은 긴 getadcvalue (서명 번째 문자)
(
int 값;
서명되지 않은 번째 문자 DISP 정보 [15]은, 디지털 방식 중] [15;
서명되지 않은 번째 문자 카운트, 주파수 [5];
int는 ACC;
TRISA = 0xFF가; / / 입력을 포트
ADCON1 = 0x81;
Lcd_Init은 (); / / 액정 초기화
Lcd_Cmd (_LCD_CLEAR); / / 지우기 디스플레이
Lcd_Cmd (_LCD_CURSOR_OFF); / / 커서 해제
lcd_out (1,1, "안녕하세요");
Delay_ms (2000);
Lcd_Cmd (_LCD_CLEAR);
) 동안 (1
(
다시 :
T0CON = 0x06; / / timer0, 16 비트 모드, prescalar fosc / 4 / 128
TMR0H = 0x67; / / 몇 가지 초기 카운트 카운트 2 1 개까지에게
TMR0L = 0x69; / / 몇 가지 초기 카운트
T0CON.TMR0ON = 1;
루프를하는 동안 (INTCON.TMR0IF은 == 0) 반복 / / 때까지 타이머 오버플로 (1 초)
(
2 값 = getadcvalue (2); / 입 / ADC를 얻을에서 ADC의 값을 읽고, Vref는과 3.3V이기 때문에과 3.3V 최대 mma7260 오입니다 / P는
값 = 값은 / 31; / / 1.6Volts다고, 변환 값을 얻을에서 전압을, 그것은 16이 표시됩니다
Delay_ms (10);
IntToStr은 (가치, DISP); / /이 DISP 여기 참조를 위해 우리가 그냥 볼트의 전압을 나타냅니다에 1.2로 12
Lcd_Out (2,1, DISP); / /
/ / Delay_ms (10);
값 | 값 <14) / / 체크 wheather 경우 (| 17 값> 1.4V 즉보다 14입니다> 이하 17 수단을 1.7Volt
(
카운트 ; / /면 어느 정도 증가 한 번 카운터
ByteToStr (카운트, 주파수);
Lcd_out (1,1, 주파수);
가치 동안 (값> 17 | | <14) / / 값 기다리는까지입니다 이상 17 또는 14 이하
()
)
다른 사람
Lcd_Out (1,1, "Cle"); / /면 아무것도 그러한 의미에서 일어나는 "을 누른 다음 디스플레이 Cle"을 선택 취소
)
T0CON.TMR0ON = 0; / / 후 타이머를 해제 1 초
INTCON.TMR0IF = 0; / / 타이머 인터럽트 비활성화
고토 다시; / / 다시 고토 초기 단계
)
)
서명되지 않은 긴 getadcvalue (서명 메기 채널)
(
서명되지 않은 int b;
서명되지 않은 int C;
)면 (채널 == 0
(ADCON0 = 0x81
)면 (채널 == 1
(ADCON0 = 0x89
)면 (채널 == 2
(ADCON0 = 0x91
Delay_ms (5);
ADCON0.GO = 1;
(동안 ADCON0.DONE == 1)
()
b = ADRESH <<8;
C = b | ADRESL;
반환 C;
)