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

📄 main.src

📁 数控系统的模拟系统,用SSTC51仿真单片机,仿真数控机床切割,能执行数控机床代码.
💻 SRC
📖 第 1 页 / 共 5 页
字号:
; .\main.SRC generated from: main.c
; COMPILER INVOKED BY:
;        d:\Keil3\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND SRC(.\main.SRC)

$NOMOD51

NAME	MAIN

Y_F	BIT	090H.2
P0	DATA	080H
P1	DATA	090H
LCM_E	BIT	080H.7
P2	DATA	0A0H
P3	DATA	0B0H
AC	BIT	0D0H.6
T0	BIT	0B0H.4
X_M	BIT	090H.1
T1	BIT	0B0H.5
Y_M	BIT	090H.3
EA	BIT	0A8H.7
IE	DATA	0A8H
P0_0	BIT	080H.0
a0	BIT	0E0H.0
P1_0	BIT	090H.0
P0_1	BIT	080H.1
a1	BIT	0E0H.1
FL	BIT	0D0H.1
P2_0	BIT	0A0H.0
P1_1	BIT	090H.1
P0_2	BIT	080H.2
a2	BIT	0E0H.2
P3_0	BIT	0B0H.0
P2_1	BIT	0A0H.1
P1_2	BIT	090H.2
P0_3	BIT	080H.3
a3	BIT	0E0H.3
P3_1	BIT	0B0H.1
P2_2	BIT	0A0H.2
P1_3	BIT	090H.3
P0_4	BIT	080H.4
a4	BIT	0E0H.4
P3_2	BIT	0B0H.2
P2_3	BIT	0A0H.3
P1_4	BIT	090H.4
P0_5	BIT	080H.5
a5	BIT	0E0H.5
RD	BIT	0B0H.7
P3_3	BIT	0B0H.3
P2_4	BIT	0A0H.4
P1_5	BIT	090H.5
P0_6	BIT	080H.6
a6	BIT	0E0H.6
P3_4	BIT	0B0H.4
P2_5	BIT	0A0H.5
P1_6	BIT	090H.6
P0_7	BIT	080H.7
a7	BIT	0E0H.7
P3_5	BIT	0B0H.5
ES	BIT	0A8H.4
P2_6	BIT	0A0H.6
P1_7	BIT	090H.7
P3_6	BIT	0B0H.6
P2_7	BIT	0A0H.7
IP	DATA	0B8H
P3_7	BIT	0B0H.7
RI	BIT	098H.0
CY	BIT	0D0H.7
INT0	BIT	0B0H.2
INT1	BIT	0B0H.3
TI	BIT	098H.1
PS	BIT	0B8H.4
SP	DATA	081H
OV	BIT	0D0H.2
WR	BIT	0B0H.6
SBUF	DATA	099H
PCON	DATA	087H
SCON	DATA	098H
TMOD	DATA	089H
TCON	DATA	088H
sda	BIT	0B0H.6
IE0	BIT	088H.1
IE1	BIT	088H.3
B	DATA	0F0H
scl	BIT	0B0H.7
ACC	DATA	0E0H
ET0	BIT	0A8H.1
TAI_BI	BIT	090H.6
ET1	BIT	0A8H.3
TF0	BIT	088H.5
ET2	BIT	0A8H.5
TF1	BIT	088H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
IT0	BIT	088H.0
TH1	DATA	08DH
EX1	BIT	0A8H.2
TB8	BIT	098H.3
IT1	BIT	088H.2
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
PT0	BIT	0B8H.1
X_DIAN	BIT	090H.5
RS0	BIT	0D0H.3
PT1	BIT	0B8H.3
Y_DIAN	BIT	090H.4
RS1	BIT	0D0H.4
PT2	BIT	0B8H.5
TR0	BIT	088H.4
TR1	BIT	088H.6
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
DPH	DATA	083H
DPL	DATA	082H
LCM_RS	BIT	080H.5
REN	BIT	098H.4
LCM_RW	BIT	080H.6
RXD	BIT	0B0H.0
TXD	BIT	0B0H.1
F0	BIT	0D0H.5
PSW	DATA	0D0H
X_F	BIT	090H.0
?PR?y_zm?MAIN        SEGMENT CODE 
?PR?x_zm?MAIN        SEGMENT CODE 
?PR?_weizhi?MAIN     SEGMENT CODE 
?PR?xoy1?MAIN        SEGMENT CODE 
?PR?xoy2?MAIN        SEGMENT CODE 
?PR?xoy3?MAIN        SEGMENT CODE 
?PR?xoy4?MAIN        SEGMENT CODE 
?PR?xoy5?MAIN        SEGMENT CODE 
?PR?xoy6?MAIN        SEGMENT CODE 
?PR?xoy7?MAIN        SEGMENT CODE 
?PR?xoy8?MAIN        SEGMENT CODE 
?PR?_z_chabu?MAIN    SEGMENT CODE 
?DT?_z_chabu?MAIN    SEGMENT DATA OVERLAYABLE 
?PR?ManualOperation?MAIN                 SEGMENT CODE 
?PR?Y_NMove?MAIN     SEGMENT CODE 
?DT?Y_NMove?MAIN     SEGMENT DATA OVERLAYABLE 
?PR?Y_PMove?MAIN     SEGMENT CODE 
?DT?Y_PMove?MAIN     SEGMENT DATA OVERLAYABLE 
?PR?X_PMove?MAIN     SEGMENT CODE 
?DT?X_PMove?MAIN     SEGMENT DATA OVERLAYABLE 
?PR?X_NMove?MAIN     SEGMENT CODE 
?DT?X_NMove?MAIN     SEGMENT DATA OVERLAYABLE 
?PR?_WriteDataLCM?MAIN                   SEGMENT CODE 
?DT?_WriteDataLCM?MAIN                   SEGMENT DATA OVERLAYABLE 
?PR?_WriteCommandLCM?MAIN                SEGMENT CODE 
?DT?_WriteCommandLCM?MAIN                SEGMENT DATA OVERLAYABLE 
?PR?ReadStatusLCM?MAIN                   SEGMENT CODE 
?PR?ReadLCM?MAIN     SEGMENT CODE 
?PR?LCMInit?MAIN     SEGMENT CODE 
?PR?_DisplayOneChar?MAIN                 SEGMENT CODE 
?DT?_DisplayOneChar?MAIN                 SEGMENT DATA OVERLAYABLE 
?PR?Delay5Ms?MAIN    SEGMENT CODE 
?PR?Delay400Ms?MAIN  SEGMENT CODE 
?PR?_Lcd_print?MAIN  SEGMENT CODE 
?DT?_Lcd_print?MAIN  SEGMENT DATA OVERLAYABLE 
?PR?_Lcd_print1?MAIN SEGMENT CODE 
?DT?_Lcd_print1?MAIN SEGMENT DATA OVERLAYABLE 
?PR?_LocateXY?MAIN   SEGMENT CODE 
?PR?Clear_LCD?MAIN   SEGMENT CODE 
?PR?G_input?MAIN     SEGMENT CODE 
?PR?key_handle?MAIN  SEGMENT CODE 
?DT?key_handle?MAIN  SEGMENT DATA OVERLAYABLE 
?PR?number_input?MAIN                    SEGMENT CODE 
?PR?serial_number_up?MAIN                SEGMENT CODE 
?PR?serial_number_down?MAIN              SEGMENT CODE 
?PR?pre_up?MAIN      SEGMENT CODE 
?PR?forward_down?MAIN                    SEGMENT CODE 
?PR?Return_origin?MAIN                   SEGMENT CODE 
?PR?Y_Reset?MAIN     SEGMENT CODE 
?DT?Y_Reset?MAIN     SEGMENT DATA OVERLAYABLE 
?PR?X_Reset?MAIN     SEGMENT CODE 
?DT?X_Reset?MAIN     SEGMENT DATA OVERLAYABLE 
?PR?Y_MZ?MAIN        SEGMENT CODE 
?PR?X_MZ?MAIN        SEGMENT CODE 
?PR?Line_determing?MAIN                  SEGMENT CODE 
?PR?xoy1y?MAIN       SEGMENT CODE 
?PR?xoy2y?MAIN       SEGMENT CODE 
?PR?xoy3y?MAIN       SEGMENT CODE 
?PR?xoy4y?MAIN       SEGMENT CODE 
?PR?xoy5y?MAIN       SEGMENT CODE 
?PR?xoy6y?MAIN       SEGMENT CODE 
?PR?xoy7y?MAIN       SEGMENT CODE 
?PR?xoy8y?MAIN       SEGMENT CODE 
?PR?_circle_interpolation?MAIN           SEGMENT CODE 
?DT?_circle_interpolation?MAIN           SEGMENT DATA OVERLAYABLE 
?PR?star24?MAIN      SEGMENT CODE 
?PR?pause24?MAIN     SEGMENT CODE 
?PR?ack24?MAIN       SEGMENT CODE 
?PR?uack24?MAIN      SEGMENT CODE 
?PR?cack24?MAIN      SEGMENT CODE 
?BI?cack24?MAIN      SEGMENT BIT OVERLAYABLE 
?PR?rd24?MAIN        SEGMENT CODE 
?PR?_wd24?MAIN       SEGMENT CODE 
?PR?_read_I2C?MAIN   SEGMENT CODE 
?PR?_write_I2C?MAIN  SEGMENT CODE 
?PR?_readBlock_I2C?MAIN                  SEGMENT CODE 
?DT?_readBlock_I2C?MAIN                  SEGMENT DATA OVERLAYABLE 
?CO?MAIN             SEGMENT CODE 
?C_INITSEG           SEGMENT CODE 
?ID?MAIN             SEGMENT IDATA 
?DT?MAIN             SEGMENT DATA 
?BI?MAIN             SEGMENT BIT 
	EXTRN	CODE (_fabs)
	EXTRN	CODE (?C?IMUL)
	EXTRN	CODE (?C?FCASTI)
	EXTRN	CODE (?C?CASTF)
	EXTRN	CODE (?C?FLDIIDATA)
	EXTRN	CODE (?C?CLDOPTR)
	EXTRN	CODE (?C?CCASE)
	EXTRN	CODE (?C?FPADD)
	EXTRN	CODE (?C?FPCMP3)
	EXTRN	CODE (?C?CSTOPTR)
	PUBLIC	ir_sign_count
	PUBLIC	ir_temp
	PUBLIC	s
	PUBLIC	n
	PUBLIC	ir_start_flag
	PUBLIC	i
	PUBLIC	Pref_y
	PUBLIC	Pref_x
	PUBLIC	ny
	PUBLIC	Fm1
	PUBLIC	XOYY
	PUBLIC	ir_data
	PUBLIC	ir_flag
	PUBLIC	xunhao1
	PUBLIC	ir_rpt2
	PUBLIC	ir_rpt1
	PUBLIC	F
	PUBLIC	buf
	PUBLIC	Ye
	PUBLIC	STEP
	PUBLIC	Xe
	PUBLIC	YS
	PUBLIC	XS
	PUBLIC	ir_signtime
	PUBLIC	NR
	PUBLIC	xunhao
	PUBLIC	FM
	PUBLIC	_readBlock_I2C
	PUBLIC	_write_I2C
	PUBLIC	_read_I2C
	PUBLIC	_wd24
	PUBLIC	rd24
	PUBLIC	cack24
	PUBLIC	uack24
	PUBLIC	ack24
	PUBLIC	pause24
	PUBLIC	star24
	PUBLIC	?_circle_interpolation?BYTE
	PUBLIC	_circle_interpolation
	PUBLIC	xoy8y
	PUBLIC	xoy7y
	PUBLIC	xoy6y
	PUBLIC	xoy5y
	PUBLIC	xoy4y
	PUBLIC	xoy3y
	PUBLIC	xoy2y
	PUBLIC	xoy1y
	PUBLIC	Line_determing
	PUBLIC	X_MZ
	PUBLIC	Y_MZ
	PUBLIC	X_Reset
	PUBLIC	Y_Reset
	PUBLIC	Return_origin
	PUBLIC	forward_down
	PUBLIC	pre_up
	PUBLIC	serial_number_down
	PUBLIC	serial_number_up
	PUBLIC	number_input
	PUBLIC	key_handle
	PUBLIC	G_input
	PUBLIC	Clear_LCD
	PUBLIC	_LocateXY
	PUBLIC	_Lcd_print1
	PUBLIC	_Lcd_print
	PUBLIC	Delay400Ms
	PUBLIC	Delay5Ms
	PUBLIC	_DisplayOneChar
	PUBLIC	LCMInit
	PUBLIC	ReadLCM
	PUBLIC	ReadStatusLCM
	PUBLIC	_WriteCommandLCM
	PUBLIC	_WriteDataLCM
	PUBLIC	X_NMove
	PUBLIC	X_PMove
	PUBLIC	Y_PMove
	PUBLIC	Y_NMove
	PUBLIC	ManualOperation
	PUBLIC	?_z_chabu?BYTE
	PUBLIC	_z_chabu
	PUBLIC	xoy8
	PUBLIC	xoy7
	PUBLIC	xoy6
	PUBLIC	xoy5
	PUBLIC	xoy4
	PUBLIC	xoy3
	PUBLIC	xoy2
	PUBLIC	xoy1
	PUBLIC	_weizhi
	PUBLIC	x_zm
	PUBLIC	y_zm

	RSEG  ?DT?_DisplayOneChar?MAIN
