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

📄 119cpld.lst

📁 单片机与cpld总线方式通信
💻 LST
字号:
C51 COMPILER V7.06   119CPLD                                                               07/25/2005 17:28:34 PAGE 1   


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

stmt level    source

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

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


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.06   119CPLD                                                               07/25/2005 17:28:34 PAGE 3   

   CODE SIZE        =    309    ----
   CONSTANT SIZE    =     21    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15    ----
   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 + -