lugang_2920213 发表于 2011-1-19 10:12:13

温度对单片机(STC12C5A60S2)系统的影响

为了不误导他人,在此我只把我发现的一个现象描述给大家。
为什么会有上面的题目?    ----最近做一个项目,总出现这样的问题, 头天晚上写好并调试过的程序(已经下载到单片机),第二天早上开始用的时候总不正常,开始以为程序有BUG,后来一想BUG不可能只在早上出现,就开始怀疑是温度原因。把板子温温,重复上电几次后就一切正常了,于是有了上面的题目。
以下附上出问题的代码
按键扫描代码
static data unsigned char keyvalue=0;

void task_key(void) _task_ SCAN_KEY
{
        static unsigned char key = 0xFF;
        static bit keydown = 0;
        static bit longkey = 0;
        static unsigned char keydowntime = 0;
        static unsigned char delay;
        P0=0xFF;
        while(1)
        {
                if(P0!=0xFF)
                {
                        key = P0;

                        if(!keydown)
                        {
                                delay=200;//大约2ms的去抖
                                while(delay--)
                                {
                                        if(P0==0xFF)
                                                goto out;
                                }
                                key = P0;
                                keydown = 1;
                        }
                }
                else
                {
                        keydown = 0;
                        keydowntime = 0;
                        if(!longkey)//当有长按键有效时,按键弹起不发送键值
                        {
                                keyvalue = ~key;
                                if(keyvalue!=0)
                                        os_send_signal(SET_PARA);               
                        }
                        longkey = 0;
                        key = 0xFF;
                }

                if(keydown)
                {
                        keydowntime++;
                        if(keydowntime>15)        //有键按下3秒钟
                        {
                                keyvalue = (~key) + 0x80;
                                keydowntime = 0;
                                longkey = 1;        //产生一个有效的长按键
                                os_send_signal(SET_PARA);
                        }
                }
        out:               
                os_wait(K_TMO,10,0);//按键扫描 周期为10倍系统tick
        }
}
每天早上开始用系统的时候,单片机总是检测出长按键。 明明3秒的长按键,结果不到半秒钟就被检测出来了。

lsy5110 发表于 2011-1-19 10:30:31

内部时钟,还是外接晶振?

xiaobendan 发表于 2011-1-19 10:54:05

先不要通电,先温一下,然后一次上电,看是否正常,如果还是需要上电几次才行,应该和温度没有关系
我也发现一个问题,我写12232的液晶,气温低的情况下,需要上电几次才正常,但是不是每一个都这样,我怀疑液晶有问题,气温大概0度左右
补充:我用外部11.0592的晶振

lbc___ 发表于 2011-1-19 11:43:09

现在冬天啊,的确有可能是温度影响哦

lugang_2920213 发表于 2011-1-19 17:26:58

回复【1楼】lsy5110
内部时钟,还是外接晶振?
-----------------------------------------------------------------------

外部12MHZ时钟

lele19950907 发表于 2011-1-20 10:24:04

回复【楼主位】lugang_2920213 老陆
-----------------------------------------------------------------------

从没遇到过

mcucow 发表于 2011-1-20 10:28:38

室内恒温, 断电一个晚上, 第二天再上电, 几中可能都确定一下, 看似简单的问题最好能100%确认, 否则批量生产就头大了.

proteldxp 发表于 2011-1-23 10:41:12

可以当温度计用啊!当内部温度传感器用!

wsgj0 发表于 2011-1-23 12:13:29

一直用at的没发现这种问题

putin 发表于 2011-12-15 13:05:00

应该不会是温度对单片机影响吧,怀疑是你电路焊接出了问题

雨醉江南 发表于 2012-3-29 17:48:44

曾经参加一个比赛,冬天在室外,电路上电要等5分钟才有反应的,应该是温度影响,电路在室内一切正常的。

cy_ygs 发表于 2012-6-5 14:12:51

不错,学习了
页: [1]
查看完整版本: 温度对单片机(STC12C5A60S2)系统的影响