?_DisplayOneChar?BYTE:
     DData?2261:   DS   1

	RSEG  ?DT?key_handle?MAIN
?key_handle?BYTE:
   du_data?3078:   DS   1

	RSEG  ?DT?X_NMove?MAIN
?X_NMove?BYTE:
         i?1655:   DS   4

	RSEG  ?DT?Y_NMove?MAIN
?Y_NMove?BYTE:
         i?1352:   DS   4

	RSEG  ?DT?X_PMove?MAIN
?X_PMove?BYTE:
         i?1554:   DS   4

	RSEG  ?DT?Y_PMove?MAIN
?Y_PMove?BYTE:
         i?1453:   DS   4

	RSEG  ?DT?_Lcd_print?MAIN
?_Lcd_print?BYTE:
     DData?2565:   DS   3
	ORG  3
ListLength?2566:   DS   1
	ORG  4
         X?2567:   DS   1
	ORG  5
         Y?2568:   DS   1

	RSEG  ?DT?_readBlock_I2C?MAIN
?_readBlock_I2C?BYTE:
 start_add?6096:   DS   2
	ORG  2
    length?6097:   DS   2
	ORG  4
   buf_ptr?6098:   DS   3
	ORG  7
         i?6099:   DS   2

	RSEG  ?DT?_WriteCommandLCM?MAIN
