各位老师能帮我看看这是什么问题么?谢谢

2019-07-15 11:20发布

毕业设计用的DS18B20检测温度,然后用两片74HC595驱动的8位数码管显示,为什么显示不出来呢,好像是定义的问题,请各位老师不吝赐教,谢谢。
下面是部分程序
unsigned char code table[10] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
uint temp;



uint read_temprature()//读取寄存器中存储的温度数据函数
{
        uchar a,b;
        ds_reset();
        ds_write_byte(0xcc);
        ds_write_byte(0xbe);//读暂存器指令
        a=ds_read_byte();//读低八位               
        b=ds_read_byte();//读高八位
        temp=b;
        temp=temp<<8;
        temp=temp|a;
        temp=temp*0.0625*10+0.5;
        return temp;
}





void display(uint temp)//数码管显示函数
{  
    Write_Byte(table[temp%100/10]);// 段选 温度个位
    Write_Byte(0x01);// 位选,
    Output();//发送到595 输出


    Write_Byte(table[temp/100]);   温度十位
    Write_Byte(0x02);
    Output();
}









0条回答

一周热门 更多>