各位老师能帮我看看这是什么问题么?谢谢
时间:10-02
整理:3721RD
点击:
毕业设计用的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();
}
下面是部分程序
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();
}
是不是temp的数据类型和编码表的类型不一样导致的?
0