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

📄 mcu_cpld_ad119.lst

📁 单片机与cpld总线方式通信
💻 LST
字号:
C51 COMPILER V7.06   MCU_CPLD_AD119                                                        07/25/2005 14:48:54 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MCU_CPLD_AD119
OBJECT MODULE PLACED IN MCU_CPLD_AD119.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MCU_CPLD_AD119.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //单片机从cpld读入119转化完的数据
   2          #include<reg51.h>
   3          #include<absacc.h>
   4          #include <intrins.h> 
   5          #define unchar unsigned char
   6          #define unint unsigned int
   7          #define DisCmd XBYTE [0xC100]                     //7218控制字地址
   8          #define DisData XBYTE [0xC000]                    //7218数据口地址
   9          #define scode 0xb0                                //7218软件译码方式命令字
  10          #define bcode 0x90                                //B码译码方式命令字
  11          #define hexcode 0xd0                              //软件译码方式命令字
  12          #define unchar  unsigned char 
  13          //MAX191工作在ROM Mode 方式 
  14          //对外中断1采用了查询方式,中断方式还得再试验
  15          //12位AD精度有了,可是速度是一个问题,
  16          //按现在的用法,转换时间为12uS,再算上数据处理时间(包括数据存储、显示等),对模拟信号的采样频率估计最快也
             -就是
  17          //几十KHz(只考虑转换时间和存储在RAM中所需时间)
  18          sbit P3_3=P3^3;
  19          unchar xdata *AD;
  20          long voltage;
  21          unchar keynum;
  22          unchar flag=0;
  23          unchar dot=0;
  24          char distab[8]={0x13,0x13,0x14,0x00,0x12,0x12,0x0e,0x11} ; // 要显示的内容 hello-pp
  25          char code ledtab[]={ 0xfb,0xb0,0xed,0xf5,0xb6,0xd7,0xdf,0xf0,
  26                         //0,   1,    2,   3,   4,   5,   6,   7 
  27                          0xff,0xf7,0xfe,0x9f,0xcb,0xbd,0xcf,0xce,
  28                         //8    ,9   ,a   ,b   ,c    ,d  ,e    ,f  
  29                          0x80,0xbe,0x8b,0xee,0x84 };
  30                         //熄灭 H    L    P    -
  31          void delay1s()
  32          {
  33   1       unint i,j;
  34   1       for(i=1000;i>0;i--)
  35   1       for(j=100;j>0;j--);
  36   1       }
  37          
  38          void display()
  39          {
  40   1         unchar i;      
  41   1         DisCmd=scode;            //采用软件译码
  42   1         for(i=0;i<8;i++)      //将distab中的数据送如7218
  43   1         {
  44   2           if((i==dot)&dot)
  45   2                 DisData=ledtab[distab[i]]+0x80; //查表转化并将字型送入7218
  46   2              else
  47   2          DisData=ledtab[distab[i]]; //查表转化并将字型送入7218
  48   2       }
  49   1      for(i=1000;i>0;i--);   
  50   1      }
  51          void ADStart()
  52           {
  53   1        unchar d_h,d_l,i;
  54   1        unint tem;
C51 COMPILER V7.06   MCU_CPLD_AD119                                                        07/25/2005 14:48:54 PAGE 2   

  55   1        voltage=0;
  56   1       
  57   1        for(i=0;i<10;i++)
  58   1       {
  59   2        AD=0xA0FF;
  60   2       //d_h=(*AD)&0x0f;
  61   2        d_l=*AD;
  62   2        AD=0xA0FE;
  63   2        d_h=*AD;
  64   2        tem=d_h*0x0100+d_l;
  65   2        voltage+=tem;
  66   2        }
  67   1        voltage=voltage/10;
  68   1        distab[3]=voltage/1000;
  69   1        distab[3]=distab[3];
  70   1        voltage=voltage%1000;
  71   1        distab[2]=voltage/100;
  72   1        voltage=voltage%100;
  73   1        distab[1]=voltage/10;
  74   1        voltage=voltage%10;
  75   1        distab[0]=voltage;
  76   1       // distab[7]=0x10;
  77   1        distab[6]=0x10;
  78   1        distab[5]=0x10;
  79   1        distab[4]=0x10;
  80   1        display();
  81   1        delay1s();
  82   1       }
  83          //**************************************************************************************
  84          void intt0() interrupt 0 
  85          { 
  86   1       EX0=0;              //关键盘中断,禁止相应其他按键
  87   1       keynum=P1;          //从p1口读入键盘值
  88   1       keynum=keynum&0x0f; //取低四位;
  89   1       dot=3;
  90   1       if(keynum==0x0f)
  91   1       flag=!flag;
  92   1       if(flag)
  93   1       distab[7]=0x00;
  94   1       else
  95   1       distab[7]=0x13;
  96   1       display();
  97   1       EX0=1;                    //开中断
  98   1      }
  99          //**************************************************************************************
 100          /*
 101          void intt1() interrupt 1   //AD转换中断
 102          { 
 103           ADStart();
 104          }
 105          */
 106          void main()
 107          {
 108   1      
 109   1        //unchar n;
 110   1        EX0=1;
 111   1        //EX1=1;
 112   1        EA=1;
 113   1        //dot=3;
 114   1        //for(n=0;n<8;n++)
 115   1        //distab[n]=n;
 116   1        display();
C51 COMPILER V7.06   MCU_CPLD_AD119                                                        07/25/2005 14:48:54 PAGE 3   

 117   1        while(1)
 118   1        { 
 119   2        if(flag)
 120   2        ADStart();
 121   2        //display();
 122   2        }
 123   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    469    ----
   CONSTANT SIZE    =     21    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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