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

📄 四位数显温度计.lst

📁 51单片机 0831 四位数显温度计 呵呵
💻 LST
字号:
C51 COMPILER V8.17   四位数显蝊度计                                                        04/12/2009 13:11:09 PAGE 1   


C51 COMPILER V8.17, COMPILATION OF MODULE 四位数显蝊度计
OBJECT MODULE PLACED IN 四位数显温度计.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 四位数显温度计.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <REG51.H> 
   2          unsigned char code dispbitcode[]={0X01,0X02,0X04,0X08};//显示位 
   3          unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 
   4                                         0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; 
   5          unsigned char dispbuf[]={0X01,0X02,0X04,0X08}; 
   6          unsigned char dispcount; 
   7          unsigned char getdata; 
   8          unsigned char getdata; 
   9          unsigned long temp; 
  10          unsigned int time;
  11          sbit ST=P3^0; 
  12          sbit OE=P3^1; 
  13          sbit EOC=P3^2; 
  14          sbit CLK=P3^3; 
  15          sbit LED1=P3^6; 
  16          sbit LED2=P3^7; 
  17          sbit SPK=P3^5; 
  18          
  19          void delay1(unsigned int t)
  20          {
  21   1       unsigned char i;
  22   1       while(t--)
  23   1       for(i=0;i<10;i++);
  24   1      } 
  25          
  26          void dis_make()//显示处理函数
  27          {
  28   1            /*temp=(unsigned long)getdata*2350; 
  29   1            temp=temp/128; 
  30   1                if(temp<2732) 
  31   1             { 
  32   1               temp=2732-temp; 
  33   1               dispbuf[0]=11;
  34   1             } 
  35   1             else 
  36   1               { 
  37   1                 temp=temp-2732;
  38   1                         dispbuf[0]=0; 
  39   1               } 
  40   1                if(temp<155) //如果在-55~+155显示
  41   1                {
  42   1                 dispbuf[1]=temp/100;  //取百位
  43   1             dispbuf[2]=(temp%100)/10;//取十位
  44   1             dispbuf[3]=(temp%100)%10;//取个位
  45   1                }
  46   1                else//如果超出-55~+155显示“----”
  47   1                {
  48   1                 dispbuf[0]=11;
  49   1                 dispbuf[1]=11;
  50   1             dispbuf[2]=11;
  51   1             dispbuf[3]=11;
  52   1                }      */
  53   1                dispbuf[1]=getdata/100;
  54   1             dispbuf[2]=(getdata%100)/10;
  55   1             dispbuf[3]=(getdata%100)%10;
C51 COMPILER V8.17   四位数显蝊度计                                                        04/12/2009 13:11:09 PAGE 2   

  56   1                for(dispcount=1;dispcount<4;dispcount++)
  57   1                {
  58   2                 P2 = 0X00;
  59   2             P1=~dispcode[dispbuf[dispcount]];
  60   2             P2=dispbitcode[dispcount];
  61   2                 delay1(20);
  62   2                }
  63   1      
  64   1      }
  65          
  66          void main(void)//主函数 
  67          { 
  68   1        TMOD=0x12; 
  69   1        TH0=0XF6;//0.01ms时间
  70   1        TL0=0XF6; 
  71   1        TH1=(65536-4000)/256;//4ms时间 
  72   1        TL1=(65536-4000)%256; 
  73   1        //TR1=1; 
  74   1        //TR0=1; 
  75   1        //ET0=1; 
  76   1        //ET1=1; 
  77   1        EA=1; 
  78   1        getdata=148; 
  79   1        while(1) 
  80   1          { 
  81   2            ST=0;
  82   2            ST=1;               //清空数据
  83   2            ST=0;              //开始记转换
  84   2            while(!EOC);//等待数据转换完成
  85   2            OE=1;               //使能数据输出
  86   2            getdata=P0;//获取数据
  87   2            OE=0;              //禁止数据输出
  88   2                dis_make(); //显示处理
  89   2      //        if(time>3000){TR1=0;while(1);}
  90   2              } 
  91   1      }
  92          void t0(void) interrupt 1 //100K方波
  93          { 
  94   1        CLK=~CLK; 
  95   1      } 
  96          void t1(void) interrupt 3
  97          { 
  98   1        TH1=(65536-4000)/256; 
  99   1        TL1=(65536-4000)%256; 
 100   1      
 101   1               P2 = 0X00;     //消影
 102   1           P1=~dispcode[dispbuf[dispcount]];//显示字符
 103   1           P2=dispbitcode[dispcount];
 104   1           dispcount++;
 105   1           if(dispcount>3)
 106   1            {
 107   2              dispcount=0;
 108   2            }
 109   1                time++;
 110   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    215    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V8.17   四位数显蝊度计                                                        04/12/2009 13:11:09 PAGE 3   

   DATA SIZE        =     12    ----
   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 + -