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

📄 senorpe.src

📁 motor_control.zip
💻 SRC
📖 第 1 页 / 共 3 页
字号:
; .\senorpe.SRC generated from: senorpe.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.EXE senorpe.c BROWSE DEBUG OBJECTEXTEND SRC(.\senorpe.SRC)

$NOMOD51

NAME	SENORPE

CCF2	BIT	0D8H.2
TB80	BIT	098H.3
SPI0CKR	DATA	09DH
CCF3	BIT	0D8H.3
P0	DATA	080H
SPIEN	BIT	0F8H.0
CCF4	BIT	0D8H.4
SM00	BIT	098H.7
P1	DATA	090H
AA	BIT	0C0H.2
SM10	BIT	098H.6
WDTCN	DATA	0FFH
P2	DATA	0A0H
SM20	BIT	098H.5
ADC0CF	DATA	0BCH
P3	DATA	0B0H
AC	BIT	0D0H.6
ADC1CF	DATA	0ABH
P4	DATA	084H
EIE1	DATA	0E6H
P5	DATA	085H
EA	BIT	0A8H.7
EIE2	DATA	0E7H
P6	DATA	086H
P7	DATA	096H
PSCTL	DATA	08FH
MSTEN	BIT	0F8H.1
CF	BIT	0D8H.7
ADC0CN	DATA	0E8H
DAC0CN	DATA	0D4H
DAC1CN	DATA	0D7H
ADC1CN	DATA	0AAH
P0MDOUT	DATA	0A4H
P1MDOUT	DATA	0A5H
IE	DATA	0A8H
P2MDOUT	DATA	0A6H
P3MDOUT	DATA	0A7H
TMR3RLH	DATA	093H
START	BIT	080H.5
EIP1	DATA	0F6H
EIP2	DATA	0F7H
BACK	BIT	080H.4
PCA0CPH0	DATA	0FAH
PCA0CPH1	DATA	0FBH
P3IF	DATA	0ADH
TMR3RLL	DATA	092H
PCA0CPH2	DATA	0FCH
CR	BIT	0D8H.6
PCA0CPH3	DATA	0FDH
EXF2	BIT	0C8H.6
REN0	BIT	098H.4
PCA0CPH4	DATA	0FEH
PCA0CPL0	DATA	0EAH
EMI0CF	DATA	0A3H
PCA0CPL1	DATA	0EBH
PCA0CPM0	DATA	0DAH
PCA0MD	DATA	0D9H
PCA0CN	DATA	0D8H
PCA0CPL2	DATA	0ECH
PCA0CPM1	DATA	0DBH
PCA0CPL3	DATA	0EDH
PCA0CPM2	DATA	0DCH
IP	DATA	0B8H
PCA0CPL4	DATA	0EEH
PCA0CPM3	DATA	0DDH
PCA0CPM4	DATA	0DEH
TXBSY	BIT	0F8H.3
CY	BIT	0D0H.7
SI	BIT	0C0H.3
LEDG	BIT	0B0H.4
XBR0	DATA	0E1H
SADEN0	DATA	0B9H
XBR1	DATA	0E2H
EMI0CN	DATA	0AFH
SADEN1	DATA	0AEH
XBR2	DATA	0E3H
REF0CN	DATA	0D1H
SADDR0	DATA	0A9H
SADDR1	DATA	0F3H
AMX0CF	DATA	0BAH
AD0INT	BIT	0E8H.5
RCAP2H	DATA	0CBH
PS	BIT	0B8H.4
SP	DATA	081H
RCAP4H	DATA	0E5H
EMI0TC	DATA	0A1H
OV	BIT	0D0H.2
SMB0CN	DATA	0C0H
RCAP2L	DATA	0CAH
CH452_DCLK	BIT	0A0H.4
MODF	BIT	0F8H.5
RCAP4L	DATA	0E4H
CH452_LOAD	BIT	0A0H.6
SMB0CR	DATA	0CFH
CPT0CN	DATA	09EH
P1MDIN	DATA	0BDH
CPT1CN	DATA	09FH
SPI0CN	DATA	0F8H
PCON	DATA	087H
SPIF	BIT	0F8H.7
P74OUT	DATA	0B5H
TMOD	DATA	089H
TCON	DATA	088H
WCOL	BIT	0F8H.6
AMX0SL	DATA	0BBH
AMX1SL	DATA	0ACH
TMR3CN	DATA	091H
IE0	BIT	088H.1
IE1	BIT	088H.3
B	DATA	0F0H
DAC0H	DATA	0D3H
ADC0H	DATA	0BFH
OSCICN	DATA	0B2H
DAC1H	DATA	0D6H
SMBFTE	BIT	0C0H.1
BUSY	BIT	0C0H.7
CH452_DOUT	BIT	0B0H.7
DAC0L	DATA	0D2H
ADC0L	DATA	0BEH
DAC1L	DATA	0D5H
IN0	BIT	090H.1
ACC	DATA	0E0H
IN1	BIT	090H.3
ES0	BIT	0A8H.4
IN2	BIT	090H.0
AD0EN	BIT	0E8H.7
CT2	BIT	0C8H.1
ET0	BIT	0A8H.1
IN3	BIT	090H.5
ET1	BIT	0A8H.3
TF0	BIT	088H.5
IN4	BIT	090H.2
ET2	BIT	0A8H.5
RI0	BIT	098H.0
TF1	BIT	088H.7
TF2	BIT	0C8H.7
SMBTOE	BIT	0C0H.0
TH0	DATA	08CH
EX0	BIT	0A8H.0
TI0	BIT	098H.1
IT0	BIT	088H.0
PCA0H	DATA	0F9H
TH1	DATA	08DH
EX1	BIT	0A8H.2
IT1	BIT	088H.2
TH2	DATA	0CDH
P	BIT	0D0H.0
TH4	DATA	0F5H
OSCXCN	DATA	0B1H
TL0	DATA	08AH
PCA0L	DATA	0E9H
TL1	DATA	08BH
TL2	DATA	0CCH
PT0	BIT	0B8H.1
TL4	DATA	0F4H
RS0	BIT	0D0H.3
PT1	BIT	0B8H.3
SPOKER	BIT	080H.6
RS1	BIT	0D0H.4
PT2	BIT	0B8H.5
TR0	BIT	088H.4
AD0TM	BIT	0E8H.6
TR1	BIT	088H.6
TR2	BIT	0C8H.2
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
SLVSEL	BIT	0F8H.2
DPH	DATA	083H
RCLK0	BIT	0C8H.5
ADC0GTH	DATA	0C5H
TCLK0	BIT	0C8H.4
DPL	DATA	082H
ADC0GTL	DATA	0C4H
SBUF0	DATA	099H
SBUF1	DATA	0F2H
ADC0LTH	DATA	0C7H
CH452_DIN	BIT	0A0H.7
EXEN2	BIT	0C8H.3
RSTSRC	DATA	0EFH
FLACL	DATA	0B7H
CPRL2	BIT	0C8H.0
SCON0	DATA	098H
SCON1	DATA	0F1H
ADC0LTL	DATA	0C6H
T2CON	DATA	0C8H
STA	BIT	0C0H.5
T4CON	DATA	0C9H
SMB0ADR	DATA	0C3H
SMB0DAT	DATA	0C2H
SPI0CFG	DATA	09AH
TMR3H	DATA	095H
CKCON	DATA	08EH
RXOVRN	BIT	0F8H.4
TMR3L	DATA	094H
AD0LJST	BIT	0E8H.0
F0	BIT	0D0H.5
FLSCL	DATA	0B6H
AD0CM0	BIT	0E8H.2
F1	BIT	0D0H.1
STO	BIT	0C0H.4
ENSMB	BIT	0C0H.6
AD0CM1	BIT	0E8H.3
SPI0DAT	DATA	09BH
AD0WINT	BIT	0E8H.1
ADC1	DATA	09CH
AD0BUSY	BIT	0E8H.4
PSW	DATA	0D0H
CCF0	BIT	0D8H.0
RB80	BIT	098H.2
SMB0STA	DATA	0C1H
CCF1	BIT	0D8H.1
?PR?Port_IO_Init?SENORPE                 SEGMENT CODE 
?PR?Interrupts_Init?SENORPE              SEGMENT CODE 
?PR?Init_Device?SENORPE                  SEGMENT CODE 
?PR?_speedchange?SENORPE                 SEGMENT CODE 
?DT?_speedchange?SENORPE                 SEGMENT DATA OVERLAYABLE 
?PR?pingjun?SENORPE  SEGMENT CODE 
?DT?pingjun?SENORPE  SEGMENT DATA OVERLAYABLE 
?PR?_delay_s?SENORPE SEGMENT CODE 
?DT?_delay_s?SENORPE SEGMENT DATA OVERLAYABLE 
?PR?confirm?SENORPE  SEGMENT CODE 
?DT?confirm?SENORPE  SEGMENT DATA OVERLAYABLE 
?PR?_judgement?SENORPE                   SEGMENT CODE 
?DT?_judgement?SENORPE                   SEGMENT DATA OVERLAYABLE 
?PR?main?SENORPE     SEGMENT CODE 
?DT?main?SENORPE     SEGMENT DATA OVERLAYABLE 
?PR?PCA_ISR?SENORPE  SEGMENT CODE 
?PR?led?SENORPE      SEGMENT CODE 
?DT?led?SENORPE      SEGMENT DATA OVERLAYABLE 
?PR?TIMER1_ISR?SENORPE                   SEGMENT CODE 
?C_INITSEG           SEGMENT CODE 
?DT?SENORPE          SEGMENT DATA 
?XD?SENORPE          SEGMENT XDATA 
	EXTRN	CODE (CH452_Read)
	EXTRN	CODE (_abs)
	EXTRN	CODE (Oscillator_Init)
	EXTRN	CODE (CH452_Init)
	EXTRN	CODE (ADC_Init)
	EXTRN	CODE (Voltage_Reference_Init)
	EXTRN	CODE (Reset_Sources_Init)
	EXTRN	CODE (PCA_Init)
	EXTRN	CODE (_delayms)
	EXTRN	CODE (_CH452_Write)
	EXTRN	CODE (Timer_Init)
	EXTRN	CODE (AD_IN)
	EXTRN	CODE (_BCD_H_L)
	EXTRN	CODE (?C?FCASTI)
	EXTRN	CODE (?C?FPMUL)
	EXTRN	CODE (?C?CASTF)
	EXTRN	CODE (?C?LSTXDATA)
	EXTRN	CODE (?C?ULDIV)
	EXTRN	CODE (?C_STARTUP)
	EXTRN	CODE (?C?ULCMP)
	PUBLIC	forward
	PUBLIC	e
	PUBLIC	time2
	PUBLIC	d
	PUBLIC	time1
	PUBLIC	c?
	PUBLIC	a?
	PUBLIC	avge0
	PUBLIC	data0
	PUBLIC	bb
	PUBLIC	counter2
	PUBLIC	counter1
	PUBLIC	left
	PUBLIC	avge
	PUBLIC	right
	PUBLIC	keykey
	PUBLIC	black
	PUBLIC	TIMER1_ISR
	PUBLIC	led
	PUBLIC	PCA_ISR
	PUBLIC	main
	PUBLIC	_judgement
	PUBLIC	confirm
	PUBLIC	_delay_s
	PUBLIC	pingjun
	PUBLIC	_speedchange
	PUBLIC	Init_Device
	PUBLIC	Interrupts_Init
	PUBLIC	Port_IO_Init

	RSEG  ?DT?pingjun?SENORPE
