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

📄 毕业设计.asm

📁 单片机制作PLC
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	Exit3:	RET
;=====================================================
Tim4:		JNC		Off4
			JNB		ST4,	Open4
		 
			MOV		A,		TC4_L			
			CJNE    A,		K4_L,	Exit4
			MOV		A,		TC4_H
			CJNE    A,		K4_H,	Exit4
			SETB	DT4					    
			SJMP    Rest4

	Open4:	JB		ST4,		Exit4
			JB		DT4,		Exit4
			SETB	ST4						
			RET 

	Off4:	CLR		DT4		
	Rest4:	CLR		ST4		
			MOV     TC4_H,		#00H 		   
			MOV     TC4_L,		#00H

	Exit4:	RET
;=====================================================
Tim5:		JNC		Off5
			JNB		ST5,	Open5
		 
			MOV		A,		TC5_L			
			CJNE    A,		K5_L,	Exit5
			MOV		A,		TC5_H
			CJNE    A,		K5_H,	Exit5
			SETB	DT5					    
			SJMP    Rest5

	Open5:	JB		ST5,		Exit5
			JB		DT5,		Exit5
			SETB	ST5						
			RET 

	Off5:	CLR		DT5		
	Rest5:	CLR		ST5		
			MOV     TC5_H,		#00H 		   
			MOV     TC5_L,		#00H

	Exit5:	RET
;=====================================================
Tim6:		JNC		Off6
			JNB		ST6,	Open6
		 
			MOV		A,		TC6_L			
			CJNE    A,		K6_L,	Exit6
			MOV		A,		TC6_H
			CJNE    A,		K6_H,	Exit6
			SETB	DT6					    
			SJMP    Rest6

	Open6:	JB		ST6,		Exit6
			JB		DT6,		Exit6
			SETB	ST6						
			RET 

	Off6:	CLR		DT6		
	Rest6:	CLR		ST6		
			MOV     TC6_H,		#00H 		   
			MOV     TC6_L,		#00H

	Exit6:	RET
;=====================================================
Tim7:		JNC		Off7
			JNB		ST7,	Open7
		 
			MOV		A,		TC7_L			
			CJNE    A,		K7_L,	Exit7
			MOV		A,		TC7_H
			CJNE    A,		K7_H,	Exit7
			SETB	DT7					    
			SJMP    Rest7

	Open7:	JB		ST7,		Exit7
			JB		DT7,		Exit7
			SETB	ST7						
			RET 

	Off7:	CLR		DT7		
	Rest7:	CLR		ST7		
			MOV     TC7_H,		#00H 		   
			MOV     TC7_L,		#00H

	Exit7:	RET
;=====================================================
Tim8:		JNC		Off8
			JNB		ST8,	Open8
		 
			MOV		A,		TC8_L			
			CJNE    A,		K8_L,	Exit8
			MOV		A,		TC8_H
			CJNE    A,		K8_H,	Exit8
			SETB	DT8					    
			SJMP    Rest8

	Open8:	JB		ST8,		Exit8
			JB		DT8,		Exit8
			SETB	ST8						
			RET 

	Off8:	CLR		DT8		
	Rest8:	CLR		ST8		
			MOV     TC8_H,		#00H 		   
			MOV     TC8_L,		#00H

	Exit8:	RET
;=====================================================
Tim9:		JNC		Off9
			JNB		ST9,	Open9
		 
			MOV		A,		TC9_L			
			CJNE    A,		K9_L,	Exit9
			MOV		A,		TC9_H
			CJNE    A,		K9_H,	Exit9
			SETB	DT9					    
			SJMP    Rest9

	Open9:	JB		ST9,		Exit9
			JB		DT9,		Exit9
			SETB	ST9						
			RET 

	Off9:	CLR		DT9		
	Rest9:	CLR		ST9		
			MOV     TC9_H,		#00H 		   
			MOV     TC9_L,		#00H

	Exit9:	RET	
