Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

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

Ответ
 
Опции темы Опции просмотра
Старый 23.11.2016, 02:07   #26
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Tm1637 подключение к pic

Разобрался вообщем с ним. Прикрепляю код сохраняем его в файлик TM1637_pic.h.
Для среды microc

Код:
sbit Soft_I2C_Scl at RA2_bit;
sbit Soft_I2C_Sda at RA3_bit;//DIO

sbit Soft_I2C_Scl_Direction at TRISA2_bit;
sbit Soft_I2C_Sda_Direction at TRISA3_bit;
unsigned char keydate;
int brightness;
char brightness_value;

const unsigned char digitss [] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00};//0~9,A,b,C,d,E,F,"-"," "
static unsigned char a,b ;
static unsigned char LEDS[3] ; //

void I2CStart (void) // 1637 start
{
Soft_I2C_Scl = 1;
Soft_I2C_Sda = 1;
Delay_us (2);
Soft_I2C_Sda = 0;
}
void I2Cask (void) // 1637 Answer
{
Soft_I2C_Scl = 0;
Delay_us (5); // After the falling edge of the eighth clock delay 5us, ACK signals the beginning of judgment
while (Soft_I2C_Scl);
Soft_I2C_Scl = 1;
Delay_us (2);
Soft_I2C_Scl = 0;
}

void I2CStop (void) // 1637 Stop
{
Soft_I2C_Scl = 0;
Delay_us (2);
Soft_I2C_Sda = 0;
Delay_us (2);
Soft_I2C_Scl = 1;
Delay_us (2);
Soft_I2C_Sda = 1;
}

void I2CWrByte (unsigned char oneByte) // write a byte
{
unsigned char i;
  for (i = 0; i <8; i ++)
  {
  Soft_I2C_Scl = 0;
  if (oneByte & 0x01) // low front
  {Soft_I2C_Sda = 1;}
  else {Soft_I2C_Sda = 0;}
   Delay_us (3);
   oneByte = oneByte >> 1;
   Soft_I2C_Scl = 1;
   Delay_us (3);
  }
}

void SmgDisplay(void) // Write display register
{
I2CStart();
I2CWrByte(0x40); //40H address is automatically incremented by 1 mode,44H fixed address mode
I2Cask();
I2CStop();
I2CStart();
I2CWrByte(0xc0); // Set the first address
I2Cask();

    I2CWrByte(0x3f); // первый разряд
    I2Cask();
    I2CWrByte(0x06); // второй разряд и двоеточие
    I2Cask();
    I2CWrByte(0x5b); // третий разряд
    I2Cask();
    I2CWrByte(0x4f); // четвертый разряд у проводов
    I2Cask();


I2CStop();
I2CStart();
I2CWrByte(brightness); // Open display, maximum brightness
I2Cask();
I2CStop();
}


void Display_TM1637 (int tm){
unsigned int dop;
unsigned int i ;
unsigned char tempLEDS[3];

dop=tm%100;
tempLEDS[3]=digitss [tm/1000];// Получаем разряд    тут 0
tempLEDS[2]=digitss [tm%1000/100];// Получаем разряд и засовываю его в tempLEDS например 623 тут будет 6
tempLEDS[1]=digitss [dop/10]; // Получаем разряд                                               тут 2
tempLEDS[0]=digitss [tm%10]; // Получаем разряд                                              тут 3


 /*
 for(i = 3; i >= 0; i--)
{
digitss[3-i] = number%10;
number /= 10;
}  */

LEDS[0]= tempLEDS[0];
LEDS[1]= tempLEDS[1];
LEDS[2]= tempLEDS[2];
LEDS[3]= tempLEDS[3];

/*
do
{
  for(i=3; i>=0; i--)
    {
      if (LEDS[i]==0){
      LEDS[i] = 17;
      }

    while((LEDS[i] == 0) && (i != 0))//зайдет в цикл do пока вот этибудут равны чему написано
    }
  }
*/


I2CStart();
  I2CWrByte(0x40); //40H address is automatically incremented by 1 mode,44H fixed address mode
  I2Cask();
  I2CStop();
  I2CStart();
  I2CWrByte(0xc0); // Set the first address
  I2Cask();

    I2CWrByte(LEDS[3]); // первый разряд
    I2Cask();
    I2CWrByte(LEDS[2]); // второй разряд и двоеточие
    I2Cask();
    I2CWrByte(LEDS[1]); // третий разряд
    I2Cask();
    I2CWrByte(LEDS[0]); // четвертый разряд у проводов
    I2Cask();
    I2CStop();

}