?pingjun?BYTE:
     avgad1?443:   DS   4
	ORG  4
      avgad?444:   DS   4
	ORG  8
      state?445:   DS   4

	RSEG  ?DT?main?SENORPE
?main?BYTE:
     chazhi?852:   DS   1
	ORG  1
    chazhi1?853:   DS   1

	RSEG  ?DT?_judgement?SENORPE
?_judgement?BYTE:
       modi?749:   DS   1
	ORG  1
      modi1?750:   DS   1
	ORG  2
        dem?751:   DS   1

	RSEG  ?DT?led?SENORPE
?led?BYTE:
       key?1054:   DS   1

	RSEG  ?DT?_delay_s?SENORPE
?_delay_s?BYTE:
          n?546:   DS   1

	RSEG  ?DT?_speedchange?SENORPE
?_speedchange?BYTE:
       duty?340:   DS   1
	ORG  1
          i?341:   DS   1

	RSEG  ?DT?confirm?SENORPE
?confirm?BYTE:
          i?647:   DS   1
	ORG  1
          t?648:   DS   1

	RSEG  ?DT?SENORPE
          black:   DS   1
         keykey:   DS   1
          right:   DS   1
           avge:   DS   4
           left:   DS   1
       counter1:   DS   1
       counter2:   DS   1
             bb:   DS   1
          avge0:   DS   4
             a?:   DS   1
             c?:   DS   1
          time1:   DS   1
              d:   DS   1
          time2:   DS   1
              e:   DS   1
        forward:   DS   1

	RSEG  ?XD?SENORPE
          data0:   DS   60

	RSEG  ?C_INITSEG
	DB	004H
	DB	avge
	DB	000H,000H,000H,000H	; long

	DB	004H
	DB	avge0
	DB	000H,000H,000H,000H	; long

	DB	001H
	DB	time1
	DB	000H

	DB	001H
	DB	time2
	DB	000H

	DB	001H
	DB	counter1
	DB	000H

	DB	001H
	DB	counter2
	DB	000H

	DB	001H
	DB	forward
	DB	000H

	DB	001H
	DB	black
	DB	000H

	DB	001H
	DB	keykey
	DB	000H

