📄 lpc935.src
字号:
DB 002H
DB Load_B_Start_Time
DW 00000H
DB 002H
DB Load_B_Work_Time
DW 00000H
DB 002H
DB Load_B_Relax_Time
DW 00000H
DB 002H
DB Load_B_ReWork_Time
DW 00000H
DB 002H
DB ADC_Solar
DW 00000H
DB 002H
DB ADC_Battery
DW 00000H
DB 002H
DB Cnt_100us
DW 00000H
DB 002H
DB Minute
DW 00000H
DB 001H
DB Cnt_10ms
DB 000H
DB 001H
DB Second
DB 000H
DB 001H
DB ADC_Time
DB 000H
DB 001H
DB IR_Bit_Cnt
DB 000H
DB 001H
DB Send_IR_Bit_Cnt
DB 000H
DB 001H
DB Loop_Bit_Cnt
DB 000H
DB 001H
DB Relay_test
DB 000H
DB 001H
DB Bit_Cnt
DB 000H
DB 001H
DB RecWordCnt
DB 000H
DB 001H
DB Low_Counter
DB 000H
DB 001H
DB High_Counter
DB 000H
DB 001H
DB RecCounterHigh
DB 000H
DB 001H
DB RecCounterLow
DB 000H
DB 001H
DB State
DB 000H
DB 001H
DB ScanKeyDelay
DB 000H
DB 001H
DB Temp
DB 000H
DB 001H
DB Duration
DB 001H
DB 001H
DB Solar_Vol
DB 000H
DB 001H
DB Battery_Vol
DB 000H
DB 001H
DB UART_RX_Buf
DB 000H
DB 001H
DB UART_TX_Buf
DB 000H
DB 004H
DB Cnt_Long_10us
DB 000H,000H,000H,000H ; long
DB 004H
DB TimeOut
DB 000H,000H,000H,000H ; long
DB 004H
DB loop_data
DB 000H,000H,000H,000H ; long
DB 004H
DB Time_Wait
DB 000H,000H,000H,000H ; long
; #include "reg935.h"
; #define byte unsigned char
; #define word unsigned int
; //#define TH0_DATA 0xFF //4MHz 100us ff4c
; //#define TL0_DATA 0x62
; #define TH0_DATA 0xFE //On Chip Oscillator (7.3728MHz ± 2.5%) 100us
; #define TL0_DATA 0xB8 //C1
;
;
; #define true 1
; #define false 0
;
; #define BIT0_HIGH 7 //700us
; #define BIT1_HIGH 18 //1800us
; #define BIT0_LOW 2 //300us
; #define BIT1_LOW 2 //300us
;
;
; #define On 0
; #define Off 1
;
; //******** Time constant **************
; #define _100us 1
; #define _1Ms 10
; #define _10MS 100
; #define _20MS 200
; #define _30MS 310
; #define _50MS 500
; #define _100MS 1000
; #define _200MS 2000
; #define _250MS 2500
; #define _300MS 3000
; #define _500MS 5000
; #define _800MS 8000
; #define _1S 10000
; #define _2S 20000
; #define _3S 30000
; #define _4S 40000
; #define _5S 50000
; #define _6S 60000
; #define _7S 70000
; #define _8S 80000
; #define _10S 100000
; #define _20S 200000
; #define _900S 9000000
;
; #define Time_Sync_PowerUp _300MS//_2S
; #define Time_PTT_Up _2S//_8S
; #define Time_Sync_Preamble _200MS//_2S
; #define Time_Sync_Frame _30MS
;
; #define Time_Loop_Preamble _2S
; #define Time_Loop_Frame _20MS
; #define Time_PTT_Down _200MS
; #define Time_PowerDown _100MS
; #define Time_Duration _900S
;
;
; //State Machina
; #define State_Idle 0
; #define State_Sync_PowerUp 1
; #define State_PTT_Up 2
; #define State_Sync_Preamble 3
; #define State_Sync_Frame 4
; #define State_SendSync 5
; #define State_Send_Sync_Data 6
; #define State_Loop_Preamble 7
; #define State_Loop_Frame 8
; #define State_SendLoop 9
; #define State_Send_Loop_Data 10
; #define State_PTT_Down 11
; #define State_PowerDown 12
; #define State_Wait 13
; #define State_Duration 14
;
; #define Master_Addr 0
;
; #define Code_Sync 0xa5
; #define Code_Addr 0xff
; #define Code_Group_Addr 0xfe
; #define Code_Light_On 0xf3
; #define Code_Light_Off 0xf4
; #define Code_Send_Contrast 0xfd
;
; //IR Data Receive
; #define Rec_Bit0_High_Max 9 // default 7
; #define Rec_Bit0_High_Min 5
; #define Rec_Bit1_High_Max 20
; #define Rec_Bit1_High_Min 16 // default 18
; #define Rec_Low_Max 5 // default 3
; #define Rec_Low_Min 1
;
;
;
; #define Key_Write_Addr 0xf
; #define Key_Write_Group_Addr 0xe
; #define Key_Send_Group_Water 0xa
; #define Key_Send_To_Slave 0x5
; #define Key_Set_Master 0x0
; #define Key_Set_Slave 0x1
; #define Key_Time_Wait_Inc 0x7
; #define Key_Time_Wait_Dec 0x6
; #define Key_LED_On_Time 0x2
; #define Key_Send_Contrast 0xd
;
; #define PowerUp 200
; #define PowerDown 500
;
;
; #define Flash_GroupAddr 0x1ffe
; #define Flash_ScanMode 0x1fff
; #define Flash_Time_Wait 0x1ffa
;
; #define Solar_Relay 0
; #define Load_A_Relay 1
; #define Load_B_Relay 2
; //******************************************
; //变量定义
; bit RecFlag=0;
; bit UART_Data=0;
; bit ScanKeyEn=1;
; bit Flag_100us=0;
; bit Flag_10ms=0;
; bit Send_Bit_High=0;
; bit Flag_ClearTimer=0;
; bit Flag_SendSync=1;
;
; bit Flag_Rec_En=1;
; bit Flag_Rec_High=0;
; bit Master=1;
; bit Send_LoopEn=1;
; bit Send_SyncEn=1;
; bit Write_Setting=0;
; bit shutdownflag=0;
; bit Flag_Second=0;
;
; word f_bit_cnt=0;
; word tx_addr=0;
; word tx_data=0;
; word RecWord=0;
; word RecTmp=0;
; word IR_Rec_Buf=0;
; word Temp_Word=0;
; word Cnt_Preamble=0;
; word IR_Data=0;
;
; word Delay_Cnt=0;
; word Ligth_High_Cnt=0;
; word Ligth_Low_Cnt=0;
;
; word Load_A_Start_Time=0;
; word Load_A_Work_Time=0;
; word Load_A_Relax_Time=0;
; word Load_A_ReWork_Time=0;
; word Load_B_Start_Time=0;
; word Load_B_Work_Time=0;
; word Load_B_Relax_Time=0;
; word Load_B_ReWork_Time=0;
;
; word ADC_Solar=0;
; word ADC_Battery=0;
;
; word Cnt_100us=0;
; word Minute=0;
;
;
; byte Cnt_10ms=0;
; byte Second=0;
; byte ADC_Time=0;
; byte IR_Bit_Cnt=0;
; byte Send_IR_Bit_Cnt=0;
; byte Loop_Bit_Cnt=0;
;
; byte Relay_test=0;
; byte Bit_Cnt=0;
; byte RecWordCnt=0;
; byte Low_Counter=0;
; byte High_Counter=0;
;
; byte RecCounterHigh=0;
; byte RecCounterLow=0;
;
; byte State=State_Idle;
;
; byte ScanKeyDelay=0;
; byte Temp=0;
; byte Duration=1;
;
; byte Solar_Vol=0;
; byte Battery_Vol=0;
;
; byte UART_RX_Buf=0;
; byte UART_TX_Buf=0;
; byte code *ReadAddr;
;
; unsigned long Cnt_Long_10us=0;
; unsigned long TimeOut=0;
; unsigned long loop_data=0;
; unsigned long Time_Wait=0;
;
; //******************************************
; //脚位定义
; sbit LED=P0^4;
;
; sbit POWER_SWITCH=P0^4;
; sbit RF_DATA=P0^4;
;
; sbit Key_Test=P0^0;
; sbit IR_DATA_PIN=P2^1;
; sbit TX_DATA_PIN=P2^0;
; sbit Comm_LED=P1^4;
; sbit Charg_LED=P1^6;
; sbit Load_A_LED=P1^2;
; sbit Load_B_LED=P2^2;
;
; sbit Relay_Solar1=P0^2;
; sbit Relay_Solar2=P0^3;
; sbit Relay_Load_A1=P0^6;
; sbit Relay_Load_A2=P0^7;
; sbit Relay_Load_B1=P2^5;
; sbit Relay_Load_B2=P2^4;
;
; //******************************************
; //函数定义
; void Init_hw();
; void init_wdt();
; void clr_wdt();
; void RecData();
; void UART_init();
; void RecBitHigh();
; void RecBitLow();
; void Send_IR_Data();
; void Relay_Reset();
; void Relay_On(byte Relay);
; void Relay_Off(byte Relay);
; void timer0_init();
; void LED_Water();
; void ADC_init();
; void delayms(word ms);
; byte Get_Remote_Key(word Key_Data);
;
;
; code byte IR_Remote_Key[46]={0xa0,'A',0xb0,'M',0x40,'P',0x08,'U',0x80,'D',0x04,'L',0xe8,'R',
; 0x14,'I',0x88,'X',0x98,'C',0x5c,'E',0xe4,'1',0xf4,'2',0xec,'3',
; 0xc4,'4',0x44,'5',0x50,'6',0xd4,'7',0x54,'8',0x48,'9',0x2c,'0',
; 0xc8,'*',0x3c,'#'};
;
;
; void main()
RSEG ?PR?main?LPC935
main:
USING 0
; SOURCE LINE # 249
; {
; SOURCE LINE # 250
; byte i;
; Init_hw();
; SOURCE LINE # 252
LCALL Init_hw
; Relay_Reset();
; SOURCE LINE # 253
LCALL Relay_Reset
; timer0_init();
; SOURCE LINE # 254
LCALL timer0_init
; UART_init();
; SOURCE LINE # 255
LCALL UART_init
; ADC_init();
; SOURCE LINE # 256
LCALL ADC_init
; LED_Water();
; SOURCE LINE # 257
LCALL LED_Water
;
;
; // flash 1fff =Scan Mode;
; // 1ffe =Group Addr;
; // ReadAddr=Flash_ScanMode;
; // Temp=*ReadAddr;
; // ScanMode=Temp&0x0f;
; // ScanMode=0x02;
;
; // ReadAddr=Flash_GroupAddr;
; // Temp=*ReadAddr;
; // GroupAddr=Temp;
; // GroupAddr=0xA5;
;
;
;
;
; // init_wdt();
;
; EA=1;
; SOURCE LINE # 277
SETB EA
?C0001:
;
; while (1)
; SOURCE LINE # 279
; {
; SOURCE LINE # 280
;
; if (Key_Test==0)
; SOURCE LINE # 282
JNB Key_Test,$ + 6H
LJMP ?C0003
; {
; SOURCE LINE # 283
; for (i=0;i<3;i++)
; SOURCE LINE # 284
CLR A
MOV i?040,A
?C0004:
; {
; SOURCE LINE # 285
; Relay_On(i);
; SOURCE LINE # 286
MOV R7,i?040
LCALL _Relay_On
; Cnt_Long_10us=0;
; SOURCE LINE # 287
CLR A
MOV Cnt_Long_10us+03H,A
MOV Cnt_Long_10us+02H,A
MOV Cnt_Long_10us+01H,A
MOV Cnt_Long_10us,A
?C0007:
; while (Cnt_Long_10us<_1S);
; SOURCE LINE # 288
CLR A
MOV R7,#010H
MOV R6,#027H
MOV R5,A
MOV R4,A
MOV R3,Cnt_Long_10us+03H
MOV R2,Cnt_Long_10us+02H
MOV R1,Cnt_Long_10us+01H
MOV R0,Cnt_Long_10us
CLR C
LCALL ?C?ULCMP
JC ?C0007
;
; }
; SOURCE LINE # 290
?C0006:
INC i?040
MOV A,i?040
CLR C
SUBB A,#03H
JC ?C0004
?C0005:
;
; Cnt_Long_10us=0;
; SOURCE LINE # 292
CLR A
MOV Cnt_Long_10us+03H,A
MOV Cnt_Long_10us+02H,A
MOV Cnt_Long_10us+01H,A
MOV Cnt_Long_10us,A
?C0009:
; while (Cnt_Long_10us<_1S);
; SOURCE LINE # 293
CLR A
MOV R7,#010H
MOV R6,#027H
MOV R5,A
MOV R4,A
MOV R3,Cnt_Long_10us+03H
MOV R2,Cnt_Long_10us+02H
MOV R1,Cnt_Long_10us+01H
MOV R0,Cnt_Long_10us
CLR C
LCALL ?C?ULCMP
JC ?C0009
?C0010:
;
; for (i=0;i<3;i++)
; SOURCE LINE # 295
CLR A
MOV i?040,A
?C0011:
; {
; SOURCE LINE # 296
; Relay_Off(i);
; SOURCE LINE # 297
MOV R7,i?040
LCALL _Relay_Off
; Cnt_Long_10us=0;
; SOURCE LINE # 298
CLR A
MOV Cnt_Long_10us+03H,A
MOV Cnt_Long_10us+02H,A
MOV Cnt_Long_10us+01H,A
MOV Cnt_Long_10us,A
?C0014:
; while (Cnt_Long_10us<_1S);
; SOURCE LINE # 299
CLR A
MOV R7,#010H
MOV R6,#027H
MOV R5,A
MOV R4,A
MOV R3,Cnt_Long_10us+03H
MOV R2,Cnt_Long_10us+02H
MOV R1,Cnt_Long_10us+01H
MOV R0,Cnt_Long_10us
CLR C
LCALL ?C?ULCMP
JC ?C0014
; }
; SOURCE LINE # 300
?C0013:
INC i?040
MOV A,i?040
CLR C
SUBB A,#03H
JC ?C0011
?C0012:
;
; Cnt_Long_10us=0;
; SOURCE LINE # 302
CLR A
MOV Cnt_Long_10us+03H,A
MOV Cnt_Long_10us+02H,A
MOV Cnt_Long_10us+01H,A
MOV Cnt_Long_10us,A
?C0016:
; while (Cnt_Long_10us<_1S);
; SOURCE LINE # 303
CLR A
MOV R7,#010H
MOV R6,#027H
MOV R5,A
MOV R4,A
MOV R3,Cnt_Long_10us+03H
MOV R2,Cnt_Long_10us+02H
MOV R1,Cnt_Long_10us+01H
MOV R0,Cnt_Long_10us
CLR C
LCALL ?C?ULCMP
JC ?C0016
?C0017:
;
;
; for (i=0;i<3;i++)
; SOURCE LINE # 306
CLR A
MOV i?040,A
?C0018:
; {
; SOURCE LINE # 307
; Relay_On(i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -