Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Электроника - это просто Теоретические и практические вопросы для начинающих электронщиков.

 
Опции темы
Непрочитано 18.02.2010, 13:43  
vituha40
Частый гость
 
Регистрация: 06.01.2010
Сообщений: 26
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
vituha40 на пути к лучшему
По умолчанию Вольт омметр microc avr

помогите дописАть код. мне надо чтобы на меге8 вход РС0 мерял напряжение а РС1 мерил сопротивление
по шкале делителя от 5 вольт (омы до 1000)

/************************************************** ***
This program was produced by the
CodeWizardAVR V1.25.8 Free Evaluation
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com




Chip type : ATmega8
Program type : Application
Clock frequency : 1,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
************************************************** ***/

#include ‹mega8.h›
#include ‹delay.h›

#define ADC_VREF_TYPE 0xC0
#define VREF 2210

#define D1 PORTD=0x80 | 0b00001110
#define D2 PORTD=0x80 | 0b00001101
#define D3 PORTD=0x80 | 0b00001011
#define D4 PORTD=0x80 | 0b00000111

//Äëÿ ñ ÎÀ
/*
#define D1 PORTD=0x80 | 0b00000001
#define D2 PORTD=0x80 | 0b00000010
#define D3 PORTD=0x80 | 0b00000100
#define D4 PORTD=0x80 | 0b00001000
*/

unsigned int k1;
unsigned long volt;
unsigned char buf[4];

unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

void digit_off(void)
{
//PORTB=0x00;
//DDRB=0x00;
//#asm("NOP");
DDRD=0x00;
}

void digit_on(void)
{
//PORTB=0x00;
//DDRB=0xFF;
//#asm("NOP");
DDRD=0x0F;
delay_ms(5);
digit_off();
}

void read_data(void)
{
buf[0]=volt/1000%10;
buf[1]=((volt/100)%10);
buf[2]=((volt/10)%10);
}

void main(void)
{

unsigned char k2=10;
unsigned int inp=0;
unsigned char digits[]=
{
0b00111111,0b00000110,0b01011011,//0 1 2
0b01001111,0b01100110,0b01101101,//3 4 5
0b01111101,0b00000111,0b01111111,//6 7 8
0b01101111,0b00111110,0b01110111 //9 U A
};

//Äëÿ ñ ÎÀ
/*
unsigned char digits[]=
{
0b11000000,0b11111001,0b10100100,//0 1 2
0b10110000,0b10011001,0b10010010,//3 4 5
0b10000010,0b11111000,0b10000000,//6 7 8
0b10010000,0b11000001,0b10001000, //9 U A
0b01111111
};
*/

PORTB=0x00;
DDRB=0xFF;

// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=P State0=P
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
// State7=P State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0
PORTD=0x80;
DDRD=0x0F;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: Int., cap. on AREF
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;

while (1)
{ if (PIND.7==0) {k1=1; k2=11; inp=1;} else {k1=4; k2=10; inp=0;};
volt=(read_adc(inp));
volt=(volt*VREF/2095)*k1;
if (volt›=1000)
{
read_data();
digit_off();
D3;
PORTB=digits[buf[0]];
digit_on();
D4;
// PORTB=digits[buf[1]] & 0b01111111;//Äëÿ ñ ÎÀ
PORTB=digits[buf[1]] ^ 0b10000000;;
PINB.7=1;
digit_on();
D1;
PORTB=digits[buf[2]];
digit_on();
D2;
PORTB=digits[k2];
digit_on();
} else
{
read_data();
digit_off();
D3;
// PORTB=digits[buf[0]] & 0b01111111;//Äëÿ ñ ÎÀ
PORTB=digits[buf[1]] ^ 0b10000000;;
digit_on();
D4;
PORTB=digits[buf[1]];
digit_on();
D1;
PORTB=digits[buf[2]];
digit_on();
D2;
PORTB=digits[k2];
digit_on();
}
};
}



шкала напряжений 10 ом 4v
100 om 1.54v
1kom 0.2v
и при достижении максимального напряжения на рс1 меги то на PD4 выводился сигнал
1 кгц на пищалку
вот так.
помогите пжлста реализовать это
Миниатюры:
Нажмите на изображение для увеличения
Название: m8voltmetr.jpg
Просмотров: 597
Размер:	21.1 Кб
ID:	4717  
Реклама:

Последний раз редактировалось vituha40; 18.02.2010 в 17:28.
vituha40 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Soft_UART_Init в microC AVR ??? ut3mk Микроконтроллеры, АЦП, память и т.д 0 13.08.2010 22:33
[Решено] Преобразователь -110 вольт в ~220 вольт. sh2cer Производственное оборудование 4 18.02.2010 15:28
Ищу схему на омметр цифровой Щ34 Fuchik Поиск схем. Делимся схемами 0 21.05.2009 17:05
Надо с 12 вольт сделать 40 вольт!! AlexorLife Электроника средств транспорта 8 17.04.2009 21:59
microC PRO for AVR kassiopay Микроконтроллеры, АЦП, память и т.д 0 27.03.2009 16:59


Часовой пояс GMT +4, время: 21:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot