久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1935|回復: 6
收起左側

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

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

                         a_tmpdisplay[0]= 2;  //數據的轉換,因我們采用數碼管1~9的顯示,將數據分開
                         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語句里數碼管會不顯示          
        while(1)
        {
               
                        if(ReadRTC_Flag)
                {
                        ReadRTC_Flag = 0 ;
                        tiaoshi();       
                        a_tmpdisplay[0]= miao%10;  //數據的轉換,因我們采用數碼管1~9的顯示,將數據分開
                        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   //中斷,用于數碼管掃描
{
        static unsigned char i,num;
        TH0=0xf5;
        TL0=0xe0;
        P0=smgduan[a_tmpdisplay[i]]; //查表法得到要顯示數字的數碼段
        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)                   // 隔斷時間讀取1302數據, 時間間隔可以調整
                                        {
                                                ReadRTC_Flag=1;          //使用標志位判斷
                                                num=0;
                                        }
                                       
                        }
                         

回復

使用道具 舉報

ID:25310 發表于 2019-12-16 08:07 | 顯示全部樓層
重上電時間間隔多少?確認單片機VCC供電電壓到0V再上電看看。
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

1. 其實我沒讀1302時間的(我準備去做這個程式:1302調時間)
2. 我只是先寫一個這樣的:上電數碼管顯示 00-00-00 然后通過3個按鍵來改變這3位數字顯示
3.之前一上電也是顯示(我一開始就設定顯示): 00-00-00  因為一上電后按鍵無功能(重新燒錄程式有功能)。為了區分while語句是否被執行,所以我開開始就把顯示定義為:85-62-32
回復

使用道具 舉報

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲品质自拍视频网站 | 国产一区亚洲二区三区 | 亚洲黄色av网站 | 色婷婷av久久久久久久 | 中文字幕在线观看成人 | 香蕉婷婷 | 中文字幕av第一页 | 99久久99热这里只有精品 | 欧美日韩国产在线 | 免费看欧美一级片 | 岛国视频| 国产电影一区二区三区爱妃记 | 成人av网站在线观看 | 鸳鸯谱在线观看高清 | 精品日韩欧美一区二区 | 天堂成人国产精品一区 | 福利国产 | 国产伦精品一区二区三区高清 | 伊人伊人伊人 | 暖暖成人免费视频 | 久久精品久久久久久 | 奇米四色影视 | 在线播放中文 | 成人国产在线视频 | 国产99久久久久 | 国产99久久精品一区二区永久免费 | 精品国产免费一区二区三区五区 | 另类在线 | 国产精品久久久久久久久久免费 | 黄色毛片在线观看 | 99久久精品免费视频 | 国产电影一区二区三区爱妃记 | 少妇无套高潮一二三区 | 91豆花视频 | 日本一二三区在线观看 | 婷婷中文字幕 | 色.com| a在线观看| 欧美a级成人淫片免费看 | 亚洲一区二区三区视频在线 | 久久网一区二区 |