...Muss ich zwingend über den Portexpander gehen für die Tastatur gehen?
Für die Tastatur habe ich genügend Pins. und den 47HC11 als AND Gatter um den INT zu setzen...
Nein, wenn Du genug Beine hast, kannst Du die Taster direkt auswerten. Ich würde da wie gesagt keine IRQs verwenden, sondern die Beine regelmäßig pollen. Du hast noch nicht gesagt, mit welcher Auflösung (Konversionszeit) die Sensoren fahren sollen - das läßt sich sicher unter einen Hut bekommen (Also vielleicht 2-4mal pro Sekunde 'ne neue Messung anstoßen, und eben auch die Taster abfragen usw - vereinfacht die Entprellung)
Wenn Du so'n Mords-Controller einsetzt, also genug Beine hast, kannst Du auch die Relais direkt ansteuern (mit Darlingtons oder so als Treiber für die Relais -> ULN2803 oder so - oder hattest Du da bereits was?)
Wenn Du bei den Schieberegistern bleibst, gehören die mit an den SPI-Bus (also MOSI->SER(IN) vom ersten, SCK->SRCK (beide), RCK auf einen beliebigen freien (nicht-SPI) Pin, und mit externem Pullup (10K oder so) auf Vcc gezogen).
SRCLR brauchst Du nicht -> muß Hi sein (glaub ich -> über 10K fest auf Vcc legen)
Als Beine für's Backlight würde ich bei dem Controller die OC-Pins von Timer3 nehmen. Kannst Du erst mal Deine diskreten Farben nutzen, später aber problemlos auf PWM umstellen, ohne an der Hardware was ändern zu müssen. Timer 3 wird Bascom mMn selbst wenig blockieren.
Dann stellt sich noch die Frage, wie Du Dein Menü aufbauen willst - irgendwer hatte hier mal ein sehr gutes Konzept vorgestellt - wo die Ganzen Unterpunkte direkt über Speicheradressen oder so umgesetzt wurde. Sehr gut umgesetzt, aber als Anfänger heftig da durchzusteigen.
Hast Du das irgendwo in der FAQ mit drin, Dino?
1wire-Adressen:
kannst Du natürlich zur Laufzeit ermitteln (quasi den Bus Scannen -> Adressen ausprobiere und merken (internes Eeprom)).
Oder Du gibst die Adressen im Code vor, dann mußt Du aber bei neuen Sensoren neu compilieren.
Sinnig wäre ein Menüpunkt, wo Du nach unbekannten Sensoren suchen kannst. Wenn Du Dich auf diese Sensoren beschränkst, ist der Family-Code immer der gleiche, die CRC ist konstruierbar. Ablegen müßte man also nur 6Byte pro Sensor. Andererseits stehen Dir 4K-Eeprom zur Verfügung.