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

📄 key.bak

📁 2008年山东省大学生电子设计大赛 c题 多功能电子计价秤 单片机用的 c8051f005
💻 BAK
字号:
#include "include.h"

uchar scan_key()
{	
	uchar i,t;	
	for(i=1;i<0x10;i<<=1)
	{
		KB=~i;
		delayus();
		t=KB;
		if(t!=~i)
		{
			delay_ms(10);				//延时扫描两次消抖
			if(t==KB)
				while(KB!=~i);
				switch(t)
				{
					case 0xEE:return 7;
 				    case 0xDE:return 8;
					case 0xBE:return 9;
					case 0x7E:return 0x0D;
					case 0xED:return 4;
					case 0xDD:return 5;
					case 0xBD:return 6;
					case 0x7D:return 0X0E;
					case 0xEB:return 1;
					case 0xDB:return 2;
					case 0xBB:return 3;
					case 0x7B:return 0X0F;
					case 0xE7:return 0;
					case 0xD7:return 0X0A;
					case 0xB7:return 0X0B;
					case 0x77:return 0X0C;
				}
				
		}
   	}
	return 0xff;
}



//--------------------------------------------
//按键输入一个数 屏显在wordx wordy位置
//按F键结束输入
//返回一个浮点数
//--------------------------------------------
float input_float(uchar wordx,uchar wordy)
{
	float num=0,i=1;
	uchar d=0,key;
	lcd_clr_page(0,32,80);
	for(;;)						
	{
		do
		{
			key=scan_key();
		}while(key>0x0b);
		lcd_display_one_num(wordx,wordy,key);
		if(key==0x0b)break;					//当上次按键是b时结束输入
		else if(key==0x0a)
		{
			d=1;							//切换为小数部分
			i=10;
		}
		else
		{
			if(d==0)						//整数部分
			{
				num=num*10+key;
				
			}
			else							//小数
			{
				num+=(float)key/i;
				i*=10;
			}
		}
		wordx+=8;
	}

	return num;
}

⌨️ 快捷键说明

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