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

📄 51

📁 51单片机大量源码
💻
字号:
C51 COMPILER V8.18   SMGWY                                                                 01/04/2010 13:05:14 PAGE 1   


C51 COMPILER V8.18, COMPILATION OF MODULE SMGWY
OBJECT MODULE PLACED IN SMGWY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SMGWY.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include <reg52.h> //51芯片管脚定义头文件 
   3          #include <intrins.h>//内部包含延时函数 _nop_(); 
   4          
   5          #define uchar unsigned char 
   6          #define uint unsigned int 
   7          
   8          uchar code ledcode[11] ={ 0xC0,0xF9,0xA4,0xB0,0x99, 
   9          0x92,0x82,0xF8,0x80,0x90,0xff }; 
  10          
  11          uchar data display[9]={10,10,10,10,10,10,10,10,10}; 
  12          
  13          uchar shift,n; 
  14          
  15          /********************************************************/ 
  16          /* */
  17          /* 延时函数 */
  18          /* */ 
  19          /********************************************************/ 
  20          
  21          void delayms(uint ms) 
  22          
  23          { 
  24   1      uchar t; 
  25   1      while(ms--) 
  26   1      { 
  27   2      
  28   2      for(t = 0; t < 120; t++); 
  29   2      } 
  30   1      } 
  31          
  32          /**********************************************************
  33          
  34           数据交换函数(向左移动) 
  35          
  36          **********************************************************/ 
  37          
  38          void exchange1() 
  39          { 
  40   1      uchar i; 
  41   1      
  42   1      for(i=1; i<9; i++)
  43   1      
  44   1       { 
  45   2      display[i] = i; 
  46   2      delayms(1000);
  47   2      
  48   2      
  49   2       } 
  50   1      } 
  51          
  52          /**********************************************************
  53          
  54           数据交换函数(向右移动) 
  55          
C51 COMPILER V8.18   SMGWY                                                                 01/04/2010 13:05:14 PAGE 2   

  56          **********************************************************/ 
  57          
  58          void exchange2() 
  59          { 
  60   1      uchar i,j; 
  61   1      
  62   1      for(j=0; j<8; j++) 
  63   1      { for(i=0; i<8; i++) 
  64   2      { 
  65   3      
  66   3      
  67   3      display[i]=display[i+1]; 
  68   3      } 
  69   2      display[8]=10; 
  70   2      delayms(1000); 
  71   2      
  72   2      
  73   2      } 
  74   1      } 
  75          
  76          /**********************************************************
  77          
  78           主函数 
  79          
  80          **********************************************************/ 
  81          
  82          void main(void) 
  83          
  84          { 
  85   1      uchar times; 
  86   1      P0=0xff; 
  87   1      P2=0xff; 
  88   1      n=0; 
  89   1      shift=0xfe; 
  90   1      times=8;
  91   1      
  92   1       TMOD = 0x01; //定时器T0工作方式1 
  93   1      TH0 = 0xfc; //1ms定时常数 
  94   1      TL0 = 0x66; 
  95   1      IE = 0x82; //允许定时器T0中断 
  96   1      TR0 = 1; //启动定时器T0 
  97   1      
  98   1      
  99   1      while(1)
 100   1      
 101   1       { 
 102   2      exchange1(); 
 103   2      delayms(1000); //停止滞留时间
 104   2      
 105   2      
 106   2       exchange2(); 
 107   2      delayms(1000); //停止滞留时间 
 108   2      } 
 109   1      }
 110          /**********************************************************
 111          
 112           中断服务函数 
 113          
 114          **********************************************************/ 
 115          
 116          void leddisplay() interrupt 1 
 117          
C51 COMPILER V8.18   SMGWY                                                                 01/04/2010 13:05:14 PAGE 3   

 118          { 
 119   1      TH0 = 0xFC; //1ms定时常数 
 120   1      TL0 = 0x66; 
 121   1      n++; 
 122   1      P0=ledcode[display[n]]; //送段码 
 123   1      P2=shift; //送位码 
 124   1      shift=shift<<1|0x01; //修改位码 
 125   1      if(n>8) 
 126   1      {
 127   2       n=0; 
 128   2      shift=0xfe; 
 129   2      } 
 130   1      } 
 131          
 132          /*********************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    184    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       1
   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 + -