; /////////////////////////////////////
; //  Generated Initialization File  //
; /////////////////////////////////////
; 
; #include "c8051F020.h"
; #include "intrins.h"
; #include "CH452CMD.H"	// 定义常用命令码及外部子程序
; #include "pin.h"
; #include "math.h"
; #include "key_display.h"		  
; 
; 
; //定义端口
; sbit LEDG	=	P3^4;
; sbit BACK	=	P0^4;
; sbit START	=	P0^5;
; sbit SPOKER =   P0^6;
; sbit IN0	=	P1^1;//左
; sbit IN1	=	P1^3;//中
; sbit IN2	=	P1^0;//右
; sbit IN3	=	P1^5;//斜右
; sbit IN4	=	P1^2;//斜左
; ulong xdata data0[15];
; ulong avge=0,avge0=0;
; uchar time1=0,time2=0,counter1=0,counter2=0;
; uchar a,bb,c,d,e,right,left;
; uchar forward=0,black=0,keykey=0;
; // Peripheral specific initialization functions,
; // Called from the Init_Device() function 系统设置,020初始化  DA_OUT  AD_IN
; 
;  
; void Port_IO_Init()

	RSEG  ?PR?Port_IO_Init?SENORPE
Port_IO_Init:
			; SOURCE LINE # 32
