单片机矩阵键盘毕业设计 - 图文(2)
P3口的低4位控制行输入,高4位控制列输入当没有按键按下时,P3.0—P3.3与P3.4—P3.7之间开路。当有键闭合时,与闭合键相连的两条I/O口线之间短路。
判断有无按键按下的方法是:
第一步,置行线P3.0—P3.3为输入状态,从列线P3.4—P3.7输出低电平,读入行线数据,若某一行线为低电平,则该行线上有键闭合。
第二步,列线轮流输出低电平,从行线P3.0—P3.3读入数据,若有某一行为低电平,则对应的列线上有键按下。
综合一二两步的结果,可确定按键编号。
但是按键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的按键操作。
当确定了是哪一个按键按下后,通过软件程序的设计,返回键盘扫描的键值,转化成十六进制的数据后由PO口输出给数码管显示。 3、LED显示段码表 字型 0 1 2 3 4 5 6 7 8
共阳极段 C0H F9H A4H B0H 99H 92H 82H F8H 80H 共阴极段 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 字型 9 A B C D E F 空白 P 共阳极段 90H 88H 83H C6H A1H 86H 84H FFH 8CH 共阴极段 6FH 77H 7CH 39H 5EH 79H 71H 00H 73H 七、PROTEUS 仿真图
八、系统的程序: #include
#define uint unsigned int #define uchar unsigned char uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0}; uchar code we[]={ 7,6,5,4,3,2,1,0}; uint i;
sbit dula=P2^6; sbit wela=P2^7; uchar num,num1,temp; void delay(uint z) { }
uchar keyscan(); void main() {
num=17;//打开时数码管什么也不显示 dula=1;//关闭数码管 P0=0; dula=0; uchar x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
// P2=2;
while(1)
{
num1=keyscan();
for(i=0;i<8;i++) { }
P0=table[num1-1]; P2=we[i]; delay(1);
}
}
uchar keyscan() //带有返回值的函数 {
P3=0xfe;//检测第一行 temp=P3; temp=temp&0xf0; while(temp!=0xf0)
{
delay(5);//延时去抖 temp=P3; temp=temp&0xf0;
while(temp!=0xf0)//不等于0xf0说明确实是有建按下 {
temp=P3;//再读回P3口的值 switch(temp) { }
case 0xee: num=1;
break;
case 0xde: num=2;
break;
case 0xbe: num=3;
break;
case 0x7e: num=4;
break;
while(temp!=0xf0)//检测是否松手,不佳松手检测退不出第二
个while循环
P3=0xfd;//检测第二行
temp=P3; temp=temp&0xf0; while(temp!=0xf0)
{
delay(5);//延时去抖 temp=P3; temp=temp&0xf0; while(temp!=0xf0) {
temp=P3;//读回P3口的值 switch(temp) {
case 0xed: num=5;
break;
}
}
{ }
temp=P3; temp=temp&0xf0;
case 0xdd: num=6;
break;
case 0xbd: num=7;
break;
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




