Форум по микроконтроллерам: Снятие данных с датчика и отображение на LCD1602 - Форум по микроконтроллерам

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Снятие данных с датчика и отображение на LCD1602

#1 Пользователь офлайн   Fazinur 

  • Прибывший
  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 22 Сентябрь 17

Отправлено 22 Сентябрь 2017 - 15:50

Всем привет. Недавно по учебе получил задание. Нужно снять данные с датчиков по каналу 4-20мА и вывести параметры на дисплей 1602. Сам занимаюсь электроникой(усилители собираю, сварочные инвертора ремонтирую) но программировать особо не умею. Раньше на AutoIT программировал, там язык типа бейсика но СИ для меня сложновато понять, так что поймите новичка.

Для реализации данного проекта я выбрал PIC16F876A. Так как много линий и есть АЦП. В вашем форуме я нашел библиотеки под 1602, автору библиотеки огромное спасибо. Пока что пытаюсь оцифрованные данные с АЦП передать уже в строчном виде в функцию которая выполняет отображение информации. Возможно кому то мой код покажется просто адом, но это мой первый код на мк. А задержки поставил что бы понять как работает код.
Вопрос:
Как мне оцифрованные данные с запятой передать в строчном виде в функцию? Если не поленитесь код написать то напишите комментарии что новичку понятнее было.

Ссылки на библиотеки http://forum.chipmk....0%BB%D1%8F-lcd/

#include <htc.h>
#include "lcd.h"

__CONFIG ( WDTDIS & UNPROTECT & LVPDIS );// Биты конфиг. контролера

void delay(unsigned int t);

void main (void)
{
char str[10];
CMCON = 0x07;
lcd_init();
lcd_clear();
lcd_gotoxy(0,1);
lcd_puts("OK");
delay(50000);
TRISA=0b00011111;
ADCON1=0b00000010;
ADCON0=0b00000001;
ADIF = 0b0;
ADIE = 0b1;
PEIE = 0b1;
GIE = 0b1;
delay(10000);
str[5]="check";
lcd_gotoxy(0,4);
lcd_puts(str);
while(1)
{
}
}


void delay(unsigned int t) //t=1 = 17мкс
{
while (t-->0);
}

-2

#2 Пользователь офлайн   Alex 

  • Убиватель МК
  • PipPipPipPip
  • Группа: Пользователи
  • Сообщений: 1 891
  • Регистрация: 15 Февраль 11

Отправлено 24 Сентябрь 2017 - 09:40

Самый простой, но прожорливый способ - sprintf
Либо методом деления с остатком разбиваем число на два и по-очереди (через запятую) выводим.
Не говорите что мне делать, и я не скажу куда Вам идти !
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей