- 1、本文档共106页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
演示文稿演讲PPT学习教学课件医学文件教学培训课件
源程序 #include reg51.h #define uchar unsigned char #define uint unsigned int /*必要的变量定义*/ uchar code jianzhibiao[ ]={ 0xee,0xde,0xbe,0x7e, 0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b, 0xe7,0xd7,0xb7,0x77}; //定义键值表 uchar code seg7[ ]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e }; //定义共阳型数码管段码表 /*延时函数*/ void delay (uint i) //延时时间约为i×1 ms { uchar j, x; for(j=0;ji;j++) for(x=0;x130;x++); } /*主函数*/ void main() { uchar lie,jianzhi,jianhao,i; //定义按键识别所需局部变量 P1=seg7[jianhao]; //显示0 while(1) { P2=0xf0; //置行0、列1 if(P2!=0xf0) //读入列值,检测有无按键闭合 { delay(10); //延时10 ms,去除按键的前沿抖动 if(P2!=0xf0) //再次检测,如果仍为真,则确定有键闭合 { lie=P2; //有键闭合时,暂存列值 P2=0x0f; //置行1、列0 jianzhi=lie|P2; //读入行值,与列值“位或”得键值并赋给jianzhi for(i=0;i16;i++) //查找键值表,最多需要比较16次 { /*将闭合键键值与键值表的元素一一作比较*/ if(jianzhi==jianzhibiao[i]) { jianhao=i; /*如果if为真,找到键值,键号就是该键值在键值表中的元素序号i,将其赋给变量jianhao*/ break; //找到键号后,结束查找 } } while(P2!=0x0f); //等待按键释放 delay(10); //去除按键的后沿抖动 P1=seg7[jianhao];//发送键号的段码,显示键号 } } } } 获得闭合按键的键值后,通过语句if(jianzhi==jianzhibiao[i])将键值jianzhi与键值表中存放的16个键值jianzhibiao[i]进行比较,当它们相等时,键值在键值表中的序号就是闭合按键的键号,最多时要比较16次,最少时只需比较1次,剩余的15次就无需再比较了,由break语句结束for循环。 2. 列扫描 列扫描可以在扫描键盘的过程中,直接计算出闭合键的键号。主函数在判断出有按键闭合时,调用keyscan()获得闭合键键号,执行键操作;键盘扫描函数keyscan()对矩阵键盘逐列扫描并返回闭合键的键号。图4-12所示为main()函数流程图,图4-13所示为keyscan()函数的流程图。 图4-12 列扫描主函数流程图 图4-13 列扫描法keyscan函数流程图 源程序 #include reg51.h #include intrins.h //修改列扫描字时,需要用到该头文件中的循环移位函数 #define uint unsigned int #define uchar unsigned char /*必要的变量定义*/ uchar code table[ ] = { 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e
您可能关注的文档
最近下载
- 论 自由 精品读本.pdf
- 医疗器械质量管理体系文件.pptx
- 金融中心施工总承包工程项目特色与观摩亮点介绍.pptx
- 小学数学六年级上册期中易错题重难点试卷含详细答案解析1524.docx
- 做自己的心理医生【26页】.pptx
- Module 4 单元整体教学设计 外研版(三起)六年级上册英语.docx
- 环球金融中心项目专项测量放线施工方案.docx
- 环球金融中心项目施工总承包工程质量创优策划.ppt
- 鼎信JB-QT-TS3200火灾报警控制器(联动型)安装使用说明书 XF2.900.029AS Ver.pdf VIP
- 中华护理学会团体标准TCNAS 21─2021解读:胰岛素皮下注射(1).pptx
文档评论(0)