1 / 24
文档名称:

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

格式:ppt   大小:656KB   页数:24页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

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

上传人:w447750 2019/12/4 文件大小:656 KB

下载得到文件列表

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

文档介绍

文档介绍:*第9章键盘输入接口与状态机编程*通用I/O数字输入接口设计I/O输入输出接口,常为数字信号,可能是模拟信号比如AD,但内部转换为数字信号*I/O输入接口硬件设计要点模拟信号和数字信号电压信号和电流信号单次信号和连续信号*I/O输入接口软件设计要点用户程序需要首先对要使用的I/O口进行初始化设置,根据实际需要设定使用I/O口的工作方式(输出还是输入),当设定为输入方式时,还要考虑是否使用内部的上拉电阻。I/O口用于输出时,应设置DDRx==1,。I/O口用于输入时,应设置DDRx==0。读取外部引脚电平时,,。=1表示该I/O内部的上拉电阻有效,=0表示不使用内部上拉,外部引脚呈现三态高阻输入状态。一旦将I/O口的工作方式由输出设置成输入方式后,。*按键输入接口设计*基于状态机的按键输入软件接口设计无按键状态0有按键状态1等释放状态20/0(消抖)1/01/0(干扰)0/1(确认)1/00/0*#definekey_input //按键输入口#definekey_state_00#definekey_state_1 1#definekey_state_2 2charread_key(void){harkey_state=0;charkey_press,key_return=0; key_press=key_input; //读按键I/O电平 switch(key_state) { casekey_state_0: //按键初始态if(!key_press)key_state=key_state_1;//键被按下,状态转换到键确认态 break; casekey_state_1: //按键确认态 if(!key_press) { key_return=1; //按键仍按下,按键确认输出为“1” key_state=key_state_2; //状态转换到键释放态 }*elsekey_state=key_state_0; //按键已抬起,转换到按键初始态 break;casekey_state_2:if(key_press)key_state=key_state_0; //按键已释放,转换到按键初始态 break; } returnkey_return;}*(一)*程序#include<>flashcharled_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};chartime[3];//时、分、秒计数单元chardis_buff[6];//显示缓冲区,存放要显示的6个字符的段码值chartime_counter,key_stime_counter;//时间计数单元,charposit;bitpoint_on,time_1s_ok,key_stime_ok;