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

📄 main.lst

📁 由键盘输入八个四位整数
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   MAIN                                                                  04/17/2008 20:57:57 PAGE 1   


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

stmt level    source

   1          /*由键盘输入八个四位整数,排序后由LED依次显示出,间隔2.5秒*/
   2          #include<reg52.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          uint block[8],tt=0;
   6          uchar num,temp;
   7          uchar keyscan();
   8          void delay(uint z);
   9          void input(uchar n);
  10          void display(uint shu);
  11          void display1(uint shu);
  12          void paixu();
  13          //******************************************************************************************************
  14                                                //主函数
  15          void main()
  16          {   uchar m;
  17   1          while(1)
  18   1              {       for(m=0;m<8;m++) 
  19   2                      {
  20   3                              input(m);
  21   3                      }
  22   2                      paixu();
  23   2                  for (m=0;m<8;m++)
  24   2                  {
  25   3                     display1(block[m]);
  26   3                               
  27   3                  }
  28   2                  P0=0xFF;
  29   2              }       
  30   1      }
  31          
  32          //******************************************************************************************************
  33                                               //子函数集
  34          
  35          
  36          //*****************************************
  37          //键盘输入子程序
  38          uchar keyscan()
  39          {
  40   1              while(1)
  41   1          //********************************                  
  42   1              {       P2=0xfe;                                                                        //初始化P2口,并且动态扫描第一行
  43   2                      temp=P2;                                                                        
  44   2                      temp=temp&0xf0;                                                         //屏蔽低位
  45   2                      while(temp!=0xf0)                                                       //判断是否有按键
  46   2                              {
  47   3                                      delay(10);                                                      //利用延时子程序,软件消抖
  48   3                                      temp=P2;
  49   3                                      temp=temp&0xf0;
  50   3                                      while(temp!=0xf0)
  51   3                                      {
  52   4                                              temp=P2;
  53   4                                              switch(temp)                        //判断按键,并赋值
  54   4                                                      {
  55   5                                                              case 0xee:num=1;
C51 COMPILER V7.06   MAIN                                                                  04/17/2008 20:57:57 PAGE 2   

  56   5                                                                      break;
  57   5                                                              case 0xde:num=2;
  58   5                                                                      break;
  59   5                                                              case 0xbe:num=3;
  60   5                                                                      break;
  61   5                                                              case 0x7e:num=4;
  62   5                                                                      break;
  63   5                                                      }
  64   4                                      while(temp!=0xf0)                   //利用延时子程序,软件消抖
  65   4                                              {
  66   5                                                      temp=P2;
  67   5                                                      temp=temp&0xf0;
  68   5                                              }
  69   4                                      }
  70   3                                      P2=0xf0;                            //使P2口的值为无按键状态,为进入display()准备
  71   3                      return num;
  72   3                              }
  73   2                      //***************************
  74   2                              P2=0xfd;                                                                        //初始化P2口,并且动态扫描第二行
  75   2                              temp=P2;
  76   2                              temp=temp&0xf0;
  77   2                              while(temp!=0xf0)
  78   2                                      {
  79   3                                              delay(10);
  80   3                                              temp=P2;
  81   3                                              temp=temp&0xf0;
  82   3                                              while(temp!=0xf0)
  83   3                                              {
  84   4                                                      temp=P2;
  85   4                                                      switch(temp)
  86   4                                                              {
  87   5                                                                      case 0xed:num=5;
  88   5                                                                              break;
  89   5                                                                      case 0xdd:num=6;
  90   5                                                                              break;
  91   5                                                                      case 0xbd:num=7;
  92   5                                                                              break;
  93   5                                                                      case 0x7d:num=8;
  94   5                                                                              break;
  95   5                                                              }
  96   4                                              while(temp!=0xf0)
  97   4                                                      {
  98   5                                                              temp=P2;
  99   5                                                              temp=temp&0xf0;
 100   5                                                      }
 101   4                                              }
 102   3                                              P2=temp;
 103   3                                              return num;
 104   3                                      }
 105   2                      
 106   2                      //************************************
 107   2                              P2=0xfb;                                                                        //初始化P2口,并且动态扫描第三行
 108   2                              temp=P2;
 109   2                              temp=temp&0xf0;
 110   2                              while(temp!=0xf0)
 111   2                                      {
 112   3                                              delay(10);
 113   3                                              temp=P2;
 114   3                                              temp=temp&0xf0;
 115   3                                              while(temp!=0xf0)
 116   3                                              {
 117   4                                                      temp=P2;
C51 COMPILER V7.06   MAIN                                                                  04/17/2008 20:57:57 PAGE 3   

 118   4                                                      switch(temp)
 119   4                                                              {
 120   5                                                                      case 0xeb:num=9;
 121   5                                                                              break;
 122   5                                                                      case 0xdb:num=0;
 123   5                                                                              break;
 124   5                                                                      case 0xbb:num=11;                        //返回此值时要先判断,是否为11
 125   5                                                                              break;                                   //11--确认输入,进行下一次输入
 126   5                                                                      
 127   5                                                              }
 128   4                                                              while(temp!=0xf0)
 129   4                                                                      {
 130   5                                                                              temp=P2;
 131   5                                                                              temp=temp&0xf0;

⌨️ 快捷键说明

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