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

📄 shizhong.lst

📁 一个遥控器的程序
💻 LST
字号:
C51 COMPILER V7.05   SHIZHONG                                                              05/17/2006 09:51:43 PAGE 1   


C51 COMPILER V7.05, COMPILATION OF MODULE SHIZHONG
OBJECT MODULE PLACED IN shizhong.OBJ
COMPILER INVOKED BY: D:\keilc an\C51\BIN\C51.EXE shizhong.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /******************************************************************************************
   2          *文件: ZONGHE.C
   3          *功能: 综合演示实验。
   4          ******************************************************************************************/
   5          #include "reg931.h"
   6          #include "intrins.h"
   7          #define uchar unsigned char
   8          sbit clk = P1^6;
   9          sbit dat = P1^7;
  10          sbit beep = P0^7;
  11          uchar code led[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0~9 共阳段码表
  12          uchar sec,min;
  13          //******************************************************************************************
  14          //delay: 延时子程序
  15          //******************************************************************************************
  16          void delay(void) //延时子程序
  17          {
  18   1      uchar x,y;
  19   1      for(x=0;x<10;x++)
  20   1      for(y=0;y<200;y++) ;
  21   1      }
  22          //******************************************************************************************
  23          // senddat:串行发送一个字节数据
  24          //******************************************************************************************
  25          void senddat(uchar d) //串行发送一个字节数据
  26          {
  27   1      uchar j;
  28   1      for(j=0;j<8;j++)
  29   1      {
  30   2      if(_crol_(d,j)&0x80) dat=1;
  31   2      else dat=0;
  32   2      clk=1;
  33   2      clk=0;
  34   2      }
  35   1      }
  36          //******************************************************************************************
  37          // displaysecl:显示“秒”值个位
  38          //******************************************************************************************
  39          void displaysecl(void) //显示“秒”值个位
  40          {
  41   1      uchar secl;
  42   1      P2=0xf7;
  43   1      secl=led[sec%10];
  44   1      senddat(secl);
  45   1      delay();
  46   1      }
  47          //******************************************************************************************
  48          // displaysech:显示“秒”值十位
  49          //******************************************************************************************
  50          void displaysech(void) //显示“秒”值十位
  51          {
  52   1      uchar sech;
  53   1      P2=0xfb;
  54   1      sech=led[sec/10];
  55   1      senddat(sech);
C51 COMPILER V7.05   SHIZHONG                                                              05/17/2006 09:51:43 PAGE 2   

  56   1      delay();
  57   1      }
  58          //******************************************************************************************
  59          // displayminl:显示“分”值个位
  60          //******************************************************************************************
  61          void displayminl(void) //显示“分”值个位
  62          {
  63   1      uchar minl;
  64   1      P2=0xfd;
  65   1      minl=led[min%10];
  66   1      senddat(minl);
  67   1      delay();
  68   1      }
  69          //******************************************************************************************
  70          // displayminh:显示“分”值十位
  71          //******************************************************************************************
  72          
  73          void displayminh(void) //显示“分”值十位
  74          {
  75   1      uchar minh;
  76   1      P2=0xfe;
  77   1      minh=led[min/10];
  78   1      senddat(minh);
  79   1      delay();
  80   1      }
  81          //******************************************************************************************
  82          // displayclose:关闭显示
  83          //******************************************************************************************
  84          void displayclose(void) //关闭显示
  85          {
  86   1      P2=0xff;
  87   1      }
  88          //******************************************************************************************
  89          // display:时钟值显示
  90          //******************************************************************************************
  91          void display(void) //时钟值显示
  92          {
  93   1      uchar i;
  94   1      for(i=0;i<140;i++) //在1s 内适当延时,保证显示的可视性
  95   1      {
  96   2      displaysecl(); //“秒”值个位显示
  97   2      displaysech(); //“秒”值十位显示
  98   2      displayminl(); //“分”值个位显示
  99   2      displayminh(); //“分”值十位显示
 100   2      displayclose(); //显示关闭
 101   2      }
 102   1      }
 103          //******************************************************************************************
 104          // int_rtc: 实时时钟中断入口
 105          //******************************************************************************************
 106          void int_rtc(void) interrupt 10 //实时时钟中断入口
 107          {
 108   1      uchar temp;
 109   1      temp=RTCCON;
 110   1      temp=temp&0x63; //清除RTC 中断标志
 111   1      RTCCON=temp;
 112   1      beep=1;
 113   1      sec+=1;
 114   1      
 115   1      if(sec==60)
 116   1      {
 117   2      sec=0;
C51 COMPILER V7.05   SHIZHONG                                                              05/17/2006 09:51:43 PAGE 3   

 118   2      min+=1;
 119   2      if(min==60)
 120   2      {
 121   3      min=0;
 122   3      beep=0;
 123   3      }
 124   2      }
 125   1      display();
 126   1      }
 127          void main(void)
 128          {
 129   1      P0M1=0x00; //端口设置
 130   1      P0M2=0x00;
 131   1      P1M1=0x00;
 132   1      P1M2=0x00;
 133   1      P2M1=0x00;
 134   1      P2M2=0x00;
 135   1      sec=0; //设置初值
 136   1      min=59;
 137   1      RTCH=0x00; //设置RTC 定时值
 138   1      RTCL=0xff;
 139   1      WDCON=0xe0; //关闭WDT 定时器
 140   1      IEN0=0xc0; //打开RTC 中断
 141   1      RTCCON=0x43; //启动RTC
 142   1      display();
 143   1      while(1); //等待中断
 144   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    250    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   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 + -