下载此文档

第9章键盘输入接口与状态机设计.ppt


文档分类:汽车/机械/制造 | 页数:约24页 举报非法文档有奖
1/24
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/24 下载此文档
文档列表 文档介绍
1
第9章键盘输入接口与状态机编程
2
通用I/O数字输入接口设计
I/O输入输出接口,常为数字信号,可能是模拟信号比如AD,但内部转换为数字信号
3
I/O输入接口硬件设计要点
模拟信号和数字信号
电压信号和电流信号
单次信号和连续信号
4
I/O输入接口软件设计要点
用户程序需要首先对要使用的I/O口进行初始化设置,根据实际需要设定使用I/O口的工作方式(输出还是输入),当设定为输入方式时,还要考虑是否使用内部的上拉电阻。
I/O口用于输出时,应设置DDRx = = 1,。
I/O口用于输入时,应设置DDRx = = 0。读取外部引脚电平时,,。 = 1表示该I/O内部的上拉电阻有效, = 0表示不使用内部上拉,外部引脚呈现三态高阻输入状态。一旦将I/O口的工作方式由输出设置成输入方式后,。
5
按键输入接口设计
6
基于状态机的按键输入软件接口设计
无按键
状态0
有按键
状态1
等释放
状态2
0/0 (消抖)
1/0
1/0 (干扰)
0/1 (确认)
1/0
0/0
7
#define key_input // 按键输入口
#define key_state_0 0
#define key_state_1 1
#define key_state_2 2
char read_key(void)
{
static char key_state = 0;
char key_press, key_return = 0;
key_press = key_input; // 读按键I/O电平
switch (key_state)
{
case key_state_0: // 按键初始态
if (!key_press) key_state = key_state_1;// 键被按下,状态转换到键确认态
break;
case key_state_1: // 按键确认态
if (!key_press)
{
key_return = 1; // 按键仍按下,按键确认输出为“1”
key_state = key_state_2; // 状态转换到键释放态
}
8
else
key_state = key_state_0; // 按键已抬起,转换到按键初始态
break;
case key_state_2:
if (key_press) key_state = key_state_0; //按键已释放,转换到按键初始态
break;
}
return key_return;
}
9
单按键的实时时钟秒校时设置设计(一)
10
程序
#include <>
flash char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
char time[3]; // 时、分、秒计数单元
char dis_buff[6]; // 显示缓冲区,存放要显示的6个字符的段码值
char time_counter,key_stime_counter; // 时间计数单元,
char posit;
bit point_on, time_1s_ok,key_stime_ok;

第9章键盘输入接口与状态机设计 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数24
  • 收藏数0 收藏
  • 顶次数0
  • 上传人w447750
  • 文件大小656 KB
  • 时间2017-11-24
最近更新