?_WriteCommandLCM?BYTE:
     WCLCM?1857:   DS   1

	RSEG  ?DT?X_Reset?MAIN
?X_Reset?BYTE:
         i?3881:   DS   4

	RSEG  ?DT?Y_Reset?MAIN
?Y_Reset?BYTE:
         i?3780:   DS   4

	RSEG  ?DT?_Lcd_print1?MAIN
?_Lcd_print1?BYTE:
     DData?2671:   DS   3
	ORG  3
ListLength?2672:   DS   1
	ORG  4
         X?2673:   DS   1
	ORG  5
         Y?2674:   DS   1

	RSEG  ?DT?_z_chabu?MAIN
?_z_chabu?BYTE:
	ORG  6
        x1?1147:   DS   2
	ORG  4
        y1?1148:   DS   2
	ORG  4
        x2?1149:   DS   2
	ORG  6
        y2?1150:   DS   2

	RSEG  ?DT?_WriteDataLCM?MAIN
?_WriteDataLCM?BYTE:
     WDLCM?1756:   DS   1

	RSEG  ?DT?_circle_interpolation?MAIN
?_circle_interpolation?BYTE:
        XS?5086:   DS   2
	ORG  2
        YS?5087:   DS   2
	ORG  4
        XE?5088:   DS   2
	ORG  6
        YE?5089:   DS   2

	RSEG  ?BI?cack24?MAIN
