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

📄 aa.inc

📁 关于单片机开发的一个实例
💻 INC
📖 第 1 页 / 共 3 页
字号:
	MOV  	R2,AR6
;    qianwei=i/1000;
			; SOURCE LINE # 115
	MOV  	R4,#03H
	MOV  	R5,#0E8H
	LCALL	?C?UIDIV
	MOV  	qianwei,R7
;    baiwei=(i/100)%10;
			; SOURCE LINE # 116
	MOV  	R4,#00H
	MOV  	R5,#064H
	MOV  	R7,AR3
	MOV  	R6,AR2
	LCALL	?C?UIDIV
	MOV  	R4,#00H
	MOV  	R5,#0AH
	LCALL	?C?UIDIV
	MOV  	baiwei,R5
;    shiwei=(i/10)%10;
			; SOURCE LINE # 117
	MOV  	R4,#00H
	MOV  	R5,#0AH
	MOV  	R7,AR3
	MOV  	R6,AR2
	LCALL	?C?UIDIV
	MOV  	R4,#00H
	MOV  	R5,#0AH
	LCALL	?C?UIDIV
	MOV  	shiwei,R5
;    gewei=i%10;
			; SOURCE LINE # 118
	MOV  	R6,AR2
	MOV  	R7,AR3
	MOV  	R4,#00H
	MOV  	R5,#0AH
	LCALL	?C?UIDIV
	MOV  	gewei,R5
;   LedShow(5,DownDataCom_0,0,1);		        //显示通道"0."	 温度通道  下限
			; SOURCE LINE # 119
	MOV  	?_LedShow?BYTE+03H,#01H
	CLR  	A
	MOV  	R3,A
	MOV  	R5,#080H
	MOV  	R7,#05H
	LCALL	_LedShow
;   LedShow(4,DownDataCom_0,qianwei,0);		 //显示千位
			; SOURCE LINE # 120
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,qianwei
	MOV  	R5,#080H
	MOV  	R7,#04H
	LCALL	_LedShow
;   LedShow(3,DownDataCom_0,baiwei,0);		 //显示百位
			; SOURCE LINE # 121
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,baiwei
	MOV  	R5,#080H
	MOV  	R7,#03H
	LCALL	_LedShow
;   LedShow(2,DownDataCom_0,shiwei,0);		 //显示十位
			; SOURCE LINE # 122
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,shiwei
	MOV  	R5,#080H
	MOV  	R7,#02H
	LCALL	_LedShow
;   LedShow(1,DownDataCom_0,gewei,0);		 //显示个位
			; SOURCE LINE # 123
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,gewei
	MOV  	R5,#080H
	MOV  	R7,#01H
	LCALL	_LedShow
;   LedShow(0,DownDataCom,4,0);		 //设置灯点亮
			; SOURCE LINE # 124
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,#04H
	MOV  	R5,#090H
	MOV  	R7,A
	LJMP 	_LedShow
; END OF Initialize

;  }
; 
; ///////////////////////////////////////////////////////////////////////////////
; void main()

	RSEG  ?PR?main?CHUNLING
main:
	USING	0
			; SOURCE LINE # 128
