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

📄 bc7281.lst

📁 基于F020单片机的简易音频信号分析仪的实现keil程序(C实现)。2007年9月全国大学生电子设计竞赛题目(获得省2等奖)所有要求功能都实现。希望对感兴趣的朋友有帮助!
💻 LST
字号:
C51 COMPILER V7.06   BC7281                                                                09/06/2007 21:49:08 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE BC7281
OBJECT MODULE PLACED IN BC7281.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE BC7281.c LARGE OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #define   BC7281_GLOBALS
   2          #include "includes.h"
   3          
   4          // BC7281A LED显示和键盘控制 ****************************************************************/
   5          // bc7281a 字节写
   6          
   7          //R=3K3,C=20PF,OSC=2.5MHz
   8          //#pragma disable                                       //关中断
   9          void Write_7281 ( unsigned char ddata ) {
  10   1              unsigned char i;
  11   1              unsigned int max=0;
  12   1              Data_7281 = 1;  //漏开置1
  13   1              Clock_7281 = 0;         //9us
  14   1              Clock_7281 = 1;
  15   1              do {                                                    // 建立握手信号,发送一系列脉冲
  16   2                      Clock_7281 = 0;
  17   2                      Delay(6);
  18   2                      Clock_7281 = 1;
  19   2                      Delay(6);
  20   2                      max++;
  21   2              } while ( Data_7281 && (max < 1000));                   // 等待bc7281a 发送低电平,表示准备好
  22   1              if(max < 1000){
  23   2                      Clock_7281 = 0;                                 // 15us内再发送一时钟信号
  24   2                      Delay(6);
  25   2                      Clock_7281 = 1;
  26   2                      Delay(6);
  27   2                      max = 0;
  28   2                      while ( (!Data_7281)  && (max < 1000)){max++;};                 // Data_7281 回高电平
  29   2                      if(max < 1000){
  30   3                      for( i = 0; i < 8; i ++ ) {
  31   4                      if ( ddata & 0x80 )                     // 发送第7——0位
  32   4                              Data_7281 = 1;
  33   4                      else
  34   4                              Data_7281 = 0;
  35   4                              Delay(10);
  36   4                      ddata = ddata << 1;                     // 发送一时钟信号
  37   4                      Clock_7281 = 0; 
  38   4                      Delay(6);
  39   4                      Clock_7281 = 1;
  40   4                      Delay ( 6 );                            // 延时
  41   4                      }
  42   3              }}
  43   1              Data_7281 = 1;                                  // 回高电平
  44   1              Clock_7281 = 1;
  45   1              Delay ( 1 );
  46   1      }
  47          
  48          // bc7281a 字节读
  49          //#pragma disable                                       //关中断
  50          unsigned char Read_7281 ( void ) {
  51   1              unsigned char i;
  52   1              unsigned char ddata =0 ;
  53   1      
  54   1              Data_7281 = 1;  //漏开置1
  55   1      
C51 COMPILER V7.06   BC7281                                                                09/06/2007 21:49:08 PAGE 2   

  56   1              Clock_7281 = 0;                                 // 发送一单一握手脉冲 25us
  57   1              Delay(6);
  58   1              Clock_7281 = 1;
  59   1              Delay(6);
  60   1              i=0;
  61   1              while (( Data_7281) && (i<200)){i++;};                  // 等待bc7281a 发送低电平,表示准备好
  62   1              if(i<200){
  63   2              Data_7281 = 1;  //漏开置1
  64   2              Clock_7281 = 0;                                 // 15us内再发送一时钟信号 9us
  65   2              Delay(6);
  66   2              Clock_7281 = 1;
  67   2              Delay(6);
  68   2      
  69   2      
  70   2      
  71   2              for ( i = 0; i < 8; i ++ ) {
  72   3              Delay ( 20 );
  73   3                      Data_7281 = 1;  //漏开置1
  74   3                      ddata = ddata << 1;
  75   3                      if ( Data_7281 )                        // 接收第7——0位
  76   3                              ddata = ddata | 0x01;
  77   3                      Clock_7281 = 0;                         // 15 us内发送一时钟信号
  78   3                      Delay ( 10 );
  79   3                      Clock_7281 = 1;
  80   3                      Delay(10);
  81   3              
  82   3              }
  83   2              }
  84   1              Clock_7281 = 0;                                 // 发送一时钟信号,表示接收完毕
  85   1              Delay ( 12 );
  86   1              Clock_7281 = 1;
  87   1              Delay ( 20 );
  88   1              return ddata;
  89   1      }
  90          
  91          void BC7281Init(){
  92   1              Write_7281 ( 0x12 );                            // 写BC7281A工作模式寄存器
  93   1              Write_7281 ( 0x8a );                            // 扫描使能,扩展开关,164模式,扩展闪烁模式,输出反向,键盘工作模式为‘ 1 ’
  94   1              Write_7281 ( 0x11 );                            // 写闪烁速度控制寄存器
  95   1              Write_7281 ( 0x80 );                            // 闪烁频率 2 HZ
  96   1              Write_7281 ( 0x10 );                            // 初始化时,不闪烁显示
  97   1              Write_7281 ( 0xFF );
  98   1              Write_7281 ( 0x19 );
  99   1              Write_7281 ( 0xFF );
 100   1      
 101   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    456    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      7    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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