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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2829|回復: 8
收起左側

大佬們 為什么我的數碼管不亮呀?附單片機程序

[復制鏈接]
ID:945882 發表于 2021-6-28 10:34 | 顯示全部樓層 |閱讀模式
BF)D~Y2R(}G9~B4JPC]GX9C.png
寫完之后發現數碼管不亮 希望大佬們幫我看一看

#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
        
sbit DQ = P2^7;
sbit LED0=P2^0;
sbit LED1=P2^1;
sbit LED2=P2^2;
sbit LED3=P2^3;

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};  //7seg-mpx4-cc
uchar displaydata[]={0,0,0,0};
uchar time;
void delay(uint ms)
{
        uint i,j;
        for(i=0;i<ms;i++)
        for(j=0;j<124;j++);
}

/*
ds18b20  chushihua
*/
uchar initds18b20()
{
        bit flag;
        DQ=1;
        for(time=0;time<2;time++);
        DQ=0;
        for(time=0;time<200;time++);
        DQ=1;
        for(time=0;time<10;time++);
        flag=DQ;
        for(time=0;time<100;time++);
        DQ=1;
        return flag;
}

/*
read ds18b20
*/
uchar ds18b20read()
{
        uchar i,dat;
        DQ=1;
        for(time=0;time<2;time++);
        for(i=0;i<8;i++)
        {
                DQ=0;
                _nop_();
                _nop_();
                DQ=1;
                dat>>=1;
                for(time=0;time<1;time++);
                if(DQ==1)
                        dat|=0x80;
                else
                        dat|=0x00;
                for(time=0;time<10;time++);
        }
        return dat;
}

/*
write ds18b20
*/

void ds18b20write(uchar dat)
{
        uchar i;
        DQ=1;
        for(time=0;time<2;time++);
        for(i=0;i<8;i++)
        {
                DQ=0;
                _nop_();
                _nop_();
                DQ=dat&0x01;
                for(time=0;time<20;time++);
                DQ=1;
                for(time=0;time<1;time++);
                dat>>=1;
        }
}

/*
read temp ds18b20
*/

int ds18b20readtemp()
{
        uchar a,b;
        int temp=0;
        while(initds18b20());
        ds18b20write(0xcc);
        ds18b20write(0x44);
        while(initds18b20());
        ds18b20write(0xcc);
        ds18b20write(0xbe);
        a=ds18b20read();
        b=ds18b20read();
        temp=b;
        temp<<=8;
        temp |=a;
        
        return temp;
}

/*
xianshi
*/

void datapros(int temp)
{
        float tp;
        if(temp<0)
        {        
                displaydata[0]=0x40;
                temp=temp-1;
                temp=~temp;
                tp=temp;
                temp=tp*0.0625*10+0.5;
               
        }
        else
        {
                displaydata[0]=0x00;
                tp=temp;
                temp=tp*0.0625*10+0.5;
        }
        displaydata[1]=temp/100;
        displaydata[2]=temp%100/10;
        displaydata[3]=temp%10;
        
        if(displaydata[0]==0x40)
        {
                LED0=0;
        }
        else
        {
                LED0=1;
        }
        P0=0x40;
        delay(3);
        LED0=1;
        
        if(table[displaydata[1]==0x3f])
        {
                LED1=1;
        }
        else
        {
                LED1=0;
        }
        P0=table[displaydata[1]];
        delay(3);
        LED1=1;
        LED2=0;
        P0=table[displaydata[2]]+0x80;
        delay(3);
        LED2=1;
        LED3=0;
        P0=table[displaydata[3]];
        delay(3);
        LED3=1;
}

/*
main
*/

void main()
{
        while(1)
        {
                datapros(ds18b20readtemp());
        }
}

回復

使用道具 舉報

ID:328014 發表于 2021-6-28 15:43 | 顯示全部樓層
直接不容易看出來的,把工程文件上傳我幫你調試下
回復

使用道具 舉報

ID:945882 發表于 2021-6-28 15:51 | 顯示全部樓層
工程文件已上傳 謝謝大佬

應用DS18B20進行環境溫度檢測并顯示.rar

25.41 KB, 下載次數: 1

回復

使用道具 舉報

ID:824490 發表于 2021-6-28 16:12 | 顯示全部樓層
你這顯示代碼我看不明白?
回復

使用道具 舉報

ID:946130 發表于 2021-6-28 16:18 | 顯示全部樓層
數碼管共陰與共陽接錯了
回復

使用道具 舉報

ID:844772 發表于 2021-6-28 16:50 | 顯示全部樓層
程序只有些小錯誤如:if(table[displaydata[1]==0x3f]) 應該 if(table[displaydata[1]]==0x3f),但不應該沒顯示啊,要不把延時調長一點,你用的3,調到10幾試試?
回復

使用道具 舉報

ID:945882 發表于 2021-6-28 16:52 | 顯示全部樓層
glinfei 發表于 2021-6-28 16:50
程序只有些小錯誤如:if(table[displaydata[1]==0x3f]) 應該 if(table[displaydata[1]]==0x3f),但不應該沒 ...

好的 我試一下 謝謝大佬!
回復

使用道具 舉報

ID:945882 發表于 2021-6-28 16:52 | 顯示全部樓層
51hei團團 發表于 2021-6-28 15:43
直接不容易看出來的,把工程文件上傳我幫你調試下

上傳了 但是貌似還沒審核...
回復

使用道具 舉報

ID:824490 發表于 2021-6-28 17:15 | 顯示全部樓層
我試了一下,有顯示,但不對,可能是你的溫度計算這塊出錯了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区在线 | 中文天堂在线一区 | 国产日韩精品在线 | 一级片av| 亚洲成人中文字幕 | 日韩高清黄色 | 亚洲国产成人精品久久久国产成人一区 | 久久精品伊人 | 国产精品免费高清 | 欧美成人免费在线视频 | 久久天堂网 | www.99热| 欧美日韩精品在线免费观看 | 日韩精品成人 | 成人欧美 | 亚洲理论在线观看电影 | 国产午夜久久久 | 国产精品国产 | 国产真实精品久久二三区 | 天天天天天天天干 | 成人欧美一区二区三区白人 | 亚洲高清视频一区二区 | 精品久久久久久久久久久久 | 中文字幕视频在线观看 | 亚洲视频一区二区三区 | 7777精品伊人久久精品影视 | 中文字幕电影在线观看 | 成人做爰www免费看视频网站 | 久久成人av | 亚洲综合三区 | 亚洲精品自在在线观看 | 欧美日韩国产免费 | 亚洲一区二区三区在线播放 | 亚洲男人的天堂网站 | 一区精品国产欧美在线 | 国产乱精品一区二区三区 | 日韩亚洲一区二区 | 国产精品成人一区二区三区 | 一区二区高清在线观看 | 99久久精品一区二区毛片吞精 | 中文字幕一区在线 |