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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4007|回復: 12
收起左側

DS1302和DS18B20沖突了,DS1302的單片機代碼如下,如何做到使能不沖突呀

  [復制鏈接]
ID:1058451 發表于 2022-12-23 17:16 | 顯示全部樓層 |閱讀模式
#include <REGX52.H>

sbit DS1302_SCLK = P3^6;
sbit DS1302_IO = P3^4;
sbit DS1302_CE = P3^5;

#define DS1302_SECOND    0x80
#define DS1302_MINUTE    0x82
#define DS1302_HOUR      0x84
#define DS1302_DATE             0x86
#define DS1302_MONTH     0x88
#define DS1302_DAY       0x8A
#define DS1302_YEAR      0x8C
#define DS1302_WP        0x8E


char DS1302_Time[]={23,1,1,0,0,55,0,1};

void DS1302_Init()  ///LCD1602初始化
{
        DS1302_SCLK = 0;
        DS1302_CE = 0;
}
void DS1302_WriteByte(unsigned char Command,Date)
{
                unsigned char i;
                DS1302_CE = 1;
                for(i = 0 ; i < 8 ; i++)
        {
                DS1302_IO = Command&(0x01<<i);
                DS1302_SCLK = 1;
                DS1302_SCLK = 0;
               
        }
                for(i = 0 ; i < 8 ; i++)
        {
                DS1302_IO = Date&(0x01<<i);
                DS1302_SCLK = 1;
                DS1302_SCLK = 0;
               
        }
                DS1302_CE = 0;

}
unsigned char DS1302_ReadByte(unsigned char Command)
{
        unsigned char i,Date = 0x00;
        Command|= 0x01;
        DS1302_CE = 1;
                for(i = 0 ; i < 8 ; i++)
        {
                DS1302_IO = Command&(0x01<<i);
                DS1302_SCLK = 0;
                DS1302_SCLK = 1;
               
        }
        for(i = 0 ; i < 8 ; i++)
        {
                DS1302_SCLK = 1;
                DS1302_SCLK = 0;
                if(DS1302_IO){Date|=(0x01<<i);}
        }
                DS1302_CE = 0;
                DS1302_IO = 0;
                return Date;

        

}
void DS1302_SetTime()
{
        DS1302_WriteByte(DS1302_WP,0x00);
        DS1302_WriteByte(DS1302_YEAR,DS1302_Time[0]/10*16+DS1302_Time[0]%10); //十進制轉BCD碼
        DS1302_WriteByte(DS1302_MONTH,DS1302_Time[1]/10*16+DS1302_Time[1]%10);
        DS1302_WriteByte(DS1302_DATE,DS1302_Time[2]/10*16+DS1302_Time[2]%10);
        DS1302_WriteByte(DS1302_HOUR,DS1302_Time[3]/10*16+DS1302_Time[3]%10);
        DS1302_WriteByte(DS1302_MINUTE,DS1302_Time[4]/10*16+DS1302_Time[4]%10);
        DS1302_WriteByte(DS1302_SECOND,DS1302_Time[5]/10*16+DS1302_Time[5]%10);
        DS1302_WriteByte(DS1302_WP,0x80);
}
void DS1302_ReadTime()
{
        unsigned char Temp;
        Temp = DS1302_ReadByte(DS1302_YEAR);
        DS1302_Time[0] = Temp/16*10+Temp%16;
        Temp = DS1302_ReadByte(DS1302_MONTH);
        DS1302_Time[1] = Temp/16*10+Temp%16;
        Temp = DS1302_ReadByte(DS1302_DATE);
        DS1302_Time[2] = Temp/16*10+Temp%16;
        Temp = DS1302_ReadByte(DS1302_HOUR);
        DS1302_Time[3] = Temp/16*10+Temp%16;
        Temp = DS1302_ReadByte(DS1302_MINUTE);
        DS1302_Time[4] = Temp/16*10+Temp%16;
        Temp = DS1302_ReadByte(DS1302_SECOND);
        DS1302_Time[5] = Temp/16*10+Temp%16;
}

回復

使用道具 舉報

ID:1058451 發表于 2022-12-23 17:18 | 顯示全部樓層
本來是想做數字時鐘的,結果寫完溫度顯示,溫度卻一直顯示0
回復

使用道具 舉報