?cack24?BIT:
      flag?5590:   DBIT   1

	RSEG  ?ID?MAIN
             FM:   DS   2
         xunhao:   DS   1
             NR:   DS   2
    ir_signtime:   DS   1
             XS:   DS   2
             YS:   DS   2
           STEP:   DS   2
            buf:   DS   50
        ir_rpt1:   DS   1
        ir_rpt2:   DS   1
        xunhao1:   DS   1
        ir_data:   DS   4
           XOYY:   DS   2
             ny:   DS   2
         Pref_x:   DS   2
         Pref_y:   DS   2
              i:   DS   2
        ir_temp:   DS   1
  ir_sign_count:   DS   1

	RSEG  ?DT?MAIN
             Xe:   DS   2
             Ye:   DS   2
              F:   DS   2
            Fm1:   DS   2
              n:   DS   2
              s:   DS   1

	RSEG  ?BI?MAIN
        ir_flag:   DBIT   1
  ir_start_flag:   DBIT   1

	RSEG  ?CO?MAIN
?SC_0:
	DB  'M' ,'a' ,'n' ,'u' ,'a' ,'l' ,' ' ,'O' ,'p' ,'e' 
	DB  'r' ,'a' ,'t' ,'i' ,'o' ,'n' ,000H

?SC_17:
	DB  'Y' ,'_' ,'F' ,000H

