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

📄 key_display.src

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

$NOMOD51

NAME	KEY_DISPLAY

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
EIP1	DATA	0F6H
EIP2	DATA	0F7H
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
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
ACC	DATA	0E0H
ES0	BIT	0A8H.4
AD0EN	BIT	0E8H.7
CT2	BIT	0C8H.1
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
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
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?Reset_Sources_Init?KEY_DISPLAY       SEGMENT CODE 
?PR?Oscillator_Init?KEY_DISPLAY          SEGMENT CODE 
?PR?ADC_Init?KEY_DISPLAY                 SEGMENT CODE 
?PR?DAC_Init?KEY_DISPLAY                 SEGMENT CODE 
?PR?Voltage_Reference_Init?KEY_DISPLAY   SEGMENT CODE 
?PR?PCA_Init?KEY_DISPLAY                 SEGMENT CODE 
?PR?Timer_Init?KEY_DISPLAY               SEGMENT CODE 
?PR?_delayms?KEY_DISPLAY                 SEGMENT CODE 
?PR?AD_IN?KEY_DISPLAY                    SEGMENT CODE 
?PR?_DA_OUT?KEY_DISPLAY                  SEGMENT CODE 
?PR?_CH452_Write?KEY_DISPLAY             SEGMENT CODE 
?PR?CH452_Read?KEY_DISPLAY               SEGMENT CODE 
?PR?CH452_Init?KEY_DISPLAY               SEGMENT CODE 
?PR?_key_tran?KEY_DISPLAY                SEGMENT CODE 
?PR?_BCDdisplay_l?KEY_DISPLAY            SEGMENT CODE 
?DT?_BCDdisplay_l?KEY_DISPLAY            SEGMENT DATA OVERLAYABLE 
?PR?_BCDdisplay_h?KEY_DISPLAY            SEGMENT CODE 
?DT?_BCDdisplay_h?KEY_DISPLAY            SEGMENT DATA OVERLAYABLE 
?PR?_BCDdisplay1?KEY_DISPLAY             SEGMENT CODE 
?DT?_BCDdisplay1?KEY_DISPLAY             SEGMENT DATA OVERLAYABLE 
	EXTRN	CODE (_abs)
	EXTRN	CODE (?C?FCASTI)
	EXTRN	CODE (?C?CASTF)
	EXTRN	CODE (?C?SIDIV)
	EXTRN	CODE (?C?FPSUB)
	EXTRN	CODE (?C?FPMUL)
	EXTRN	CODE (?C?FCASTC)
	EXTRN	CODE (?C?UIDIV)
	PUBLIC	_BCDdisplay1
	PUBLIC	_BCDdisplay_h
	PUBLIC	_BCDdisplay_l
	PUBLIC	_key_tran
	PUBLIC	CH452_Init
	PUBLIC	CH452_Read
	PUBLIC	_CH452_Write
	PUBLIC	_DA_OUT
	PUBLIC	AD_IN
	PUBLIC	_delayms
	PUBLIC	Timer_Init
	PUBLIC	PCA_Init
	PUBLIC	Voltage_Reference_Init
	PUBLIC	DAC_Init
	PUBLIC	ADC_Init
	PUBLIC	Oscillator_Init
	PUBLIC	Reset_Sources_Init

	RSEG  ?DT?_BCDdisplay1?KEY_DISPLAY
?_BCDdisplay1?BYTE:
         x?1666:   DS   2
	ORG  2
         a?1667:   DS   8

	RSEG  ?DT?_BCDdisplay_h?KEY_DISPLAY
?_BCDdisplay_h?BYTE:
         n?1560:   DS   4
	ORG  4
         x?1561:   DS   2
	ORG  6
         a?1562:   DS   4
	ORG  10
         b?1563:   DS   1
	ORG  11
         t?1564:   DS   1

	RSEG  ?DT?_BCDdisplay_l?KEY_DISPLAY
?_BCDdisplay_l?BYTE:
         n?1455:   DS   4
	ORG  4
         x?1456:   DS   2
	ORG  6
         a?1457:   DS   4
	ORG  10
         b?1458:   DS   1
	ORG  11
         t?1459:   DS   1