ID:824490 發表于 2022-12-24 09:46 | 顯示全部樓層
沖宊后是什么現象呢?
回復

使用道具 舉報

ID:230742 發表于 2022-12-24 12:53 | 顯示全部樓層
壇里有很多的1302和18B20的鐘的程序。找一個參考一下。
回復

使用道具 舉報

ID:1034262 發表于 2022-12-24 15:30 | 顯示全部樓層
兩個接口都不一樣,怎么會有沖突?想不明白。
回復

使用道具 舉報

ID:383215 發表于 2022-12-24 16:20 | 顯示全部樓層
從程序來看,連中斷都沒有,怎么可能會有沖突?
回復

使用道具 舉報

ID:1058451 發表于 2022-12-24 20:00 | 顯示全部樓層
名字不是重點 發表于 2022-12-24 09:46
沖宊后是什么現象呢?

溫度在LCD1602上顯示為零
回復

使用道具 舉報

ID:190577 發表于 2022-12-25 09:37 | 顯示全部樓層
succzhu 發表于 2022-12-24 20:00
溫度在LCD1602上顯示為零

這個應該DS1820程序有問題的
回復

使用道具 舉報

ID:155507 發表于 2022-12-25 17:48 | 顯示全部樓層
DS18B20的溫度轉換時間較長,不可以讓程序在那里一直等待轉換結束,執行完轉換指令后去做其他事情,大約800ms以上在讀取時間值。

這是51黑論壇里面別人相似問題的解決過程
http://www.zg4o1577.cn/bbs/dpj-133151-1.html

http://www.zg4o1577.cn/bbs/dpj-158535-1.html

http://www.zg4o1577.cn/bbs/dpj-58310-1.html
回復

使用道具 舉報

ID:584814 發表于 2022-12-26 12:27 | 顯示全部樓層
DS1302和DS18B20很難有沖突,但有些學習板上為二選一跳線。
程序不全不知道你主程序里寫的是啥所以顯示啥也呵呵呵。
不要讓別人幫你算命,有問題就全貼上來,你認為有問題的地方未必真有問題...
回復

使用道具 舉報

ID:401564 發表于 2022-12-26 23:04 | 顯示全部樓層
兩個通訊方式都不一樣的東西,不會有干擾
而且,兩個都是單片機入門的知識點
你duang就是一堆代碼上來,其實不是找不到問題,你只是想做伸手黨,什么都不用思考,直接白嫖
回復

使用道具 舉報

ID:77589 發表于 2022-12-27 11:06 | 顯示全部樓層
兩個東西各干各事,怎么沖突的呢?
回復

使用道具 舉報

ID:1047841 發表于 2022-12-27 11:54 | 顯示全部樓層
首先你得確認一下單個的模塊 例如DS1302的顯示是否正常,單個的模塊 DS18B20能否正常顯示;可以了以后只需將兩部分代碼進行疊加即可,不過得注意顯示的位置,如果在LCD1602的上顯示的話 注意顯示要分開,ds1302放在第一行顯示,ds18b20放在第二行顯示即可;
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.亚洲一区 | 在线中文字幕日韩 | aaa天堂| 久久精品亚洲国产 | 99热在这里只有精品 | 国产福利资源在线 | 国产日韩欧美在线播放 | 亚洲成人一区 | 羞羞的视频在线 | 青青草国产在线观看 | 国产精品一区二区在线 | 五月天激情综合网 | 久久午夜影院 | 美女在线观看av | 精品久久成人 | 久久九七 | 日韩欧美专区 | 中文字幕在线观看一区 | 欧美成人综合 | 91国自视频 | www亚洲一区| 精品国产一区二区 | 久久综合爱 | 中文字幕在线观看av | 免费一区二区三区 | 精品久久久久久久久久久下田 | 成人国产精品免费观看 | 午夜精品久久久久久不卡欧美一级 | 国产精品99久久久久久www | 亚洲欧美日韩精品久久亚洲区 | 亚洲国产中文字幕 | 免费黄色的视频 | 久久久久国产一区二区三区 | 国产一区二区三区四区三区四 | 欧美日韩视频在线 | 日本免费一区二区三区四区 | 国产精品精品视频一区二区三区 | 欧美a在线 | 男人天堂av网 | 久久成人精品一区二区三区 | 国产欧美一区二区三区久久人妖 |