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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于DS1302與51系列單片機IO口的問題,你們遇到過嗎

[復制鏈接]
跳轉到指定樓層
樓主
ID:641483 發表于 2023-9-11 16:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51系統:stc12c5a60s2單片機最小系統
晶振:12M
時間模塊:DS1203 連接端口:P1.5 、P1.6、P1.7
顯示模塊MAX7219 連接端口:P2.0、P2.1、 P2.2
按鍵4個 P3.2-P3.3、P3.4、P3.5
串行輸入:P3.0\P3.1

用上面的連接DS1203時間模 P1.5 -1.7口作為數據輸入口,所有功能正常。把P1.0-4端口設置成AD轉換后,ad轉換正常,除時間模塊無法通訊外,其他功能都正常。

把時間模塊換到P2的5-7端也是無法數據通訊的,同時刷回之前正常顯示的程序也無顯示(當然修改了對應的IO口)
奇怪的是換到P3和P0加上拉電阻后也一樣,時間模塊無法通訊 就好像沒連接上一樣。
疑問一:難道DS1302 與其他輸出輸入共用Px端口就不能通訊?如何解?
疑問二:我看了好多DS1302的例子 都是接的P1口,是這個模塊接只能接這個IO嗎?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:161164 發表于 2023-9-11 17:56 | 只看該作者
代碼呢?
回復

使用道具 舉報

板凳
ID:94031 發表于 2023-9-11 18:10 | 只看該作者
肯定DS1302可以接P1以外的其他口,但IO要初始化正確,不能與其它功能沖突。
回復

使用道具 舉報

地板
ID:641483 發表于 2023-9-11 18:36 | 只看該作者
xuyaqi 發表于 2023-9-11 18:10
肯定DS1302可以接P1以外的其他口,但IO要初始化正確,不能與其它功能沖突。

是都定義了IO口 并且都設置了推挽輸出 但還是不行 P0 口啥都沒接  上拉4.7k電阻都還是沒有數據通訊 當然端口定義和連線都檢測過,難道是單片IC問題?
回復

使用道具 舉報

5#
ID:213173 發表于 2023-9-11 19:25 | 只看該作者
Q__Q 發表于 2023-9-11 18:36
是都定義了IO口 并且都設置了推挽輸出 但還是不行 P0 口啥都沒接  上拉4.7k電阻都還是沒有數據通訊 當然 ...

與DS1302連接的端口設置為準雙向模式為宜,只要不與其它功能沖突,隨便哪個IO口都可以正常使用。
回復

使用道具 舉報

6#
ID:1085441 發表于 2023-9-12 02:02 | 只看該作者
DS1302我用過幾次,可以肯定P0~P4都是可以的,我都是設置為準雙向IO口,SDIO引腳必須上拉電阻,其它就沒有問題了。
我估計可能還是你的初始化有問題,會不會沒有把DS1302的3個引腳沒有設置為準雙向口?
回復

使用道具 舉報

7#
ID:965189 發表于 2023-9-12 07:33 | 只看該作者
P0-P5端口隨便配,估計你是端口設置的問題。
回復

使用道具 舉報

8#
ID:1065084 發表于 2023-9-12 10:01 | 只看該作者
教你一個debug神技能,裁剪法 把無用代碼裁剪掉,并使用比如一個led作為標志位,不斷修改標志led亮起的位置,從而檢查代碼哪里出錯了。就這么說吧,新手遇到的99.99%錯誤都是自己問題,和別人無關。一般我裁剪到只有某個模塊核心代碼位置才能找到問題。所謂的10%的時間寫bug 90%時間找bug 不夸張的。
回復

使用道具 舉報

9#
ID:641483 發表于 2023-9-12 10:09 | 只看該作者
cnfloatleaf 發表于 2023-9-12 02:02
DS1302我用過幾次,可以肯定P0~P4都是可以的,我都是設置為準雙向IO口,SDIO引腳必須上拉電阻,其它就沒有 ...

謝謝,我設置過雙向輸出,但是還是故障依舊  我懷疑是不是我電路搭建問題,
在運行過程中,特別是顯示刷新比較多的時候,會聽到有細微的“吱”高頻聲,目前沒聽出是7219發出的還是 搭建的最小板發出了,我準備重新搭下電路試試
回復

使用道具 舉報

10#
ID:641483 發表于 2023-9-12 10:14 | 只看該作者
cnfloatleaf 發表于 2023-9-12 02:02
DS1302我用過幾次,可以肯定P0~P4都是可以的,我都是設置為準雙向IO口,SDIO引腳必須上拉電阻,其它就沒有 ...

其實我也想 所有端口應該是隨便用都可以的,但是,試過MAX7219使用P2口 后1302也用回P2的IO口就沒數據, 懷疑是電路干擾的問題,回去我貼程序出來給大家看看
回復

使用道具 舉報

11#
ID:641483 發表于 2023-9-12 10:16 | 只看該作者
yuxuesuixing 發表于 2023-9-12 10:01
教你一個debug神技能,裁剪法 把無用代碼裁剪掉,并使用比如一個led作為標志位,不斷修改標志led亮起的位置 ...

嗯 這個方法應該很好,我回去再試試,感覺修改來修改去 越搞越糊涂了
回復

使用道具 舉報

12#
ID:641483 發表于 2023-9-12 23:05 | 只看該作者

程序如下


#include "STC12C5A60S2.H"
#include "intrins.h"
#include "Max7219.h"


uchar code shuzi_1[][8]={
{0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x3C},//0
{0x18,0x38,0x18,0x18,0x18,0x18,0x18,0x7E},//1
{0x3C,0x66,0x46,0x0C,0x18,0x20,0x66,0x7E},//2
{0x3C,0x66,0x06,0x18,0x0C,0x06,0x46,0x3C},//3
{0x0C,0x1C,0x2C,0x6C,0x6C,0x7E,0x0C,0x0C},//4
{0x7E,0x60,0x60,0x7C,0x06,0x46,0x66,0x3C},//5
{0x3C,0x62,0x60,0x7C,0x66,0x66,0x66,0x3C},//6
{0x7E,0x46,0x04,0x0C,0x08,0x18,0x18,0x18},//7
{0x3C,0x66,0x66,0x3C,0x66,0x66,0x66,0x3C},//8
{0x3C,0x66,0x66,0x66,0x1E,0x06,0x46,0x3C},//9
{0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00},//:
{0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00},//-
{0x3C,0x42,0x91,0x91,0x9D,0x81,0x42,0x3C},//time
{0x20,0x7E,0x08,0x3C,0x28,0x7E,0x08,0x00},//年
{0x3E,0x22,0x3E,0x22,0x3E,0x22,0x42,0x00},//月
{0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E,0x00},//日
{0x10,0x18,0x1C,0x1E,0x1C,0x18,0x10,0x00},//箭頭
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//空
};


//----------------------------------------
/*聲明ADC相關寄存器 */
//sfr ADC_CONTR   =   0xBC;           //ADC 控制寄存器
//sfr ADC_RES     =   0xBD;           //ADC 高8位結果寄存器
//sfr ADC_LOW2    =   0xBE;           //ADC 低2位結果寄存器
//sfr P1ASF       =   0x9D;           //P1 輔助控制寄存器

/*ADC操作的一些宏定義*/
#define ADC_POWER   0x80            //ADC power control bit
#define ADC_FLAG    0x10            //ADC complete flag
#define ADC_START   0x08            //ADC start control bit
#define ADC_SPEEDLL 0x00            //420 clocks
#define ADC_SPEEDL  0x20            //280 clocks
#define ADC_SPEEDH  0x40            //140 clocks
#define ADC_SPEEDHH 0x60            //70 clocks



//校時按鍵與C51的引腳連接定義
sbit key1=P3^2;  //設置鍵
sbit key2=P3^3;  //加鍵
sbit key3=P3^4;  //減鍵
sbit key4=P3^5;  //減鍵

