I am doing a computer engineering module at uni and have an assignement to produce a program on thrsim11 software to display my student number 1 digit at a time on a seven segment display. I have written a basic test program to do this but I am having trouble getting the numbers to display correctly. I know the hexpat data is correct as I have tested it but when i run the program all the segments on the LED light up and then turn off after the loop has finished. Would someone look over my code and tell me if I am going about this the right way or am I totally off course. Any advice or help would be greatly appreciated
Cheers guys !! sorry for the bad formatting
prb equ $1004 Peripheral port B ddrb equ $1006 Data direction register B prc equ $1003 Peripheral port C ddrc equ $1007 Data direction register C delay equ $bd4 value for 1 second time delay program equ $00a0 start address of program reset equ $fffe reset vector eod equ $23 end of data org $0000 hexpat fcb $3f,$03 hexpat 0-9 fcb $5b,$4f fcb $66,$6d fcb $7d,$07 fcb $7f,$6f studnumber fcc '0085755#' org program start ldaa #$ff all port B line output staa ddrb set port B lines ldaa #$01 pc0 line output staa ddrc set port C lines ldy #studnumber point index register Y to first student number digit next ldab 00,y load first digit into Accum B cmpb #eod compare EOD marker beq stop if EOD stop program andb $0f convert to binary ldx #hexpat point indx reg X to hexpat abx add offset ie add accum B to index reg X ldaa 00,x get hexpat into accum a staa prb output display word ldaa #$00 get enable word staa prc enable the display ldab #$01 counter for loop 2 loop2 ldx #delay counter for 1 second delay loop1 dex decrement counter 1 bne loop1 decb decrement counter 2 bne loop2 display (1 X 10 sec) ldaa #$01 get disable word staa prc disable display iny increment index Y to point to next digit bra next repeat process until EOD stop jmp stop end of program org reset fdb start set reset vector to start
Edited by WingedPanther, 27 May 2008 - 08:22 AM.
add code blocks


Sign In
Create Account

Back to top