; {
			; SOURCE LINE # 33
;     // P0.0  -  CEX0 (PCA),  Open-Drain, Digital
;    // P0.1  -  CEX1 (PCA),  Open-Drain, Digital
;        XBR0      = 0x10;	/*CEX0-->P0.0,CEX1-->P0.1*/
			; SOURCE LINE # 36
	MOV  	XBR0,#010H
;        XBR2      = 0x40;	
			; SOURCE LINE # 37
	MOV  	XBR2,#040H
; }
			; SOURCE LINE # 38
	RET  	
; END OF Port_IO_Init

; 
; void Interrupts_Init()

	RSEG  ?PR?Interrupts_Init?SENORPE
Interrupts_Init:
			; SOURCE LINE # 40
; {   
			; SOURCE LINE # 41
; 	IE        = 0x08; //使能定时器1中断
			; SOURCE LINE # 42
	MOV  	IE,#08H
;     IP        = 0x08;  //使定时器1优先级高
			; SOURCE LINE # 43
	MOV  	IP,#08H
;     EIE1      = 0x08; //使能PCA0中断
			; SOURCE LINE # 44
	MOV  	EIE1,#08H
;     EIE2      = 0x20;  //使能外部键盘中断
			; SOURCE LINE # 45
	MOV  	EIE2,#020H
;     EIP2      = 0x20;  //使外部键盘优先级高
			; SOURCE LINE # 46
	MOV  	EIP2,#020H
; 
; }
			; SOURCE LINE # 48
	RET  	
; END OF Interrupts_Init

; 
; // Initialization function for device,
; // Call Init_Device() from your main program
; void Init_Device(void)

	RSEG  ?PR?Init_Device?SENORPE
Init_Device:
	USING	0
			; SOURCE LINE # 52
