roboforum.ru

Технический форум по робототехнике.

DS1821.....

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

DS1821.....

Сообщение MOHTEP2 » 11 июн 2008, 19:57

Вот код

Код: Выделить всёРазвернуть
$regfile = "m128def.dat"
$crystal = 14745600
$lib "glcdKS108.lib"
Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 1 , Ce2 = 0 , Cd = 4 , Rd = 3 , Reset = 2 , Enable = 5

Setfont Font16x16
'Setfont Font8x8


Config 1wire = Portd.6                                      'DS1821 DQ на PD6

Dim Ar As Byte                                              'Variablenname und Typ festlegen
Dim Temperatur As Integer


Cls                                                         'сброс LCD

Do                                                          'Beginn der Schleife
  1wreset                                                   'Сброс DS1821
  1wwrite &HEE                                              'Старт конвектора температуры
Waitms 100                                                 'задержка 100 милисикунд
  1wreset                                                   'сброс DS1821
  1wwrite &HAA                                              'DS1821 sende Daten an Atmel
Ar = 1wread()                                              'lesen die empfangenen Daten
  1wwrite &H22                                              'stop Temperaturkonvertierung
  Temperatur = Ar                                           'Temperatur ?bergeben
  If Temperatur > 127 Then                                  'wenn negative Temperatur
Lcdat 4 , 1 , "-"                                           'dann "Minus" auf LCD ausgeben
    Temperatur = 256 - Temperatur                           'und negative Temperatur berechnen
  Else                                                      'wenn nicht
Lcdat 4 , 20 , " "                                          'dann Leerzeichen auf LCD ausgeben
  End If
Lcdat 4 , 40 , Temperatur ;                                 'Temperatur ausgeben
Lcdat 4 , 80 , " C "                                        'Ausgabe des Textes auf LCD
  Wait 1                                                    'задержка 1 сеуунда
Loop



End
$include "font8x8.font"
$include "font16x16.font"





Проблема в том что при измерении от +10 до 0 до -10 идет отображение знаков от 1 до 9 с нулем в переди, получается вместо -5 ---> -50 градусов. Подскажите как избавиться от етого ноля когда индикация идет от 0 до 9.... заранее спасибо
MOHTEP2
 

Re: DS1821.....

Сообщение MOHTEP2 » 12 июн 2008, 19:03

Разобрался что при индикации например со 100 на 99 и далее вниз и у нас на десплее получается 990,980,970.... с дисплея не стирается 3 разряд. Или 2 когда с 10 на 9. Решено путем очистки всего дисплее командой CLS....
MOHTEP2
 


Вернуться в Микроконтроллеры

Кто сейчас на конференции

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

cron