Например TDA7294

Форум РадиоКот • Просмотр темы - АЦП на PIC16f877
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб апр 27, 2024 15:52:44

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: АЦП на PIC16f877
СообщениеДобавлено: Ср авг 02, 2023 01:23:32 
Родился

Зарегистрирован: Ср авг 02, 2023 01:14:49
Сообщений: 1
Рейтинг сообщения: 0
Здравствуйте, учусь работе с pic16f877. Сейчас пытаюсь сделать на нем АЦП с выводом данных на дисплей 16х2 (возможно будет дисплей больше). В симуляции Proteus вход читает напряжение и на выходе есть правильное число 5В=1024 единиц, но не выводится текстовая строка функции Show(). Так же есть проблема на стенде. Загрузил код в ПИК, подаю питание 5В с БП, но на дисплее мусор. Не понимаю почему мусор - пайку проверил - все отлично, пин контрастности дисплея на 0В, никаких замыканий, МК прошился без ошибок и прошел проверку. :(

файлы проекта ниже
https://disk.yandex.ru/d/AoUpxvmp4boqAA

код main.c
Спойлер
Код:
#include<pic.h>
#include "string.h"
#define delay for(i=0;i<=1000;i++)
#define rs RC0
#define rw RC1
#define e RC2

__CONFIG(0x3D7A);

void adc();
void lcd_int();
void cmd(unsigned char a);
void dat(unsigned char b);
void show(unsigned char *s);

int i;

void main()
{
   TRISB=TRISC=0; //Порт B и порт C выхода LCD
   TRISA0=1; //RA0 - вход
   TRISA1=1; //RA1 - вход
   lcd_int(); //Инициализация LCD
   show("ADC Value :");
   while(1) {
   cmd(0x8C);
   adc();
   }
}

void lcd_int()
{
   cmd(0x38);
   cmd(0x0c);
   cmd(0x06);
   cmd(0x80);
}

void cmd(unsigned char a)
{
   PORTB=a;
   rs=0;
   rw=0;
   e=1;
   delay;
   e=0;
}

void dat(unsigned char b)
{
   PORTB=b;
   rs=1;
   rw=0;
   e=1;
   delay;
   e=0;
}

void show(unsigned char *s) //текстовая строка к результату
{
   while(*s) {
   dat(*s++);
   }
}

void adc()
{
   unsigned int adcval;
   ADCON1=0b11000000;
   ADCON0=0b10000101;
   while(ADGO);
   adcval=((ADRESH<<8)|(ADRESL)); //результат
   adcval=(adcval);
   dat((adcval/1000)+48);
   dat(((adcval/100)%10)+48);
   dat(((adcval/10)%10)+48);
   dat((adcval%10)+48);
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: АЦП на PIC16f877
СообщениеДобавлено: Ср авг 02, 2023 07:59:46 
Вымогатель припоя
Аватар пользователя

Карма: 4
Рейтинг сообщений: 14
Зарегистрирован: Чт мар 05, 2009 05:31:16
Сообщений: 600
Откуда: г. Кемерово
Рейтинг сообщения: 0
Дык, на дисплей то вообще, что то выводится ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: АЦП на PIC16f877
СообщениеДобавлено: Ср авг 02, 2023 08:26:06 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
.
Изображение


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: АЦП на PIC16f877
СообщениеДобавлено: Ср авг 02, 2023 11:02:23 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1329
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10548
Рейтинг сообщения: 0
забавно, плюс-минус на дисплее перепутаны, но работает :)

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: АЦП на PIC16f877
СообщениеДобавлено: Ср авг 02, 2023 11:32:13 
Сверлит текстолит когтями

Карма: 20
Рейтинг сообщений: 302
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1226
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
... но на дисплее мусор ...

LCD - медленное устройство. Проверьте время в инициализации и время загрузки данных. #define delay for(i=0;i<=1000;i++) не привязано к выбранной тактовой частоте. Найдите способ переписать его другим способом (либо компилятором: delay?, либо с относительным расчетом чрез F clock/crystal). Напр. hd66712u.pdf, стр. 431: Initializing by Instruction, Figure 29 Initializing Flow of 8-Bit Interface есть моменты с delay, с которыми нужно точно исполнить (напр. Wait for more than 4.1 ms, 100 ms).

Это то, что вижу на первый взгляд. Если откуда-то скопировали код, возьмите для первого теста clock/кварц и др. 1:1.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: АЦП на PIC16f877
СообщениеДобавлено: Ср авг 02, 2023 15:58:17 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: -14
Рейтинг сообщений: 103
Зарегистрирован: Вт янв 26, 2021 22:33:21
Сообщений: 2323
Рейтинг сообщения: 0
MCLR наверное лучше через сопрот на плюс, и кондёр на землю. Чё бы сброс был на время переходных процессов включения питания.

_________________
Не спрашивай по ком звонит колокол, он звонит по тебе !


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y