'[Declarations] adcBits VAR Byte v VAR Byte r VAR Byte v2 VAR Byte v3 VAR Byte n VAR Byte '[Initialization] CS PIN 0 CLK PIN 1 DataOutput PIN 2 DEBUG CLS 'Start display. ' [Main Routine] DO GOSUB ADC_Data GOSUB Calc_Volts GOSUB Display GOSUB DAC LOOP '[Subroutines] ADC_DATA: LOW CLK LOW CS PULSOUT CLK, 210 SHIFTIN DataOutput,CLK,MSBPOST,[adcBits\8] HIGH CS RETURN Calc_Volts: v=5*adcBits/255 r=5*adcBits//255 v2=100*r/255 v3=100*r//255 v3=10*v3/255 IF (v3>=5) THEN v2=v2+1 IF (v2>=100) THEN v=v+1 v2=0 ENDIF RETURN Display: DEBUG HOME DEBUG "8-bit binary value: ",BIN8 adcBits DEBUG CR,CR,"Decimal value: ",DEC3 adcBits DEBUG CR,CR,"DVM Reading: " DEBUG DEC1 v, ".", DEC2 v2, " Volts", CR DAC: DIRH=255 OUTH=adcBits RETURN