上一个帖子忘记加附件了
单片机矩阵键盘数码管显示仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <reg51.h>
- #include <stdio.h>
- #define byte unsigned char
- //中断服务程序
- void keyinterrupt() interrupt 2
- {
- int t;
- byte keycode,scancode,flag=0xff;
- t=5000;
- while(t--);
- if(INT1==1)
- return;
- EX1=0;
- scancode=0xef;
- while(scancode!=0xff)
- {
- P1=scancode;
- keycode=P1;
- if((keycode&0x0f)!=0x0f)
- break;
- scancode=(keycode<<1)|0x0f;
- }
- keycode=~keycode;
- P2=keycode; //将扫描码输出,数码管采用具有译码功能的数码管
- P1=0X0F;
- while(1)
- {
- if(INT1==1)
- {
- flag=~flag;
- if(flag==0)
- break;
- }
- t=10000;
- while(t--);
- }
- EX1=1;
- return;
- }
- void main(void)
- {
- IE=0;
- EX1=1;
- EA=1; //中断open
- P2=0XFF;
- P1=0X0F;
- while(1)
- {
- }
- }
复制代码
所有资料51hei提供下载:
矩阵键盘数码管显示.rar
(37.39 KB, 下载次数: 25)
|