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

📄 key.lst

📁 音乐控制程序
💻 LST
字号:
C51 COMPILER V7.06   KEY                                                                   04/03/2008 10:37:21 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\KIEL C\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<AT89x55.H> 
   2          #include <stdio.h>
   3          #include <INTRINS.H> 
   4          #include  "bt1029.h"
   5          #define uint  unsigned int
   6          #define uchar unsigned char
   7          sbit ir=P1^6;
   8          //keyandout
   9          sbit keyadd=P3^4;
  10          sbit keysub=P3^5;
  11          sbit keystby=P3^6;
  12          sbit stby=P1^4;
  13          uchar VOL;
  14          bit  VOLon;
  15          sbit ledblue=P2^4;
  16          sbit ledred=P2^3;
  17          //***********************
  18          uchar irdata[4];
  19          uint count0,count1;
  20          uchar count10,count11;
  21          bit    flag,flag1,flag0;
  22          //*********************************
  23          //t*2us   4.5ms  equ 561   9ms equ 1124  0.56ms equ 69 
  24          //*********************************
  25          void delay(uint t)
  26               { while(--t);
  27   1               }
  28          /**********************************************/
  29           /* 工作状态灯*/
  30           void blueout()
  31                 {ledblue=1;
  32   1                  delay(500);
  33   1                      ledblue=0;
  34   1                      }
  35           void redout()
  36                 {if(VOLon)
  37   1                {ledred=0;
  38   2                 ledblue=1;
  39   2                }
  40   1                  else
  41   1                {ledred=1;
  42   2                 ledblue=0;
  43   2                }
  44   1                      }
  45           /************************************************/
  46          //串口传输初始化
  47          /***********************************************/
  48          void uart_init()
  49          {
  50   1      
  51   1         SCON  = 0xDA;        // SCON: mode 1, 8-bit UART, enable rcvr      */
  52   1         TMOD |= 0x20;        // TMOD: timer 1, mode 2, 8-bit reload        */
  53   1         TH1   = 0xFD;         // TH1:  reload value for 1200 baud @ 12MHz   */
  54   1         TR1   = 1;           // TR1:  timer 1 run                          */
  55   1         TI    = 1;           // TI:   set TI to send first char of UART    */
C51 COMPILER V7.06   KEY                                                                   04/03/2008 10:37:21 PAGE 2   

  56   1         
  57   1      }
  58          /*************************************************/
  59          //串口发送
  60          /************************************************/
  61          void send(unsigned char ch)
  62             {SBUF=ch;
  63   1          while(TI==0);
  64   1          TI=0;
  65   1          }
  66          /************************************************/
  67          /*********************************************/
  68          /*红外线接收处理*/
  69           /********************************************/
  70           void irchuli()
  71                { uchar c1,c2;
  72   1                 if(irdata[2]=~irdata[3])
  73   1                     {  blueout();
  74   2                            send(irdata[2]);
  75   2                                c1=irdata[2]/10;
  76   2                        c2=irdata[2]%10;
  77   2                        send('0'+c1);
  78   2                        send('0'+c2);
  79   2                              }
  80   1                 }
  81           /*********************************************/
  82          //*********************************
  83          //红外线接收扫描
  84          //*********************************
  85          //*********************************
  86          //
  87          //*********************************
  88          void checkhead()
  89               {   while(ir==0)
  90   1                      {count0++;
  91   2                       }
  92   1               if(count0>140)
  93   1                   {flag0=1;
  94   2                   }
  95   1                    count0=0; 
  96   1                        if(flag0==1)
  97   1                           { flag0=0;
  98   2                                 while(ir==1)
  99   2                              {count1++;
 100   3                              }
 101   2                        if(count1>350)
 102   2                          {flag1=1;
 103   3                          }
 104   2                        count1=0; 
 105   2                                 if(flag1==1)
 106   2                             {flag=1; 
 107   3                                  flag1=0;
 108   3                          }
 109   2                       
 110   2                       }
 111   1                }
 112          uchar irshou(uchar *data1)
 113          { //uchar data1,BitCnt,i;
 114   1         uchar i,j;
 115   1         checkhead();
 116   1                  if(flag==1)
 117   1                { 
C51 COMPILER V7.06   KEY                                                                   04/03/2008 10:37:21 PAGE 3   

 118   2                         flag=0;
 119   2                         for(i=0;i<4;i++) //共4个字节
 120   2                         {   //1
 121   3                             *data1=0;
 122   3                               for(j=0;j<8;j++)
 123   3                    { while(ir==0)
 124   4                            { count10++;
 125   5                                    }
 126   4                                        if(count10>20)
 127   4                             {(*data1)<<=1;
 128   5                              }
 129   4                                 //0
 130   4                                 while(ir==1)
 131   4                             {count11++;
 132   5                                       }
 133   4                                  if(count11<60)
 134   4                          {*data1|=1;
 135   5                           }
 136   4                                      count10=0;
 137   4                                  count11=0;
 138   4                                 }
 139   3                                 
 140   3                    data1++;
 141   3                         }
 142   2               irchuli(); 
 143   2                 }
 144   1       
 145   1         return 0; 
 146   1      }
 147          
 148          //键盘扫描
 149          void keyscan()
 150               { if((P3&&0x70)!=0x70)
 151   1                    {   if(!keyadd)
 152   2                               {  delay(10);
 153   3                          if(!keyadd)
 154   3                           { if(ledblue==0)
 155   4                              {
 156   5                                 if(VOL<84)
 157   5                                               {VOL++;
 158   6                                                    }
 159   5                                                 blueout();
 160   5                                                 SendBT1029(0,VOL);
 161   5                               }
 162   4                            }  
 163   3                                     }
 164   2                                 if(!keysub)
 165   2                        {delay(10);
 166   3                          if(!keysub)
 167   3                           { if(ledblue==0)
 168   4                              {
 169   5                                         if(VOL>0)
 170   5                                                {VOL--;
 171   6                                                     }
 172   5                                                  blueout();
 173   5                                                  SendBT1029(0,VOL);
 174   5                                }
 175   4                            }  
 176   3                                     }
 177   2                                 if(!keystby)
 178   2                                   {
 179   3                          delay(10);
C51 COMPILER V7.06   KEY                                                                   04/03/2008 10:37:21 PAGE 4   

 180   3                          if(!keystby)
 181   3                           {VOLon=~VOLon;
 182   4                                            stby=VOLon;
 183   4                                            //ledred=~ledred;
 184   4                             redout();
 185   4                            }
 186   3                                       }
 187   2                    }
 188   1                              }
 189           
 190           /********************************************/
 191           
 192          void main()
 193          {  
 194   1              uart_init();
 195   1          ledred=0;
 196   1          ledblue=1;
 197   1          delay(50000);
 198   1          ledred=1;
 199   1          ledblue=0;
 200   1              while(1)
 201   1              { keyscan();
 202   2           irshou(&irdata);    
 203   2               }
 204   1      }
 205          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    426    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      4    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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