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

📄 martix_keyboard_samea.lst

📁 51单片机矩阵键盘的设计与调试
💻 LST
字号:
C51 COMPILER V6.12  MARTIX_KEYBOARD_SAMEA                                                  05/06/2008 20:49:42 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE MARTIX_KEYBOARD_SAMEA
OBJECT MODULE PLACED IN .\martix_keyboard_sameA.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE .\martix_keyboard_sameA.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          #define ulong unsigned long
   5          sbit choose_du=P2^6;
   6          sbit choose_we=P2^7;
   7          /*uchar code table[]={			//0-9的共阴极代码 	
   8          		0x3f,0x06,0x5b,0x4f,
   9          		0x66,0x6d,0x7d,0x07,
  10          		0x7f,0x6f,0x77,0x7c,
  11          		0x39,0x5e,0x79,0x71	
  12          			};*/
  13          uchar code table[]={			//0-9的共阴极代码 	
  14          		0xc0,0xf9,0xa4,0xb0,
  15          		0x99,0x92,0x82,0xf8,
  16          		0x80,0x90,0x88,0x83,
  17          		0xc6,0xa1,0x86,0x8e	
  18          			};
  19          uchar temp,num;
  20          void delay(uchar);
  21          void display(uchar);
  22          void main()
  23          {
  24   1      	while(1)
  25   1      	{
  26   2      		P3=0xfe;
  27   2      		temp=P3;
  28   2      		temp=temp&0xf0;
  29   2      		if(temp!=0xf0)
  30   2      		{
  31   3      			delay(22);
  32   3      			if(temp!=0xf0)
  33   3      			{
  34   4      				switch(temp)
  35   4      				{
  36   5      					case 0xe0:num=0;
  37   5      					break;
  38   5      					case 0xd0:num=1;
  39   5      					break;
  40   5      					case 0xb0:num=2;
  41   5      					break;
  42   5      					case 0x70:num=3;
  43   5      					break;
  44   5      				}
  45   4      			}
  46   3      			while(temp!=0xf0)//键盘松开去抖动 
  47   3      			{
  48   4      				temp=P3;
  49   4      				temp=temp&0xf0;
  50   4      			}	
  51   3      		}
  52   2      		P3=0xfd;
  53   2      		temp=P3;
  54   2      		temp=temp&0xf0;
  55   2      		if(temp!=0xf0)
C51 COMPILER V6.12  MARTIX_KEYBOARD_SAMEA                                                  05/06/2008 20:49:42 PAGE 2   

  56   2      		{
  57   3      			delay(22);
  58   3      			if(temp!=0xf0)
  59   3      			{
  60   4      				switch(temp)
  61   4      				{
  62   5      					case 0xe0:num=4;
  63   5      					break;
  64   5      					case 0xd0:num=5;
  65   5      					break;
  66   5      					case 0xb0:num=6;
  67   5      					break;
  68   5      					case 0x70:num=7;
  69   5      					break;
  70   5      				}
  71   4      			}
  72   3      			while(temp!=0xf0)//键盘松开去抖动 
  73   3      			{
  74   4      				temp=P3;
  75   4      				temp=temp&0xf0;
  76   4      			}		
  77   3      		}
  78   2      		P3=0xfb;
  79   2      		temp=P3;
  80   2      		temp=temp&0xf0;
  81   2      		if(temp!=0xf0)
  82   2      		{
  83   3      			delay(22);
  84   3      			if(temp!=0xf0)
  85   3      			{
  86   4      				switch(temp)
  87   4      				{
  88   5      					case 0xe0:num=8;
  89   5      					break;
  90   5      					case 0xd0:num=9;
  91   5      					break;
  92   5      					case 0xb0:num=10;
  93   5      					break;
  94   5      					case 0x70:num=11;
  95   5      					break;
  96   5      				}
  97   4      			}
  98   3      			while(temp!=0xf0)//键盘松开去抖动 
  99   3      			{
 100   4      				temp=P3;
 101   4      				temp=temp&0xf0;
 102   4      			}		
 103   3      		}
 104   2      		P3=0xf7;
 105   2      		temp=P3;
 106   2      		temp=temp&0xf0;
 107   2      		if(temp!=0xf0)
 108   2      		{
 109   3      			delay(22);
 110   3      			if(temp!=0xf0)
 111   3      			{
 112   4      				switch(temp)
 113   4      				{
 114   5      					case 0xe0:num=12;
 115   5      					break;
 116   5      					case 0xd0:num=13;
 117   5      					break;
C51 COMPILER V6.12  MARTIX_KEYBOARD_SAMEA                                                  05/06/2008 20:49:42 PAGE 3   

 118   5      					case 0xb0:num=14;
 119   5      					break;
 120   5      					case 0x70:num=15;
 121   5      					break;
 122   5      				}
 123   4      			}
 124   3      			while(temp!=0xf0)//键盘松开去抖动 
 125   3      			{
 126   4      				temp=P3;
 127   4      				temp=temp&0xf0;
 128   4      			}		
 129   3      		}
 130   2      		display(num);
 131   2      	}
 132   1      }
 133          void delay(uchar x)
 134          {	
 135   1      	uchar i,j;
 136   1      	for(i=x;i>0;i--)
 137   1      		for(j=205;j>0;j--);
 138   1      }
 139          void display(uchar y)
 140          {
 141   1      	P0=0xff;
 142   1      	choose_we=1;
 143   1      	choose_we=0;
 144   1      	P0=table[y];
 145   1      	choose_du=1;
 146   1      	choose_du=0;
 147   1      	P0=0xc0;
 148   1      	choose_we=1;
 149   1      	choose_we=0;	
 150   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    352    ----
   CONSTANT SIZE    =     16    ----
   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 + -