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

📄 delay subroutine.src

📁 本程序实现通过BDM方式访问MOTOROLA 9S12单片机EEPROM
💻 SRC
📖 第 1 页 / 共 2 页
字号:
	USING	0
			; SOURCE LINE # 146
;   int  v;
;   for (v=0;v<300;v++)
			; SOURCE LINE # 148
;---- Variable 'v?645' assigned to Register 'R4/R5' ----
	CLR  	A
	MOV  	R5,A
	MOV  	R4,A
?C0022:
;      {
			; SOURCE LINE # 149
;       delay17us();
			; SOURCE LINE # 150
	LCALL	delay17us
;       }
			; SOURCE LINE # 151
	INC  	R5
	CJNE 	R5,#00H,?C0062
	INC  	R4
?C0062:
	CJNE 	R4,#01H,?C0022
	CJNE 	R5,#02CH,?C0022
; }  
			; SOURCE LINE # 152
?C0025:
	RET  	
; END OF delay4ms

; 
; void delay1ms(void) {

	RSEG  ?PR?delay1ms?DELAY_SUBROUTINE
delay1ms:
	USING	0
			; SOURCE LINE # 154
;   int  v;
;   for (v=0;v<60;v++)
			; SOURCE LINE # 156
;---- Variable 'v?746' assigned to Register 'R4/R5' ----
	CLR  	A
	MOV  	R5,A
	MOV  	R4,A
?C0026:
;      {
			; SOURCE LINE # 157
;       delay17us();
			; SOURCE LINE # 158
	LCALL	delay17us
;       }
			; SOURCE LINE # 159
	INC  	R5
	CJNE 	R5,#00H,?C0063
	INC  	R4
?C0063:
	MOV  	A,R5
	XRL  	A,#03CH
	ORL  	A,R4
	JNZ  	?C0026
; } 
			; SOURCE LINE # 160
?C0029:
	RET  	
; END OF delay1ms

;  
; /*
;  
; void delay6ms(void) {
;   int  v;
;   for (v=0;v<455;v++)
;      {
;       delay17us();
;       }
; }
;  
;  
; /*********************************************************
; *函数原型:void delay40ms(void);
; *功    能:40ms延迟。
; **********************************************************/
;  
; void delay40ms(void) {

	RSEG  ?PR?delay40ms?DELAY_SUBROUTINE
delay40ms:
	USING	0
			; SOURCE LINE # 178
;   int  v;
;   for (v=0;v<1500;v++)
			; SOURCE LINE # 180
;---- Variable 'v?847' assigned to Register 'R4/R5' ----
	CLR  	A
	MOV  	R5,A
	MOV  	R4,A
?C0030:
;      {
			; SOURCE LINE # 181
;       delay17us();
			; SOURCE LINE # 182
	LCALL	delay17us
;       }
			; SOURCE LINE # 183
	INC  	R5
	CJNE 	R5,#00H,?C0064
	INC  	R4
?C0064:
	CJNE 	R4,#05H,?C0030
	CJNE 	R5,#0DCH,?C0030
; }
			; SOURCE LINE # 184
?C0033:
	RET  	
; END OF delay40ms

; 
; /*********************************************************
; *函数原型:void delay40ms(void);
; *功    能:40ms延迟。
; **********************************************************/ 
;  
; void delay200ms(void) {

	RSEG  ?PR?delay200ms?DELAY_SUBROUTINE
delay200ms:
	USING	0
			; SOURCE LINE # 191
;   int  v;
;   for (v=0;v<13000;v++)
			; SOURCE LINE # 193
;---- Variable 'v?948' assigned to Register 'R4/R5' ----
	CLR  	A
	MOV  	R5,A
	MOV  	R4,A
?C0034:
;      {
			; SOURCE LINE # 194
;       delay17us();
			; SOURCE LINE # 195
	LCALL	delay17us
;       }
			; SOURCE LINE # 196
	INC  	R5
	CJNE 	R5,#00H,?C0065
	INC  	R4
?C0065:
	CJNE 	R4,#032H,?C0034
	CJNE 	R5,#0C8H,?C0034
; }
			; SOURCE LINE # 197
