


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中断法键盘扫描c程序/*程序效果:按下按键,蜂鸣器响,数码管有相应的键值显示,按下E键继电器关,按下C键继电器开。这与上一程序的功能相同,比上一程序简洁但理解相对困难些。运行平台:51hei单片机学习板*/#include /头文件#include#define uchar unsigned char /宏定义#define uint unsigned intsbit jdq=P35; /位声明,驱动继电器管脚sbit fmq=P34; /位声明,驱动蜂鸣器管脚code uchar table=0x3f,0x06,0x5b,/数码管显示的数值0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;code uchar key_tab17= /此数组为键盘编码0xed,0x7e,0x7d,0x7b, / 0,1,2,3,0xbe,0xbd,0xbb,0xde, / 4,5,6,7,0xdd,0xdb,0x77,0xb7, / 8,9,a, b,0xee,0xeb,0xd7,0xe7,0xff; / c,d,e,f,uchar l_key=0x00; /定义变量,存放键值uchar l_keyold=0xff; /作为按键放开否的凭证void readkey(); /扫描键盘,获取键值void display(uchar *lp,uchar lc); /显示子函数void delay(); /延时子函数void main() /主函数EA=1; /打开总中断EX0=1; /打开外部中断P0=0xf0; /键值高4位为高电平,低4位为低电平 while(1) display(&l_key,1); /调用显示子函数 if(l_key=14) /是否按下E键,是则关闭继电器 jdq=1; if(l_key=12) /是否按下C键,是则打开继电器 jdq=0; void key_scan() interrupt 0/外部中断0,0的优先级最高EX0=0; /在读键盘时,关闭外部中断,防止干扰带来的多次中断TMOD&=0xf1; /设置定时器为工作方式1 TH0=0x2e; /设置初值,为12毫秒,十进制值为11776TL0=0x00;ET0=1; /开启定时器中断0TR0=1; /启动定时器计数void time0() interrupt 1 /定时器0的中断函数TR0=0; /关闭定时器0readkey(); /定时12ms后产生中断,调用此函数,读取键值 void readkey() /扫描键盘子函数uchar i,j,key; /定义局部变量j=0xfe; /设定初值key=0xff;for(i=0;i4;i+) / 逐列扫描键盘 P0=j; if(P0&0xf0)!=0xf0) /有按键按下,高4位不可能全为1 key=P0; /读取P0口的值,推出循环,否则循环下次 break; j=_crol_(j,1); /此函数的功能是:左移循环if(key=0xff) /如果读取不到P0口的值,如干扰,则返回 l_keyold=0xff; P0=0xf0; / 恢复P0口的值,等待按键按下 fmq=1; EX0=1; /在返回前,打开外部中断 return;fmq=0; /有按键按下,打开蜂鸣器if(l_keyold=key) / 检查按键放开否,如果相等表明没有放开 TH0=0x2e; /设置初值 TL0=0x00; TR0=1; /继续启动定时器,检查按键放开否 return;TH0=0x2e; TL0=0;TR0=1; /启动定时器l_keyold=key; /获取键值,作为放开否的凭证for(i=0;i17;i+) /查表获得相应的16进制值存放到l_key中 if(key=key_tabi) l_key=i; break; /程序运行到此,就表明有键值存放到l_key中,主程序/就可以检测键盘值并作相应的处理void display(uchar *lp,uchar lc) /显示子函数uchar i; /定义局部变量P1=0xf8; /点亮第一个数码管P2=0; /P2口为输出值for(i=0;ilc;i+) /循环显示 P2=tablelpi; /查表获得相应的要显示的数字的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二、泥石流脱险我知道说课稿-2023-2024学年小学综合实践活动六年级上册沪科黔科版
- 人教版化学九年级上册3.2原子的结构 说课稿
- 农发行芜湖市繁昌区2025秋招小语种岗笔试题及答案
- 罐车司机考试题及答案
- 公司干部考试题目及答案
- 肝功能考试题及答案
- 辅助类电工考试题及答案
- 大数据与人工智能在财务预警中的应用
- 防护员比武考试题及答案
- 2025自动化设备买卖合同
- 2024抖音护肤行业白皮书
- 商铺转租赁合同范本
- 《足球裁判员培训》课件
- 浴室工程施工组织设计方案
- 2024年秋九年级化学上册 第3单元 物质构成的奥秘 课题3 元素 第1课时 物质是由元素组成的说课稿 (新版)新人教版
- 微商基础培训课件
- ISO9001:2024版质量手册资料
- 2023-2024年社会工作者之初级社会综合能力考试题库
- 2025年慢性阻塞性肺疾病全球创议GOLD指南修订解读课件
- 民族宗教团日活动
- 新娘化妆相关知识考核试题及答案
评论
0/150
提交评论