13976778401 发表于 2018-9-19 16:05 嗯,谢谢回复 |
ahshmj 发表于 2018-9-19 16:12 谢谢回答,已经用二楼的方法解决了,请问我要显示到9999怎么定义“unsigned char ldata;”这句 |
xzf586 发表于 2018-9-19 16:46 谢谢啊,如果我要显示到9999该改哪儿啊[img][/img] |
拿去吧,显示函数这样改一下就行了! //显示函数,参数为显示内容,只显示两位数 void display(unsigned char da) { if(da<1000) SMG_q=1; else { SMG_q=0; //选择千位数码管 P2=table[da/1000%100]; //获取个位值,查表输出定义好的数码管段值与P2口,显示相应的0-9 delay(); //延时 P2=0XFF; //清除数码管显示,因是共阳型,所以不是0 SMG_q=1; //关闭千位数码管 } if(da<100) SMG_b=1; else { SMG_b=0; //选择百位数码管 P2=table[da/100%10]; //获取个位值,查表输出定义好的数码管段值与P2口,显示相应的0-9 delay(); //延时 P2=0XFF; //清除数码管显示,因是共阳型,所以不是0 SMG_b=1; //关闭百位数码管 } if(da<10) SMG_s=1; else { SMG_s=0; //选择十位数码管 P2=table[da/10]; //获取十位值,查表输出定义好的数码管段值与P2口,显示相应的0-9 delay(); //延时 P2=0XFF; //清除数码管显示,因是共阳型,所以不是0 SMG_s=1; //关闭十位数码管 } SMG_g=0; //选择个位数码管 P2=table[da%10]; //获取个位值,查表输出定义好的数码管段值与P2口,显示相应的0-9 delay(); //延时 P2=0XFF; //清除数码管显示,因是共阳型,所以不是0 SMG_g=1; //关闭个位数码管 } //延时子函数,短暂延时 void delay(void){ unsigned char i=10; while(i--); } |