服务分类
联系我们

长沙市华融劳务派遣有限公司 
电话:0731-88084518
传真:0731-88084518
手机:15111173115
联系人:陈先生
邮编:410200
网址:http://www.llsj138.com
地址:长沙市望城县高塘岭镇郭亮南路49号

 

博盈线上娱乐
博盈线上娱乐_博盈线上娱乐平台_博盈线上娱乐官网
作者:admin  来源:未知 阅读: 次 时间:2017-01-15 14:47 字体:[  复制 打印 网址

通过计数器这个实验向大家展示状态机的思想。

}

voidLS164_CLK(unsignedcharx)

sbitDATA=P0^4;

typedefunsignedlongUINT32;

DATA=0;

}

DATA=1;

typedeflongINT32;

UINT8Time1SecEvent=0;//1s定件

typedefintINT16;

UINT8TimeCount=0;//定时器0计数器,用于计数产生1s定件

#defineKEY_MASK0x0F//按键掩码

voidLS164_DATA(unsignedcharx)

UINT8SegCurPosMark=0;//被选中的数码管

#defineKEY33//按键3键值

}

{

#defineKEY11//按键1键值

typedefcharINT8;

*输入:byte单个字节

UINT8SegCurSel=0;//当前选中的数码管

#defineON1

UINT16CounterValue=0;//计数器

{

#defineKEY_SEARCH_STATUS0//查询按键状态

typedefunsignedintUINT16;

*函数名称:LS164Send

#defineLOW0

typedefunsignedcharUINT8;

if(x)

#defineKEY_ACK_STATUS1//确认按键状态

}

for(j=0;j

#defineOFF0

{

voidLS164Send(UINT8byte)

UINT8j;

{

UINT8bSetTime=0;//标志位:是否设置计数值

#defineKEY44//按键4键值

#defineHIGH1

#defineTIMER0_INITIAL_VALUE5000//5ms定时

else

#defineKEY22//按键2键值

}

*输出:无

/**********************************************************

{

sbitCLK=P0^5;

#defineSEG_PORTP0//数码管占用的IO口

}

***********************************************************/

#defineKEY_REALEASE_STATUS2//按键状态

codeUINT8SegSelTbl[4]={0xFE,0xFD,0xFB,0xF7};

UINT8SegBuf[4]={0};

UINT8Timer0IRQEvent=0;//定时器0中断事件

{

if(x)

CLK=1;

CLK=0;

*功能:74LS164发送单个字节

codeUINT8SegCode[10]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F};

else

状态机是软件编程中的重要概念,比这个概念更重要的是对它的灵活应用。在一个思清晰而且高效的程序中,必然有状态机的身影浮现。例如,一个按键命令解析程序就可以被看做状态机:本来在A状态下,触发一个按键后切换到了B状态;再触发另一个键后切换到C状态,或者返回到A状态。这就是最简单的按键状态机的例子。实际的按键解析程序会比这更复杂,但这并不影响我们对状态机的认识。进一步看,击键动作本身可以看做一个状态机。一个击键动作包含按下、抖动、等状态。其实状态机的思想不单只是用在按键方面,数码管显示动态扫描、LED灯亮灭都存在状态机的思想。使用状态机思想进行单片机编程,比较通用的方法就是使用switch的选择性分支语句来进行状态跳转。

#defineKEY_PORTP1//按键占用的IO口

{

版权所有:长沙市博盈亚洲劳务派遣有限公司 联系人:陈先生  电话:15111173115 传真:0731-88084518 
邮政编码:410200  地址:长沙市望城县高塘岭镇郭亮南路49号。 备案许可证编号为:湘ICP备11001510号