标题: 基于51单片机的矩阵键盘扫描keil程序+Proteus原理图 [打印本页]

作者: fwc0315    时间: 2018-5-21 19:12
标题: 基于51单片机的矩阵键盘扫描keil程序+Proteus原理图
上一个帖子忘记加附件了
单片机矩阵键盘数码管显示仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include <reg51.h>
  2. #include <stdio.h>

  3. #define byte unsigned char

  4. //中断服务程序
  5. void keyinterrupt()   interrupt 2
  6. {
  7.         int t;
  8.         byte keycode,scancode,flag=0xff;
  9.         t=5000;
  10.         while(t--);
  11.         if(INT1==1)
  12.                 return;
  13.         EX1=0;
  14.         scancode=0xef;
  15.         while(scancode!=0xff)
  16.         {
  17.                 P1=scancode;
  18.                 keycode=P1;
  19.                 if((keycode&0x0f)!=0x0f)
  20.                         break;
  21.                 scancode=(keycode<<1)|0x0f;
  22.         }
  23.         keycode=~keycode;

  24.         P2=keycode; //将扫描码输出,数码管采用具有译码功能的数码管
  25.         P1=0X0F;
  26.         while(1)
  27.         {
  28.                 if(INT1==1)
  29.                 {
  30.                         flag=~flag;
  31.                         if(flag==0)
  32.                         break;
  33.                 }
  34.                 t=10000;
  35.                 while(t--);
  36.         }
  37.         EX1=1;
  38.         return;
  39. }

  40. void main(void)
  41. {   
  42.         IE=0;
  43.         EX1=1;
  44.         EA=1;  //中断open
  45.         P2=0XFF;
  46.         P1=0X0F;
  47.     while(1)
  48.     {               
  49.         }                  
  50. }
复制代码

所有资料51hei提供下载:
矩阵键盘数码管显示.rar (37.39 KB, 下载次数: 25)



作者: txr999    时间: 2020-1-29 11:46
很好的资料,学习了!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1