; {
			; SOURCE LINE # 129
;  uint i;
;  uchar symbol,j;
;  uchar bsbuf;
;  Initialize();
			; SOURCE LINE # 133
	LCALL	Initialize
?C0018:
;    do{
			; SOURCE LINE # 134
;        if(KEY_ZLG7289A==0)
			; SOURCE LINE # 135
	JNB  	KEY_ZLG7289A,$ + 6H
	LJMP 	?C0019
; 	     {
			; SOURCE LINE # 136
;             symbol = ReadKey(); // 读出按键的值
			; SOURCE LINE # 137
	LCALL	ReadKey
;---- Variable 'symbol?347' assigned to Register 'R7' ----
; 			switch(symbol)
			; SOURCE LINE # 138
	MOV  	A,R7
	ADD  	A,#0F1H
	JNZ  	$ + 5H
	LJMP 	?C0030
	ADD  	A,#0F8H
	JNZ  	$ + 5H
	LJMP 	?C0033
	ADD  	A,#0F8H
	JNZ  	$ + 5H
	LJMP 	?C0039
	ADD  	A,#0F8H
	JNZ  	$ + 5H
	LJMP 	?C0056
	ADD  	A,#0F8H
	JNZ  	$ + 5H
	LJMP 	?C0073
	ADD  	A,#028H
	JZ   	$ + 5H
	LJMP 	?C0077
; 			 {
			; SOURCE LINE # 139
; 				case(7): // 检测到按下   输入键 ENTER
			; SOURCE LINE # 140
?C0021:
; 				      if(status==0)		 //为测试时 enter才有作用
			; SOURCE LINE # 141
	JNB  	status,$ + 6H
	LJMP 	?C0028
; 				       { if(set_up_down_sign==1)
			; SOURCE LINE # 142
	MOV  	R7,qianwei
	MOV  	R6,#00H
	MOV  	R4,#03H
	MOV  	R5,#0E8H
	JNB  	set_up_down_sign,?C0023
; 						  {
			; SOURCE LINE # 143
; 						    limit_data[realtime_channel*2+1]=(uchar)((qianwei*1000+baiwei*100+shiwei*10+gewei)/ transform_value);
			; SOURCE LINE # 144
	LCALL	?C?IMUL
	MOV  	R4,AR6
	MOV  	R5,AR7
	MOV  	A,baiwei
	MOV  	B,#064H
	MUL  	AB
	ADD  	A,R5
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,B
	MOV  	R4,A
	MOV  	A,shiwei
	MOV  	B,#0AH
	MUL  	AB
	ADD  	A,R5
	MOV  	R7,A
	MOV  	A,B
	ADDC 	A,R4
	MOV  	R6,A
	MOV  	R4,#00H
	MOV  	A,R7
	ADD  	A,gewei
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,R6
	MOV  	R4,A
	CLR  	A
	LCALL	?C?FCASTI
	MOV  	R3,transform_value+03H
	MOV  	R2,transform_value+02H
	MOV  	R1,transform_value+01H
	MOV  	R0,transform_value
	LCALL	?C?FPDIV
	LCALL	?C?CASTF
	MOV  	A,realtime_channel
	ADD  	A,ACC
	ADD  	A,#LOW (limit_data+01H)
	MOV  	R0,A
	MOV  	@R0,AR7
; 						   	write24c16(realtime_channel*256,0x55);
			; SOURCE LINE # 145
	MOV  	A,realtime_channel
	MOV  	R7,#00H
	MOV  	R6,A
	MOV  	R5,#055H
	LCALL	_write24c16
; 							write24c16(realtime_channel*256+8,limit_data[realtime_channel*2]);
			; SOURCE LINE # 146
	MOV  	A,realtime_channel
	ADD  	A,ACC
	ADD  	A,#LOW (limit_data)
	MOV  	R0,A
	MOV  	A,@R0
	MOV  	R5,A
	MOV  	A,realtime_channel
	MOV  	R6,A
	CLR  	A
	ADD  	A,#08H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
	MOV  	R6,A
	LCALL	_write24c16
; 							write24c16(realtime_channel*256+16,limit_data[realtime_channel*2]);
			; SOURCE LINE # 147
	MOV  	A,realtime_channel
	ADD  	A,ACC
	ADD  	A,#LOW (limit_data)
	MOV  	R0,A
	MOV  	A,@R0
	MOV  	R5,A
	MOV  	A,realtime_channel
	MOV  	R6,A
	CLR  	A
	ADD  	A,#010H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
	MOV  	R6,A
	LCALL	_write24c16
; 						    }
			; SOURCE LINE # 148
	SJMP 	?C0024
?C0023:
; 						 else
; 						  {
			; SOURCE LINE # 150
; 						   limit_data[realtime_channel*2]=(uchar)((qianwei*1000+baiwei*100+shiwei*10+gewei)/ transform_value);
			; SOURCE LINE # 151
	LCALL	?C?IMUL
	MOV  	R4,AR6
	MOV  	R5,AR7
	MOV  	A,baiwei
	MOV  	B,#064H
	MUL  	AB
	ADD  	A,R5
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,B
	MOV  	R4,A
	MOV  	A,shiwei
	MOV  	B,#0AH
	MUL  	AB
	ADD  	A,R5
	MOV  	R7,A
	MOV  	A,B
	ADDC 	A,R4
	MOV  	R6,A
	MOV  	R4,#00H
	MOV  	A,R7
	ADD  	A,gewei
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,R6
	MOV  	R4,A
	CLR  	A
	LCALL	?C?FCASTI
	MOV  	R3,transform_value+03H
	MOV  	R2,transform_value+02H
	MOV  	R1,transform_value+01H
	MOV  	R0,transform_value
	LCALL	?C?FPDIV
	LCALL	?C?CASTF
	MOV  	A,realtime_channel
	ADD  	A,ACC
	ADD  	A,#LOW (limit_data)
	MOV  	R0,A
	MOV  	@R0,AR7
; 						   set_up_down_sign=1;
			; SOURCE LINE # 152
	SETB 	set_up_down_sign
; 						   }
			; SOURCE LINE # 153
?C0024:
; 						if(realtime_channel==2&&set_up_down_sign==1)
			; SOURCE LINE # 154
	MOV  	A,realtime_channel
	CJNE 	A,#02H,?C0025
	JNB  	set_up_down_sign,?C0025
; 						  {
			; SOURCE LINE # 155
; 						   realtime_channel=0;set_up_down_sign=0;
			; SOURCE LINE # 156
	CLR  	A
	MOV  	realtime_channel,A
	CLR  	set_up_down_sign
; 						   }
			; SOURCE LINE # 157
	SJMP 	?C0028
?C0025:
; 						  
; 						  else if(realtime_channel<2&&set_up_down_sign==1)
			; SOURCE LINE # 159
	MOV  	A,realtime_channel
	CLR  	C
	SUBB 	A,#02H
	JNC  	?C0028
	JNB  	set_up_down_sign,?C0028
; 						        {
			; SOURCE LINE # 160
; 						        realtime_channel++;set_up_down_sign=0;
			; SOURCE LINE # 161
	INC  	realtime_channel
	CLR  	set_up_down_sign
; 							     }
			; SOURCE LINE # 162
; 						}
			; SOURCE LINE # 163
?C0028:
; 
; 						while(KEY_ZLG7289A==0);
			; SOURCE LINE # 165
	JNB  	KEY_ZLG7289A,$ + 6H
	LJMP 	?C0077
	SJMP 	?C0028
; 						break;
			; SOURCE LINE # 166
; 
; 				case(15): // 检测到按下  测量键 MEASURE
			; SOURCE LINE # 168
?C0030:
; 						LedShow(0,DownDataCom,0x20,0);		 //测量灯点亮
			; SOURCE LINE # 169
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,#020H
	MOV  	R5,#090H
	MOV  	R7,A
	LCALL	_LedShow
; 						status=1;//处于测量状态
			; SOURCE LINE # 170
	SETB 	status
?C0031:
; 
; 						while(KEY_ZLG7289A==0);
			; SOURCE LINE # 172
	JNB  	KEY_ZLG7289A,$ + 6H
	LJMP 	?C0077
	SJMP 	?C0031
; 						break;
			; SOURCE LINE # 173
; 
; 				case(23): // 检测到按下  右移键 ->
			; SOURCE LINE # 175
?C0033:
; 				        if(status==0) //设置状态才有作用
			; SOURCE LINE # 176
	JB   	status,?C0037
; 						 {
			; SOURCE LINE # 177
; 						  if(set_position>1)
			; SOURCE LINE # 178
	MOV  	A,set_position
	SETB 	C
	SUBB 	A,#01H
	JC   	?C0035
; 						   {
			; SOURCE LINE # 179
; 						     set_position--;
			; SOURCE LINE # 180
	DEC  	set_position
; 						    }
			; SOURCE LINE # 181
	SJMP 	?C0037
?C0035:
; 						   else
; 						    {
			; SOURCE LINE # 183
; 							 set_position=3;  //从千位开始重设
			; SOURCE LINE # 184
	MOV  	set_position,#03H
; 							 }
			; SOURCE LINE # 185
; 						  }
			; SOURCE LINE # 186
?C0037:
; 						
; 						while(KEY_ZLG7289A==0);
			; SOURCE LINE # 188
	JNB  	KEY_ZLG7289A,$ + 6H
	LJMP 	?C0077
	SJMP 	?C0037
; 						break;
			; SOURCE LINE # 189
; 
; 				case(31): // 检测到按下   减少键  -
			; SOURCE LINE # 191
?C0039:
; 						if(status==0)	  //处于设置状态 改变位置处的值大小
			; SOURCE LINE # 192
	JB   	status,?C0040
; 						 {
			; SOURCE LINE # 193
; 						   switch(set_position)
			; SOURCE LINE # 194
	MOV  	A,set_position
	JZ   	?C0048
	DEC  	A
	JZ   	?C0046
	DEC  	A
	JZ   	?C0044
	DEC  	A
	JNZ  	?C0054
; 			                 {
			; SOURCE LINE # 195
; 							  case(3):	
			; SOURCE LINE # 196
?C0042:
; 							     if(qianwei>=1)					 //千位
			; SOURCE LINE # 197
	MOV  	A,qianwei
	CLR  	C
	SUBB 	A,#01H
	JC   	?C0043
; 								 {
			; SOURCE LINE # 198
; 		                           qianwei--;
			; SOURCE LINE # 199
	DEC  	qianwei
; 					              }
			; SOURCE LINE # 200
?C0043:
; 								  LedShow(4,DownDataCom_0,qianwei,0);		 //显示千位
			; SOURCE LINE # 201
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,qianwei
	MOV  	R5,#080H
	MOV  	R7,#04H
; 			                     break;
			; SOURCE LINE # 202
	SJMP 	?C0115
; 			                 case(2):						 //百位
			; SOURCE LINE # 203
?C0044:
; 							     if(baiwei>=1)			
			; SOURCE LINE # 204
	MOV  	A,baiwei
	CLR  	C
	SUBB 	A,#01H
	JC   	?C0045
; 								 {
			; SOURCE LINE # 205
; 		                           baiwei--;
			; SOURCE LINE # 206
	DEC  	baiwei
; 					              }
			; SOURCE LINE # 207
?C0045:
; 								LedShow(3,DownDataCom_0,baiwei,0);		 //显示百位
			; SOURCE LINE # 208
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,baiwei
	MOV  	R5,#080H
	MOV  	R7,#03H
?C0112:
; 			                     break;
			; SOURCE LINE # 209
	SJMP 	?C0115
; 			                case(1):						//十位
			; SOURCE LINE # 210
?C0046:
; 							       if(shiwei>=1)			
			; SOURCE LINE # 211
	MOV  	A,shiwei
	CLR  	C
	SUBB 	A,#01H
	JC   	?C0047
; 								    {
			; SOURCE LINE # 212
; 		                             shiwei--;
			; SOURCE LINE # 213
	DEC  	shiwei
; 					                 }
			; SOURCE LINE # 214
?C0047:
; 								    LedShow(2,DownDataCom_0,shiwei,0);		 //显示十位
			; SOURCE LINE # 215
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,shiwei
	MOV  	R5,#080H
	MOV  	R7,#02H
?C0113:
; 			                        break;
			; SOURCE LINE # 216
	SJMP 	?C0115
; 							case(0):						  //个位
			; SOURCE LINE # 217
?C0048:
; 							         if(gewei>=1)					
			; SOURCE LINE # 218
	MOV  	A,gewei
	CLR  	C
	SUBB 	A,#01H
	JC   	?C0049
; 								     {
			; SOURCE LINE # 219
; 		                               gewei--;
			; SOURCE LINE # 220
	DEC  	gewei
; 					                  }
			; SOURCE LINE # 221
?C0049:
; 									 LedShow(1,DownDataCom_0,gewei,0);		 //显示个位
			; SOURCE LINE # 222
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A
	MOV  	R3,gewei
	MOV  	R5,#080H
	MOV  	R7,#01H
?C0114:
; 			                        break;
			; SOURCE LINE # 223
	SJMP 	?C0115
; 			                default: break;
			; SOURCE LINE # 224
; 							  }
			; SOURCE LINE # 225
; 						  }
			; SOURCE LINE # 226
?C0040:
; 						 else          //处于测试时改变通道号
; 							{
			; SOURCE LINE # 228
; 							 if(realtime_channel>1)
			; SOURCE LINE # 229
	MOV  	A,realtime_channel
	SETB 	C
	SUBB 	A,#01H
	JC   	?C0052
; 						      {
			; SOURCE LINE # 230
; 						        realtime_channel--;
			; SOURCE LINE # 231
	DEC  	realtime_channel
; 							   
; 						       }
			; SOURCE LINE # 233
	SJMP 	?C0053
?C0052:
; 						     else
; 						       {
			; SOURCE LINE # 235
; 							     realtime_channel=2;  //从二通道开始
			; SOURCE LINE # 236
	MOV  	realtime_channel,#02H
; 							    }
			; SOURCE LINE # 237
?C0053:
; 							  LedShow(0,DownDataCom,0x20,0);		 //测量灯点亮
			; SOURCE LINE # 238
	CLR  	A
	MOV  	?_LedShow?BYTE+03H,A

⌨️ 快捷键说明

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