?C0037:
	RET  	
; END OF delay200ms

;   
; void delay100ms(void) {

	RSEG  ?PR?delay100ms?DELAY_SUBROUTINE
delay100ms:
	USING	0
			; SOURCE LINE # 199
;   int  v;
;   for (v=0;v<6400;v++)
			; SOURCE LINE # 201
;---- Variable 'v?1049' assigned to Register 'R4/R5' ----
	CLR  	A
	MOV  	R5,A
	MOV  	R4,A
?C0038:
;      {
			; SOURCE LINE # 202
;       delay17us();
			; SOURCE LINE # 203
	LCALL	delay17us
;       }
			; SOURCE LINE # 204
	INC  	R5
	CJNE 	R5,#00H,?C0066
	INC  	R4
?C0066:
	CLR  	A
	CJNE 	A,AR5,?C0038
	MOV  	A,R4
	CJNE 	A,#019H,?C0038
; }
			; SOURCE LINE # 205
?C0041:
	RET  	
; END OF delay100ms

; /*********************************************************
; *函数原型:void delay207ms(void);
; *功    能:207ms延迟。
; ********************************************************** 
; void delay207ms(void) {
;   int  v;
;   for (v=0;v<13550;v++)
;      {
;       delay17us();
;       }
; }
; 
; /*********************************************************
; *函数原型:void delay60ms(void);
; *功    能:60ms延迟。
; **********************************************************  
; void delay60ms(void) {
;   int  v;
;   for (v=0;v<3750;v++)
;      {
;       delay17us();
;       }
; }
; 
; /*********************************************************
; *函数原型:void delay107ms(void);
; *功    能:107ms延迟。
; ********************************************************** 
;  
; void delay107ms(void) {
;   int  v;
;   for (v=0;v<7000;v++)
;      {
;       delay17us();
;       }
; }
; 
; /*********************************************************
; *函数原型:uchar input(void);
; *功    能:模拟串口输入函数,输入一个字节。
; **********************************************************/
; uchar input(void) {

	RSEG  ?PR?input?DELAY_SUBROUTINE
input:
	USING	0
			; SOURCE LINE # 247
;   int  m;
;   uchar in_data;
;   in_data=0x00;
			; SOURCE LINE # 250
;---- Variable 'in_data?1151' assigned to Register 'R5' ----
	CLR  	A
	MOV  	R5,A
?C0042:
;   
;   while(qRXD);
			; SOURCE LINE # 252
	JB   	qRXD,?C0042
?C0043:
;   delay10us();
			; SOURCE LINE # 253
	LCALL	delay10us
;   delay17us();
			; SOURCE LINE # 254
	LCALL	delay17us
;   for(m=0;m<7;m++)
			; SOURCE LINE # 255
;---- Variable 'm?1150' assigned to Register 'R2/R3' ----
	CLR  	A
	MOV  	R3,A
	MOV  	R2,A
?C0044:
; 	{
			; SOURCE LINE # 256
;     //qrTXD=1;
; 	if(qRXD==1){
			; SOURCE LINE # 258
	JNB  	qRXD,?C0047
;       in_data|=0x80;
			; SOURCE LINE # 259
	ORL  	AR5,#080H
;       }
			; SOURCE LINE # 260
	SJMP 	?C0048
?C0047:
;     else {
			; SOURCE LINE # 261
;       in_data&=0x7f;
			; SOURCE LINE # 262
	ANL  	AR5,#07FH
;       }
			; SOURCE LINE # 263
?C0048:
;     in_data>>=1;
			; SOURCE LINE # 264
	MOV  	A,R5
	CLR  	C
	RRC  	A
	MOV  	R5,A
;     delay17us();
			; SOURCE LINE # 265
	LCALL	delay17us
;    }
			; SOURCE LINE # 266
	INC  	R3
	CJNE 	R3,#00H,?C0068
	INC  	R2
?C0068:
	MOV  	A,R3
	XRL  	A,#07H
	ORL  	A,R2
	JNZ  	?C0044
?C0045:
; 	if(qRXD==1){
			; SOURCE LINE # 267
	JNB  	qRXD,?C0049
;       in_data|=0x80;
			; SOURCE LINE # 268
	ORL  	AR5,#080H
;       }
			; SOURCE LINE # 269
	SJMP 	?C0050
?C0049:
;     else {
			; SOURCE LINE # 270
;       in_data&=0x7f;
			; SOURCE LINE # 271
	ANL  	AR5,#07FH
;       }
			; SOURCE LINE # 272
?C0050:
; 	delay17us();
			; SOURCE LINE # 273
	LCALL	delay17us
;     delay1us();
			; SOURCE LINE # 274
	LCALL	delay1us
;     delay1us();
			; SOURCE LINE # 275
	LCALL	delay1us
; 	delay1us();
			; SOURCE LINE # 276
	LCALL	delay1us
; 	delay1us();
			; SOURCE LINE # 277
	LCALL	delay1us
;     return(in_data);
			; SOURCE LINE # 278
	MOV  	R7,AR5
;  }
			; SOURCE LINE # 279