; /**************************************/
; //key_display.c
; #include "c8051F020.h"
; #include "intrins.h"
; #include "CH452CMD.H"	// 定义常用命令码及外部子程序
; #include "pin.h"
; #include "math.h"
; 
; 
; #ifndef    __UNSIGNEDS
; #define	   __UNSIGNEDS
; #define     uint      unsigned int
; #define     uchar     unsigned char
; #define     ushort    unsigned short
; #define	    ulong	  unsigned long
; #endif
; 
; /***********关看门狗*********************/
; void Reset_Sources_Init()

	RSEG  ?PR?Reset_Sources_Init?KEY_DISPLAY
Reset_Sources_Init:
			; SOURCE LINE # 19
; {
			; SOURCE LINE # 20
;     WDTCN     = 0xDE;
			; SOURCE LINE # 21
	MOV  	WDTCN,#0DEH
;     WDTCN     = 0xAD;
			; SOURCE LINE # 22
	MOV  	WDTCN,#0ADH
; 
; }
			; SOURCE LINE # 24
	RET  	
; END OF Reset_Sources_Init

; 
; 
; /***********系统时钟4M*********************/
; void Oscillator_Init()

	RSEG  ?PR?Oscillator_Init?KEY_DISPLAY
Oscillator_Init:
			; SOURCE LINE # 28
; {
			; SOURCE LINE # 29
;     OSCICN    = 0x05;
			; SOURCE LINE # 30
	MOV  	OSCICN,#05H
; }
			; SOURCE LINE # 31
	RET  	
; END OF Oscillator_Init

; 
; 
; 
; /***********ADC输入初始化,改变AMX0SL=0x01-0x07为AIN1-AIN7*********************/
; void ADC_Init()

	RSEG  ?PR?ADC_Init?KEY_DISPLAY
ADC_Init:
			; SOURCE LINE # 36
; {	 
			; SOURCE LINE # 37
;     AMX0SL    = 0x01;   //AIN1作为AD输入,30管脚  
			; SOURCE LINE # 38
	MOV  	AMX0SL,#01H
;     //ADC0CF    = 0x08;
;     ADC0CN    = 0x80;	 //ADC使能
			; SOURCE LINE # 40
	MOV  	ADC0CN,#080H
; 
; }
			; SOURCE LINE # 42
	RET  	
; END OF ADC_Init

; /***********DAC输出初始化*********************/
; void DAC_Init()

	RSEG  ?PR?DAC_Init?KEY_DISPLAY
DAC_Init:
			; SOURCE LINE # 44
; {
			; SOURCE LINE # 45
;     DAC0CN    = 0x80;     //DAC使能
			; SOURCE LINE # 46
	MOV  	DAC0CN,#080H
; 
; }
			; SOURCE LINE # 48
	RET  	
; END OF DAC_Init

; 
; /***********参考电压初始化*********************/
; void Voltage_Reference_Init()

	RSEG  ?PR?Voltage_Reference_Init?KEY_DISPLAY
Voltage_Reference_Init:
			; SOURCE LINE # 51
; {
			; SOURCE LINE # 52
;     REF0CN    = 0x03;     //内部参考电压2.5V
			; SOURCE LINE # 53
	MOV  	REF0CN,#03H
; 
; }
			; SOURCE LINE # 55
	RET  	
; END OF Voltage_Reference_Init

; /***输出占空比不同的PWM可以设定P0.0,0.1...改变PCA0CPH0.PCA0CPM1改变占空比 *****/
; void PCA_Init()

	RSEG  ?PR?PCA_Init?KEY_DISPLAY
PCA_Init:
			; SOURCE LINE # 57
