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

📄 paixu.lst

📁 * 采用插入排序法。 * 将8个单字节无符号数升序排列
💻 LST
字号:
C51 COMPILER V8.02   PAIXU                                                                 12/30/2006 15:00:09 PAGE 1   


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

line level    source

   1          /*******************************************************************
   2          *                                                                  *
   3          * ME500单片机开发系统演示程序 -  数据升序排列                      *
   4          *                                                                  *
   5          * 8 位数码管显示                                                   *
   6          *                                                                  *
   7          * 版本: V1.0 (2006/11/20)                                         *
   8          * 作者: gguoqing (Email: gguoqing@willar.com)                     *
   9          * 网站: www.willar.com(伟纳电子)   www.mcusj.com(伟纳单片机世界)  *
  10          * 时间: 2006/12/28                                                *
  11          *                                                                  *
  12          *【版权】Copyright(C)伟纳电子 www.willar.com  All Rights Reserved  *
  13          *【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!        *
  14          *                                                                  *
  15          ********************************************************************
  16          *                                                                  *
  17          * 描述:                                                           *
  18          *      采用插入排序法。                                            *
  19          *      将8个单字节无符号数升序排列,数码管从左至右显示 8-1。       *
  20          *      K1--- 查看最大值,K4--- 退出                                *
  21          *      K2--- 查看最小值,K4--- 退出                                *
  22          *                                                                  *
  23          *******************************************************************/
  24          #include <reg51.h>
  25          #include <intrins.h>
  26          
  27          #define uchar unsigned char
  28          #define uint  unsigned int
  29          
  30          sbit  K1 = P1^4;
  31          sbit  K2 = P1^5;
  32          sbit  K3 = P1^6;
  33          sbit  K4 = P1^7;
  34          
  35          uchar code display[]  = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  36          uchar  testdata[] = {0x00,0x05,0x01,0x06,0x02,0x08,0x04,0x03,0x07};
  37          
  38          uchar shift ;
  39          
  40          /**********************************************************
  41           延时子程序
  42          **********************************************************/
  43          void delayms(uint ms) 
  44          
  45          {
  46   1         uchar t;
  47   1         while(ms--)
  48   1         { 
  49   2           for(t = 0; t < 120; t++);
  50   2         }
  51   1      }
  52          
  53          /**********************************************************
  54          
  55            显示函数
C51 COMPILER V8.02   PAIXU                                                                 12/30/2006 15:00:09 PAGE 2   

  56          
  57          **********************************************************/
  58          void  play(void)
  59          {
  60   1         uchar k;
  61   1       
  62   1         P0=0xff;
  63   1         P2=0xff;
  64   1      
  65   1         shift=0x7f;
  66   1         
  67   1         for(k=0; k<8; k++)
  68   1         {  
  69   2           P0=display[testdata[k+1]];
  70   2           P2=shift;
  71   2           shift=_cror_(shift,1);
  72   2           delayms(1);
  73   2         }
  74   1         P2=0xff ;
  75   1      }
  76          
  77          /**********************************************************
  78          
  79            排序函数
  80          
  81          **********************************************************/
  82          void  compositor()
  83          {
  84   1         uchar  num=8,i,j;
  85   1         
  86   1         for(i=2; i<=num; i++)
  87   1         {
  88   2           testdata[0]=testdata[i];     //testdata[0]作为机动单元
  89   2           j=i-1;
  90   2           while(testdata[0]<testdata[j])
  91   2           {
  92   3              testdata[j+1]=testdata[j];
  93   3              j--;
  94   3           }
  95   2          testdata[j+1]=testdata[0];
  96   2         }
  97   1      }
  98          
  99          /**********************************************************
 100          
 101            主函数
 102          
 103          **********************************************************/
 104          main()
 105          {
 106   1         bit  max,min;
 107   1         uchar  count=0xff;
 108   1      
 109   1         while(count!=0)                 //显示数据原始排序
 110   1         {
 111   2           play();
 112   2           count--;
 113   2         }
 114   1         compositor();
 115   1      
 116   1         while(1)
 117   1         {
C51 COMPILER V8.02   PAIXU                                                                 12/30/2006 15:00:09 PAGE 3   

 118   2           play();                       //显示数据升序排序值
 119   2      
 120   2               if(K1==0)
 121   2               {
 122   3                 delayms(100);
 123   3                 max=1;
 124   3                 while(max)
 125   3                 {
 126   4                   P0=display[testdata[8]];  //显示数据最大值
 127   4                       P2=0X7F;
 128   4               if(K4==0)
 129   4                       {
 130   5                         delayms(100);
 131   5                     max=0;             
 132   5                       }
 133   4                 }
 134   3               
 135   3               }
 136   2      
 137   2               if(K2==0)
 138   2               {
 139   3                 delayms(100);
 140   3                 min=1;
 141   3                 while(min)
 142   3                 {
 143   4                   P0=display[testdata[1]];  //显示数据最小值
 144   4                       P2=0X7F;
 145   4               if(K4==0)
 146   4                       {
 147   5                         delayms(100);
 148   5                     min=0;             
 149   5                       }
 150   4                 }     
 151   3               }
 152   2         }
 153   1      }
 154          
 155          /*********************************************************/
 156          
 157          
 158          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    206    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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