; {
			; SOURCE LINE # 53
;     Reset_Sources_Init();
			; SOURCE LINE # 54
	LCALL	Reset_Sources_Init
;     ADC_Init();
			; SOURCE LINE # 55
	LCALL	ADC_Init
; 	PCA_Init();
			; SOURCE LINE # 56
	LCALL	PCA_Init
; 	Timer_Init();
			; SOURCE LINE # 57
	LCALL	Timer_Init
; 	Oscillator_Init();
			; SOURCE LINE # 58
	LCALL	Oscillator_Init
;     Voltage_Reference_Init();
			; SOURCE LINE # 59
	LCALL	Voltage_Reference_Init
;     Port_IO_Init();
			; SOURCE LINE # 60
	LCALL	Port_IO_Init
;     Interrupts_Init();
			; SOURCE LINE # 61
	LJMP 	Interrupts_Init
; END OF Init_Device

; }
; 
; 
; void speedchange(uchar duty,uchar i)

	RSEG  ?PR?_speedchange?SENORPE
_speedchange:
	USING	0
			; SOURCE LINE # 65
	MOV  	duty?340,R7
	MOV  	i?341,R5
; {
			; SOURCE LINE # 66
;      if(i==0) PCA0CPH0 =(uchar)((100-duty)*2.56);		//把duty值转换,赋值给控制占空比的寄存器
			; SOURCE LINE # 67
	MOV  	A,i?341
	JNZ  	?C0004
	CLR  	C
	MOV  	A,#064H
	SUBB 	A,R7
	MOV  	R5,A
	CLR  	A
	SUBB 	A,#00H
	MOV  	R4,A
	CLR  	A
	LCALL	?C?FCASTI
	MOV  	R3,#0AH
	MOV  	R2,#0D7H
	MOV  	R1,#023H
	MOV  	R0,#040H
	LCALL	?C?FPMUL
	LCALL	?C?CASTF
	MOV  	PCA0CPH0,R7
?C0004:
; 	 if(i==1) PCA0CPH1=(uchar)((100-duty)*2.56); 
			; SOURCE LINE # 68
	MOV  	A,i?341
	CJNE 	A,#01H,?C0006
	CLR  	C
	MOV  	A,#064H
	SUBB 	A,duty?340
	MOV  	R5,A
	CLR  	A
	SUBB 	A,#00H
	MOV  	R4,A
	CLR  	A
	LCALL	?C?FCASTI
	MOV  	R3,#0AH
	MOV  	R2,#0D7H
	MOV  	R1,#023H
	MOV  	R0,#040H
	LCALL	?C?FPMUL
	LCALL	?C?CASTF
	MOV  	PCA0CPH1,R7
; 
; }
			; SOURCE LINE # 70
?C0006:
	RET  	
; END OF _speedchange

; ulong pingjun (void)

	RSEG  ?PR?pingjun?SENORPE
pingjun:
	USING	0
			; SOURCE LINE # 71
; {	  uchar i;
			; SOURCE LINE # 72
;       ulong avgad1=0,avgad=0,state=0;
			; SOURCE LINE # 73
	CLR  	A
	MOV  	avgad1?443+03H,A
	MOV  	avgad1?443+02H,A
	MOV  	avgad1?443+01H,A
	MOV  	avgad1?443,A
	MOV  	avgad?444+03H,A
	MOV  	avgad?444+02H,A
	MOV  	avgad?444+01H,A
	MOV  	avgad?444,A
	MOV  	state?445+03H,A
	MOV  	state?445+02H,A
	MOV  	state?445+01H,A
	MOV  	state?445,A
; 	  state=AD_IN();
			; SOURCE LINE # 74
	LCALL	AD_IN
	LCALL	?C?CASTF
	MOV  	state?445+03H,R7
	MOV  	state?445+02H,R6
	MOV  	state?445+01H,R5
	MOV  	state?445,R4
;       for(i=0;i<15;i++)
			; SOURCE LINE # 75
;---- Variable 'i?442' assigned to Register 'R3' ----
	CLR  	A
	MOV  	R3,A
?C0007:
; 	      {
			; SOURCE LINE # 76
; 		
; 	   	    data0[i]=state;
			; SOURCE LINE # 78
	MOV  	R7,state?445+03H
	MOV  	R6,state?445+02H
	MOV  	R5,state?445+01H
	MOV  	R4,state?445
	MOV  	A,R3
	ADD  	A,ACC
	ADD  	A,ACC
	ADD  	A,#LOW (data0)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (data0)
	MOV  	DPH,A
	LCALL	?C?LSTXDATA
; 		    avgad+=data0[i];		
			; SOURCE LINE # 79
	MOV  	A,R3
	ADD  	A,ACC
	ADD  	A,ACC
	ADD  	A,#LOW (data0)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (data0)
	MOV  	DPH,A

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -