专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

stc单片机用数码管显示i love you(键盘版)

作者:佚名   来源:本站原创   点击数:  更新时间:2013年12月15日   【字体:

今天写了个键盘程序,虽然没什么技术含量,但是用处却是很大的
附上单片机程序,想用的尽管拿去用 


 

#include<stc12c5a.h>
#define uchar unsigned char
#define uint unsigned int
uchar led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar key[3]={0xfe,0xfd,0xfb};
unsigned char get()
{
   uchar x,y,lie,i;
   x=0;y=0;
   for(i=0;i<3;i++)
   {
      P1=key[i];
 lie=P1&0x38;
 if(lie!=0x38)
 {
    x=i+1;
switch(lie)
{
  case 0x30:{y=1;}break;
  case 0x28:{y=2;}break;
  case 0x18:{y=3;}break;
  default:{x=0;}break;
 }
break;
 }
}
   if(x!=0)
   return (3*(x-1)+y);
   else return 0;
}
void main()
{
 uchar play,i;
 P2M0=0xff;
 P2M1=0x00;
 P1M0=0xff;
 P1M1=0x00;
 while(1)
 {
    play=get();
    switch(play)
{
 case 1:
 {
  P2=led[1];
  P0=0x07;
  for(i=0;i<100;i++);
 }break;
 case 2:
 {
  P2=0x38;
  P0=0x0e;
  for(i=0;i<100;i++);
  P0=0x0f;
  P2=0x3f;
  P0=0x0d ;
  for(i=0;i<100;i++);
  P0=0x0f;
  P2=0x3e;
  P0=0x0b;
  for(i=0;i<100;i++);
  P0=0x0f;
  P2=0x79;
  P0=0x07;
  for(i=0;i<100;i++);
 }break;
 case 3:
 {
   P2=0x6e;
P0=0x0d;
for(i=0;i<100;i++);
P0=0x0f;
P2=0x3f;
P0=0x0b;
for(i=0;i<100;i++);
P0=0x0f;
P2=0x3e;
P0=0x07;
for(i=0;i<100;i++);
 }break;
 default :{P2=led[0];}break;
    }

 }
}
关闭窗口

相关文章