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

📄 chuanglian.lst

📁 红外收发代码,用于遥控窗帘 开发平台 :KEIL
💻 LST
字号:
C51 COMPILER V6.20c  CHUANGLIAN                                                            11/21/2007 15:43:40 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE CHUANGLIAN
OBJECT MODULE PLACED IN chuanglian.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE chuanglian.c ROM(SMALL) DEBUG OBJECTEXTEND

stmt level    source

   1          #include <AT89x051.H>
   2          
   3          #define led1 P3_0
   4          #define led2 P3_1
   5          #define led3 P1_6
   6          #define led4 P1_5
   7          
   8          unsigned char  k;
   9          unsigned char data psCount; //定时器计数器
  10          unsigned char data i;       
  11          unsigned char data j;
  12          unsigned char data temp;
  13          unsigned char data dp[4];  //用来保存红外遥控的码值
  14          
  15          main()
  16          {
  17   1      led1=0;
  18   1      led2=0;
  19   1      led3=0;
  20   1      led4=1;
  21   1      k=0;
  22   1      dp[0]=0;
  23   1      dp[1]=0;
  24   1      dp[2]=0;
  25   1      dp[3]=0;
  26   1      TMOD=0X11;
  27   1      TH0 = 254;       //定时500uS
  28   1      TL0 = 12;
  29   1      TCON=0X05;
  30   1      PX1=0;
  31   1      PT0=1;
  32   1      IE=0X80;
  33   1      TR0=1;
  34   1      EX1=1;
  35   1       while(1)
  36   1       {
  37   2       	if(dp[2]==0Xf3)
  38   2         	{
  39   3      	    dp[2]=0;
  40   3      		led1=1;
  41   3      	    led2=1;
  42   3         		
  43   3          }
  44   2      	if(dp[2]==0Xff)
  45   2         	{
  46   3      	    dp[2]=0;
  47   3         		led1=1;
  48   3      	    led2=0;
  49   3          }
  50   2      	if(dp[2]==0Xfb)
  51   2         	{
  52   3      	dp[2]=0;
  53   3         	led1=0;
  54   3          	led2=1;
  55   3          }
C51 COMPILER V6.20c  CHUANGLIAN                                                            11/21/2007 15:43:40 PAGE 2   

  56   2          if(dp[2]==0xf7)
  57   2         	{
  58   3         		dp[2]=0;
  59   3         		k=k+1;
  60   3      	
  61   3         		if(k==3)
  62   3         			{
  63   4         				 k=1;
  64   4         			}
  65   3         		//led1=1;
  66   3      	    //led2=0;
  67   3      	    
  68   3          }
  69   2      	if(k==1)
  70   2      	{led3=1;
  71   3      	led4=0;
  72   3      	}
  73   2      	if(k==2)
  74   2      	{ 
  75   3      	led3=0;
  76   3      	led4=1;
  77   3      	}
  78   2          if(k==1)
  79   2        	{
  80   3         		if(P1_4==1)
  81   3         		{
  82   4         			led1=1;
  83   4      	        led2=0;
  84   4      	    }
  85   3      	    if(P1_4==0)
  86   3      	    {
  87   4      	      	led1=0;
  88   4      	        led2=1;
  89   4      	    }
  90   3      	 }
  91   2       }
  92   1      }
  93          
  94          
  95          void timer0() interrupt 1
  96          {
  97   1       
  98   1       
  99   1       psCount++; 
 100   1      
 101   1       TH0 = 254;//(65536-500)/256;        //定时500uS
 102   1       TL0 = 12;//(65536-500)%256;
 103   1       
 104   1      }
 105          void  INT1_ISR() interrupt 2 using 2   
 106          {
 107   1      	ET0=0;    
 108   1      psCount=0;
 109   1      //while(P3_2==1);//判断是否有键被按下  
 110   1      ET0=1;
 111   1      while(P3_3 == 0);     
 112   1           if( psCount > 17)//0.5* 17 = 8.5ms约为9.0ms
 113   1        {
 114   2         ET0 = 0;
 115   2         psCount = 0;
 116   2         ET0 = 1;
 117   2         while(P3_3 == 1);
C51 COMPILER V6.20c  CHUANGLIAN                                                            11/21/2007 15:43:40 PAGE 3   

 118   2            if(psCount > 5)//超过0.5*5 = 2.5毫秒,是起始位,小于2.5MS是停止位,检查一下遥控命令是不是连发,不是

⌨️ 快捷键说明

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