智能控制电路项目实践

17
智智智智智智智智智智

Upload: amy-downs

Post on 02-Jan-2016

42 views

Category:

Documents


4 download

DESCRIPTION

智能控制电路项目实践. 单片机开发工具的使用. 简易仪器仪表设计制作. 秒表的设计制作. 里程表的设计制作. LED 电子显示屏的设计制作. LED 流水灯设计制作. 五. 三. 七. 八. 二. 六. 学习项目. 单片机最小应用系统构建. 一. 简易计算器的设计制作. 四. 项目四 简易计算器设计制作. 任务 1. 一位数码显示. 任务 2. 四位数码显示. 数码管. 任务 3. 独立按键识别. 计算器. 任务 4. 矩阵按键识别. 任务 5. 简易计算器设计实现. 任务 4 矩阵 按键识别. 任务要求. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 智能控制电路项目实践

智能控制电路项目实践智能控制电路项目实践

Page 2: 智能控制电路项目实践

学习项目单片机最小应用系统构建单片机最小应用系统构建一

单片机开发工具的使用单片机开发工具的使用二

LEDLED 流水灯设计制作流水灯设计制作三

简易计算器的设计制作简易计算器的设计制作四

里程表的设计制作里程表的设计制作五

秒表的设计制作秒表的设计制作六

LEDLED 电子显示屏的设计制作电子显示屏的设计制作七

简易仪器仪表设计制作简易仪器仪表设计制作八

Page 3: 智能控制电路项目实践

项目四 简易计算器设计制作

四位数码显示四位数码显示任务任务 22

任务任务 33

一位数码显示一位数码显示 任务任务 11

任务任务44

独立按键识别独立按键识别

矩阵按键识别矩阵按键识别

数码管

简易计算器设计实现简易计算器设计实现任务任务55

计算器

Page 4: 智能控制电路项目实践

任务 4 矩阵按键识别按键识别

独立式按键是直接用 I/O口线构成的单个按键电

路,当需要按键个数较多时可采用矩阵按键。本任务

要求是设计一个 4×4 “个独立按键,编号为 0~ F”,

当按下某键时,数码管显示该键所对应的编号。

任务要求任务要求

Page 5: 智能控制电路项目实践

任务 4 矩阵按键识别矩阵按键识别

仿真演示

Page 6: 智能控制电路项目实践

硬 件硬 件

矩阵按键矩阵按键

软 件软 件

单片机最小应用系统单片机最小应用系统++

数码管显示电路数码管显示电路++

矩阵按键电路矩阵按键电路

任务分析任务分析

任务 4 矩阵按键识别矩阵按键识别

Page 7: 智能控制电路项目实践

任务 4 矩阵按键识别矩阵按键识别

完成本任务需要掌握的知识:完成本任务需要掌握的知识:

(( 11)矩阵式键盘的结构及原理)矩阵式键盘的结构及原理

(( 22)矩阵式键盘按键的识别)矩阵式键盘按键的识别

(( 33)键盘的编码)键盘的编码

(( 44)键盘扫描程序设计)键盘扫描程序设计

Page 8: 智能控制电路项目实践

独立按键独立按键

分支结构分支结构 ifif 语句、语句、 switchswitch 语句语句

按键消抖按键消抖

任务 4 矩阵按键识别矩阵按键识别

复习:复习:

Page 9: 智能控制电路项目实践

任务 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

Page 10: 智能控制电路项目实践

任务 4 矩阵按键识别按键识别

键盘的编码 键盘的编码 矩阵式键盘,按键的位置由行号和列号唯一确定,因

此可分别对行号和列号进行二进制编码。一般情况下,采用依次排列键号的方式对按键进行编码,以图中的4×4 键盘为例,可将键号编码为: 00H 、 01H 、 02H 、…、 0EH 、 0FH 等 16 个键号。

编码的相互转换可通过计算或查表的方法实现。

Page 11: 智能控制电路项目实践

任务 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

Page 12: 智能控制电路项目实践

任务 4 矩阵按键识别矩阵按键识别

矩阵扫描程序设计思路矩阵扫描程序设计思路( 1 )判别有无按键按下。( 2 )键盘扫描取得闭合键的行、列值。( 3 )用计算法或查表法得到键值。( 4 )判断闭合键是否释放,如没释放则继续等待。( 5 )将闭合键键号保存,同时转去执行该闭合键的功

能。

Page 13: 智能控制电路项目实践

任务 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++); }

键盘扫描函数矩阵按键识别程序:矩阵按键识别程序:

Page 14: 智能控制电路项目实践

任务任务 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;    } 

主函数

键盘扫描函数

Page 15: 智能控制电路项目实践

1 、独立式键盘和矩阵式键盘有何区别?分别说明它们的优缺点。2 、说明矩阵键盘的识别过程。

任务 4 矩阵按键识别矩阵按键识别

思考思考

Page 16: 智能控制电路项目实践

1 、矩阵按键识别电路原理;2 、矩阵按键识别程序思路总结;

任务 4 矩阵按键识别矩阵按键识别

总结总结

Page 17: 智能控制电路项目实践