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

📄 main.s

📁 cy8c24794单片机程序
💻 S
📖 第 1 页 / 共 2 页
字号:
	pop A
	mov [__r6],A
	pop A
	mov [__r5],A
	pop A
	mov [__r4],A
	pop A
	mov [__r3],A
	pop A
	mov [__r2],A
	pop A
	mov [__r1],A
	pop A
	mov [__r0],A
	pop A
	mov REG[213],A
	pop A
	mov REG[212],A
	pop A
	mov REG[211],A
	pop A
	mov REG[208],A
	pop A
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e Timer16 _Timer16 fV
_Timer16::
	.dbline -1
	or F,-64
	push A
	mov A,REG[0xd0]
	push A
	mov A,REG[0xd3]
	push A
	mov A,REG[0xd4]
	push A
	mov A,REG[0xd5]
	push A
	mov REG[0xd0],>__r0
	mov A,[__r0]
	push A
	mov A,[__r1]
	push A
	mov A,[__r2]
	push A
	mov A,[__r3]
	push A
	mov A,[__r4]
	push A
	mov A,[__r5]
	push A
	mov A,[__r6]
	push A
	mov A,[__r7]
	push A
	mov A,[__r8]
	push A
	mov A,[__r9]
	push A
	mov A,[__r10]
	push A
	mov A,[__r11]
	push A
	mov A,[__rX]
	push A
	mov A,[__rY]
	push A
	mov A,[__rZ]
	push A
	.dbline 131
	.dbline 132
	xcall _Display_Key
	.dbline 133
	mov REG[0xd0],>_times
	mov [_times],5
	mov REG[0xd0],>__r0
	mov [__r0],5
	cmp [__r0],0
	jz L33
	.dbline 134
	mov REG[0xd0],>_times
	mov [_times],0
L33:
	.dbline -2
	.dbline 136
; 
; void Timer16()
; {
; 	Display_Key() ;
; 	if( times = 5 )
; 	      times = 0 ;  
; 	 
; }
L32:
	mov REG[0xD0],>__r0
	pop A
	mov [__rZ],A
	pop A
	mov [__rY],A
	pop A
	mov [__rX],A
	pop A
	mov [__r11],A
	pop A
	mov [__r10],A
	pop A
	mov [__r9],A
	pop A
	mov [__r8],A
	pop A
	mov [__r7],A
	pop A
	mov [__r6],A
	pop A
	mov [__r5],A
	pop A
	mov [__r4],A
	pop A
	mov [__r3],A
	pop A
	mov [__r2],A
	pop A
	mov [__r1],A
	pop A
	mov [__r0],A
	pop A
	mov REG[213],A
	pop A
	mov REG[212],A
	pop A
	mov REG[211],A
	pop A
	mov REG[208],A
	pop A
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e Keyscan _Keyscan fV
_Keyscan::
	.dbline -1
	or F,-64
	push A
	mov A,REG[0xd0]
	push A
	mov A,REG[0xd3]
	push A
	mov A,REG[0xd4]
	push A
	mov A,REG[0xd5]
	push A
	mov REG[0xd0],>__r0
	mov A,[__r0]
	push A
	mov A,[__r1]
	push A
	mov A,[__r2]
	push A
	mov A,[__r3]
	push A
	mov A,[__r4]
	push A
	mov A,[__r5]
	push A
	mov A,[__r6]
	push A
	mov A,[__r7]
	push A
	mov A,[__r8]
	push A
	mov A,[__r9]
	push A
	mov A,[__r10]
	push A
	mov A,[__r11]
	push A
	mov A,[__rX]
	push A
	mov A,[__rY]
	push A
	mov A,[__rZ]
	push A
	push X
	mov X,SP
	add SP,2
	.dbline 139
