Made several big steps in the last few days.
We had a bank holiday and Yvonne went to France but I stayed in Basel.
The serial interface is now working, it took quite sometime to find and fix, the biggest problem was the incorrect crystal frequency, as always a software problem.
The controller now supports:-
1) Maximum of 15 I/O's split into :-
a) 2 servos
b) 5 digital outputs
c) 6 digital inputs
d) 2 I/O's used for serial port
I want to add a in circuit programmer which might cost 4 digital input signals,at the moment I'm not sure if I can wire the pins as inputs and to the programmer at the same time. I am still thinking about doing it as it would make my life much easier when I want to update the software. No more pulling the chip out of the socket, plugging it into the programmer, programming it, plugging it back into the board, testing it and repeating the whole process until it works. It took me 27 downloads to complete the whole software, which isn't bad when you consider that the software grew step for step, function for function, rather than supporting all functions from the first version and only needing bug fixes
Here are some pictures :-
A picture of the board without any hardwired I/O
Port PD0 and PD1 are for serial communication
Port PD2-6 are digital output
Port PB0 and PB1 are servo controllers
Port PB2,PB3,PB3 are digital inputs
Port PB5-PB7 are the programming interface but that could be used as inputs
The actual use for the port (input/output/servo) is defined in the software and could be changed based on requirements :)
Note the programming interface (SCK,MISO,MOSI) is shown but the remaining components required to interface to the PC parallel port are not shown.