?SC_21:
	DB  's' ,'t' ,'o' ,'p' ,000H

?SC_26:
	DB  'Y' ,'_' ,'Z' ,000H

?SC_30:
	DB  'X' ,'_' ,'Z' ,000H

?SC_34:
	DB  'X' ,'_' ,'F' ,000H

?SC_38:
	DB  'M' ,'D' ,'I' ,000H

?SC_42:
	DB  'G' ,'9' ,'1' ,000H

?SC_46:
	DB  'M' ,'0' ,'2' ,000H

?SC_50:
	DB  'M' ,'4' ,'7' ,000H

?SC_54:
	DB  'M' ,'4' ,'6' ,000H

?SC_58:
	DB  'G' ,'0' ,'0' ,000H

?SC_62:
	DB  'G' ,'0' ,'1' ,000H

?SC_66:
	DB  'G' ,'0' ,'2' ,000H

?SC_70:
	DB  'G' ,'0' ,'3' ,000H

?SC_74:
	DB  'G' ,'0' ,'4' ,000H

?SC_78:
	DB  'm' ,'o' ,'v' ,'e' ,'_' ,'O' ,'R' ,'I' ,'G' ,'I' 
	DB  'N' ,000H

?SC_90:
	DB  'Y' ,'_' ,'R' ,'e' ,'s' ,'e' ,'t' ,000H

?SC_98:
	DB  'X' ,'_' ,'R' ,'e' ,'s' ,'e' ,'t' ,000H


	RSEG  ?C_INITSEG
	DB	001H
	DB	xunhao1
	DB	030H

	DB	001H
	DB	xunhao
	DB	030H

	DB	020H
	DB	032H
	DB	buf
	DB	013H
	DB	01DH
	DB	001H
	DB	002H
	DB	051H
	DB	001H
	DB	008H
	DB	052H
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB	0FFH
	DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
	DB  000H,000H,000H,000H,000H,000H,000H


	DB	002H
	DB	i
	DW	00004H

	DB	001H
	DB	ir_sign_count
	DB	000H

	DB	0C1H, ir_start_flag + 080H	; bit-init

	DB	002H
	DB	XS
	DW	00BB8H

	DB	002H
	DB	YS
	DW	00000H

	DB	002H
	DB	STEP
	DW	00001H

	DB	002H
	DB	NR
	DW	00001H

