Find out how much you can save with solar!

Zip Code
Categories
 
Latest Articles
Solar Power Savings
Posted: 2009-10-05
Besides the roof systems, there are cost-effective solar projects for getting your hot water, heating your pool and warming your home. Let’s take a look at four common installations.
Solar Financing Makes Alternative Energy Affordable
Posted: 2009-10-04
Not all homeowners can afford $20,000-60,000 for home solar power. Even those who have the money, or sufficient home equity, may not want to use their savings or leverage their credit to buy solar.
Solar Power Installation Breakdown
Posted: 2009-10-03
There is a great deal of misinformation circulating about the cost of installing a solar power system, specifically a roof-mounted photovoltaic (PV) one.
 
Latest Tweets
worldsolarnews
Solarnews: AEG Purchases Majority Stake In skytron energy: AEG Power has acquired a majority stake in skytron ene... http://bit.ly/bd8Fhi
 
enviroart
#environment #solar Managing Project Management | Wind Power http://bit.ly/cVfb94
Refining the Odyssey 2 Battery Monitor Program
Topic: Batteries   Posted:2004-05-09
Printer Friendly: Print

In this article I wrote a voltage monitor for the battery hooked up to my PV system that runs on an Odyssey 2 computer. Well, it was not the most efficient; however it did work fine. Here is a modification of the program:

    cpu     8048            ; asl needs this to know how to assemble
    org     0410h           ; start of ROM, but bypass interrupts, etc.
    start   call    00f1h           ; BIOS reset
    call    011ch           ; BIOS display off
    mov     r0,#10h         ; starting character pointer for VDC 
    mov     r2,#01h         ; 02 characters
    mov     r3,#28h         ; x position
    mov     r4,#70h         ; y position
    mov     r6,#03h         ; color start with grey
    mov     r1,#00h
    mov     a,#0ffh         ; location of memory mapped input
    movp    a,@a
    add     a,#58h          ; a is 0 at 10.06 volts 
    mov     r7,a   
    inc     r7              ; r7 will dec once before loop  
    clr     a               ; start a at 0
    clr     c               ; start with no carry set
    vstep   add     a,#06h
    da      a
    jc      wrap
    vstepi  djnz    r7,vstep
    jmp     disp
    wrap    inc     r1
    jmp     vstepi
    disp    mov     r7,a
    mov     r5,#01h         ; always tens place =1
    call    03eah           ; print character BIOS routine
    mov     a,r1
    mov     r5,a
    call    03eah           ; print character BIOS routine
    mov     r5,#27h
    call    03eah           ; print character BIOS routine
    mov     a,r7
    swap    a
    anl     a,#0fh
    mov     r5,a
    call    03eah           ; print character BIOS routine
    mov     a,r7
    anl     a,#0fh
    mov     r5,a
    call    03eah           ; print character BIOS routine
    mov     r5,#0ch
    call    03eah           ; print character BIOS routine
    mov     r5,#24h
    call    03eah           ; print character BIOS routine
    mov     r5,#17h
    call    03eah           ; print character BIOS routine
    mov     r5,#0Eh
    call    03eah           ; print character BIOS routine
    mov     r5,#14h
    call    03eah           ; print character BIOS routine
    mov     r5,#19h
    call    03eah           ; print character BIOS routine
    call    0127h
    mov     r1,#0ffh
    lpo     mov     r7,#0ffh
    lpi     djnz    r7,lpi
    djnz    r1,lpo
    call    011ch           ; BIOS display off
    jmp     start
    org     04ffh           ; these are not read when live 
    db      0a8h            ; 10.06 they are just used when
    ;       db      0b7h            ; 10.96 using the emulator to 
    ;       db      0b8h            ; 11.02 test
    ;       db      0d9h            ; 13.00
  

I used the Decimal Adjust Accumulator command to do some BCD math. To test some of the values, I modified the gendat.pl code:

    $i=10;
    $c=167;
    while($i<14.6){
    printf "%i %2.2f\n",$c,$i;
    $i=$i+.06;
    $c++;
    }
  

This will list the decimal values for various voltages on my PV system:

    divine@trasho o2 $ perl gendatm.pl
    167 10.00
    168 10.06
    169 10.12
    170 10.18
    171 10.24
    172 10.30
    .
    .
    .
    240 14.38
    241 14.44
    242 14.50
    243 14.56
    divine@trasho o2 $ 
  

Here is the binary for the ROM image. I hope you enjoy this new version as much as I did. I would like to say that one important point about technology reuse is that the mental concentration needed to make code efficient on an old microcontroller like this is like nothing else. You really have to think clearly to make this stuff work. Nothing is hidden. I remember working on my homebrew computer back in 1990 and realizing this as well. At the time, this was programming binary into a front panel to get the homebrew to talk to my laptop via the parallel port. It was exhilarating. I felt like I was cranking through a single roll of paper, pure, screaming, bits on, bits off, flashing, looping, buzzing through the ALU of the Z-80. :-)