; 
; void Keyscan()
; {
	.dbline 140
;   PRT5DR = 0b11111110 ; 
	mov REG[0x14],-2
	.dbline 141
;   temp = PRT5DR & 0xF0 ; 
	mov A,REG[0x14]
	and A,-16
	mov REG[0xd0],>_temp
	mov [_temp],A
	.dbline 142
;   if( temp != 0xF0 )
	cmp [_temp],-16
	jz L36
	.dbline 143
;   {
	.dbline 144
;     switch(temp)
	mov A,[_temp]
	mov [X+1],A
	mov [X+0],0
	mov A,[X+1]
	sub A,-80
	mov REG[0xd0],>__r0
	mov [__rY],A
	mov A,[X+0]
	xor A,-128
	sbb A,(0 ^ 0x80)
	or A,[__rY]
	jz L43
	jnc L46
X22:
L45:
	cmp [X+0],0
	jnz X23
	cmp [X+1],112
	jz L44
X23:
	xjmp L38
L46:
	mov A,[X+1]
	sub A,-48
	mov REG[0xd0],>__r0
	mov [__rY],A
	mov A,[X+0]
	xor A,-128
	sbb A,(0 ^ 0x80)
	jc L38
	or A,[__rY]
	jz L42
X24:
L47:
	cmp [X+0],0
	jnz X25
	cmp [X+1],-32
	jz L41
X25:
	xjmp L38
X18:
	.dbline 145
;     {
L41:
	.dbline 147
;      case 0b11100000 :
;             key = 0 ; break ; 
	mov REG[0xd0],>_key
	mov [_key],0
	.dbline 147
	xjmp L39
L42:
	.dbline 149
;      case 0b11010000 :
;             key = 1 ; break ; 
	mov REG[0xd0],>_key
	mov [_key],1
	.dbline 149
	xjmp L39
L43:
	.dbline 151
;      case 0b10110000 :
;             key = 4 ; break ; 
	mov REG[0xd0],>_key
	mov [_key],4
	.dbline 151
	xjmp L39
L44:
	.dbline 153
;      case 0b01110000 :
;      		key = 7 ; break ;  
	mov REG[0xd0],>_key
	mov [_key],7
	.dbline 153
L38:
L39:
	.dbline 155
;     } 
;   }
L36:
	.dbline 157
;   
;   PRT5DR = 0b11111101 ; 
	mov REG[0x14],-3
	.dbline 158
;   temp = PRT5DR & 0xF0 ; 
	mov A,REG[0x14]
	and A,-16
	mov REG[0xd0],>_temp
	mov [_temp],A
	.dbline 159
;   if( temp != 0xF0 )
	cmp [_temp],-16
	jz L48
	.dbline 160
;   {
	.dbline 161
;     switch(temp)
	mov A,[_temp]
	mov [X+1],A
	mov [X+0],0
	mov A,[X+1]
	sub A,-80
	mov REG[0xd0],>__r0
	mov [__rY],A
	mov A,[X+0]
	xor A,-128
	sbb A,(0 ^ 0x80)
	or A,[__rY]
	jz L55
	jnc L58
X26:
L57:
	cmp [X+0],0
	jnz X27
	cmp [X+1],112
	jz L56
X27:
	xjmp L50
L58:
	mov A,[X+1]
	sub A,-48
	mov REG[0xd0],>__r0
	mov [__rY],A
	mov A,[X+0]
	xor A,-128
	sbb A,(0 ^ 0x80)
	jc L50
	or A,[__rY]
	jz L54
X28:
L59:
	cmp [X+0],0
	jnz X29
	cmp [X+1],-32
	jz L53
X29:
	xjmp L50
X19:
	.dbline 162
;     {
L53:
	.dbline 164
;      case 0b11100000 :
;             key = 10 ; break ; 
	mov REG[0xd0],>_key
	mov [_key],10
	.dbline 164
	xjmp L51
L54:
	.dbline 166
;      case 0b11010000 :
;             key = 2 ; break ; 
	mov REG[0xd0],>_key
	mov [_key],2
	.dbline 166
	xjmp L51
L55:
	.dbline 168
;      case 0b10110000 :
;             key = 5 ; break ; 
	mov REG[0xd0],>_key
	mov [_key],5
	.dbline 168
	xjmp L51
L56:
	.dbline 170
;      case 0b01110000 :
;      		key = 8 ; break ;  
	mov REG[0xd0],>_key
	mov [_key],8
	.dbline 170
L50:
L51:
	.dbline 172
;     } 
;   }
L48:
	.dbline 174
;   
;   PRT5DR = 0b11111011 ; 
	mov REG[0x14],-5
	.dbline 175
;   temp = PRT5DR & 0xF0 ; 
	mov A,REG[0x14]
	and A,-16
	mov REG[0xd0],>_temp
	mov [_temp],A
	.dbline 176
;   if( temp != 0xF0 )
	cmp [_temp],-16
	jz L60
	.dbline 177
;   {
	.dbline 178
;     switch(temp)
	mov A,[_temp]
	mov [X+1],A
	mov [X+0],0
	mov A,[X+1]
	sub A,-80
	mov REG[0xd0],>__r0
	mov [__rY],A
	mov A,[X+0]
	xor A,-128
	sbb A,(0 ^ 0x80)
	or A,[__rY]
	jz L67
	jnc L70
X30:
L69:
	cmp [X+0],0
	jnz X31
	cmp [X+1],112
	jz L68
X31:
	xjmp L62
L70:
	mov A,[X+1]
	sub A,-48
	mov REG[0xd0],>__r0
	mov [__rY],A
	mov A,[X+0]
	xor A,-128
	sbb A,(0 ^ 0x80)
	jc L62
	or A,[__rY]
	jz L66
X32:
L71:
	cmp [X+0],0
	jnz X33
	cmp [X+1],-32
	jz L65
X33:
	xjmp L62
X20:
	.dbline 179
;     {
L65:
	.dbline 181
;      case 0b11100000 :
;             key = 11 ; break ; 
	mov REG[0xd0],>_key
	mov [_key],11
	.dbline 181
	xjmp L63
L66:
	.dbline 183
;      case 0b11010000 :
;             key = 3 ; break ; 
	mov REG[0xd0],>_key
	mov [_key],3
	.dbline 183
	xjmp L63
L67:
	.dbline 185
;      case 0b10110000 :
;             key = 6 ; break ; 
	mov REG[0xd0],>_key
	mov [_key],6
	.dbline 185
	xjmp L63
L68:
	.dbline 187
;      case 0b01110000 :
;      		key = 9 ; break ;  
	mov REG[0xd0],>_key
	mov [_key],9
	.dbline 187
L62:
L63:
	.dbline 189
;     } 
;   }
L60:
	.dbline 191
;   
;   PRT5DR = 0xF0 ; 
	mov REG[0x14],-16
	.dbline 193
;   
;   if( key = 10 )
	mov REG[0xd0],>_key
	mov [_key],10
	mov REG[0xd0],>__r0
	mov [__r0],10
	cmp [__r0],0
	jz L72
	.dbline 194
;   {
	.dbline 195
;       times ++ ; 
	mov REG[0xd0],>_times
	inc [_times]
	.dbline 196
;       Timer8_Stop() ; 
	push X
	xcall _Timer8_Stop
	pop X
	.dbline 197
;   }
L72:
	.dbline 199
;   
;   if( key = 11 )
	mov REG[0xd0],>_key
	mov [_key],11
	mov REG[0xd0],>__r0
	mov [__r0],11
	cmp [__r0],0
	jz L74
	.dbline 200
;   {
	.dbline 201
;      time = ~time ; 
	mov REG[0xd0],>_time
	mov A,[_time]
	cpl A
	mov [_time],A
	.dbline 202
;      if( time )
	cmp [_time],0
	jz L76
	.dbline 203
;      {
	.dbline 204
;         Timer8_Stop() ; 
	push X
	xcall _Timer8_Stop
	pop X
	xjmp L79
L78:
	.dbline 206
	.dbline 207
	xcall _Display
	.dbline 208
L79:
	.dbline 205
;         while(1)
	xjmp L78
X21:
	.dbline 209
; 	     {
; 	       Display(); 
; 	     }
; 	 }
	xjmp L75
L76:
	.dbline 211
;      else 
;      Timer8_Start() ; 
	push X
	xcall _Timer8_Start
	pop X
	.dbline 212
;   }
	xjmp L75
L74:
	.dbline 213
;   else if( key > 0 && key < 10 ) 
	mov REG[0xd0],>_key
	mov A,0
	cmp A,[_key]
	jnc L81
X34:
	mov REG[0xd0],>_key
	cmp [_key],10
	jnc L81
X35:
	.dbline 214
;       {
	.dbline 215
;          times ++ ; 
	mov REG[0xd0],>_times
	inc [_times]
	.dbline 216
;          if( times == 2 )
	cmp [_times],2
	jnz L83
	.dbline 217
;         	key1 = key ; 
	mov REG[0xd0],>_key
	mov A,[_key]
	mov REG[0xd0],>_key1
	mov [_key1],A
	xjmp L84
L83:
	.dbline 218
;   		 else if( times == 3 )
	mov REG[0xd0],>_times
	cmp [_times],3
	jnz L85
	.dbline 219
;         	key2 = key ; 
	mov REG[0xd0],>_key
	mov A,[_key]
	mov REG[0xd0],>_key2
	mov [_key2],A
	xjmp L86
L85:
	.dbline 220
;   		 else if( times == 4 )
	mov REG[0xd0],>_times
	cmp [_times],4
	jnz L87
	.dbline 221
;         	key3 = key ; 
	mov REG[0xd0],>_key
	mov A,[_key]
	mov REG[0xd0],>_key3
	mov [_key3],A
	xjmp L88
L87:
	.dbline 222
;  		 else if( times == 5 )
	mov REG[0xd0],>_times
	cmp [_times],5
	jnz L89
	.dbline 223
;         	{
	.dbline 224
;           	  key4 = key ;
	mov REG[0xd0],>_key
	mov A,[_key]
	mov REG[0xd0],>_key4
	mov [_key4],A
	.dbline 225
;          	  key =  0 ; 
	mov REG[0xd0],>_key
	mov [_key],0
	.dbline 226
;         	} 
L89:
L88:
L86:
L84:
	.dbline 227
;         }
L81:
L75:
	.dbline 228
;   count = 0  ;
	mov REG[0xd0],>_count
	mov [_count+1],0
	mov [_count],0
	.dbline 230
;   
;   Timer16_Start() ; 
	push X
	xcall _Timer16_Start
	pop X
	.dbline 231
;   weishu = 1  ; 
	mov REG[0xd0],>_weishu
	mov [_weishu+1],1
	mov [_weishu],0
	.dbline -2
	.dbline 232
; }
L35:
	add SP,-2
	pop X
	mov REG[0xD0],>__r0
	pop A
	mov [__rZ],A
	pop A
	mov [__rY],A
	pop A
	mov [__rX],A
	pop A
	mov [__r11],A
	pop A
	mov [__r10],A
	pop A
	mov [__r9],A
	pop A
	mov [__r8],A
	pop A
	mov [__r7],A
	pop A
	mov [__r6],A
	pop A
	mov [__r5],A
	pop A
	mov [__r4],A
	pop A
	mov [__r3],A
	pop A
	mov [__r2],A
	pop A
	mov [__r1],A
	pop A
	mov [__r0],A
	pop A
	mov REG[213],A
	pop A
	mov REG[212],A
	pop A
	mov REG[211],A
	pop A
	mov REG[208],A
	pop A
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e main _main fV
_main::
	.dbline -1
	.dbline 235
; 
; void main()
; {
	.dbline 237
;     // Insert your main routine code here.
;     M8C_EnableGInt ; 
		or  F, 01h

	.dbline 238
;     Timer8_EnableInt() ; 
	push X
	xcall _Timer8_EnableInt
	.dbline 239
;     Timer16_EnableInt() ; 
	xcall _Timer16_EnableInt
	.dbline 240
;     Timer8_Start() ; 
	xcall _Timer8_Start
	pop X
L92:
	.dbline 242
	.dbline 243
L93:
	.dbline 241
	xjmp L92
X36:
	.dbline -2
	.dbline 244
;     while(1)
;     {
;     }
; }
L91:
	.dbline 0 ; func end
	jmp .
	.dbend

⌨️ 快捷键说明

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