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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2103|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人欧美一区二区 | 99精品久久久 | 奇米av| 久久国产精品一区二区三区 | a久久久久久 | 欧美成人h版在线观看 | 日韩视频中文字幕 | 亚洲精品一区在线 | 亚洲三级av| 91网站在线观看视频 | 国产精品毛片久久久久久久 | 成人精品视频在线 | 91精品无人区卡一卡二卡三 | 久久精品中文字幕 | av在线天堂 | 国产亚洲精品久久久久动 | 精品免费 | 欧美二区在线 | 美女久久 | 激情一区二区三区 | 精品一区电影 | av先锋资源 | 久久久久久久久久一区二区 | 中文字幕乱码亚洲精品一区 | 伊人婷婷 | 亚洲精品久久久久中文字幕欢迎你 | 天天碰日日操 | 国产精品一区二区三区在线 | 日本黄色免费视频 | 亚洲精品成人 | 久久一| 黄色免费在线观看网站 | 久久精品久久久 | 久久久久久久网 | 欧美性吧| 中文字幕日韩一区 | 国产资源在线视频 | 免费观看一级毛片 | 国产日韩一区二区三区 | 欧美一区二区三区视频 | 亚洲精品 在线播放 |