智能控制电路项目实践
DESCRIPTION
智能控制电路项目实践. 单片机开发工具的使用. 简易仪器仪表设计制作. 秒表的设计制作. 里程表的设计制作. LED 电子显示屏的设计制作. LED 流水灯设计制作. 五. 三. 七. 八. 二. 六. 学习项目. 单片机最小应用系统构建. 一. 简易计算器的设计制作. 四. 项目四 简易计算器设计制作. 任务 1. 一位数码显示. 任务 2. 四位数码显示. 数码管. 任务 3. 独立按键识别. 计算器. 任务 4. 矩阵按键识别. 任务 5. 简易计算器设计实现. 任务 4 矩阵 按键识别. 任务要求. - PowerPoint PPT PresentationTRANSCRIPT
智能控制电路项目实践智能控制电路项目实践
学习项目单片机最小应用系统构建单片机最小应用系统构建一
单片机开发工具的使用单片机开发工具的使用二
LEDLED 流水灯设计制作流水灯设计制作三
简易计算器的设计制作简易计算器的设计制作四
里程表的设计制作里程表的设计制作五
秒表的设计制作秒表的设计制作六
LEDLED 电子显示屏的设计制作电子显示屏的设计制作七
简易仪器仪表设计制作简易仪器仪表设计制作八
项目四 简易计算器设计制作
四位数码显示四位数码显示任务任务 22
任务任务 33
一位数码显示一位数码显示 任务任务 11
任务任务44
独立按键识别独立按键识别
矩阵按键识别矩阵按键识别
数码管
简易计算器设计实现简易计算器设计实现任务任务55
计算器
任务 4 矩阵按键识别按键识别
独立式按键是直接用 I/O口线构成的单个按键电
路,当需要按键个数较多时可采用矩阵按键。本任务
要求是设计一个 4×4 “个独立按键,编号为 0~ F”,
当按下某键时,数码管显示该键所对应的编号。
任务要求任务要求
任务 4 矩阵按键识别矩阵按键识别
仿真演示
硬 件硬 件
矩阵按键矩阵按键
软 件软 件
单片机最小应用系统单片机最小应用系统++
数码管显示电路数码管显示电路++
矩阵按键电路矩阵按键电路
任务分析任务分析
任务 4 矩阵按键识别矩阵按键识别
任务 4 矩阵按键识别矩阵按键识别
完成本任务需要掌握的知识:完成本任务需要掌握的知识:
(( 11)矩阵式键盘的结构及原理)矩阵式键盘的结构及原理
(( 22)矩阵式键盘按键的识别)矩阵式键盘按键的识别
(( 33)键盘的编码)键盘的编码
(( 44)键盘扫描程序设计)键盘扫描程序设计
独立按键独立按键
分支结构分支结构 ifif 语句、语句、 switchswitch 语句语句
按键消抖按键消抖
任务 4 矩阵按键识别矩阵按键识别
复习:复习:
任务 4 矩阵按键识别矩阵按键识别
新课:新课:矩阵式键盘的结构及原理、按键识别矩阵式键盘的结构及原理、按键识别4×4 的行、列结构的矩阵键盘,按键数量较多时,节省I/O 口。以按键 8 为例,说明识别过程。
210 3
R1
10k 654 7
R2
10k A98 B
R3
10k EDC F
R4
10k
R510k
R610k
R710k
R810k
XTAL218
XTAL119
ALE30
EA31
PSEN29
RST9
P0.0/AD039
P0.1/AD138
P0.2/AD237
P0.3/AD336
P0.4/AD435
P0.5/AD534
P0.6/AD633
P0.7/AD732
P1.01
P1.12
P1.23
P1.34
P1.45
P1.56
P1.67
P1.78
P3.0/RXD10
P3.1/TXD11
P3.2/INT012
P3.3/INT113
P3.4/T014
P3.7/RD17
P3.6/WR16
P3.5/T115
P2.7/A1528
P2.0/A821
P2.1/A922
P2.2/A1023
P2.3/A1124
P2.4/A1225
P2.5/A1326
P2.6/A1427
U1
AT89C51
任务 4 矩阵按键识别按键识别
键盘的编码 键盘的编码 矩阵式键盘,按键的位置由行号和列号唯一确定,因
此可分别对行号和列号进行二进制编码。一般情况下,采用依次排列键号的方式对按键进行编码,以图中的4×4 键盘为例,可将键号编码为: 00H 、 01H 、 02H 、…、 0EH 、 0FH 等 16 个键号。
编码的相互转换可通过计算或查表的方法实现。
任务 4 矩阵按键识别矩阵按键识别
矩阵键盘识别电路矩阵键盘识别电路
210 3
R1
10k 654 7
R2
10k A98 B
R3
10k EDC F
R4
10k
R510k
R610k
R710k
R810k
XTAL218
XTAL119
ALE30
EA31
PSEN29
RST9
P0.0/AD039
P0.1/AD138
P0.2/AD237
P0.3/AD336
P0.4/AD435
P0.5/AD534
P0.6/AD633
P0.7/AD732
P1.01
P1.12
P1.23
P1.34
P1.45
P1.56
P1.67
P1.78
P3.0/RXD10
P3.1/TXD11
P3.2/INT012
P3.3/INT113
P3.4/T014
P3.7/RD17
P3.6/WR16
P3.5/T115
P2.7/A1528
P2.0/A821
P2.1/A922
P2.2/A1023
P2.3/A1124
P2.4/A1225
P2.5/A1326
P2.6/A1427
U1
AT89C51
任务 4 矩阵按键识别矩阵按键识别
矩阵扫描程序设计思路矩阵扫描程序设计思路( 1 )判别有无按键按下。( 2 )键盘扫描取得闭合键的行、列值。( 3 )用计算法或查表法得到键值。( 4 )判断闭合键是否释放,如没释放则继续等待。( 5 )将闭合键键号保存,同时转去执行该闭合键的功
能。
任务 4 矩阵按键识别矩阵按键识别
unsigned char keyscan(void){ unsigned char sccode, recode, a; Key_Port = 0xf0; if((Key_Port & 0xf0) != 0xf0) { de
lay(5); if((Key_Port & 0xf0) != 0xf0) { sccode = 0xfe; while((sccode & 0x10) != 0)
{Key_Port = sccode; if((Key_Port & 0xf0) != 0xf0)
{ recode = Key_Port & 0xf0; a = sccode&0x0f + recode; while((Key_Port & 0xf0) != 0xf0);
#include <reg51.h>#define Key_Port P1unsigned char code ledsegcode[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};void delay(unsigned int t){ unsigned int m,n; for(m=0;m<t;m++) for(n=0;n<110;n++); }
键盘扫描函数矩阵按键识别程序:矩阵按键识别程序:
任务任务 44 矩阵按键识别矩阵按键识别
}else sccode = (sccode << 1) | 0x01; } } } return 0xff; }
void main(void)
{unsigned char keyID;
P2=0xfe;
while(1)
{
keyID = keyscan();
if(keyID!=0xff)
P0= ledsegcode[keyID];
}
}
switch (a){ case 0xEE : return 0; case 0xDE : return 1; case 0xBE : return 2; case 0x7E : return 3; case 0xED : return 4; case 0xDD : return 5; case 0xBD : return 6; case 0x7D : return 7; case 0xEB : return 8; case 0xDB : return 9; case 0xBB : return 10; case 0x7B : return 11; case 0xE7 : return 12; case 0xD7 : return 13; case 0xB7 : return 14; case 0x77 : return 15; default : break; }
主函数
键盘扫描函数
1 、独立式键盘和矩阵式键盘有何区别?分别说明它们的优缺点。2 、说明矩阵键盘的识别过程。
任务 4 矩阵按键识别矩阵按键识别
思考思考
1 、矩阵按键识别电路原理;2 、矩阵按键识别程序思路总结;
任务 4 矩阵按键识别矩阵按键识别
总结总结