x4

news/2025/1/10 21:41:40/
#include <reg51.h>#define u8 unsigned char 
#define u16 unsigned int #define GPIO_KEY P1sbit Key_Set = P1^0;
sbit Key_Add = P1^1;u8 k1,KeyValue_buf;
u8 KeyValue;   //按键值u8 gewei_volue=0;//个十百千位显示的值
u8 shiwei_volue=0;
u8 baiwei_volue=0;
u8 qianwei_volue=0;u8 mun=0;
u8 flag=0;
u8 key_num=0;//按键设置值 u8 wei_set=0;void delay(u16 time)
{u16 i,j;for(i=time;i>0;i--)	for(j=100;j>0;j--);	
}//位选
sbit ge		=P3^3;
sbit shi	=P3^2;
sbit bai	=P3^1;
sbit qian	=P3^0;u8 code bable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xc0};u8 code bable_buf[];void T0_Init()
{TMOD =0x01;TH0  =(65536-5000)/255;TL0  =(65536-5000)%255;TR0  =1;ET0  =1;EA   =1;
}void T0_chuli() interrupt 1
{TH0  =(65536-5000)/255;TL0  =(65536-5000)%255;P3 = 1<<flag;switch(flag){case 0:	P2 = bable[qianwei_volue]; break;case 1:	P2 = bable[baiwei_volue]; break;case 2:	P2 = bable[shiwei_volue]; break;case 3:	P2 = bable[gewei_volue]; break;}flag++;if(flag==4){flag=0;}
}void Scan_Key()
{if(Key_Set==0)//按键位选{delay(150);if(Key_Set==0) {key_num++; while(!Key_Set);if(key_num==5){key_num=1;}switch(key_num){case 1:	 wei_set=1;   break;case 2:	 wei_set=2;   break;case 3:	 wei_set=3;   break;case 4:	 wei_set=4;	  break;}}}if(Key_Add==0)//显示+{delay(200);if(Key_Add==0){
//		  mun++;
//		  if(mun==10)
//		  {
//		   mun=0;
//		  };}switch(wei_set){case 1:  gewei_volue   +=1;		if(gewei_volue>9) {gewei_volue=0;} break;case 2:	 shiwei_volue  +=1;		if(shiwei_volue>9) {shiwei_volue=0;} break;case 3:	 baiwei_volue  +=1;		if(baiwei_volue>9) {baiwei_volue=0;}break;case 4:	 qianwei_volue +=1;	  if(qianwei_volue>9) {qianwei_volue=0;}break;}while(!Key_Add);}
}/****************************************
*
*						10MS延时
*
****************************************/
void Delay10ms(void)   
{unsigned char a,b,c;for(c=1;c>0;c--)for(b=38;b>0;b--)for(a=130;a>0;a--);
}/*******************************************
*
*						键盘扫描
*
********************************************/
char  KeyDown(void)
{u8 a=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f)//行拉高{Delay10ms();//延时10ms消抖if(GPIO_KEY!=0x0f)//当有按键按下{//JIESHOU
//			GPIO_KEY=0X0F;switch(GPIO_KEY){case(0X0e):	KeyValue=0;break;case(0X0d):	KeyValue=1;break;case(0X0b): KeyValue=2;break;case(0X07):	KeyValue=3;break;}//列扫描GPIO_KEY=0XF0;switch(GPIO_KEY){case(0X70):	KeyValue=KeyValue+1;break;case(0Xb0):	KeyValue=KeyValue+5;break;case(0Xd0): KeyValue=KeyValue+9;break;case(0Xe0):	KeyValue=KeyValue+13;break;}while((a<200)&&(GPIO_KEY!=0xf0))	 //{Delay10ms();a++;}return KeyValue;}} else {return 0xff;}
}/*
按键处理  4位数码管键值处理
*/
void KeyDown_chuli(void)
{u8 val = KeyDown();if (val != 0xff) {qianwei_volue=baiwei_volue;baiwei_volue=shiwei_volue;shiwei_volue=gewei_volue;gewei_volue= val;}
}//共阳是数码管
void main()
{T0_Init();while(1){KeyDown_chuli();}
}


http://www.ppmy.cn/news/217254.html

相关文章

AMD处理器的发展历程

AMD的处理器系列的命名喜欢用“龙”&#xff0c;目前一共发布了八条龙&#xff1a;速龙、钻龙&#xff08;毒龙&#xff09;、皓龙、闪龙、炫龙、羿龙、锐龙、霄龙&#xff0c;现在来看看这些龙到底是何方神圣。 第一条龙&#xff1a;Athlon&#xff08;速龙&#xff09; 20年…

【期末复习之路】Java (四) A

根据上文&#xff0c;我们这章写到了数组&#xff0c;数组完了&#xff0c;基本我们的基础就打牢靠了&#xff0c;接着我们就开始更新面向对象&#xff0c;面向对象是中期的内容&#xff0c;后面的就过的更快了&#xff0c;我的计划&#xff0c;差不多六月底会更新完Java这部分…

【爬虫】3.5 实践项目——爬取网站的图像文件

1. 项目简介 指定一个网站&#xff08;例如中国天气网站&#xff09;&#xff0c;可以爬取这个网站中的所有图像文件&#xff0c;同时把这些文件保存到程序所在文件夹的images子文件夹中。 首先设计了一个单线程的爬取程序&#xff0c;这个程序会因网站的某个图…

广州食堂供应商排行榜,食堂供应商十佳参考名单

广州食堂供应商有&#xff1a;康来福、乐禾LEHE、华隆果菜、佳鲜农庄、粤旺YueWang、嘉宝、东升农场、从玉CY、望家欢、厨之喜等。排名不分先后&#xff0c;数据来源网络&#xff01; 康来福&#xff1a;2007年成立&#xff0c;总部位于广州&#xff0c;是一家全国性、集团型的…

cpu排行计算机专业,cpu性能天梯图,教您电脑cpu排行榜

作为整个电脑的核心部件&#xff0c;CPU的选择必须是慎重的&#xff0c;如果你对这个了解不是很深&#xff0c;就会很艰难&#xff0c;那么&#xff0c;对于近期打算装机的朋友来说&#xff0c;CPU怎么看好坏&#xff0c;如何判断某款处理器性能如何呢&#xff1f;其实答案很简…

2020年主流服务器主板,2020年主流处理器排行榜

TPO1&#xff1a;高通骁龙865 2020年上半年最强安卓处理器。 值得入手代表机型&#xff1a;小米10系列、真我X50Pro系列、iQOO Neo3、魅族17系列、OPPO Ace系列。 TOP2&#xff1a;麒麟990 5G 麒麟现阶段最强处理器&#xff0c;相比于骁龙865有一定差距&#xff0c;但是在5G通信…

服务器主板性能排行榜,四路绝佳!华硕服务器主板性能强劲

优化通风散热 更稳更强的四路平台 随着64位计算以及多核技术的成熟与普及,在新技术的带动下,多核四路服务器在处理能力、扩展性、稳定性、可靠性、易管理性等方面表现更出色,能更有效地保护用户的投资。以海量数据处理、大规模网络应用、复杂科学计算及大型图形建模为特征的…

STM32通过esp8266连接WiFi接入MQTT服务器

上文我们讲到如何搭建本地MQTT服务器&#xff0c;现在介绍如何通过stm32连接MQTT 一.首先我们初始化esp8266这里我们使用的是USART4与其通信代码如下 void UART4_Init(uint32_t bound) {GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;RCC_APB1…