Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '****************************************************************
- '* Name : UNTITLED.BAS *
- '* Author : Michael Mummert *
- '* Notice : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] *
- '* : All Rights Reserved *
- '* Date : 8/22/2009 *
- '* Version : 1.0 *
- '* Notes : *
- '* : *
- '****************************************************************
- include "BS2DEFS.BAS"
- 'include "modedefs.bas"
- OSCCON =$60 'clock speed
- ADCON0 = 0 'diable A/D
- ADCON1= 127 'all digital out
- define xoutxlat_off 1
- define OSC 4
- ' Set Debug pin port
- DEFINE DEBUG_REG PORTB
- define DEBUGIN_REG PORTB
- ' Set Debug pin bit
- DEFINE DEBUG_BIT 4
- DEFINE DEBUGIN_BIT 1
- 'define DEBUG_PACING 2000
- ' Set Debug baud rate
- DEFINE DEBUG_BAUD 2400
- ' Set Debug mode: 0 = true, 1 = inverted
- DEFINE DEBUG_MODE 1
- define DEBUGIN_MODE 1
- disable debug
- define I2c_scl porta,3
- define I2C_SDA porta,2
- 'define SER2_odd 1
- state var byte
- house var byte
- unit var byte
- Inital_connection var byte
- 'SDA = porta.2 ' I2C SDA pin
- 'SCL = porta.3 ' I2C SCL pin
- I2C_WR CON $D0 ' I2C write address
- I2C_RD CON $D1 ' I2C read address
- Readtime VAR byte ' Set/Read time flag
- Second VAR Byte ' Store second value
- Minute VAR Byte ' Store minute value
- Hour VAR Byte ' Store hour value
- Day VAR Byte ' Store day value
- Date VAR Byte ' Store date value
- Month VAR Byte ' Store month value
- Year VAR Byte ' Store year value
- x var byte
- y var byte
- default_time var byte
- default_slot var byte
- unit_1_Hour_on var byte
- unit_1_Minute_on var byte
- unit_1_Hour_Off var byte
- unit_1_Minute_Off var byte
- unit_2_Hour_on var byte
- unit_2_Minute_on var byte
- unit_2_Hour_Off var byte
- unit_2_Minute_Off var byte
- unit_3_Hour_on var byte
- unit_3_Minute_on var byte
- unit_3_Hour_Off var byte
- unit_3_Minute_Off var byte
- unit_4_Hour_on var byte
- unit_4_Minute_on var byte
- unit_4_Hour_Off var byte
- unit_4_Minute_Off var byte
- unit_5_Hour_on var byte
- unit_5_Minute_on var byte
- unit_5_Hour_Off var byte
- unit_5_Minute_Off var byte
- unit_6_Hour_on var byte
- unit_6_Minute_on var byte
- unit_6_Hour_Off var byte
- unit_6_Minute_Off var byte
- unit_7_Hour_on var byte
- unit_7_Minute_on var byte
- unit_7_Hour_Off var byte
- unit_7_Minute_Off var byte
- unit_8_Hour_on var byte
- unit_8_Minute_on var byte
- unit_8_Hour_Off var byte
- unit_8_Minute_Off var byte
- unit_9_Hour_on var byte
- unit_9_Minute_on var byte
- unit_9_Hour_Off var byte
- unit_9_Minute_Off var byte
- unit_10_Hour_on var byte
- unit_10_Minute_on var byte
- unit_10_Hour_Off var byte
- unit_10_Minute_Off var byte
- unit_11_Hour_on var byte
- unit_11_Minute_on var byte
- unit_11_Hour_Off var byte
- unit_11_Minute_Off var byte
- unit_12_Hour_on var byte
- unit_12_Minute_on var byte
- unit_12_Hour_Off var byte
- unit_12_Minute_Off var byte
- unit_13_Hour_on var byte
- unit_13_Minute_on var byte
- unit_13_Hour_Off var byte
- unit_13_Minute_Off var byte
- unit_14_Hour_on var byte
- unit_14_Minute_on var byte
- unit_14_Hour_Off var byte
- unit_14_Minute_Off var byte
- unit_15_Hour_on var byte
- unit_15_Minute_on var byte
- unit_15_Hour_Off var byte
- unit_15_Minute_Off var byte
- unit_16_Hour_on var byte
- unit_16_Minute_on var byte
- unit_16_Hour_Off var byte
- unit_16_Minute_Off var byte
- house =0
- unit = 0
- 'debug "start ",cr
- GOSUB get_data
- MAIN:
- serin2 portA.4,16780,5000,No_Data, [dec Inital_connection]
- enable debug
- debug dec Inital_connection ,cr
- disable debug
- IF Inital_connection = 250 THEN 'set time
- GOTO settime
- endif
- IF Inital_connection = 150 THEN 'turn radio button on
- GOTO unit_on
- endif
- IF Inital_connection = 151 THEN 'turn radio button off
- GOTO unit_off
- endif
- IF Inital_connection = 152 THEN 'unit 1
- default_slot = 0
- GOTO unit_SetTime
- endif
- IF Inital_connection = 153 THEN 'unit 2
- default_slot = 4
- GOTO unit_SetTime
- endif
- IF Inital_connection = 154 THEN 'unit 3
- default_slot = 8
- GOTO unit_SetTime
- endif
- IF Inital_connection = 155 THEN 'unit 4
- default_slot = 12
- GOTO unit_SetTime
- endif
- IF Inital_connection = 156 THEN 'unit 5
- default_slot = 16
- GOTO unit_SetTime
- endif
- IF Inital_connection = 157 THEN 'unit 6
- default_slot = 20
- GOTO unit_SetTime
- endif
- IF Inital_connection = 158 THEN 'unit 7
- default_slot = 24
- GOTO unit_SetTime
- endif
- IF Inital_connection = 159 THEN 'unit 8
- default_slot = 28
- GOTO unit_SetTime
- endif
- IF Inital_connection = 160 THEN 'unit 9
- default_slot = 32
- GOTO unit_SetTime
- endif
- IF Inital_connection = 161 THEN 'unit 10
- default_slot = 36
- GOTO unit_SetTime
- endif
- IF Inital_connection = 162 THEN 'unit 11
- default_slot = 40
- GOTO unit_SetTime
- endif
- IF Inital_connection = 163 THEN 'unit 12
- default_slot = 44
- GOTO unit_SetTime
- endif
- IF Inital_connection = 164 THEN 'unit 13
- default_slot = 48
- GOTO unit_SetTime
- endif
- IF Inital_connection = 165 THEN 'unit 14
- default_slot = 52
- GOTO unit_SetTime
- endif
- IF Inital_connection = 166 THEN 'unit 15
- default_slot = 56
- GOTO unit_SetTime
- endif
- IF Inital_connection = 167 THEN 'unit 16
- default_slot = 60
- GOTO unit_SetTime
- endif
- IF Inital_connection = 240 THEN 'get unit times
- GOTO Get_Times
- endif
- GOTO main
- No_Data:
- I2Cwrite porta.2 ,porta.3, I2C_WR, [0]
- I2Cread porta.2 ,porta.3, I2C_RD, [Second,Minute,Hour,Day,Date,Month,Year]
- enable debug
- DEBUG CR, "The time is ",HEX2 Month,"/",HEX2 Date, "/20",HEX2 Year, " ",hex2 Hour,":",HEX2 Minute,".",HEX2 Second,CR,CR
- disable debug
- 'unit 1
- IF unit_1_Hour_on = Hour AND unit_1_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\0,0\unitOn]
- endif
- IF unit_1_hour_off = hour AND unit_1_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\0,0\unitOff]
- endif
- 'unit 2
- IF unit_2_Hour_on = Hour AND unit_2_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\1,0\unitOn ]
- endif
- IF unit_2_hour_off = hour AND unit_2_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\1,0\unitOff]
- endif
- 'unit 3
- IF unit_3_Hour_on = Hour AND unit_3_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\2,0\unitOn ]
- endif
- IF unit_3_hour_off = hour AND unit_3_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\2,0\unitOff]
- endif
- 'unit 4
- IF unit_4_Hour_on = Hour AND unit_4_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\3,0\unitOn ]
- endif
- IF unit_4_hour_off = hour AND unit_4_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\3,0\unitOff]
- endif
- 'unit 5
- IF unit_5_Hour_on = Hour AND unit_5_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\4,0\unitOn ]
- 'debug "ON",cr
- endif
- IF unit_5_hour_off = hour AND unit_5_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\4,0\unitOff]
- endif
- 'unit 6
- IF unit_6_Hour_on = Hour AND unit_6_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\5,0\unitOn ]
- endif
- IF unit_6_hour_off = hour AND unit_6_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\5,0\unitOff]
- endif
- 'unit 7
- IF unit_7_Hour_on = Hour AND unit_7_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\6,0\unitOn ]
- endif
- IF unit_7_hour_off = hour AND unit_7_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\6,0\unitOff]
- endif
- 'unit 8
- IF unit_8_Hour_on = Hour AND unit_8_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\7,0\unitOn ]
- endif
- IF unit_8_hour_off = hour AND unit_8_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\7,0\unitOff]
- endif
- 'unit 9
- IF unit_9_Hour_on = Hour AND unit_9_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\8,0\unitOn ]
- endif
- IF unit_9_hour_off = hour AND unit_9_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\8,0\unitOff]
- endif
- 'unit 10
- IF unit_10_Hour_on = Hour AND unit_10_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\9,0\unitOn ]
- endif
- IF unit_10_hour_off = hour AND unit_10_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\9,0\unitOff]
- endif
- 'unit 11
- IF unit_11_Hour_on = Hour AND unit_11_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\10,0\unitOn ]
- endif
- IF unit_11_hour_off = hour AND unit_11_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\10,0\unitOff]
- endif
- 'unit 12
- IF unit_12_Hour_on = Hour AND unit_12_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\11,0\unitOn ]
- endif
- IF unit_12_hour_off = hour AND unit_12_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\11,0\unitOff]
- endif
- 'unit 13
- IF unit_13_Hour_on = Hour AND unit_13_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\12,0\unitOn ]
- endif
- IF unit_13_hour_off = hour AND unit_13_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\12,0\unitOff]
- endif
- 'unit 14
- IF unit_14_Hour_on = Hour AND unit_14_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\13,0\unitOn ]
- endif
- IF unit_14_hour_off = hour AND unit_14_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\13,0\unitOff]
- endif
- 'unit 15
- IF unit_15_Hour_on = Hour AND unit_15_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\14,0\unitOn ]
- endif
- IF unit_15_hour_off = hour AND unit_15_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\14,0\unitOff]
- endif
- 'unit 16
- IF unit_16_Hour_on = Hour AND unit_16_Minute_on = Minute THEN
- Xout porta.0, porta.1, [0\15,0\unitOn ]
- endif
- IF unit_16_hour_off = hour AND unit_16_minute_off = Minute THEN
- Xout porta.0, porta.1, [0\15,0\unitOff]
- endif
- GOTO main
- Settime:
- serin2 portA.4,16780, [hex2 hour]
- Hour = Hour & %00111111 ' Disable century
- serin2 portA.4,16780, [hex2 minute]
- serin2 portA.4,16780, [hex2 second]
- Second = Second & %01111111 ' Enable oscillator
- serin2 portA.4,16780, [hex2 day]
- serin2 portA.4,16780, [hex2 date]
- serin2 portA.4,16780, [hex2 month]
- serin2 portA.4,16780, [hex2 year]
- I2Cwrite porta.2 ,porta.3, I2C_WR, [0,Second,Minute,Hour,Day,Date,Month,Year]
- 'enable debug
- 'DEBUG CR, CR, "The current time has been successfully set!", CR, CR
- 'disable debug
- GOTO main
- END
- unit_on:
- serin2 portA.4,16780, [dec unit]
- serin2 portA.4,16780, [dec house]
- 'debug CR,dec unit,cr
- 'debug cr,dec House , cr
- Xout porta.0, porta.1, [house\unit,house\unitOn]
- 'Xout porta.0, porta.1, [house\unitoff]
- GOTO main
- unit_off:
- serin2 portA.4,16780, [dec unit]
- serin2 portA.4,16780, [dec house]
- Xout porta.0, porta.1, [house\unit,house\unitOff]
- 'xout porta.0, porta.1, [house\unitoff]
- GOTO main
- unit_SetTime:
- FOR y = 1 TO 4
- serin2 portA.4,16780, [hex2 default_time ]
- WRITE default_slot, default_time
- enable debug
- debug hex2 default_time, cr
- debug "Slot:" ,dec default_slot, cr
- default_slot = default_slot + 1
- NEXT
- GOSUB get_data
- 'debug " Time has been set in eeprom",cr
- disable debug
- GOTO main
- get_times:
- serin2 portA.4,16780,[dec unit]
- serin2 portA.4,16780, [dec house]
- IF unit = 0 AND house =0 THEN 'unit 1
- default_slot = 0
- GOTO get_unit_time
- endif
- IF unit =1 AND house =0 THEN 'unit 2
- default_slot = 4
- GOTO get_unit_time
- endif
- IF unit =2 AND house =0 THEN 'unit 3
- default_slot = 8
- GOTO get_unit_time
- endif
- IF unit =3 AND house =0 THEN 'unit 4
- default_slot = 12
- GOTO get_unit_time
- endif
- IF unit =4 AND house =0 THEN 'unit 5
- default_slot = 16
- GOTO get_unit_time
- endif
- IF unit =5 AND house =0 THEN 'unit 6
- default_slot = 20
- GOTO get_unit_time
- endif
- IF unit =6 AND house =0 THEN 'unit 7
- default_slot = 24
- GOTO get_unit_time
- endif
- IF unit =7 AND house =0 THEN 'unit 8
- default_slot = 28
- GOTO get_unit_time
- endif
- IF unit =8 AND house =0 THEN 'unit 9
- default_slot = 32
- GOTO get_unit_time
- endif
- IF unit =9 AND house =0 THEN 'unit 10
- default_slot = 36
- GOTO get_unit_time
- endif
- IF unit =10 AND house =0 THEN 'unit 11
- default_slot = 40
- GOTO get_unit_time
- endif
- IF unit =11 AND house =0 THEN 'unit 12
- default_slot = 44
- GOTO get_unit_time
- endif
- IF unit =12 AND house =0 THEN 'unit 13
- default_slot = 48
- GOTO get_unit_time
- endif
- IF unit =13 AND house =0 THEN 'unit 14
- default_slot = 52
- GOTO get_unit_time
- endif
- IF unit =14 AND house =0 THEN 'unit 15
- default_slot = 56
- GOTO get_unit_time
- endif
- IF unit =15 AND house =0 THEN 'unit 16
- default_slot = 60
- GOTO get_unit_time
- endif
- GOTO main
- get_unit_time:
- enable debug
- FOR y = 1 TO 4
- ' debug dec y , cr
- READ default_slot, default_time
- serout2 portA.6,16780, [hex2 default_time]
- debug hex2 default_time ,cr
- debug dec default_slot,cr
- serin2 portA.4,16780,1000,main, [x]
- default_slot = default_slot +1
- pause 100
- NEXT
- disable debug
- GOTO main
- get_data:
- 'unit 1
- READ 0, unit_1_Hour_on
- READ 1, unit_1_Minute_on
- READ 2, unit_1_Hour_Off
- READ 3, unit_1_Minute_Off
- 'unit 2
- READ 4, unit_2_Hour_on
- READ 5, unit_2_Minute_on
- READ 6, unit_2_Hour_Off
- READ 7, unit_2_Minute_Off
- 'unit 3
- READ 8, unit_3_Hour_on
- READ 9, unit_3_Minute_on
- READ 10,unit_3_Hour_Off
- READ 11,unit_3_Minute_Off
- 'unit 4
- READ 12, unit_4_Hour_on
- READ 13, unit_4_Minute_on
- READ 14, unit_4_Hour_Off
- READ 15, unit_4_Minute_Off
- 'unit 5
- READ 16, unit_5_Hour_on
- READ 17, unit_5_Minute_on
- READ 18, unit_5_Hour_Off
- READ 19, unit_5_Minute_Off
- 'unit 6
- READ 20, unit_6_Hour_on
- READ 21, unit_6_Minute_on
- READ 22, unit_6_Hour_Off
- READ 23, unit_6_Minute_Off
- 'unit 7
- READ 24, unit_7_Hour_on
- READ 25, unit_7_Minute_on
- READ 26, unit_7_Hour_Off
- READ 27, unit_7_Minute_Off
- 'unit 8
- READ 28, unit_8_Hour_on
- READ 29, unit_8_Minute_on
- READ 30, unit_8_Hour_Off
- READ 31, unit_8_Minute_Off
- 'unit 9
- READ 32, unit_9_Hour_on
- READ 33, unit_9_Minute_on
- READ 34, unit_9_Hour_Off
- READ 35, unit_9_Minute_Off
- 'unit 10
- READ 36, unit_10_Hour_on
- READ 37, unit_10_Minute_on
- READ 38, unit_10_Hour_Off
- READ 39, unit_10_Minute_Off
- 'unit 11
- READ 40, unit_11_Hour_on
- READ 41, unit_11_Minute_on
- READ 42, unit_11_Hour_Off
- READ 43, unit_11_Minute_Off
- 'unit 12
- READ 44, unit_12_Hour_on
- READ 45, unit_12_Minute_on
- READ 46, unit_12_Hour_Off
- READ 47, unit_12_Minute_Off
- 'unit 13
- READ 48, unit_13_Hour_on
- READ 49, unit_13_Minute_on
- READ 50, unit_13_Hour_Off
- READ 51, unit_13_Minute_Off
- 'unit 14
- READ 52, unit_14_Hour_on
- READ 53, unit_14_Minute_on
- READ 54, unit_14_Hour_Off
- READ 55, unit_14_Minute_Off
- 'unit 15
- READ 56, unit_15_Hour_on
- READ 57, unit_15_Minute_on
- READ 58, unit_15_Hour_Off
- READ 59, unit_15_Minute_Off
- 'unit 16
- READ 60, unit_16_Hour_on
- READ 61, unit_16_Minute_on
- READ 62, unit_16_Hour_Off
- READ 63, unit_16_Minute_Off
- RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement