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

標(biāo)題: 單片機P1擴展端口的問題 [打印本頁]

作者: LWB2005_2    時間: 2018-11-6 10:37
標(biāo)題: 單片機P1擴展端口的問題
  請教論壇的高手 ,我用74hc373給P1擴展了一個端口,EN接地LE接P3.1。程序運行控制外設(shè)都正常,就是在上電的時候373的總是有數(shù)據(jù)輸出,造成外設(shè)誤動。我在程序的初始化及相關(guān)的子函數(shù)里做了屏蔽但都沒有效果。不知各位是否遇到過。

作者: 楊雪飛    時間: 2018-11-6 12:13
沒有程序,不知道是不是在開關(guān)機的時候該對373的11腳進行一下操作,將373的輸出端鎖存的數(shù)據(jù)清空
作者: LWB2005_2    時間: 2018-11-6 15:37
程序比較長所以沒有上。不過我在程序的初始化及相關(guān)的子函數(shù)里已經(jīng)對373的11進行過操作了。
#define ADC0809_bus P1      // DB0-DB7 :8位數(shù)據(jù)線
sbit cdxk=P3^1;              //電池充電許可(373的11腳)
sbit QDA=P1^3;
sbit QDB=P1^4;
sbit QDC=P1^5;
sbit dcsd=P1^6;
.......
lcd_showfull(0);                                           //清屏
        init6963(); //初始化
        m=ReadSet1302(0xdf);//讀取ARM諼甯齙緋中的數(shù)據(jù)
        if(m!=7)     //查看ARM中的數(shù)據(jù)是否為7
        Init_DS1302();       //初始化1302

        lcd_defcharacter8x16(0,0,1,2,tab2);//顯示    2-固定顯示
        lcd_defcharacter8x16(1,0,1,0,tab2);//顯示    0-固定顯示  
        lcd_defcharacter16x16(4,0,1,0,tab1);//顯示   年-固定顯示
        lcd_defcharacter16x16(8,0,1,1,tab1);//顯示   月-固定顯示
        lcd_defcharacter16x16(12,0,1,2,tab1);//顯示 日-固定顯示
        lcd_defcharacter16x16(15,0,1,3,tab1);//顯示 星-固定顯示
        lcd_defcharacter16x16(17,0,1,4,tab1);//顯示 期-固定顯示
        lcd_defcharacter16x16(21,0,1,20,tab1);//顯示 -固定顯示溫度計圖片
        lcd_defcharacter8x16(26,0,1,10,tab2);//顯示        -固定顯示小數(shù)點.
        lcd_defcharacter16x16(28,0,1,21,tab1);//顯示 -固定顯示攝氏度圖片         
        lcd_defcharacter8x48(6,16,1,0,tab4);//顯示-固定顯示:(前兩點)
        lcd_defcharacter8x48(13,16,1,0,tab4);//顯示-固定顯示:(后兩點)
        lcd_defcharacter16x16(21,16,2,17,tab1);//顯示農(nóng)歷兩個字
       // lcd_defcharacter16x16(25,16,1,10,tab6);//顯示狗字
        lcd_defcharacter16x16(27,16,1,19,tab1);//顯示年字
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關(guān)閉(單充送電關(guān)閉)
              delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;
........
//模式選擇按鍵(進入菜單程序)
//**************************
void Setkey()
{
                Set=1;
                if(Set==0)                  //菜單鍵按set為零
            {
                delay(30);
                if(Set==0)
                                {
                  count=count+1;         //Setkey按一次,count就加1
                          done=1;                         //進入調(diào)整模式
                  while(!Set);      //等待Set為1
                                }
            }
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關(guān)閉(單充送電關(guān)閉)
              delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;

}

//**************************
//進入充電模式選擇按鍵
//**************************
void jrcd()
{
                CDMS=1;
                if(CDMS==0)
            {
                delay(30);
                if(CDMS==0)
                                {
               
                          done1=1;                         //進入充電模式
                  while(!CDMS);
                                }
            }
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關(guān)閉(單充送電關(guān)閉)
              delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;
}
這種形式的也用過:
ADC0809_bus =0XFF
delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;