/***************************************************************************************************/
 ;当前逻辑运算值在位累加器C中
 COUNT0:  JB	RST0,Reset0		;是否复位
 		  JNC   CExit0			
		  JB    C0,  End0
 		 
		  INC   C0_L		   ;计数器加1
		  MOV A , C0_L
		  JNZ    CN0
		  INC   C0_H
    
	 CN0: MOV	A,		C0_L			
		  CJNE  A,		PV0_L,	End0
		  MOV	A,		C0_H
		  CJNE  A,		PV0_H,	End0 			;判断计数器Cn是否溢出

		  SETB 	C0				;一旦溢出,逻辑位置位,重置初值
		  MOV	C0_L,#0			;计数器复位
		  MOV   C0_H,#0
		  RET

  Reset0: MOV	C0_L,#0			;计数器复位
		  MOV   C0_H,#0
 CExit0:  CLR   C0
   End0:  RET
;=====================================================
 COUNT1:  JB	RST1,Reset1		
 		  JNC   CExit1			
		  JB    C1,  End1
 		 
		  INC   C1_L		   
		  MOV A , C1_L
		  JNZ    CN1
		  INC   C1_H
    
	 CN1: MOV	A,		C1_L			
		  CJNE  A,		PV1_L,	End1
		  MOV	A,		C1_H
		  CJNE  A,		PV1_H,	End1 			

		  SETB 	C1			
		  MOV	C1_L,#0		
		  MOV   C1_H,#0
		  RET

  Reset1: MOV	C1_L,#0		
		  MOV   C1_H,#0
 CExit1:  CLR   C1
   End1:  RET
;=====================================================
 COUNT2:  JB	RST2,Reset2		
 		  JNC   CExit2			
		  JB    C2,  End2
 		 
		  INC   C2_L		   
		  MOV A , C2_L
		  JNZ    CN2
		  INC   C2_H
    
	 CN2: MOV	A,		C2_L			
		  CJNE  A,		PV2_L,	End2
		  MOV	A,		C2_H
		  CJNE  A,		PV2_H,	End2 			

		  SETB 	C2			
		  MOV	C2_L,#0		
		  MOV   C2_H,#0
		  RET

  Reset2: MOV	C2_L,#0		
		  MOV   C2_H,#0
 CExit2:  CLR   C2
   End2:  RET		
;=====================================================
COUNT3:  JB	RST3,Reset3		
 		  JNC   CExit3			
		  JB    C3,  End3
 		 
		  INC   C3_L		   
		  MOV A , C3_L
		  JNZ    CN3
		  INC   C3_H
    
	 CN3: MOV	A,		C3_L			
		  CJNE  A,		PV3_L,	End3
		  MOV	A,		C3_H
		  CJNE  A,		PV3_H,	End3 			

		  SETB 	C3			
		  MOV	C3_L,#0		
		  MOV   C3_H,#0
		  RET

  Reset3: MOV	C3_L,#0		
		  MOV   C3_H,#0
 CExit3:  CLR   C3
   End3:  RET		
;=====================================================
COUNT4:   JB	RST4,Reset4		
 		  JNC   CExit4			
		  JB    C4,  End4
 		 
		  INC   C4_L		   
		  MOV A , C4_L
		  JNZ    CN4
		  INC   C4_H
    
	 CN4: MOV	A,		C4_L			
		  CJNE  A,		PV4_L,	End4
		  MOV	A,		C4_H
		  CJNE  A,		PV4_H,	End4 			

		  SETB 	C4			
		  MOV	C4_L,#0		
		  MOV   C4_H,#0
		  RET

  Reset4: MOV	C4_L,#0		
		  MOV   C4_H,#0
 CExit4:  CLR   C4
   End4:  RET	
;=====================================================
 COUNT5:  JB	RST5,Reset5		
 		  JNC   CExit5			
		  JB    C5,  End5
 		 
		  INC   C5_L		   
		  MOV A , C5_L
		  JNZ    CN5
		  INC   C5_H
    
	 CN5: MOV	A,		C5_L			
		  CJNE  A,		PV5_L,	End5
		  MOV	A,		C5_H
		  CJNE  A,		PV5_H,	End5 			

		  SETB 	C5			
		  MOV	C5_L,#0		
		  MOV   C5_H,#0
		  RET

  Reset5: MOV	C5_L,#0		
		  MOV   C5_H,#0
 CExit5:  CLR   C5
   End5:  RET		
