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

📄 text1.c

📁 主要功能是可以判断出黑色、所以本小车可以在以黑线为起点与终点之内做往返运动。
💻 C
字号:
			  /*************************************************************			
	名称:自动归返小车
  
************************************************************/					
		DOWN		EQU 30H	       ;单元地址区
		UP		EQU 31H
		CLOCK		EQU 32H
		PWMT		EQU 33H
	    	PWMK0		EQU 34H
		PWMK1		EQU 35H
		PWMK2		EQU 36H
		PWMK3		EQU 37H
		DISA		EQU 38H		;显示区
		DISB		EQU 39H
		DISC		EQU 3AH	
		GO		EQU 00H		;位地址区是否工作
		KEYONE		EQU 01H		;一次铵键有用
		OPENDIS	        EQU 02H		;是否打开显示
		MOTOW		EQU 03H		;MOTO正转反转控制
		MOTOG		EQU 04H		;MOTO加速转后均速
		DISTIME	EQU 05H		;控制显示时间
		ORG	0000H
		LJMP	MAIN
		ORG	0003H
		LJMP    INTA
		ORG	000BH	
		LJMP	TIME0
		ORG     0013H
		LJMP    INTB
		ORG	001BH	
		LJMP	TIME1
		ORG     00020H
 MAIN:MOV SP,#67H
		MOV TMOD,#22H
		MOV TH0,#00H
		MOV TL0,#00H
		MOV TH1,#0AFH
		MOV TL1,#0AFH
		MOV TCON,#05H
		MOV IE,#8FH
		CLR EA		;关总断
		MOV IP,#05H
		MOV DISA,#01H
		MOV DISB,#00H
		MOV DISC,#00H
		CLR OPENDIS
		ANL P1,#0E3H
		MOV UP,#00H
		MOV DOWN,#0FFH
		MOV CLOCK,#0FFH
		MOV PWMK0,UP
		MOV PWMK1,DOWN
		MOV PWMK2,DOWN
		MOV PWMK3,CLOCK
		CLR TR0
		CLR TR1
		SETB P1.6		;关MOTO
		SETB P1.5
		SETB MOTOW	
		CLR MOTOG
		CLR DISTIME
		SETB P1.0
		SETB IT1
		SETB IT0
		CLR GO
;******************************************************
	  NEXTM:ACALL  KEY
		 ACALL  DISPLAY
		 SJMP NEXTM
;*****************键盘********************************* 
	    KEY:JB P1.1,KEYCH
		ACALL DELY
		JB P1.1,KEYCH
		JB KEYONE,KEYEXIT
		SETB KEYONE
		SETB P1.6		;关MOTO
		SETB P1.5
		CPL TR0
		CLR TR1
		CPL EA
		CPL P1.0
		MOV UP,#00H
		MOV DOWN,#0FFH
		MOV CLOCK,#0BFH
		MOV PWMK0,UP
		MOV PWMK1,DOWN
		MOV PWMK2,DOWN
		MOV PWMK3,CLOCK
		MOV DISB,#00H
		MOV DISC,#00H
		CPL GO
	KEYEXIT:RET
	  KEYCH:CLR KEYONE	
		RET
;*****************显示********************************* 
	DISPLAY:JNB GO,EXITDISPLAY
		PUSH PSW
		SETB PSW.3      	;1区
		CLR PSW.4 
		MOV R7,#03H
		MOV R0,#DISA
		MOV R6,#04H
	DISNEXT:MOV P2,#0FFH
		MOV A,@R0
		MOV DPTR,#TAB
		MOVC A,@A+DPTR
		MOV P2,A
		MOV A,R6
		ANL P1,#0E3H
		ORL P1,A
		RL  A
		MOV R6,A
		INC R0
		ACALL DELY
		DJNZ R7,DISNEXT
    		POP PSW
    EXITDISPLAY:MOV P2,#0FFH
		ANL P1,#0E3H
    		RET
	 OVER_L:LJMP OVER
