欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2100|回復(fù): 6
收起左側(cè)

52單片機(jī)重新上電后不執(zhí)行while(1)語句

[復(fù)制鏈接]
ID:664691 發(fā)表于 2019-12-15 23:11 | 顯示全部樓層 |閱讀模式
52單片機(jī)重新上電后不執(zhí)行while(1)語句 (重新上電8個(gè)數(shù)碼管只顯示:85-62-32) 而重新燒錄程式會(huì)顯示 00-00-00   
按道理重新上電顯示 00-00-00   才是正確的啊
void main()
{
                        InitTIMER0(); //定時(shí)器0初始化

                         a_tmpdisplay[0]= 2;  //數(shù)據(jù)的轉(zhuǎn)換,因我們采用數(shù)碼管1~9的顯示,將數(shù)據(jù)分開
                         a_tmpdisplay[1]= 3;
                        a_tmpdisplay[2]= 10;
                        a_tmpdisplay[3]= 2;
                        a_tmpdisplay[4]= 6;          
                        a_tmpdisplay[5]= 10;
                        a_tmpdisplay[6]= 5;
                        a_tmpdisplay[7]= 8;                          //初始化不能放在while 語句里,如放在while語句里數(shù)碼管會(huì)不顯示          
        while(1)
        {
               
                        if(ReadRTC_Flag)
                {
                        ReadRTC_Flag = 0 ;
                        tiaoshi();       
                        a_tmpdisplay[0]= miao%10;  //數(shù)據(jù)的轉(zhuǎn)換,因我們采用數(shù)碼管1~9的顯示,將數(shù)據(jù)分開
                        a_tmpdisplay[1]= miao/10;
                        a_tmpdisplay[2]= 10;
                        a_tmpdisplay[3]= fen%10;
                        a_tmpdisplay[4]= fen/10;          
                        a_tmpdisplay[5]= 10;
                        a_tmpdisplay[6]= shi%10;
                        a_tmpdisplay[7]= shi/10;
                                                                  
                        if(shan==1)
                        {
                                shanshuo();
                                if(mie==1)
                                {
                                //        if(xuan>3) xuan=1;       
                                   switch(xuan)
                                   {
                                                case 1: a_tmpdisplay[7]=11,a_tmpdisplay[6]=11;break;
                                                case 2:        a_tmpdisplay[4]=11,a_tmpdisplay[3]=11;break;
                                                case 3:        a_tmpdisplay[1]=11,a_tmpdisplay[0]=11;break;
               
                                        }
                                                     
                                  }
                        }                                 
                }  
        }                       
}

void tim(void) interrupt 1 using 1   //中斷,用于數(shù)碼管掃描
{
        static unsigned char i,num;
        TH0=0xf5;
        TL0=0xe0;
        P0=smgduan[a_tmpdisplay[i]]; //查表法得到要顯示數(shù)字的數(shù)碼段
        switch(i)
                        {
                                case(0):
                                                LC = 0; LB = 0; LA = 0; break;
                                case(1):
                                                LC = 0; LB = 0; LA = 1; break;
                                case(2):
                                                LC = 0; LB = 1; LA = 0; break;
                                case(3):
                                                LC = 0; LB = 1; LA = 1; break;
                                case(4):                       
                                                LC = 1; LB = 0; LA = 0; break;
                                case(5):                       
                                                LC = 1; LB = 0; LA = 1; break;
                                case(6):                 
                                                LC = 1; LB = 1; LA = 0; break;
                                case(7):                 
                                                LC = 1; LB = 1; LA = 1; break;       
                        }
                        i++;
                        if(i==8)
                        {
                                i=0;
                                        num++;
                                if(10==num)                   // 隔斷時(shí)間讀取1302數(shù)據(jù), 時(shí)間間隔可以調(diào)整
                                        {
                                                ReadRTC_Flag=1;          //使用標(biāo)志位判斷
                                                num=0;
                                        }
                                       
                        }
                         

回復(fù)

使用道具 舉報(bào)

ID:25310 發(fā)表于 2019-12-16 08:07 | 顯示全部樓層
重上電時(shí)間間隔多少?確認(rèn)單片機(jī)VCC供電電壓到0V再上電看看。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-12-16 09:25 | 顯示全部樓層
僅憑這點(diǎn)程序片段不足以證明樓主的判斷。
回復(fù)

使用道具 舉報(bào)

ID:25310 發(fā)表于 2019-12-16 09:53 | 顯示全部樓層
你讀的時(shí)1302的時(shí)間啊,1302即使掉電很長(zhǎng)時(shí)間電源腳的電容都可以提供能量的,1-2分鐘不掉電都是有可能的,看你的電容大小了。
回復(fù)

使用道具 舉報(bào)

ID:664691 發(fā)表于 2019-12-16 22:37 | 顯示全部樓層
pcbboy 發(fā)表于 2019-12-16 08:07
重上電時(shí)間間隔多少?確認(rèn)單片機(jī)VCC供電電壓到0V再上電看看。

1.只是一個(gè)開發(fā)板,帶上重新燒錄程式顯示 00-00-00  按鍵功能正常,斷電后重新上電(間隔無論多長(zhǎng)時(shí)間都一樣)就顯示 85-62-32,按鍵功能也無反應(yīng),所以我認(rèn)為重新上電后while語句沒執(zhí)行。
回復(fù)

使用道具 舉報(bào)

ID:664691 發(fā)表于 2019-12-16 22:45 | 顯示全部樓層
pcbboy 發(fā)表于 2019-12-16 09:53
你讀的時(shí)1302的時(shí)間啊,1302即使掉電很長(zhǎng)時(shí)間電源腳的電容都可以提供能量的,1-2分鐘不掉電都是有可能的, ...

1. 其實(shí)我沒讀1302時(shí)間的(我準(zhǔn)備去做這個(gè)程式:1302調(diào)時(shí)間)
2. 我只是先寫一個(gè)這樣的:上電數(shù)碼管顯示 00-00-00 然后通過3個(gè)按鍵來改變這3位數(shù)字顯示
3.之前一上電也是顯示(我一開始就設(shè)定顯示): 00-00-00  因?yàn)橐簧想姾蟀存I無功能(重新燒錄程式有功能)。為了區(qū)分while語句是否被執(zhí)行,所以我開開始就把顯示定義為:85-62-32
回復(fù)

使用道具 舉報(bào)

ID:664691 發(fā)表于 2019-12-17 19:26 | 顯示全部樓層
哪位大神了幫幫忙  為什么是這樣?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表