; {
			; SOURCE LINE # 58
;     PCA0CN    = 0x40;	  /*允许PCA定时器/计数器*/
			; SOURCE LINE # 59
	MOV  	PCA0CN,#040H
; 	PCA0L	  = 0x00;
			; SOURCE LINE # 60
	CLR  	A
	MOV  	PCA0L,A
; 	PCA0H	  = 0x00;//PCA0MD    = 0x80;
			; SOURCE LINE # 61
	MOV  	PCA0H,A
;     PCA0CPM0  = 0x43;	 /*8位PWM方式,当CCF0=1时,允许辅捉/比较标志的中断申请*/
			; SOURCE LINE # 62
	MOV  	PCA0CPM0,#043H
; 	PCA0CPL0  = 0x00;	/*置初值*/
			; SOURCE LINE # 63
	MOV  	PCA0CPL0,A
;     PCA0CPH0  = 0x80;	//  PCA0CPH0  = 0xC0	//PCA0MD = 0x01;	/*PCA定时器/计数器溢出中断禁止*/
			; SOURCE LINE # 64
	MOV  	PCA0CPH0,#080H
; 	PCA0CPM1  = 0x43;	/*8位PWM方式,当CCF1=1时,允许辅捉/比较标志的中断申请*/
			; SOURCE LINE # 65
	MOV  	PCA0CPM1,#043H
; 	PCA0CPL1  = 0x00;	/*置初值*/
			; SOURCE LINE # 66
	MOV  	PCA0CPL1,A
;     PCA0CPH1  = 0x80;
			; SOURCE LINE # 67
	MOV  	PCA0CPH1,#080H
; 
; 
; 
; }
			; SOURCE LINE # 71
	RET  	
; END OF PCA_Init

; 
; 
; 
; /***定时器0,1初始化 TMOD设置几位什么方式CKCON是时基是系统的几倍*****/
; void Timer_Init()

	RSEG  ?PR?Timer_Init?KEY_DISPLAY
Timer_Init:
			; SOURCE LINE # 76
;  {
			; SOURCE LINE # 77
; 	//TR0=0;								//关定时器0
; 	//TR1=0;								//关定时器1
;     TMOD= 0x10;			            //定时器0是16为计数器(T0脚)方式
			; SOURCE LINE # 80
	MOV  	TMOD,#010H
; 	CKCON=0x00;							//定时器1的时基与系统1/12
			; SOURCE LINE # 81
	CLR  	A
	MOV  	CKCON,A
; 	TH1=0x7D	;						//初值  1s
			; SOURCE LINE # 82
	MOV  	TH1,#07DH
; 	TL1=0xFB	;
			; SOURCE LINE # 83
	MOV  	TL1,#0FBH
; }
			; SOURCE LINE # 84
	RET  	
; END OF Timer_Init

; 
; 
; /***********延时n ms******************/
; void delayms(uint n)	   

	RSEG  ?PR?_delayms?KEY_DISPLAY
_delayms:
	USING	0
			; SOURCE LINE # 88
;---- Variable 'n?740' assigned to Register 'R6/R7' ----
; {	
			; SOURCE LINE # 89
; 	uint i,j,k;
; 	for(i=0;i<n;i++)
			; SOURCE LINE # 91
;---- Variable 'i?741' assigned to Register 'R4/R5' ----
	CLR  	A
	MOV  	R5,A
	MOV  	R4,A
?C0008:
	CLR  	C
	MOV  	A,R5
	SUBB 	A,R7
	MOV  	A,R4
	SUBB 	A,R6
	JNC  	?C0017
; 		for(j=0;j<200;j++)
			; SOURCE LINE # 92
;---- Variable 'j?742' assigned to Register 'R2/R3' ----
	CLR  	A
	MOV  	R3,A
	MOV  	R2,A
?C0011:
; 			for(k=0;k<10;k++)
			; SOURCE LINE # 93
;---- Variable 'k?743' assigned to Register 'DPTR' ----
	MOV  	DPTR,#00H
?C0014:
; 				_nop_();
			; SOURCE LINE # 94
	NOP  	
	INC  	DPTR
	MOV  	A,DPL
	XRL  	A,#0AH
	ORL  	A,DPH
	JNZ  	?C0014
?C0013:
	INC  	R3
	CJNE 	R3,#00H,?C0091
	INC  	R2
?C0091:
	MOV  	A,R3
	XRL  	A,#0C8H
	ORL  	A,R2
	JNZ  	?C0011
?C0010:
	INC  	R5
	CJNE 	R5,#00H,?C0092
	INC  	R4
?C0092:
	SJMP 	?C0008
; 
; }
			; SOURCE LINE # 96
?C0017:
	RET  	
; END OF _delayms

; 
; 
; /***********ADC输入实现****************uchar i,uchar j*****/
; float AD_IN(void)											   

	RSEG  ?PR?AD_IN?KEY_DISPLAY
AD_IN:
	USING	0
			; SOURCE LINE # 100
