




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/*这是一个真正有意义的时钟key1功能键 选择可调位,短按,每按一下有一位闪烁 长按闪烁不断向下一位推移key2 加键 短按相应闪烁的位加1,长按连续加1;key3 减键 短按相应闪烁的位减1,长按连续减一;key4 确定键 按下退出调时,正常显示;*/#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define LED P0 #define KEY_1 0x0e #define KEY_2 0x0d#define KEY_3 0x0b#define KEY_4 0x07#define K
2、EY_NULL 0x0f#define KEY_PRESS 0x80 #define KEY_LONG 0x40#define KEY_STATE_INIT 0 #define KEY_STATE_PRESS 1#define KEY_STATE_LONG 2#define KEY_STATE_UP 3#define KEY_LONG_PERIOD 20 #define KEY_CONTINUE_PERIOD 10bit set;bit dao1S=0; bit dao2MS=0;bit dao10MS; sbit dula=P26;sbit wela=P27;sbit key1=P34; s
3、bit key2=P35;sbit key3=P36;sbit key4=P37;int main_flag,exit_flag,up_flag,down_flag; int tab=0,0,0,0,0,0; uchar weitable=0x01,0x02,0x04,0x08,0x10,0x20;uchar tab1=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void nint() TMOD=0X01; TH0=0XF8; TL0=0XCC; TR0=1; ET0=1; uchar KeyScan() if(key1=0) retur
4、n KEY_1; if(key2=0) return KEY_2; if(key3=0) return KEY_3; if(key4=0) return KEY_4; return KEY_NULL;uchar GetKey()uchar keyRetu=0,keyTemp=KEY_NULL; static uchar s_keyState=KEY_STATE_INIT,keyTime=0,keyLast=KEY_NULL; keyTemp=KeyScan();switch (s_keyState) case KEY_STATE_INIT: if(keyTemp!=KEY_NULL) s_ke
5、yState=KEY_STATE_PRESS; break; case KEY_STATE_PRESS: if(keyTemp!=KEY_NULL) s_keyState=KEY_STATE_LONG; keyTime=0; keyLast=keyTemp; else s_keyState=KEY_STATE_INIT; break; case KEY_STATE_LONG: if(keyTemp=KEY_NULL) s_keyState=KEY_STATE_INIT; keyRetu=(keyLast|KEY_PRESS); else if(+keyTime>=KEY_LONG_PER
6、IOD) /按下时间>1s s_keyState=KEY_STATE_UP; keyTime=0; break; case KEY_STATE_UP: if(keyTemp=KEY_NULL) s_keyState=KEY_STATE_INIT; else keyTime=0; keyRetu=(keyLast|KEY_LONG); break;return keyRetu;void updatetime() if(dao1S) dao1S=0; if(+tab5=10) tab5=0; if(+tab4=6)tab4=0; if(+tab3=10) tab3=0; if(+tab2=6
7、) tab2=0; if(tab0<2) if(+tab1=10) tab1=0; tab0+; else if(tab1=4) tab1=0; tab0=0; void display() static uchar k=0; dula=1; LED=tab1tabk; if(set&&(k=main_flag-1) LED=0XFF; dula=0; LED=0Xff; wela=1; LED=weitablek; wela=0; if(+k>5)k=0; void sittime(uchar hour,uchar minute,uchar second ) uc
8、har a1,a2,b1,b2,c1,c2; a1=hour/10; a2=hour%10; b1=minute/10; b2=minute%10; c1=second/10; c2=second%10; tab0=a1; tab1=a2; tab2=b1; tab3=b2; tab4=c1; tab5=c2; void main() nint(); EA=1; sittime(15,20,15); while(1) updatetime(); if(dao2MS) dao2MS=0; display(); if(dao10MS) dao10MS=0; switch (GetKey() cas
9、e (KEY_1|KEY_PRESS): if(+main_flag>=7)main_flag=0; break; case (KEY_1|KEY_LONG): if(+main_flag>=7)main_flag=0; break; case (KEY_2|KEY_PRESS): switch(main_flag) case 1: if(+tab0>=3) tab0=0; break; case 2: if(+tab1>4) tab1=0; break; case 3: if(+tab2>5) tab2=0; break; case 4: if(+tab3>
10、;9) tab3=0; break; case 5: if(+tab4>5) tab4=0; break; case 6: if(+tab5>9) tab5=0; break; case (KEY_2|KEY_LONG): switch(main_flag) case 1: if(+tab0>=3) tab0=0; break; case 2: if(+tab1>4) tab1=0; break; case 3: if(+tab2>5) tab2=0; break; case 4: if(+tab3>9) tab3=0; break; case 5: if(
11、+tab4>5) tab4=0; break; case 6: if(+tab5>9) tab5=0; break; case (KEY_3|KEY_PRESS): switch(main_flag) case 1: if(-tab0<0) tab0=2; break; case 2: if(-tab1<0) tab1=4; break; case 3: if(-tab2<0) tab2=5; break; case 4: if(-tab3<0) tab3=9; break; case 5: if(-tab4<0) tab4=5; break; cas
12、e 6: if(-tab5<0) tab5=9; break; case (KEY_3|KEY_LONG): switch(main_flag) case 1: if(-tab0<0) tab0=2; break; case 2: if(-tab1<0) tab1=4; break; case 3: if(-tab2<0) tab2=5; break; case 4: if(-tab3<0) tab3=9; break; case 5: if(-tab4<0) tab4=5; break; case 6: if(-tab5<0) tab5=9; break;case (KEY_4|KEY_PRESS): main_flag=0; disp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB37T 4739-2024公路钢护栏铝锌合金防腐涂装技术要求
- 化工流程工业中的设备安全设计
- 温州瑞安市医疗服务集团招聘真题2024
- 医疗数据交易的区块链技术平台开发研究
- 内蒙古通辽科左后旗事业单位招聘专任教师真题2024
- 河北省沧州中西医结合医院招聘真题2024
- 2024年山东光明电力服务有限责任公司招聘考试真题
- 医疗物资采购的全球视野与策略研究
- 人教版小学五年级上册数学期末试题(含答案)
- 元宇宙背景下的协作办公模式创新-洞察阐释
- 2025至2030中国电化学储能行业发展现状及趋势前景预判研究报告
- 2025年公共卫生与预防医学知识考试试题及答案
- 离婚协议书原版
- 2025年高考地理复习 大单元八 人口、城镇与大都市辐射 题库
- 2025电力变压器(电抗器)综合监测与预警装置
- 新人教版数学五年级下册3.3 练习五课件
- 中央2025年陆军面向社会公开招考专业技能类文职人员笔试历年参考题库附带答案详解
- 2025年中考化学第一轮复习 课件 2024-2025学年九年级化学人教版下册
- 2025年天津市滨海新区中考数学一模试卷
- 培训学校合伙协议书
- 农服公司招聘试题及答案
评论
0/150
提交评论