这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 合作大赛 » 发射检测程序及主程序:(参考)

共1条 1/1 1 跳转至

发射检测程序及主程序:(参考)

高工
2015-06-10 23:01:01     打赏
发射检测程序及主程序: 
1、延时4秒子程序: 
DELY: MOV R7,#50; 
DLY0: MOV R6,#200; 
DLY1: MOV R5,#200; 
DJNZ R5,$;200×2us=400us=0.4ms           
DJNZ R6,DLY1;0.4ms×200=80ms 
DJNZ R7,DLY0;80ms×50=4000ms=4s 
RET 


2、检验硬件电路程序: 
ORG 0000H 
AJMP MAIN 
ORG 0111H 
MAIN:SETB P1.0; 
SETB P1.1; 
CLR P1.2; 
SETB P1.2; 
CLR P1.0; 
CLR P1.1; 
END 


3、检验含子程序调用的程序正确性: 
•程序编写是否正确 
•程序烧入单片机的操作是否正确 
程序格式是否正确(.bin或.hex);操作过程是否正确 

ORG 0000H 
AJMP MAIN 
ORG 0111H 
MAIN:SETB P1.0; 
SETB P1.1; 
CLR P1.2; 
LCALL DELY 
SETB P1.2; 
CLR P1.0; 
CLR P1.1; 
AJMP LAST 
DELY: MOV R7,#50; 
DLY0: MOV R6,#200; 
DLY1: MOV R5,#200; 
DJNZ R5,$;200×2us=400us=0.4ms           
DJNZ R6,DLY1;0.4ms×200=80ms 
DJNZ R7,DLY0;80ms×50=4000ms=4s 
RET 
LAST: SJMP $; 
END 


4、检验能否发射红外中频信号程序:t=1ms,f=1KHz 
ORG 0000H 
AJMP MAIN 
ORG 0111H 
MAIN:SETB P1.0; 
LCALL DELY 
CLR P1.0; 
LCALL DELY 
LJMP MAIN 
DELY: MOV R5,#250; 
DJNZ R5,$;250×2us=500us=0.5ms          
RET 
END 


5、检验能否发射调制红外中频信号程序: 
发射010101…………… 
0:两个脉冲再空两个脉冲 
1:两个脉冲再空四个脉冲 

ORG 0000H 
AJMP SEND 
ORG 0111H 
SEND:MOV R5,#2;    
SEND1: LCALL H 
DJNZ R5, SEND1 
MOV R5,#2; 
SEND2:LCALL L 
DJNZ R5, SEND2 
MOV R5,#2;    
SEND3: LCALL H; 
DJNZ R5, SEND3; 
MOV R5,#4; 
SEND4:LCALL L 
DJNZ R5, SEND4 
LJMP SEND 
END 

6、本产品主程序: 
ORG 0000H 
AJMP SEND 
ORG 0111H 
SEND: CLR P1.1 
CLR P1.2 
MOV A, #1H ;  红灯信号为0001 
SEND1: MOV R4,#4  ;   
MOV R5,#20;   
GO: LCALL H ;   
    DJNZ R5,GO ;开始帧 
   GO1:   RLC    A      ;  
JC     S        ;     
MOV  R5,#20 ;  
GO2:   LCALL  L      ; 
DJNZ R5,GO2; 
 MOV  R5,#10;  
GO3:   LCALL  H; 
DJNZ R5,GO3; 
 LJMP   NEXT   ; 
S: MOV  R5,  # 10  ; 
S1: LCALL  L;     
DJNZ  R5  ,S1 ; 
 MOV  R5,  # 10;    
S2: LCALL H ;     
DJNZ  R5,S2 ;  
NEXT:    DJNZ  R4   GO1;  
MOV   R5,  #10;  
NEXT1:  LCALL     L; 
DJNZ  R5 ,  NEXT1; 
 JB Acc.1 , LD ;     
SETB  P1.1 ;  红灯亮 
LCALL  YS  ; 延时5s 
CLR  P1.1;  红灯灭 
          MOV   A,  #2H ;    #2H即是0010,A先初始化(绿灯信号为0010) 
    LJMP  SEND1;开始发射绿灯信号 
LD:    SETB  P1.2  ;绿灯亮 
LCALL YS  ;延时5s 
CLR  P1.2   ;绿灯灭 
LJMP  LAST  (无条件长转移) 
YS:   MOV R7,#50; 
YS0: MOV R6,#200; 
YS1: MOV R5,#200; 
DJNZ R5,$;200×2us=400us=0.4ms           
DJNZ R6,DLY1;0.4ms×200=80ms 
DJNZ R7,DLY0;80ms×50=4000ms=4s 
RET 

H:  SETB  P1.0         ;  1us    
MOV R6, #5    ;  1us 
DJNZ R6, $  ; 10us 
CLR P1.0        ;  1us 
MOV R6, #5      ;   1us   
DJNZ R6,$    ;   10us   
       NOP              ;  1us 
RET               ;   1us  
L :  CLR  P1.0        ; 1us 
MOV  R6 ,  # 12  ;1us 
DJNZ  R6, $   ; 24us 
RET      ;1us  (可忽略) 
LAST : SJMP $ 
       END 


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]