⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lpc935.src

📁 PHILIPS LPC935 MCU 利用其8路AD转换器,对监测对象进行数据采集,然后通过UART将采集到的数据发送到PC上位机
💻 SRC
📖 第 1 页 / 共 3 页
字号:
	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 + -