; ********************************************************************************* Wait_RAM_ROM: ;---------------------------------------------------------------------------------- ldi Temp0, 20 *2 ; Wait: ~2 sec Loop_Wait_RAM_ROM: rcall Wait_50mS dec Temp0 brne Loop_Wait_RAM_ROM ret ; ********************************************************************************* Line_ROM: ; ROM ; --------------------------------------------------------------------------------- ldi ZH, high(Family_Code) ; ldi ZL, low(Family_Code) ; ldi Temp0, 4 rjmp Line_RxM ; ********************************************************************************* Line_RAM: ; RAM ; --------------------------------------------------------------------------------- ldi ZH, high(OW_Temp_LSB) ; ldi ZL, low(OW_Temp_LSB) ; ldi Temp0, 5 ; ********************************************************************************* Line_RxM: ; --------------------------------------------------------------------------------- ldi Temp1, LCD_Line1 ; setze LCD auf Line1 rcall Slave_LCE_Commando ; sendet einen Befehl an das LCD ;------------------------------------------- rcall Loop_Line_SRxM ldi Temp1, LCD_Line2 ; setze LCD auf Line1 rcall Slave_LCE_Commando ; sendet einen Befehl an das LCD ;------------------------------------------- ldi Temp0, 5 rcall Loop_Line_SRxM ret ; ********************************************************************************* Loop_Line_SRxM: ;------------------------------------------- ld Temp1, Z+ ; Erhalte Daten aus der Datenfolge rcall Byte2Hex ; dec Temp0 brne Loop_Line_SRxM ret ; ********************************************************************************* Byte2Hex: ; Binary --> ASCII (2 digit) ;---------------------------------------------------------------------------------- push Temp1 ; steicher Temp1 andi Temp1, 0b11110000 ; oberes Nibble swap Temp1 ; hhhh_llll <=> llll_hhhh rcall Hex2Asci ; in ASCII umwandeln pop Temp1 ; hole Temp1 zurück andi Temp1, 0b00001111 ; unteres Nibble Hex2Asci: ; in ASCII umwandeln subi Temp1, -'0' ; addiere '0' cpi Temp1, '9' +1 ; teste auf grösser als '9' brlo Label_A ; subi Temp1, -7 ; addiere zu ASCI "A" .."F" Label_A: rcall Slave_LCE_Data ; schreibe Daten zur LCD ret ; *********************************************************************************