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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2063|回復: 7
打印 上一主題 下一主題
收起左側

單片機P1擴展端口的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:242464 發表于 2018-11-6 10:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  請教論壇的高手 ,我用74hc373給P1擴展了一個端口,EN接地LE接P3.1。程序運行控制外設都正常,就是在上電的時候373的總是有數據輸出,造成外設誤動。我在程序的初始化及相關的子函數里做了屏蔽但都沒有效果。不知各位是否遇到過。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:97554 發表于 2018-11-6 12:13 | 只看該作者
沒有程序,不知道是不是在開關機的時候該對373的11腳進行一下操作,將373的輸出端鎖存的數據清空
回復

使用道具 舉報

板凳
ID:242464 發表于 2018-11-6 15:37 | 只看該作者
程序比較長所以沒有上。不過我在程序的初始化及相關的子函數里已經對373的11進行過操作了。
#define ADC0809_bus P1      // DB0-DB7 :8位數據線
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諼甯齙緋中的數據
        if(m!=7)     //查看ARM中的數據是否為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);//顯示        -固定顯示小數點.
        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);//顯示農歷兩個字
       // lcd_defcharacter16x16(25,16,1,10,tab6);//顯示狗字
        lcd_defcharacter16x16(27,16,1,19,tab1);//顯示年字
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關閉(單充送電關閉)
              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;                         //進入調整模式
                  while(!Set);      //等待Set為1
                                }
            }
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關閉(單充送電關閉)
              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伏送電關閉(單充送電關閉)
              delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;
}
這種形式的也用過:
ADC0809_bus =0XFF
delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;
回復

使用道具 舉報

地板
ID:94031 發表于 2018-11-6 15:43 | 只看該作者
上電可以馬上初始化74hc373,防止誤動作。
回復

使用道具 舉報

5#
ID:242464 發表于 2018-11-6 15:48 | 只看該作者
我在程序的初始化及相關的子函數里做了操作。
回復

使用道具 舉報

6#
ID:242464 發表于 2018-11-6 15:56 | 只看該作者
楊雪飛 發表于 2018-11-6 12:13
沒有程序,不知道是不是在開關機的時候該對373的11腳進行一下操作,將373的輸出端鎖存的數據清空

我在程序的初始化及相關的子函數里做了操作,這是我做的操作的部分內容:
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位數據線
............
//**************************
//模式選擇按鍵(進入菜單程序)
//**************************
void Setkey()
{
                Set=1;
                if(Set==0)                  //菜單鍵按set為零
            {
                delay(30);
                if(Set==0)
                                {
                  count=count+1;         //Setkey按一次,count就加1
                          done=1;                         //進入調整模式
                  while(!Set);      //等待Set為1
                                }
            }
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關閉(單充送電關閉)
              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伏送電關閉(單充送電關閉)
              delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;
}
.........
main()
{
        lcd_showfull(0);                                           //清屏
        init6963(); //初始化
        m=ReadSet1302(0xdf);//讀取ARM諼甯齙緋中的數據
        if(m!=7)     //查看ARM中的數據是否為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);//顯示        -固定顯示小數點.
        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);//顯示農歷兩個字
       // lcd_defcharacter16x16(25,16,1,10,tab6);//顯示狗字
        lcd_defcharacter16x16(27,16,1,19,tab1);//顯示年字
              QDA=1;           //J5動作給電池組充電
              QDB=1;
              QDC=1;
              dcsd=1;              //12伏送電關閉(單充送電關閉)
              delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;
這種模式也用過:
ADC0809_bus=0xff;
delay1(20);
              cdxk=1;
              delay1(20);
              cdxk=0;
回復

使用道具 舉報

7#
ID:387733 發表于 2018-11-6 19:10 | 只看該作者
OE引腳為輸出三態控制端,當OE為高電平時,輸出O0-O7呈高阻態,因此可以在該引腳接一個阻容,使上電時保持高電平,確保初始化完成前沒有輸出
回復

使用道具 舉報

8#
ID:94031 發表于 2018-11-7 09:16 | 只看該作者
本帖最后由 xuyaqi 于 2018-11-7 10:38 編輯
LWB2005_2 發表于 2018-11-6 15:48
我在程序的初始化及相關的子函數里做了操作。

可以在硬件74hc373有關腳上加電容,延遲響應一段時間,避過上電瞬間。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲人a | 日韩乱码在线 | 免费看91| 国产一区二区久久久 | 91久久精品一区二区二区 | 97超碰中文网| 久久久久久www | 色偷偷噜噜噜亚洲男人 | 国产中文字幕在线观看 | 另类视频在线 | 欧美精品一区二区免费视频 | 欧洲在线视频 | 精品伊人久久 | 日韩一区二区三区在线播放 | 亚洲视频中文字幕 | 国产精品揄拍一区二区久久国内亚洲精 | 一区欧美 | www.色.com| 亚洲高清在线观看 | 国产农村一级片 | 一级黄色影片在线观看 | 久久久久综合 | 日韩精品激情 | 高清视频一区二区三区 | 国产精品毛片一区二区三区 | 国产精品久久久久无码av | 欧州一区二区三区 | 色爱综合 | 久久综合九九 | 国产精品久久 | 国内精品视频在线 | 日韩成人性视频 | 福利久久 | 成人性视频在线播放 | 欧美xxxⅹ性欧美大片 | 久久精品国产免费 | 欧美精品一区三区 | 国产高清在线精品 | 欧美综合一区 | 国产乱码精品一区二区三区中文 | 操射视频 |