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

📄 key_new.c

📁 meg64实现LED,一个跑马灯程序,内容包括一部分初始化程序代码.
💻 C
字号:
#include <iom128v.h>
#include <macros.h>
void delay(unsigned int t) //延时函数
{
 	 	while(t--);
}

void main()
{
      unsigned char table[]={0x3f,0x06,0x5b,0x4f,//定义显示数据
                             0x66,0x6d,0x7d,0x07,
                             0x7f,0x6f,0x77,0x7c,
                             0x39,0x5e,0x79,0x71};
      unsigned char key; //定义键值函数
      DDRB=0xf0;  //设置高四位为输出,低四位为输入
      PORTB|=0x0f;//打开低四位,关闭高四位,初始化A端口
      DDRD=0xff;
      PORTD=0x00;
      while(1) 
      {
 		do
		{
		   		delay(16000); //延时去抖
				PORTB=0xef;  //第一次高位输出1110
				delay(1600);    //读数延时
				switch((PINB&0x0f))//按键识别 (0,1,2,3)
				{
				 		case 0x0e:key=0;break;
						case 0x0d:key=1;break;
						case 0x0b:key=2;break;
						case 0x07:key=3;break;
				}
				PORTB=0xdf;  //第二次高位输出1101
				delay(1600);
				switch((PINB&0x0f))//按键识别 (4,5,6,7)
				{
				                case 0x0e:key=4;break;
						case 0x0d:key=5;break;
						case 0x0b:key=6;break;
						case 0x07:key=7;break;
              			} 
                                PORTB=0xbf; //第三次高位输出1011
                                delay(1600);
                                switch((PINB&0x0f))//按键识别 (8,9,a,b)
                                {
                                                case 0x0e:key=8;break;
                                                case 0x0d:key=9;break;
                                                case 0x0b:key=10;break;
                                                case 0x07:key=11;break;
                               }
                               PORTB=0x7f; //第四次高位输出0111
                               delay(1600);
                               switch((PINB&0x0f))//按键识别 (c,d,e,f)
                               {   
                                                case 0x0e:key=12;break;
                                                case 0x0d:key=13;break;
                                                case 0x0b:key=14;break;
                                                case 0x07:key=15;break;
                               }
                }while((PINB&0x0f)!=0x0f); //按键检测
                PORTD=table[key];
		delay(16000);
      }
}

⌨️ 快捷键说明

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