原创 我要整理单片机的资料

2009-2-23 12:12 1487 5 5 分类: MCU/ 嵌入式

点击看大图


电路图:


实现功能:按下P20,流水灯向左方向,按下P21时,流水灯向右方向移动,按下P22时,流水灯停止运行,


源程序:C语言如下:


#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P2^0;
sbit key2=P2^1;
sbit key3=P2^2;
void delay(uchar z);
//void time0(void);
uchar i="0",j,m=0;
void main(void)
{
 uchar k="0xfe";
//  time0();
 while(1)
 {
 if(key3==0)
 {
  delay(10);
  if(key3==0)
  m=1;
 }
  if(key1==0)
 {
     m="0";
     i="0";
  delay(10);
  if(key1==0)
  i++;
  if(i==2)
  i=1;
  while(key1==0);
 }
  if(key2==0)
 {
  m=0;
     j="0";
  delay(10);
  if(key2==0)
  j++;
  i=2;
  while(key2==0);
 }
 if(m==0)
 {
 if(i==0||i==1)
 {
    //if(i==2)
  // i="1";
    j="0";
    P1=k;
  delay(30);
    k=_crol_(k,1);
  }
  if(j==1)
  {
    P1=k;
  delay(30);
    k=_cror_(k,1); 
  }    
 }
 }
}
void delay(uchar z)
{
 uchar x,y;
 for(x=z;x>0;x--)
 for(y=110;y>0;y--);
}


汇编语言如下:


KEY1 BIT P2.0;   当按下KEY1键时,流水灯左移
KEY2 BIT P2.1 ;   当按下KEY2键时,流水灯右移
KEY3 BIT P2.2  ;   当按下KEY3键时,流水灯暂停
ORG  0000H
      MOV R1,#0FEH;R1内存放的是P1口的状态值
  MOV R2,#0   ;R2内存放的是KEY1的状态
  MOV R3,#0   ;R3内存放的是KEY2的状态
  MOV R4,#0   ;R4内存放的是KEY3的状态
MAIN: JB KEY1,J2
  LCALL DEL5MS
  JNB KEY1,K1
J2:  JB KEY2,J3
  LCALL DEL5MS
  JNB KEY2,K2
J3:  JB KEY3,PAN
  LCALL DEL5MS
  JNB KEY3,K3
PAN: CJNE R2,#0,R32
  LJMP K1
R32:    CJNE R3,#1,R44
  LJMP K2
R44: CJNE R4,#1,K1
  LJMP K3


K1:  JNB KEY1,K1
        MOV P1,R1
  MOV A,R1
  RR A;
  MOV R1,A
  LCALL DEL10M
  MOV R2,#0;
  MOV R3,#0
  MOV R4,#0
  LJMP MAIN
K2:  JNB KEY2,K2
        MOV P1,R1
  MOV A,R1
  RL A;
  MOV R1,A
  LCALL DEL10M
  MOV R2,#1;
  MOV R3,#1
  MOV R4,#0
  LJMP MAIN
K3:  JNB KEY3,K3
        MOV R2,#1;
  MOV R3,#0
  MOV R4,#1
  LJMP MAIN


DEL5MS: MOV R6,#30
DEL5: MOV R7,#125
DEL51:  NOP
  NOP
  DJNZ R7,DEL51
  DJNZ R6,DEL5;
  RET


DEL10M: MOV R6,#100
DEL10: MOV R7,#125
DEL11: NOP
  NOP
  DJNZ R7,DEL11
  DJNZ R6,DEL10
  RET
  END


作者:圣圣九,河南理工大学:希望能够认识一些喜爱单片机开发的朋友们,QQ;604901085:加我呀,我会一直整理单片机的资料,并不断上传,希望能够给朋友们提供帮助。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /1 下一条