Для новичков:
в своем проекте пишем в самом вверху #include <TM1637_pic.h>
и справа его добавляем в header files.

Далее в своем коде в мэйне перед тем как зайти в бесконечный цикл пишем:
brightness_value=7; //значение яркости от 2 до 7 (7 самое яркое)
brightness = 0x88 + brightness_value;
SmgDisplay();

и далее в бесконечном цикле например можно написать:
Display_TM1637 (ЧИСЛО);
вместо числа пишем любое от 0 до 9999
либо пишем вашу переменную которую хотите выводить на экранчик.

Код сырой и буду доделывать, но лучше пусть будет уже в сети такой чем никакого. Ибо я не смог найти готового кода под пик.



Последний раз редактировалось Zombie47; 23.11.2016 в 02:23.
Zombie47 вне форума   Ответить с цитированием
Старый 23.11.2016, 13:32   #27
tsb58
Senior Member
 
Аватар для tsb58
 
Регистрация: 04.11.2008
Адрес: Харьков
Сообщений: 365
Вес репутации: 1041/53
tsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud of
По умолчанию Re: Tm1637 подключение к pic

Цитата:
Сообщение от Zombie47 Посмотреть сообщение
Разобрался вообщем с ним. Прикрепляю код сохраняем его в файлик TM1637_pic.h.
...
Код сырой и буду доделывать, но лучше пусть будет уже в сети такой чем никакого. Ибо я не смог найти готового кода под пик.
Спасибо за пример кода. Тоже присматривался к этому индикатору, но пока руки не дошли ним заняться. Может пригодиться для чего-нибудь...
tsb58 вне форума   Ответить с цитированием
Старый 23.11.2016, 19:26   #28
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Tm1637 подключение к pic

Цитата:
Сообщение от tsb58 Посмотреть сообщение
Спасибо за пример кода. Тоже присматривался к этому индикатору, но пока руки не дошли ним заняться. Может пригодиться для чего-нибудь...
основная идея была в том чтобы минимум проводов. дешевый вывод переменных. например надо увидеть чему равна переменная, библиотеку подключил прописал вывод и смотришь. На кнопочку еще завязал чтобы листать переменные=) вообщем дешевый дебаг
Zombie47 вне форума   Ответить с цитированием
Старый 23.11.2016, 19:35   #29
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 40
Сообщений: 3,246
Вес репутации: 3684/114
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Tm1637 подключение к pic

Цитата:
Сообщение от Zombie47 Посмотреть сообщение
основная идея была в том чтобы минимум проводов. дешевый вывод переменных. например надо увидеть чему равна переменная, библиотеку подключил прописал вывод и смотришь. На кнопочку еще завязал чтобы листать переменные=) вообщем дешевый дебаг
Да ладно! Это дешевый? Это геморный!
Дешевым еще можно назвать вывод на COM порт компа, или через переходник USB-UART. К тому же еще и удобнее, и больше данных влезет чем пучеглазить в 4 цифры на дисплее.
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 23.11.2016, 19:44   #30
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Tm1637 подключение к pic

Цитата:
Сообщение от IceS Посмотреть сообщение
Да ладно! Это дешевый? Это геморный!
Дешевым еще можно назвать вывод на COM порт компа, или через переходник USB-UART. К тому же еще и удобнее, и больше данных влезет чем пучеглазить в 4 цифры на дисплее.
Ты не поверишь у меня так и было сделано, и это полный геморой! )
я к машине это все подключил, каждый раз подрубать ноут это жесть =) а еще зарядку не держит ноут.
Zombie47 вне форума   Ответить с цитированием
Старый 23.11.2016, 19:47   #31
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 40
Сообщений: 3,246
Вес репутации: 3684/114
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
По умолчанию Re: Tm1637 подключение к pic

Цитата:
Сообщение от Zombie47 Посмотреть сообщение
Ты не поверишь у меня так и было сделано, и это полный геморой! )
я к машине это все подключил, каждый раз подрубать ноут это жесть =) а еще зарядку не держит ноут.
А нах отлаживать девайс уже прошитый стационарно? Его нужно отлаживать пока пишешь прогу, в этом случае комп находится рядом.

PS А в чем проблема питать ноут от БП? Я его от батареи редко питаю, в почти всегда на БП сидит.

PPS
- я не люблю кошек.
- просто ты не умеешь их готовить!
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 23.11.2016, 19:52   #32
Zombie47
Senior Member
 