sbit SCLK=P2^6;          //1302引腳位變量定義
sbit IO=P2^7;
sbit RST=P2^5;

uchar a,h,ms,sec,min,shi,nian,yue,ri,xingqi,key4n,v1,tt,tt1;
uchar second,minute,hour,week,day,month,year;    //定義年,月,日,星期,時,分,秒計數變量

sbit ACC0=ACC^0;
sbit ACC7=ACC^7;

void delay(uint xms)//延時函數,有參函數
{
        uint x,y;
        for(x=xms;x>0;x--)
         for(y=110;y>0;y--);
}


//--------1302----//
void write_byte(uchar dat)//1302寫一個字節
{
        ACC=dat;
        RST=1;
        for(a=8;a>0;a--)
        {
                IO=ACC0;
                SCLK=0;
                SCLK=1;
                ACC=ACC>>1;
        }
}

uchar read_byte()//1302讀一個字節
{
        RST=1;
        for(a=8;a>0;a--)
        {
                ACC7=IO;
                SCLK=1;
                SCLK=0;
                ACC=ACC>>1;

        }
        return (ACC);
}

void write_1302(uchar add,uchar dat)//向1302芯片寫函數
{

        RST=0;
        SCLK=0;
        RST=1;
        write_byte(add);
        write_byte(dat);
        SCLK=1;
        RST=0;
}


uchar read_1302(uchar add)//從1302讀數據函數
{
        uchar temp;
        RST=0;
        SCLK=0;
        RST=1;
        write_byte(add);
        temp=read_byte();
        SCLK=1;
        RST=0;
        return(temp);
}

void ds1302_init()
回復

使用道具 舉報

13#
ID:235200 發表于 2023-9-13 08:26 | 只看該作者
一是P26 P27需接上拉電阻,二是讀寫程序的時序必須嚴格,滿足這兩個條件后就沒有問題了
回復

使用道具 舉報

14#
ID:641483 發表于 2023-9-13 10:44 | 只看該作者
csmyldl 發表于 2023-9-13 08:26
一是P26 P27需接上拉電阻,二是讀寫程序的時序必須嚴格,滿足這兩個條件后就沒有問題了

之前單獨用時鐘程序的時候,有顯示不完整情況,http://www.zg4o1577.cn/bbs/dpj-231413-1.html有在壇里請教過,后來只是在IO引腳P27上拉電阻就顯示完整了,但在p25、p26腳上拉電阻就又顯示不正常
回復

使用道具 舉報

15#
ID:641483 發表于 2023-9-15 10:03 | 只看該作者
終于找到問題了 是keil的版本問題,同樣的程序拷貝到keil4編譯后燒錄就正常了,但是在keil5能正常編譯,燒錄后就出現上述問題。感謝各位的熱情回答
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲另类视频 | 国产欧美日韩一区二区三区 | 一区二区三区国产精品 | 九九色综合 | 可以免费看的毛片 | 日韩成人免费av | 亚洲一区二区三区四区五区中文 | 韩日一区二区三区 | 亚洲精品一区中文字幕乱码 | 国产精品区二区三区日本 | 久久亚洲视频网 | 亚洲成人一区二区 | 91大片 | 美女亚洲一区 | 国产毛片av | 久久久久久看片 | 欧美精品一区在线 | 欧美精品久久久久 | 欧美在线天堂 | 亚洲天堂999 | 久久久久久久香蕉 | 91欧美| www狠狠爱com | 亚洲一区二区免费视频 | 精品电影| 久久高清国产 | 中国免费黄色片 | 亚洲福利一区二区 | 精品久久久网站 | 久久精品二区 | 一区二区三区四区国产精品 | 一区二区三区四区视频 | 手机av在线| 亚洲精品在 | 精品欧美一区二区三区久久久 | 三级黄色网址 | 亚洲国产二区 | 欧美男人天堂 | 在线欧美日韩 | 成人av免费在线观看 | 欧美激情视频网站 |