Selamün aleyküm.
indirme sayfası : http://code.google.com/p/jallib/downloads/list (http://code.google.com/p/jallib/downloads/list)
son eklenen derleme : http://code.google.com/p/jallib/downloads/detail?name=jallib-pack-bee-jalv24q1-20131229.zip&can=2&q= (http://code.google.com/p/jallib/downloads/detail?name=jallib-pack-bee-jalv24q1-20131229.zip&can=2&q=)
son ekleneni denemedim bendeki stabil sürüm 2.4q
Daha önce bende arıyordum.Format ile oluyormuş şöyle bir uygulama yazdım ve dahasıda var:
örnek kod:
include 16f877 -- target PICmicro
pragma target clock 4_000_000 -- oscillator frequency
pragma target OSC hs
pragma target LVP disabled
pragma target WDT disabled
enable_digital_io() -- make all pins digital I/O
include format ---------------- FORMAT KÜTÜPHANESİNİ EKLİYORUZ !!!
const byte LCD_ROWS = 2 -- LCD with 2 lines
const byte LCD_CHARS = 16 -- and 16 characters per line
--
alias lcd_en is pin_d2 -- data trigger
alias lcd_rs is pin_d3 -- command/data select.
pin_d2_direction = output
pin_d3_direction = output
--
alias lcd_d4 is pin_d4
alias lcd_d5 is pin_d5
alias lcd_d6 is pin_d6
alias lcd_d7 is pin_d7
--
pin_d4_direction = output
pin_d5_direction = output
pin_d6_direction = output
pin_d7_direction = output
include lcd_hd44780_4
lcd_init()
const bit ADC_HIGH_RESOLUTION = high
const byte ADC_NCHANNEL = 1
const byte ADC_NVREF = ADC_NO_EXT_VREF
include adc
adc_init()
procedure panelvoltaji is
var float voltaj
var word oku
const byte panelvolt[] ="PanelV:"
oku = adc_read (0)
_usec_delay(100)
voltaj = (oku * 0.205078125)
lcd_cursor_position(2,0)
print_string(lcd , panelvolt)
lcd_cursor_position(2,7)
format_sdword_dec(lcd,voltaj,4,1) --------- 4 Digit veri yazdıracağımızı belirtiyoruz ve 1(geriden) karakter kaydırıp noktayı konduruyoruz :) Mutlu son:)
end procedure
forever loop
panelvoltaji
end loop
Son yayımlanan sürümde örnekler çok ben burayada aktarayım.Yazdığım kod çalışmaktadır.
buda 877a için hazırlanmış örnek kodu.
CASE counter OF
0 : block
-- hex byte output
format_byte_hex(lcd, 0xEA)
counter = counter + 1
end block
1 : block
-- hex word output
format_word_hex(lcd, 0xFD22) -- VIC20 reset vector ;-)
counter = 10
end block
10 : block
-- desimal çıktısı ' 1.2'
format_byte_dec(lcd, 12, 3, 1)
counter = counter + 1
end block
11 : block
-- desimal çıktısı '0.12'
format_byte_dec(lcd, 12, 3, 2)
counter = counter + 1
end block
12 : block
-- desimal çıktısı ' 12'
format_byte_dec(lcd, 12, 3, 0)
counter = counter + 1
end block
13 : block
-- desimal çıktısı '12.0'
format_byte_dec(lcd, 120, 3, 1)
counter = 20
end block
20 : block
-- desimal çıktısı '-12'
format_sbyte_dec(lcd, -12, 3, 0)
counter = counter + 1
end block
21 : block
-- desimal çıktısı '-1.2'
format_sbyte_dec(lcd, -12, 3, 1)
counter = counter + 1
end block
22 : block
-- desimal çıktısı '-12'
format_sbyte_dec(lcd, -12, 3, 2)
counter = 30
end block
30 : block
-- desimal çıktısı ' 0.012'
format_word_dec(lcd, 12, 6, 3)
counter = counter + 1
end block
31 : block
-- desimal çıktısı ' 1.2'
format_word_dec(lcd, 12, 6, 1)
counter = counter + 1
end block
32 : block
-- desimal çıktısı ' 12'
format_word_dec(lcd, 12, 6, 0)
counter = 40
end block
40 : block
-- desimal çıktısı ' -0.012'
format_sword_dec(lcd, -12, 6, 3)
counter = 50 -- (no more examples in this group - you should get it by now...)
end block
50 : block
-- desimal çıktısı '23:55'
format_time_hm(lcd, 23, 55) -- 5 minutes to midnight
counter = counter + 1
end block
51 : block
-- desimal çıktısı '23:56'
format_time_hm_word(lcd, 23 * 60 + 56) -- 4 minutes to midnight
counter = 99
end block
OTHERWISE block
lcd = "E" lcd = "n" lcd = "d"
counter = 0
end block
END CASE
buda uygulamanın fotosu, fotoyu çamaşır makinesi ile çektim kimse kusura bakmasın :) :
(http://u1312.hizliresim.com/1j/x/w0fpj.jpg)
kolay gele.