?C0051:
	RET  	
; END OF input

; 
; 
; 
; 
; 
; 
; 
; /*********************************************************
; *函数原型:void output(uchar sda);
; *功    能:模拟串口输出函数,输出一个字节。
; **********************************************************/
; void output(uchar sda) {

	RSEG  ?PR?_output?DELAY_SUBROUTINE
_output:
	USING	0
			; SOURCE LINE # 291
;---- Variable 'sda?1252' assigned to Register 'R5' ----
	MOV  	R5,AR7
;   int  m;
;   m=0;
			; SOURCE LINE # 293
;---- Variable 'm?1253' assigned to Register 'R2/R3' ----
	CLR  	A
	MOV  	R3,A
	MOV  	R2,A
;   qTXD=0;
			; SOURCE LINE # 294
	CLR  	qTXD
;   delay17us();
			; SOURCE LINE # 295
	LCALL	delay17us
?C0052:
;   while(m<8)
			; SOURCE LINE # 296
	CLR  	C
	MOV  	A,R3
	SUBB 	A,#08H
	MOV  	A,R2
	XRL  	A,#080H
	SUBB 	A,#080H
	JNC  	?C0053
;   {if (sda&1){
			; SOURCE LINE # 297
	MOV  	A,R5
	JNB  	ACC.0,?C0054
;     qTXD=1;
			; SOURCE LINE # 298
	SETB 	qTXD
;      }
			; SOURCE LINE # 299
	SJMP 	?C0055
?C0054:
;    else {
			; SOURCE LINE # 300
;     qTXD=0;
			; SOURCE LINE # 301
	CLR  	qTXD
;         }
			; SOURCE LINE # 302
?C0055:
;     delay17us();
			; SOURCE LINE # 303
	LCALL	delay17us
;     m=m+1;
			; SOURCE LINE # 304
	INC  	R3
	CJNE 	R3,#00H,?C0069
	INC  	R2
?C0069:
;     sda>>=1;
			; SOURCE LINE # 305
	MOV  	A,R5
	CLR  	C
	RRC  	A
	MOV  	R5,A
;    }
			; SOURCE LINE # 306
	SJMP 	?C0052
?C0053:
;    qTXD=1;
			; SOURCE LINE # 307
	SETB 	qTXD
;    delay17us();
			; SOURCE LINE # 308
	LJMP 	delay17us
; END OF _output

	END

⌨️ 快捷键说明

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