问题已经解决了把0x47改成0x45好了,谢谢师傅们 |
谢谢师傅们的耐心解答谢谢 |
uchar code LEDData[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0xCF,0xDA,0x9B,0xDC,0x9B,0x8B} 把这里的0X47改成0X07就可以了 |
修改一下代码 |
不就是字库定义问题,很简单,看仔细就可以找到。 |
习惯就好,就像 6 和 9 一样多一横少一横都是还是那个数字 |
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff 这是个数组是0-9,最后一个0XFF是全熄状态 0XF8 H G F E D C B A 1 1 1 1 1 0 0 0 8 4 2 1 8 4 2 1 F 8 对应的数码管只亮ABC三个笔画的嘛 |
共阳数码管,低电平有效,7是0XF8是不带勾的7啊,带勾的7是0XD8 |
不同的接法这个是不一样的 |
把程序放上来不要图片,图片看不清楚![]() ![]() |
这个不看你线路的解法或者你程序中数组是没法给你答案的,不同的接法这个是不一样的。 |
看他中括号里的数组,第八个的十六进制是怎么写的。 |
#include <AT89X52.h> #define uint unsigned int#define uchar unsigned char //宏定义#define SET P3_1 //定义调整键#define DEC P3_2 //定义减少键#define ADD P3_3 //定义增加键#define BEEP P3_6 //定义蜂鸣器#define ALAM P1_2 //定义灯光报警#define DQ P3_7 //定义DS18B20总线I/O bit shanshuo_st; //闪烁间隔标志bit beep_st; //蜂鸣器间隔标志sbit DIAN = P0^5; //小数点uchar x=0; //计数器signed char m; //温度值全局变量uchar n; //温度值全局变量uchar set_st=0; //状态标志signed char shangxian=38; //上限报警温度,默认值为38signed char xiaxian=5; //下限报警温度,默认值为38//uchar code LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};uchar code LEDData[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0xCF,0xDA,0x9B,0xDC,0x9B,0x8B};///*****显示开机初始化等待画面*****/void Disp_init(void) { P0 = ~0x80; //显示---- P2 = 0x7F; Delay(200); P2 = 0xDF; Delay(200); P2 = 0xF7; Delay(200); P2 = 0xFD; Delay(200); P2 = 0xFF; //关闭显示}/*****显示温度子程序*****/void Disp_Temperature(void) //显示温度{ P0 = ~0x98; //显示C P2 = 0x7F; Delay(100); P2=0xff; P0=~LEDData[n]; //显示个位 P2 = 0xDF; Delay(100); P2=0xff; P0 =~LEDData[m%10]; //显示十位 DIAN = 0; //显示小数点 P2 = 0xF7; Delay(100); P2=0xff; P0 =~LEDData[m/10]; //显示百位 P2 = 0xFD; Delay(100); P2 = 0xff; //关闭显示}/*****显示报警温度子程序*****/void Disp_alarm(uchar baojing){ P0 =~0x98; //显示C P2 = 0x7F; Delay(100); P2=0xff; P0 =~LEDData[baojing%10]; //显示十位 P2 = 0xDF; Delay(100); P2=0xff; P0 =~LEDData[baojing/10]; //显示百位 P2 = 0xF7; Delay(100); P2=0xff; if(set_st==1)P0 =~0xCE; else if(set_st==2)P0 =~0x1A; //上限H、下限L标示 P2 = 0xFD; Delay(100); P2 = 0xff; //关闭显示 |
#include <AT89X52.h> #define uint unsigned int#define uchar unsigned char //宏定义#define SET P3_1 //定义调整键#define DEC P3_2 //定义减少键#define ADD P3_3 //定义增加键#define BEEP P3_6 //定义蜂鸣器#define ALAM P1_2 //定义灯光报警#define DQ P3_7 //定义DS18B20总线I/O bit shanshuo_st; //闪烁间隔标志bit beep_st; //蜂鸣器间隔标志sbit DIAN = P0^5; //小数点uchar x=0; //计数器signed char m; //温度值全局变量uchar n; //温度值全局变量uchar set_st=0; //状态标志signed char shangxian=38; //上限报警温度,默认值为38signed char xiaxian=5; //下限报警温度,默认值为38//uchar code LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};uchar code LEDData[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7,0xCF,0xDA,0x9B,0xDC,0x9B,0x8B};// |
后面这张图片上传后这么模糊呀,我拍的好清晰的 |