標(biāo)題: [求助]大俠們,誰幫我寫一個(gè)按一下LED燈就亮了,5秒鐘后停止的程序呀. [打印本頁]

作者: xiangtp    時(shí)間: 2008-5-23 11:16
標(biāo)題: [求助]大俠們,誰幫我寫一個(gè)按一下LED燈就亮了,5秒鐘后停止的程序呀.
[求助]大俠們,誰幫我寫一個(gè)按一下P1.0 LED燈就亮了,5秒鐘后停止,再等10秒鐘后P1.1燈又亮的程序呀.xiangtianpin@163.com
[此貼子已經(jīng)被作者于2008-5-23 11:19:56編輯過]

作者: heicad    時(shí)間: 2008-5-23 13:44

setb p1^0

 

pUSH   04H                
        PUSH   05H            
        PUSH   06H                
        MOV    R4,#50             
DELAY5S_0:MOV  R5,#200                              
DELAY5S_1:MOV  R6,#245                              
        DJNZ   R6,$                         
        DJNZ   R5,DELAY5S_1
        DJNZ   R4,DELAY5S_0                         
        POP    06H                  
        POP    05H                  
        POP    04H                   
     

 

 

clr  p1^0

 

pUSH   04H                
        PUSH   05H            
        PUSH   06H                
        MOV    R4,#50             
DELAY5S_0:MOV  R5,#200                              
DELAY5S_1:MOV  R6,#245                              
        DJNZ   R6,$                         
        DJNZ   R5,DELAY5S_1
        DJNZ   R4,DELAY5S_0                         
        POP    06H                  
        POP    05H                  
        POP    04H                   
     

pUSH   04H                
        PUSH   05H            
        PUSH   06H                
        MOV    R4,#50             
DELAY5S_0:MOV  R5,#200                              
DELAY5S_1:MOV  R6,#245                              
        DJNZ   R6,$                         
        DJNZ   R5,DELAY5S_1
        DJNZ   R4,DELAY5S_0                         
        POP    06H                  
        POP    05H                  
        POP    04H                   
     


作者: huwoyun123    時(shí)間: 2008-5-24 22:21

ORG 0000H
LJMP MAIN
ORG 000B         ;定時(shí)器T0中斷程序入口地址
LJMP IST0
ORG 0030H
MAIN: JNB P3.0 NEXT    ;P3.0接開關(guān)
         LJMP MAIN
NEXT:CLR P1.0
         MOV 30H,#00H    ;用軟件計(jì)數(shù)器
         MOV 31H,#00H
         MOV TMOD,#01H    ;用定時(shí)器T0,并設(shè)置在方式1,在定時(shí)狀態(tài)。
         MOV TH0,#3CH     ;設(shè)置初值15536,讓定時(shí)器定時(shí)50000us。
         MOV TL0,#B0H
         SETB ET0        ;打開T0中斷。     
         SETB EA         ;打開中斷總開關(guān)。
        MOV TCON,#10H(或者:SETB TR0)     ;開啟定時(shí)。
LJMP $
IST0:PUSH ACC           ;中斷服務(wù)子程序。
         PUSH PSW
         INC 30H
         INC 31H
         MOV A,30H
         CJNE A,#100,NEXT1   ;讓其定時(shí)50000us X 100=5s。
          SETB P1.0            5s后P1.0滅。
          MOV 30H,#00H        
        MOV TH0,#3CH       ;重裝初值,需要繼續(xù)引起中斷。
         MOV TL0,#B0H
NEXT1:MOV A,31H               ;繼續(xù)定時(shí)。
      CJNE A,#200,LOOP1 ;定時(shí)10s后,P1.1亮。   
      CLR P1.1
      MOV 31H,#00H              
LOOP1:MOV TH0,#3CH       重裝初值。。
      MOV TL0,#B0H
       POP PSW
       POP  ACC
         RETI          中斷返回
        END
說明:此程序未在實(shí)驗(yàn)板上驗(yàn)證過,只提供一種思路。。。

 


       


作者: 022rat    時(shí)間: 2008-7-11 19:57
怎么沒有用C寫的。坑肅寫更加簡單~~
作者: a13758777532    時(shí)間: 2008-7-12 16:28

#include <reg51.h>
sbit   led = P1^1;
sbit   key = P1^0;
unsigned char x,y;
void delay(void)
{
unsigned char i,j,k;
for(..;...;..)
for(..;...;..)
for(..;...;..);
}                     //延時(shí)1秒;

void main(void)
{
if(key==0)
{

led=0;
for(x=5;x>0;x--)    //點(diǎn)亮5秒;
{
delay();
}

led=1;                    //熄滅10s;

for(x=10;x>0;x--)

{

delay();

}
led=0;

}

}


 


作者: a13758777532    時(shí)間: 2008-7-12 16:29
多定義了一個(gè)Y,抱歉




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1