;******************************************************
TIME0:DJNZ PWMK0,L1
      DJNZ PWMK3,CONTI				
		MOV UP,#50
		MOV DOWN,#40
		MOV PWMK0,UP
		MOV PWMK1,DOWN	
		JNB  MOTOW,NEXTMOTO
		MOV DISA,#10			
		MOV DISB,#09H
		MOV DISC,#09H
		CLR TR0
		SETB TR1
		CLR P1.0	
		AJMP OVER
       NEXTMOTO:MOV DISA,#11			
		MOV DISB,#09H
		MOV DISC,#09H
		CLR TR0
		SETB TR1
		CLR P1.0	
		AJMP OVER		
CONTI:JB   MOTOW,MOTONE1
		MOV  DISA,#11			;显示速度控制向前
		MOV  A,DISB
		SWAP A
		ORL  A,DISC
		ADD A,#01H
		DA A
		MOV DISC,A
		ANL A,#0F0H
		SWAP A
		MOV DISB,A
		MOV A,DISC
		ANL A,#0FH
		MOV DISC,A
		SETB P1.5
		SJMP CONTINEXIT
	MOTONE1:SETB P1.6	
		MOV  DISA,#10			;显示速度控制向后
		MOV  A,DISB
		SWAP A
		ORL  A,DISC
		ADD A,#01H
		DA A
		MOV DISC,A
		ANL A,#0F0H
		SWAP A
		MOV DISB,A
		MOV A,DISC
		ANL A,#0FH
		MOV DISC,A
   CONTINEXIT:MOV  PWMK0,DOWN
		DEC  PWMK2
		MOV  A,PWMK2
		MOV  PWMK1,A
     	     L1:DJNZ PWMK1,OVER
		JB   MOTOW,MOTONE21
		CLR  P1.5
		SJMP OVER
       MOTONE21:CLR  P1.6
    	   OVER:NOP
   		RETI
          TIME1:DJNZ PWMK0,L10;启动均速控制
		MOV UP,#50
		MOV DOWN,#40
		MOV PWMK0,UP
		MOV PWMK1,DOWN			
		AJMP OVER
	   L10:DJNZ PWMK1,OVER1
		JB   MOTOW,MOTONE20
		CLR  P1.5
		SJMP OVER
       MOTONE20:CLR  P1.6
		SJMP OVER
    	  OVER1:NOP
   		RETI
;******************************************************
	   	   INTA:SETB P1.6		;关反转	
		SETB P1.5
		CPL MOTOW
		CLR P1.0
		MOV UP,#00H
		MOV DOWN,#0FFH
		MOV CLOCK,#0BFH
		MOV PWMK0,UP
		MOV PWMK1,DOWN
		MOV PWMK2,DOWN
		MOV PWMK3,CLOCK
		SETB TR0
		CLR  TR1
		MOV DISB,#00H
		MOV DISC,#00H
   		RETI
;******************************************************
INTB:SETB P1.6		;关反转		
		SETB P1.5
		CPL MOTOW
		MOV UP,#00H
		MOV DOWN,#0FFH
		MOV CLOCK,#0BFH
		MOV PWMK0,UP
		MOV PWMK1,DOWN
		MOV PWMK2,DOWN
		MOV PWMK3,CLOCK
		SETB TR0
		CLR  TR1
		MOV DISB,#00H
		MOV DISC,#00H
   		RETI
	   DELY:MOV R1,#20		;50MS延时程序
	   DELL:MOV R2,#125
		DJNZ R2,$
		DJNZ R1,DELL
		RET		
TAB:DB 81H,0B7H,0C2H,92H,0B4H,98H,88H,0B3H,80H,090H,0FEH,0FFH
      ;0   1     2    3   4    5   6   7    8    9    -	  关	
		END

⌨️ 快捷键说明

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