作者: xuyaqi    時間: 2018-11-6 15:43
上電可以馬上初始化74hc373,防止誤動作。
作者: LWB2005_2    時間: 2018-11-6 15:48
我在程序的初始化及相關(guān)的子函數(shù)里做了操作。
作者: LWB2005_2    時間: 2018-11-6 15:56
楊雪飛 發(fā)表于 2018-11-6 12:13
沒有程序,不知道是不是在開關(guān)機的時候該對373的11腳進行一下操作,將373的輸出端鎖存的數(shù)據(jù)清空

我在程序的初始化及相關(guān)的子函數(shù)里做了操作,這是我做的操作的部分內(nèi)容:
sbit cdxk=P3^1;              //電池充電許可(373的11腳)
sbit QDA=P1^3;
sbit QDB=P1^4;
sbit QDC=P1^5;
sbit dcsd=P1^6;
#define ADC0809_bus P1      // DB0-DB7 :8位數(shù)據(jù)線
............
//**************************
//模式選擇按鍵(進入菜單程序)
//**************************
void Setkey()
{
                Set=1;
                if(Set==0)                  //菜單鍵按set為零
            {
                delay(30);
                if(Set==0)
                                {
                  count=count+1;         //Setkey按一次,count就加1
                          done=1;                         //進入調(diào)整模式
                  while(!Set);      //等待Set為1
                                }
            }
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關(guān)閉(單充送電關(guān)閉)
              delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;

}

//**************************
//進入充電模式選擇按鍵
//**************************
void jrcd()
{
                CDMS=1;
                if(CDMS==0)
            {
                delay(30);
                if(CDMS==0)
                                {
               
                          done1=1;                         //進入充電模式
                  while(!CDMS);
                                }
            }
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關(guān)閉(單充送電關(guān)閉)
              delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;
}
.........
main()
{
        lcd_showfull(0);                                           //清屏
        init6963(); //初始化
        m=ReadSet1302(0xdf);//讀取ARM諼甯齙緋中的數(shù)據(jù)
        if(m!=7)     //查看ARM中的數(shù)據(jù)是否為7
        Init_DS1302();       //初始化1302

        lcd_defcharacter8x16(0,0,1,2,tab2);//顯示    2-固定顯示
        lcd_defcharacter8x16(1,0,1,0,tab2);//顯示    0-固定顯示  
        lcd_defcharacter16x16(4,0,1,0,tab1);//顯示   年-固定顯示
        lcd_defcharacter16x16(8,0,1,1,tab1);//顯示   月-固定顯示
        lcd_defcharacter16x16(12,0,1,2,tab1);//顯示 日-固定顯示
        lcd_defcharacter16x16(15,0,1,3,tab1);//顯示 星-固定顯示
        lcd_defcharacter16x16(17,0,1,4,tab1);//顯示 期-固定顯示
        lcd_defcharacter16x16(21,0,1,20,tab1);//顯示 -固定顯示溫度計圖片
        lcd_defcharacter8x16(26,0,1,10,tab2);//顯示        -固定顯示小數(shù)點.
        lcd_defcharacter16x16(28,0,1,21,tab1);//顯示 -固定顯示攝氏度圖片         
        lcd_defcharacter8x48(6,16,1,0,tab4);//顯示-固定顯示:(前兩點)
        lcd_defcharacter8x48(13,16,1,0,tab4);//顯示-固定顯示:(后兩點)
        lcd_defcharacter16x16(21,16,2,17,tab1);//顯示農(nóng)歷兩個字
       // lcd_defcharacter16x16(25,16,1,10,tab6);//顯示狗字
        lcd_defcharacter16x16(27,16,1,19,tab1);//顯示年字
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關(guān)閉(單充送電關(guān)閉)
              delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;
這種模式也用過:
ADC0809_bus=0xff;
delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;

作者: sxhwdz    時間: 2018-11-6 19:10
OE引腳為輸出三態(tài)控制端,當(dāng)OE為高電平時,輸出O0-O7呈高阻態(tài),因此可以在該引腳接一個阻容,使上電時保持高電平,確保初始化完成前沒有輸出
作者: xuyaqi    時間: 2018-11-7 09:16
本帖最后由 xuyaqi 于 2018-11-7 10:38 編輯
LWB2005_2 發(fā)表于 2018-11-6 15:48
我在程序的初始化及相關(guān)的子函數(shù)里做了操作。

可以在硬件74hc373有關(guān)腳上加電容,延遲響應(yīng)一段時間,避過上電瞬間。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1