已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/* FILE: key.c* Description: key process* * Copyright (c) 20032007 by WANG SHAOWEI. All Rights Reserved.* * History:* VersionName DateDescription 1.0Wang Shaowei2003/07/16Initial Version (MCU System) 2.0Wang Shaowei2005/06/01MS2 3.0Wang Shaowei2007/03/11MS3 */#include stm32f10x_lib.h#include stm32f10x_type.h #include common.h#includekey.h#define Short_keycounter 7 / u8 kk; U8 keycan; U8 m=0 ; U8 a10=0; /ma10 U32 temp1=0; U32 temp2=0; /temp1temp2U32 key_counter=0; /U8 t113=0;/tempcalculatevoid key_check(void) U8 linekeyNo; /,U8keycan; U8 checkkeyline(); U8 checkkeyrow(); / static U8 KeySave = 0;linekeyNo=checkkeyline(); if (linekeyNo!=0xff) keycan=checkkeyrow(); msg_send_msg(MSG_KEY, keycan); /MSG_SEND_MSG(MSG_KEY, keycan); /KeySave = KeyRead; /* Function Name : u8 checkkey* Description : check is the key has been push * Input : None* Output : None* Return : oxff(no key was push) or 0x00(No.1 line) 0x01(No.2 line) 0x02(No.3 line) 0x03(No.4 line)*/ u8 checkkeyline() GPIOA-ODR=0xfffffff0; if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_4)=0x00)return(0x00);else if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5)=0x00)return(0x01);else if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_6)=0x00)return(0x02);else if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)=0x00)return(0x03);else return(0xff); /* Function Name : u8 checkkey* Description : check is the key has been push * Input : None* Output : None* Return : oxff(no key was push) or 0x00(No.1 line) 0x01(No.2 line) 0x02(No.3 line) 0x03(No.4 line)*/u8 checkkeyrow() u8 linenummber; linenummber=checkkeyline(); GPIOA-ODR=0xfffffffE; if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_4)=0x00)kk=(0x00+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5)=0x00)kk=(0x00+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_6)=0x00)kk=(0x00+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)=0x00)kk=(0x00+linenummber); GPIOA-ODR=0xfffffffD; if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_4)=0x00)kk=(0x04+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5)=0x00)kk=(0x04+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_6)=0x00)kk=(0x04+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)=0x00)kk=(0x04+linenummber);GPIOA-ODR=0xfffffffB; if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_4)=0x00)kk=(0x08+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5)=0x00)kk=(0x08+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_6)=0x00)kk=(0x08+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)=0x00)kk=(0x08+linenummber);GPIOA-ODR=0xfffffff7; if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_4)=0x00)kk=(0x0C+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_5)=0x00)kk=(0x0C+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_6)=0x00)kk=(0x0C+linenummber); if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_7)=0x00)kk=(0x0C+linenummber);return (kk); void reset_temp(void) / u8 i=0,j=0; m=0; for(i=0;i10;i+) ai=0; /a10=0;for temp1=0; temp2=0; key_counter=0; for(j=0;j=Short_keycounter) am=0;/am=0showzifuam=0showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; /showzifustr(m*8,0,0,0,255); break; case(0x01):/1 key_counter=key_counter+1;/showzifustr(m*8,0,1,0,255); if(key_counter=Short_keycounter) am=1;showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; break;case(0x02):/2 key_counter=key_counter+1;/showzifustr(m*8,0,2,0,255); if(key_counter=Short_keycounter)am=2;showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; break;case(0x03):/3 key_counter=key_counter+1;/showzifustr(m*8,0,3,0,255); if(key_counter=Short_keycounter) am=3;showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; break;case(0x04):/4 key_counter=key_counter+1;/showzifustr(m*8,0,4,0,255); if(key_counter=Short_keycounter)am=4;showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; break; case(0x05):/5 key_counter=key_counter+1;/showzifustr(m*8,0,5,0,255); if(key_counter=Short_keycounter)am=5;showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; break;case(0x06):/6 key_counter=key_counter+1;/showzifustr(m*8,0,6,0,255); if(key_counter=Short_keycounter)am=6;showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; break;case(0x07):/7 key_counter=key_counter+1;/showzifustr(m*8,0,6,0,255); if(key_counter=Short_keycounter)am=7;showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; break;case(0x08):/8 key_counter=key_counter+1;/showzifustr(m*8,0,6,0,255); if(key_counter=Short_keycounter)am=8;showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; break; case(0x09):/9 key_counter=key_counter+1;/showzifustr(m*8,0,6,0,255); if(key_counter=Short_keycounter)am=9;showzifu(m*8,0,am,0x03,255); m=m+1; key_counter=0; break;case(0x0A): /HZ calculate_temp1(); sprintf(t1,%-d,temp1); showzifustr(0,12,t1,0x03,255); showzifustr(80,12,HZ ,0x03,255); /GPIO break; case(0x0B):/KHZ calculate_temp1(); sprintf(t1,%-d,temp1); showzifustr(0,12,t1,0x03,255); showzifustr(80,12,KHZ,0x03,255); temp1=temp1*1000; /GPIObreak;/break/case(0x0C):/Decimal-./case(0x0D):/100HZ10KHZ100HZ /case(0x0E):/Backspacecase(0x0F):/ LCD_Clear(255,0);/LCD_Clear(255,0) reset_temp(); break;/default: /default:GPIOF-ODR=0x00000000; /*1HZ48ASCII0zifuASCII48void calculate_temp1 (void) /, switch(m) case 0: temp1=0; break; case 1: temp1=a0-48;/am*ASIIC48 break;case 2: temp1=(a1-48)+(a0-48)*10); break; case 3: temp1=(a2-48)+(a1-48)*10)+(a0-48)*100); break; case 4: temp1=(a3-48)+(a2-48)*10+(a1-48)*100+(a0-48)*1000; break; case 5: temp1=(a4-48)+(a3-48)*10+(a2-48)*100+(a1-48)*1000+(a0-48)*10000; break; case 6: temp1=(a5-48)+(a4-48)*10+(a3-48)*100+(a2-48)*1000+(a1-48)*10000+(a0-48)*100000; break; case 7: temp1=(a6-48)+(a5-48)*10+(a4-48)*100+(a3-48)*1000+(a2-48)*10000+(a1-48)*100000+(a0-48)*1000000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省咸阳市实验中学2025-2026学年高二上学期11月考试政治试卷
- (英语)中考英语连词专项训练及答案
- 【语文】广东省深圳市龙岗区布吉中心小学小学一年级下册期末试题(含答案)
- 单方面改合同
- 金融借款重复合同
- 上海篮球培训劳务合同
- 佛山市下学期五年级数学素养测评试卷
- 建筑施工技术第3阶段测试题
- 河南省第一学期六年级数学期末模拟测试试卷
- 斗门区典当合同
- 高中化学必修和必修双向细目表优质资料
- 22S702 室外排水设施设计与施工-钢筋混凝土化粪池
- 人教部编版五年级语文上册 第五单元主题阅读-身边事物(含答案及详细解析)
- GB/T 701-2008低碳钢热轧圆盘条
- GB/T 38981-2020烧结金属注射成形材料规范
- GB/T 24186-2009工程机械用高强度耐磨钢板
- GB/T 22086-2008铝及铝合金弧焊推荐工艺
- 2020舞蹈鉴赏期末考试答案
- 人教部编版六年级语文下册 14 文言文二则 【名校教案集体备课】
- 小学阅读兴趣小组记录
- (高清正版)JJF(浙)1090—2014薄片千分尺校准规范
评论
0/150
提交评论