首页 > 编程知识 正文

keil按键控制灯程序,单片机按键控制灯亮灭汇编程序

时间:2023-05-04 02:42:09 阅读:61331 作者:4463

初始化中,自动校正调整触摸灵敏度

德奥

{

ASM(clrwdt ); //给狗喂食

是跟踪更新(if )

{

touch更新=0;

if(touchdata1230 ) )。

{

TF----;

if ) TK16d=(TF-2 ) )

{

慢跑时间

Touch_Init (;

}

ELSEif(TK16d=(TF2 ) ) ) ) ) ) )。

{

lottimer----;

Touch_Init (;

}

}

(ELSEif(Touchdata1225 ) ) ) ) ) ) ) )。

{

TF;

if ) TK16d=(TF-2 ) )

{

慢跑时间

Touch_Init (;

}

ELSEif(TK16d=(TF2 ) ) ) ) ) ) )。

{

lottimer----;

Touch_Init (;

}

}

else

{

布雷克;

}

}

(while ) 1;

voidtouch_init(void ) )

{

_tkst=0;

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

触摸键8位定时/计数器寄存器的时隙计数器溢出设定的时间为65256-tktmr[7:0](32 )

* * * * * * * * * * * * * * * * *

_tktmr=232; //插槽计数器溢出时间: 65256-tktmr[7:0](x32226 )

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

tk16s(1~0)触摸按键模块16位计数器的时钟选择位

00=fsys 01=fsys/210=fsys/411=fsys/8

* * * * * * * * * * * * * * * * *

_tk16s1=1;

_tk16s0=0;

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

tkfs(1~0)触键振荡器频率选择位

00=500 k hz01=1000 khz 10=1500 khz 11=2000 khz

* * * * * * * * * * * * * * * * *

_tkfs1=1;

_tkfs0=1;

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

参考振荡器内置电容选择振荡器内置电容选择为(tkm0ro(9:0 )50pf )/1024

* * * * * * * * * * * * * * * * *

_tkm0rol=Slottimer; //159134

_tkm0roh=Slottimer8; //0;

/* * * * * * * tkm0c0* * * * * * * * * /

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

复用密钥选择00=key 101=key 210=key 311: key 4

* * * * * * * * * * * * * * * * *

_m0mxs1=0;

_m0mxs0=1; 复用KEY2

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

倍频功能控制0=可去除1=使能

* * * * * * * * * * * * * * * * *

_m0dfen=0;

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

滤波器功能控制0=可去除1=使能

* * * * * * * * * * * * * * * * *

_m0filen=1;

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

C/F振荡器以M0SOF2~M0SOF0决定0=以M0SOF2~M0SOF0位控制1=以硬件电路控制

* * * * * * * * * * * * * * * * *

_m0sofc=0;

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

选择关键振荡器和参考振荡器作为选择C/F振荡器时频率选择位(M0SOFC=0) m0sof )2~0)

00=1380 khz 001=1500 khz 010=1670 khz 011=1830 khz

100=2000 khz 101=2230 k Hz 110=2460 khz 111=2740 khz

* * * * * * * * * * * * * * * * *

_m0sof2=1;

_m0sof1=0;

_m0sof0=0;

/* * * * * * * tkm0c1* * * * * * * * * /

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

时隙选择0=参考振荡器1=Fsys/4

* * * * * * * * * * * * * * * * *

_m0tss=0;

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

振荡器控制0=可去除1=使能

* * * * * * * * * * * * * * * * *

_m0roen=1;

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

键控振荡器控制0=除能1=使能

* * * * * * * * * * * * * * * * *

_m0koen=1;

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

I/O端子和触摸按钮2的功能选择0: I/O端子1 :触摸按钮

* * * * * * * * * * * * * * * * *

//_m0k4io=0; //PA4使触摸键一个功能有效的KEY1

//_m0k3io=0; //PA3使触摸键一个功能有效的KEY2

_m0k2io=1; //PA1使触摸键一个功能有效的KEY3

//_m0k1io=0; //PA5使触摸键一个功能有效的KEY4

_tkme=1; //使触摸键中断有效

//0 1 :打开触摸键检测

_tkst=1; //打开触摸键检测

}

oid_attribute((interrupt )0x08 ) ) ) ) ) ) ) )。

{

//插槽计数器溢出标志

if(_tkrcov ) ) ) ) ) )。

{

if(touchupdate==0) ) ) ) )。

{

TouchData=_tkm016dh; //_tk16dh; //

TK16D=_tk16dh;

TouchData=8;

TK16D=8;

TouchData|=_tkm016dl; //_tk16dl; //

TK16D |=_tk16dl;

}

_tkst=0;

touch更新=1;

}

//触摸按键模块16位C/F计数器溢出标志位

if(_tkcfov ) ) )。

{

_tkcfov=0;

}

//触摸按键模块16位计数器溢出标志

if(_tk16ov ) ) ) )。

{

_tk16ov=0;

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。