版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用矩阵方式扫描键盘的程序(A keyboard scanning program using a matrix)#包括<< AT89X52。”#包括<<信息。h> /头文件#定义unsigned char函数/以下是定义标识符#定义该P2# unsigned int定义单元#定义decodemode 0x09 / / * * /译码模式#定义强度0x0a / / * * /亮度#定义scanlimit 0x0b / / * * /扫描界限#定义关机0x0c / / * * /掉电模式#定义displaytest 0x0f / / * * /显示测试#定义shutd
2、ownmode 0x00 / / * * /掉电方式工作#定义正常0x01 / / * * /正常操作方式#定义decodedigit 0xff / / * * /译码位数设置#定义intensitygrade 0x0a / / * * /显示亮度级别设置#定义scandigit 0x06 / / * * /扫描位数设置#定义testmode 0x01 / / * * /显示测试方式#定义textend 0x00 / / * * /显示测试结束,正常工作公司dis_din = P1 0;/ / * * /显示串行数据输入端公司dis_load = P1 1;/ / * * /显示数据锁存端公司
3、dis_clk = P1 2;/ / * * /显示时钟输入端公司= P1 3;/ / * * /矩形波输出端位标志= 0;/ / * * /标志位/ *定义全局变量* /int挂= 0,李= 0;/扫描的行、列h,l,t;UCHAR CH;函数的关键;/ *定义数组* /a 6 = 0,0,0,0,0,0 ;/时间长度煤焦部分 4 4 = 15,10,13,11,14,9,6,3,0,8,5,2,12,7,4,1 ;/ / / /键值检索矩阵/ *函数声明* /无效sendchar(unsigned char ch);无效writeword(unsigned char addr,unsign
4、ed char num);虚空(void)InitDis;initmain虚空(void);无效delay_xms(unsigned int x);无效wave();/ *向MAX7219写入字节(8位)* /无效sendchar(unsigned char ch)无符号字符i;_nop_();对于(i = 0;i < 8;i +)温度= CH和0x80;CH1;如果(临时)dis_din = 1;dis_clk = 0;dis_clk = 1;其他的dis_din = 0;dis_clk = 0;dis_clk = 1;/ *向MAX7219写入字(16位)* * /无效writewo
5、rd(unsigned char addr,unsigned char num)dis_load = 0;_nop_();sendchar(地址);_nop_();sendchar(NUM);_nop_();dis_load = 1;/ *MAX7219初始化* /虚空(void)InitDiswriteword(scanlimit,scandigit);/ / * * /设置扫描界限writeword(decodemode,decodedigit);/ / * * /设置译码模式writeword(强度,intensitygrade);/ / * * /设置亮度writeword(关机,正常
6、);/ / * * /设置电源工作模式/ *系统上电初始化* /initmain虚空(void)IE = 0x00;/ / * * /设置中断允许寄存器IP = 0x00;/ / * * /设置中断优先级管理寄存器TH0 = 0xd8;/ / * * /设定时器初值,10msTL0 = 0xf0;TMOD = 0x01;0x11 TCON =;PSW = 0x00;/ *精确延时函数-调试用* /无效delay_xms(unsigned int x)函数J.;(x)对于(j0;j123;j + +);/ *主函数* /空主(空)h1;l1;该= 0xf0;InitMain();InitDis(
7、);/ / writeword(displaytest,TestMode);writeword(1,0);writeword(2,0);writeword(3,0);writeword(4,0);writeword(5,0);writeword(6,0);/ / initdis();EA = 1;IT0 = 1;ex0 = 1;(1)wave();/ *波形输出函数* /无效wave() /波形输出(1)输出= 1;delay_xms(H);/ /高电平延时输出= 0;delay_xms(L);/ /低电平延时/ *通过中断来设定时长* /虚空(void)INT0中断0EA = 0;/关中断P
8、2 = 0x0f;(8)delay_xms;如果(P2)!= 0x0f)/判断是哪一行有键按下开关(P2)案例0x07:挂= 0;突破;案例0x0b:挂= 1;突破;例:挂= 2;打破0x0d;例:挂= 3;打破0x0e;默认值:中断; (4)delay_xms;P2 = 0xf0;如果(P2)!= 0xf0)/判断哪一列由键按下开关(P2)案例0x70:谎言= 0;突破;houses 0xb0: lie = 1; break;houses 0xd0: lie = 2; break;houses 0xe0: lie = 3; break;default: break;i givep2 = 0x
9、0f; while (p2. = 0x0f);delay _ xms (8).i givep2 = 0xf0; while (p2. = 0xf0); / / / / / / / / / / / / / / / / / 以上两个循环才可以检测按键是否松开, 动手才知道书本上的东西并不可靠!/ / / / 书本原文是 while (p2. = 0xf0);key = discode hang lie;if (flag = = 0) / / 以下是按键处理的程序if (key < 10) / / key, < 10in 2 = 1.in 1 = a 0.to 0 = key.initd
10、is ();(1, writeword 2); / / / / 写数字到数码管writeword (2, 1).writeword (3) 0);writeword (4, 5).writeword (5, 4).writeword (6, 3);if (k = = 12) / / key'cin 2 = 0.in 1 = 0.to 0 = 0.initdis ();(1, writeword 2).writeword (2, 1).writeword (3) 0);writeword (4, 5).writeword (5, 4).writeword (6, 3);if (k = =
11、 14) / / key'ch = 2 * 100 + 1 * 10 + 0;flag = 1;elseif (key < 10) / / key, < 10in 5 = a 4;in 4 = 3.in 3 = key.initdis ();(1, writeword 2).writeword (2, 1).writeword (3) 0);writeword (4, 5).writeword (5, 4).writeword (6, 3);if (k = = 12) / / key'cin 5 = 0.in 4 = 0.in 3 = 0.initdis ();(1, writeword 2).writeword (2, 1).writeword (3) 0);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省淄博市张店区2024-2025学年九年级上学期语文期末试卷(含答案)
- 新疆维吾尔自治区库尔勒市新疆兵团第二师华山中学2026届高一数学第一学期期末调研模拟试题含解析
- 肝胆胰外科胆结石症状解析及护理培训
- 肾结石预防及护理措施讲解
- 2025年超声多普勒胎儿监护仪项目提案报告范文
- 痴呆症状分析及护理方法详解培训
- 自愿者自我介绍
- 设备转让创业合同范本
- 营养饮食健康生活
- 礼品订购合同协议书
- DB42T 627-2010 中药材 黄连种苗
- 2025重庆市云阳县辅警考试试卷真题带答案
- 宫颈上皮内肿瘤变
- 南通市启东市医疗卫生单位招聘事业编制人员笔试真题2024
- 祖坟修缮协议书
- 初中数学教学随笔10篇
- 2018天成消防B-TG-TC5000火灾报警控制器消防联动控制器安装使用说明书
- 《智慧斑马线 高分子复合材料LED发光地砖》
- 房屋修缮加固工程施工组织设计方案
- 初三简单数学试卷
- 同等学力申硕(临床医学)考试题库(全真题库)
评论
0/150
提交评论