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

📄 getkey.c

📁 用单片机和数码管
💻 C
字号:
#include<avr/io.h>

#include "head.h"

void display (uint8_t c,uint8_t d);

extern uint8_t key;
void adjtime (void);
void adjalm (void);

////////////////////////////////////////////
/*

        作用: 获取键盘输入,分为两种模式,一种是等待用户输入,用户不输入就一直等待
        	 一种是不等待模式,没有输入则转入下一个语句。
 ———————————————————————————————————————————————————————————    
        参数:
        	t:等待时显示的内容,当不带带时,此参数随意
        	w:是否等待
 ————————————————————————————————————————————————————————————  
	    返回:没有
————————————————————————————————————————————————————————————
	    全局变量:key
*/
///////////////////////////////////////////

void getkey (uint8_t n,uint8_t w)    
{
	
	uint8_t qut=0;
	
	key=0;
	
	if (w==WAIT)		//等待模式,没有键按下就不断循环
	while(qut==0)
		{
			switch ((KEYCODE)) 
				{
				
					case 0xD0: key=OK; while((KEYCODE)==0xD0); qut=1;break;		//改变数据
					case 0x70: key=CHANGE;	   while((KEYCODE)==0x70); qut=1;break;		//确认改动
					default:{}break;
				}
							
						
			switch (n)			//根据需要选择要显示的区域,用在等待模式中
				{
					case HOUR_TIME:		display(SHOW_HOUR,TIME);break;		
					case HOUR_ALARM:	display(SHOW_HOUR,ALARM);break;		
					case MINUTE_TIME:	display(SHOW_MINUTE,TIME);break;		
					case MINUTE_ALARM:	display(SHOW_MINUTE,ALARM);break;		
					case SECOND_ALARM:	display(SHOW_SECOND,ALARM);break;		
					default:{} break;
				}	
		
		}
	
	
	else					//不等待模式,没有键按下就跳过
		switch ((KEYCODE))
						{
							case 0xE0:  adjtime();  break;			//起动调时
							case 0xB0:   adjalm();  break;			//起动调闹钟
							
							default : {} break;
						}
	
	
}




			



⌨️ 快捷键说明

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