Регистрация: 05.10.2015
Возраст: 32
Сообщений: 137
Вес репутации: 91/0
Zombie47 will become famous soon enough
По умолчанию Re: Tm1637 подключение к pic

Цитата:
Сообщение от IceS Посмотреть сообщение
А нах отлаживать девайс уже прошитый стационарно? Его нужно отлаживать пока пишешь прогу, в этом случае комп находится рядом.

PS А в чем проблема питать ноут от БП? Я его от батареи редко питаю, в почти всегда на БП сидит.

PPS
- я не люблю кошек.
- просто ты не умеешь их готовить!
Да да я его питаю от бп, вот токо и она сдохла, теперь я подключаю инвертер на 220 вольт в прикуриватель, потом зарядку на 220 вольт, иногда разъем задеваешь зарядки в ноуте и он вырубается.
А как отладить прогу если датчик давления масла например на авто стоит. На столе все ок все отладил все показывает, а на машине получилось что давление импульсами на датчике идет или помехи или еще что то, вообщем скачет туда сюда.
А на комп отправлять еще один провод надо. А провод датчика температуры выходит с другой стороны. Еще кстати питание нужно устройству.
Zombie47 вне форума   Ответить с цитированием
Старый 24.11.2016, 17:19   #33
IceS
Super Moderator
 
Регистрация: 01.03.2007
Адрес: St. Petersburg
Возраст: 40
Сообщений: 3,246
Вес репутации: 3684/114
IceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond reputeIceS has a reputation beyond repute
Отправить сообщение для IceS с помощью ICQ
Talking Re: Tm1637 подключение к pic

Цитата:
Сообщение от Zombie47 Посмотреть сообщение
Да да я его питаю от бп, вот токо и она сдохла, теперь я подключаю инвертер на 220 вольт в прикуриватель, потом зарядку на 220 вольт, иногда разъем задеваешь зарядки в ноуте и он вырубается.
А как отладить прогу если датчик давления масла например на авто стоит. На столе все ок все отладил все показывает, а на машине получилось что давление импульсами на датчике идет или помехи или еще что то, вообщем скачет туда сюда.
А на комп отправлять еще один провод надо. А провод датчика температуры выходит с другой стороны. Еще кстати питание нужно устройству.
Да уж, криворукее решения по замене аккумулятора ноутбука на рабочий - сложно придумать :-).
5 баллов!
__________________
- Готово, мастер !!!
- Что готово ???
- Сломал ...
IceS вне форума   Ответить с цитированием
Старый 24.11.2016, 19:53   #34
tsb58
Senior Member
 
Аватар для tsb58
 
Регистрация: 04.11.2008
Адрес: Харьков
Сообщений: 365
Вес репутации: 1041/53
tsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud oftsb58 has much to be proud of
По умолчанию Re: Tm1637 подключение к pic

Цитата:
Сообщение от IceS Посмотреть сообщение
Да уж, криворукее решения ... сложно придумать
Ну, это, наверное, из серии извечного брюзжания, что "дети" всё делают не так, как "отцы"... Но это не имеет прямого отношения к теме "Tm1637 подключение к pic".
tsb58 вне форума   Ответить с цитированием
Старый 23.04.2017, 23:07   #35
Sun525
Senior Member
 
Регистрация: 10.05.2008
Адрес: Murmansk
Возраст: 39
Сообщений: 414
Вес репутации: 398/48
Sun525 is just really niceSun525 is just really niceSun525 is just really niceSun525 is just really nice
По умолчанию Re: Tm1637 подключение к pic

Столкнулся тоже с таким индикатором. Подключал к STM8. Оказалось виноваты конденсаторы на линии CLK и DIO по 10nF, заваливали передний фронт.
Во вложении рабочий проект для STM8.
Вложения
Тип файла: rar stm.rar (372.6 Кб, 11 просмотров)
Sun525 вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение usb клавиатуры к PIC Izumi-kun Вопросы начинающих 22 02.01.2013 15:16
Подключение LCD от Nokia 1100 к PIC tem-ya Продукция MICROCHIP 24 30.09.2011 21:19
подключение PIC к клавиатуре 4*3 с выводом на 4 сем. индикатора sergxxx Продукция MICROCHIP 3 10.06.2008 19:29
Подключение ЖКИ к PIC по трехпроводной линии ANN Продукция MICROCHIP 8 30.08.2007 11:27
подключение HT PIC V7.85 k MPLAB6.13 mtf Продукция MICROCHIP 2 27.07.2007 13:10


Часовой пояс GMT +3, время: 06:29.


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