转载 钽电容起火、钽电容爆炸、钽电容烧了

📁 365赢多少钱会被限额 📅 2025-07-01 18:54:01 👤 admin 👁️ 6299 ❤️ 994
转载 钽电容起火、钽电容爆炸、钽电容烧了

转载 钽电容起火、钽电容爆炸、钽电容烧了

CSDN-Ada助手:

非常感谢CSDN博主的分享,“钽电容起火、钽电容爆炸、钽电容烧了”这篇博客提醒了我们在电子设计时要注意安全问题。我觉得下一篇博客可以从电子设计的安全性角度出发,分享一些常见电子器件的安全性问题及其解决方法,这样的技术文章对其他用户也非常有用。相信会有更多读者受益于您的分享。期待您的下一篇博客哦!

为了方便博主创作,提高生产力,CSDN上线了AI写作助手功能,就在创作编辑器右侧哦~(https://mp.csdn.net/edit?utm_source=blog_comment_recall )诚邀您来加入测评,到此(https://activity.csdn.net/creatActivity?id=10450&utm_source=blog_comment_recall)发布测评文章即可获得「话题勋章」,同时还有机会拿定制奖牌。

[转]新型的按键扫描程序

vid2005:

我想我的方法也差不多,只不过是在定时器中断中使用的:定时器中断时间为10ms,即10ms检查一次按键。按键在PA的低四位下拉接法,其中的变量都是全局变量,其中flag为位变量。

char key,key_cnt,key_tmp;

bit flag;

interrupt [TIM0_COMP] void timer0_comp_isr(void)

{

key_tmp=PINA&0x0F;

if(key_tmp!=0x0F){key_cnt++;key=key_tmp;}

else if((key_cnt>=3)){flag=1;}

}

即10毫秒检查一次按键,如果检测到有按键(key_tmp不为0x0F),所以开始计数,当按键才放开时,检查键按下的时间是否超过30ms,如果是,即确认有一次按键事件,flag设置。至于在主程序中,如果有程序需要使用按键功能,就检查flag标志,如果为1就表示有按键,否则继续执行其他功能。

[转]新型的按键扫描程序

vid2005:

楼主处的程序还不是最精妙的。把程序稍改一下,可以兼容所有的电平变化:

unsigned char PreKey;

unsigned char NowKey;

volaitile unsigned char KeyCode;

void ReadKey(void)

{

PreKey = NowKey;

NowKey = PINx;

KeyCode = PreKey^NowKey^KeyCode; //注意:等式左边的KeyCode是本次读按键的结果,等式右边的KeyCode是上次读按键的结果

}

KeyCode 是全局变量,和LZ位处的Cont一样。

[转]新型的按键扫描程序

vid2005:

在这个基础上再增加一个按键释放检测功能,程序如下:

volatile unsigned char Trg;

volatile unsigned char Cont;

volatile unsigned char Release;

void KeyRead( void )

{

unsigned char ReadData = PINB^0xff; // 1 读键值

Trg = ReadData & (ReadData ^ Cont); // 2 得到按下触发值

Release= (ReadData ^ Trg ^ Cont); // 3 得到释放触发值

Cont = ReadData; // 4 得到所有未释放的键值

}

相关推荐