;=====================================================
 COUNT6:  JB	RST6,Reset6		
 		  JNC   CExit6			
		  JB    C6,  End6
 		 
		  INC   C6_L		   
		  MOV A , C6_L
		  JNZ    CN6
		  INC   C6_H
    
	 CN6: MOV	A,		C6_L			
		  CJNE  A,		PV6_L,	End6
		  MOV	A,		C6_H
		  CJNE  A,		PV6_H,	End6 			

		  SETB 	C6			
		  MOV	C6_L,#0		
		  MOV   C6_H,#0
		  RET

  Reset6: MOV	C6_L,#0		
		  MOV   C6_H,#0
 CExit6:  CLR   C6
   End6:  RET
;=====================================================
COUNT7:   JB	RST7,Reset7		
 		  JNC   CExit7			
		  JB    C7,  End7
 		 
		  INC   C7_L		   
		  MOV A , C7_L
		  JNZ    CN7
		  INC   C7_H
    
	 CN7: MOV	A,		C7_L			
		  CJNE  A,		PV7_L,	End7
		  MOV	A,		C7_H
		  CJNE  A,		PV7_H,	End7 			

		  SETB 	C7			
		  MOV	C7_L,#0		
		  MOV   C7_H,#0
		  RET

  Reset7: MOV	C7_L,#0		
		  MOV   C7_H,#0
 CExit7:  CLR   C7
   End7:  RET
;=====================================================
COUNT8:   JB	RST8,Reset8		
 		  JNC   CExit8			
		  JB    C8,  End8
 		 
		  INC   C8_L		   
		  MOV A , C8_L
		  JNZ    CN8
		  INC   C8_H
    
	 CN8: MOV	A,		C8_L			
		  CJNE  A,		PV8_L,	End8
		  MOV	A,		C8_H
		  CJNE  A,		PV8_H,	End8 			

		  SETB 	C8			
		  MOV	C8_L,#0		
		  MOV   C8_H,#0
		  RET

  Reset8: MOV	C8_L,#0		
		  MOV   C8_H,#0
 CExit8:  CLR   C8
   End8:  RET
;=====================================================
 COUNT9:  JB	RST9,Reset9	
 		  JNC   CExit9			
		  JB    C9,  End9
 		 
		  INC   C9_L		   
		  MOV A , C9_L
		  JNZ    CN9
		  INC   C9_H
    
	 CN9: MOV	A,		C9_L			
		  CJNE  A,		PV9_L,	End9
		  MOV	A,		C9_H
		  CJNE  A,		PV9_H,	End9			

		  SETB 	C9			
		  MOV	C9_L,#0		
		  MOV   C9_H,#0
		  RET

  Reset9: MOV	C9_L,#0		
		  MOV   C9_H,#0
 CExit9:  CLR   C9
   End9:  RET				
/***************************************************************************************************/
/*对需要使用的定时器进行初始化。溢出标志位(逻辑位)DTn*/
Initi_Timer:	/*	MOV	Kn_L,	#Low		;Low=t/0.05%256	
		 			MOV	Kn_H,	#High		;High=t/0.05/256
				n是使用的定时器编号(0-9)。t是定时的时间,最长定时时间为3276.75秒*/
				//用户在此按照以上格式初始化定时器初值		

					RET
;=====================================================	
/*对需要使用的计数器进行初始化。逻辑位Cn,复位标志位RSTn*/
Initi_Counter: /*	MOV	PVn_L,	#Low		;Low=PV%256	
		 			MOV	PVn_H,	#High		;High=PV/256 
				n是使用的定时器编号(0-9)。PV是计数器初值,最大值为65535*/
				//用户在此按照以上格式初始化计数器
					RET
;=====================================================	
         /*先在此先定义辅助寄存器,26H,27H可用*/
		 	
Process:
	     /*用户根据梯形图在此填写程序*/	 

         RET
/***************************************************************************************************/		
 		 END

⌨️ 快捷键说明

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