; {
			; SOURCE LINE # 101
; //    float tmp;
;     uint temp;
;   // AMX0P     = 0x10;
;     delayms(10);
			; SOURCE LINE # 105
	MOV  	R7,#0AH
	MOV  	R6,#00H
	LCALL	_delayms
;     AD0BUSY=1;
			; SOURCE LINE # 106
	SETB 	AD0BUSY
?C0018:
;     while(AD0INT == 0);
			; SOURCE LINE # 107
	JNB  	AD0INT,?C0018
?C0019:
;     temp=ADC0H<<8;
			; SOURCE LINE # 108
	MOV  	R7,ADC0H
	MOV  	A,R7
	MOV  	R7,#00H
	MOV  	R6,A
;---- Variable 'temp?844' assigned to Register 'R6/R7' ----
;     temp+=ADC0L;
			; SOURCE LINE # 109
	MOV  	R5,ADC0L
	MOV  	A,R7
	ADD  	A,R5
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
	MOV  	R6,A
;     // tmp=(2.5*(temp/4095.0))*1000;
;     //return(tmp);
;     return(temp);
			; SOURCE LINE # 112
	XCH  	A,R5
	MOV  	A,R7
	XCH  	A,R5
	MOV  	R4,A
	CLR  	A
	LCALL	?C?FCASTI
; }
			; SOURCE LINE # 113
?C0020:
	RET  	
; END OF AD_IN

; 
; 
; /***********DAC输出实现*********************/
; void DA_OUT(uint dat)															  

	RSEG  ?PR?_DA_OUT?KEY_DISPLAY
_DA_OUT:
	USING	0
			; SOURCE LINE # 117
;---- Variable 'dat?945' assigned to Register 'R4/R5' ----
	XCH  	A,R5
	MOV  	A,R7
	XCH  	A,R5
	XCH  	A,R4
	MOV  	A,R6
	XCH  	A,R4
; { 
			; SOURCE LINE # 118
;   uint dah,dal;
;   dah=dat>>8;
			; SOURCE LINE # 120
	MOV  	A,R4
	MOV  	R7,A
;---- Variable 'dah?946' assigned to Register 'R6/R7' ----
;   dal=dat&0x00FF;
			; SOURCE LINE # 121
;---- Variable 'dal?947' assigned to Register 'R4/R5' ----
;   DAC0L=(uchar)dal;
			; SOURCE LINE # 122
	MOV  	DAC0L,R5
;   DAC0H=(uchar)dah;
			; SOURCE LINE # 123
	MOV  	DAC0H,R7
;     
; }
			; SOURCE LINE # 125
	RET  	
; END OF _DA_OUT

; 
; 
; /***********CH452写入*********************/
; void CH452_Write(ushort cmd)

	RSEG  ?PR?_CH452_Write?KEY_DISPLAY
L?0093:
	USING	0
	MOV  	A,R7
L?0094:
	MOV  	R6,A
	CLR  	A
	ADD  	A,#00H
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#08H
	MOV  	R6,A
	MOV  	A,R7
	ORL  	A,#010H
	MOV  	R7,A
_CH452_Write:
	USING	0
			; SOURCE LINE # 129
;---- Variable 'cmd?1048' assigned to Register 'R6/R7' ----
; {
			; SOURCE LINE # 130
; 	uchar i;
			; SOURCE LINE # 131
; 	DISABLE_KEY_INTERRUPT;		  //禁止键盘中断,防止传输过程中被CH452中断而进入中断服务程序中再次传输
			; SOURCE LINE # 132
	ANL  	EIE2,#0DFH
; 	CH452_LOAD_CLR;                 //命令开始,LOAD=0
			; SOURCE LINE # 133
	CLR  	CH452_LOAD
; 	CH452_LOAD_D_OUT;		// 设置LOAD为输出方向
			; SOURCE LINE # 134
; 	CH452_DOUT_D_IN;		// 设置DOUT为输入方向
			; SOURCE LINE # 135
	SETB 	CH452_DOUT
; 	CH452_DIN_D_OUT;		// 设置DIN为输出方向
			; SOURCE LINE # 136
; 	CH452_DCLK_D_OUT;		// 设置DCLK为输出方向

⌨️ 快捷键说明

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