Úprava programu (přidat desetinou tečku na 3 místném led dis
Napsal: 22 led 2013, 20:32
Dobrý den,
Potřeboval bych poradit s tímto projektem na odkazu:
Jde o teploměr s LM75 a 3x sedmi segmentovým led displejem, kde je desetinná tečka řízena hw ne sw. Tedy napevno připojena se zemí. Já chci ale použít 3 místný led displej se společnou anodou a potřebuju tam tu tečku přidat do programu, jinak by se mi zobrazovala všude. Poradil by někdo jak na to? Je tam *.jal soubor a v něm:
Díky všem...
Potřeboval bych poradit s tímto projektem na odkazu:
Kód: Vybrat vše
http://www.andremiller.net/content/lm75-temperature-sensor-with-7-segment-display-outputJde o teploměr s LM75 a 3x sedmi segmentovým led displejem, kde je desetinná tečka řízena hw ne sw. Tedy napevno připojena se zemí. Já chci ale použít 3 místný led displej se společnou anodou a potřebuju tam tu tečku přidat do programu, jinak by se mi zobrazovala všude. Poradil by někdo jak na to? Je tam *.jal soubor a v něm:
include f628_4i
include jlib
include lm75
var volatile byte CMCON at 0x1F = 0x07 -- disable port a analog functions
pin_a0_direction = output
pin_a1_direction = output
pin_a2_direction = output
-- LED ports
pin_b0_direction = output
pin_b1_direction = output
pin_b2_direction = output
pin_b3_direction = output
pin_b4_direction = output
pin_b5_direction = output
pin_b6_direction = output
pin_b7_direction = output
var byte disp_val = 0
var byte disp_dec = 0
procedure disp_write is begin
var byte dnum1 = disp_val / 10
var byte dnum2 = disp_val % 10
var byte number = seven_from_digit( dnum1 )
port_b = number ^ 0x0FF
pin_a0 = low
delay_1ms (1)
pin_a0 = high
number = seven_from_digit( dnum2 )
port_b = number ^ 0x0FF
pin_a1 = low
delay_1ms (1)
pin_a1 = high
number = seven_from_digit( disp_dec )
port_b = number ^ 0x0FF
pin_a2 = low
delay_1ms (1)
pin_a2 = high
end procedure
procedure write_display (byte in bignum) is begin
var byte dnum1 = bignum / 100
var byte dnum2 = (bignum % 100 ) / 10
var byte dnum3 = bignum % 10
var byte number = seven_from_digit( dnum1 )
port_b = number ^ 0x0FF
pin_a0 = low
delay_1ms (1)
pin_a0 = high
number = seven_from_digit( dnum2 )
port_b = number ^ 0x0FF
pin_a1 = low
delay_1ms (1)
pin_a1 = high
number = seven_from_digit( dnum3 )
port_b = number ^ 0x0FF
pin_a2 = low
delay_1ms (1)
pin_a2 = high
end procedure
var byte val_to_print = 123
var bit r_freezing
var byte r_degrees
var byte r_tenth
forever loop
for 255 loop
disp_write ()
end loop
-- disp_val = 12
-- disp_dec = 3
for 50 loop
disp_write ()
end loop
lm75_read_fdt (0, r_freezing, r_degrees, r_tenth)
disp_val = r_degrees
disp_dec = r_tenth
disp_write ()
end loop
Díky všem...