; //#include <C51S.LIB>
; #include <AT89X51.h>                         ////程序定义
; #include <stdio.h>
; #include <intrins.h>     
; #include <math.h>   
; #include <ALL.h>
; #include <Line_interpolation.c>
; #include <manual.c>
; #include <lcd.c>
; //#include <G_translation.c>
; #include <G_input.c>
; #include <return_origin.c>
; #include <Cir_interpolation.c>	 
; #include <24c02.c> 
; //#include <Interrupt service.c>
; /////////////////////子函数//////////////////////////
; 
; #define  x_add    0x00;
; #define  y_add   0x01;
; #define  user1_add  0x000;

	RSEG  ?PR?y_zm?MAIN
L?0469:
	USING	0
L?0470:
	MOV  	A,Xe+01H
	ADD  	A,Fm1+01H
	MOV  	Fm1+01H,A
	MOV  	A,Xe
	ADDC 	A,Fm1
	MOV  	Fm1,A
y_zm:
	USING	0
			; SOURCE LINE # 20
; #define  user2_add  0x300;
			; SOURCE LINE # 21
; 
			; SOURCE LINE # 22
;---- Variable 'i?040' assigned to Register 'R6/R7' ----
	CLR  	A
;---- Variable 'j?041' assigned to Register 'R2/R3' ----
	MOV  	R3,#05H
	MOV  	R2,A
; void    SaveXYToNVRAM (void)
;            {
			; SOURCE LINE # 24
	SETB 	Y_M
?C0001:
; 
			; SOURCE LINE # 25
;                write_I2C(x_add, Pref_x);  
			; SOURCE LINE # 26
;                write_I2C(y_add, Pref_y);  
			; SOURCE LINE # 27
	MOV  	R6,F
	MOV  	R7,F+01H
	MOV  	R4,#00H
	MOV  	R5,#064H
	LCALL	?C?IMUL
?C0003:
;              }
			; SOURCE LINE # 28
	MOV  	A,R7
	DEC  	R7
	MOV  	R4,AR6
	JNZ  	?C0386
	DEC  	R6
?C0386:
	ORL  	A,R4
	JNZ  	?C0003
?C0004:
; void  ReadXYFromNVRAM(void)
			; SOURCE LINE # 29
	CLR  	Y_M
;  	{
			; SOURCE LINE # 30
	CLR  	A
	MOV  	R6,A
	MOV  	R7,A
?C0005:
;            Pref_x=read_I2C(x_add );
			; SOURCE LINE # 31
	MOV  	A,R7
	DEC  	R7
	MOV  	R4,AR6
	JNZ  	?C0387
	DEC  	R6
?C0387:
	ORL  	A,R4
	JNZ  	?C0005
?C0006:
; 		   Pref_y=read_I2C(y_add );
			; SOURCE LINE # 32
	SETB 	Y_M
;         }
			; SOURCE LINE # 33
	MOV  	A,R3
	DEC  	R3
	JNZ  	?C0388
	DEC  	R2
?C0388:
; void SaveGcodeToI2C(unsigned char start_add,unsigned char *p,unsigned char lenth)
			; SOURCE LINE # 34
	MOV  	A,R3
	ORL  	A,R2
	JNZ  	?C0001
; {
;         int i;
			; SOURCE LINE # 36
?C0007:
	RET  	
; END OF y_zm

;    for(i=0;i<lenth;i++)
;    	{  

	RSEG  ?PR?x_zm?MAIN
L?0467:
	USING	0
L?0468:
	MOV  	A,Fm1+01H
	SUBB 	A,Ye+01H
	MOV  	Fm1+01H,A
	MOV  	A,Fm1
	SUBB 	A,Ye
	MOV  	Fm1,A
x_zm:
	USING	0
			; SOURCE LINE # 38
;    	    write_I2C(start_add,*p);
			; SOURCE LINE # 39
; 		start_add++;
			; SOURCE LINE # 40
;---- Variable 'i?142' assigned to Register 'R6/R7' ----
	CLR  	A
;---- Variable 'j?143' assigned to Register 'R2/R3' ----
	MOV  	R3,#05H
	MOV  	R2,A
; 		p++;
;    	}
			; SOURCE LINE # 42

⌨️ 快捷键说明

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