;************************************************************************** Text_line_1: .db " DS18_20 " ; ------------------------------------------------------------------------- LCD_Line_1: ; ------------------------------------------------------------------------- ldi Temp1, LCD_Line1 ; setze LCD auf Line1 rcall Slave_LCE_Commando ; sendet einen Befehl an das LCD ldi ZH, high(Text_line_1 *2) ; ldi ZL, low(Text_line_1 *2) ; fixed up for 'LPM' instruction ldi Temp3, 10 Loop_LCD_Line_1: lpm Temp1, Z+ rcall Slave_LCE_Data ; schreibe Daten zur LCD dec Temp3 brne Loop_LCD_Line_1 ; ********************************************************************************* ldi Temp1, LCD_Line1 +5 ; setze LCD auf Line1 +5 rcall Slave_LCE_Commando ; sendet einen Befehl an das LCD lds Temp1, Family_Code ; check family code cpi Temp1, 0x10 ; test auf breq DS18_S_10 ; 10 = "S" cpi Temp1, 0x28 ; test auf breq DS18_B_28 ; 28 = "B" ldi Temp1, 0xFF ; xx = "_" rcall Slave_LCE_Data ; schreibe Daten zur LCD ret DS18_B_28: ldi Temp1, 'B' ; 28 = "B" rcall Slave_LCE_Data ; schreibe Daten zur LCD ret DS18_S_10: ldi Temp1, 'S' ; 10 = "S" rcall Slave_LCE_Data ; schreibe Daten zur LCD ret ;************************************************************************** DS18x20_error: ; --------------------------------------------------------------------------------- ldi Temp1, LCD_Line1 +9 ; rcall Slave_LCE_Commando ; sendet einen Befehl an das LCD mov Temp1, Fehler_Bit ; hole DS18x20 Fehler andi Temp1, (1< In Zahler umsetzen rcall Slave_LCE_Data ; schreibe Daten zur LCD ret ;**************************************************************************