永发信息网

为什么数码管显示与编程不符,想显示9,却显示88?

答案:1  悬赏:80  手机版
解决时间 2021-03-09 13:36
#include<reg52.h>
#define uc unsigned char
#define ui unsigned int
sbit p25=P2^5;
sbit p26=P2^6;
sbit p27=P2^7;
uc code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay1ms(ui i)
{
uc j;
while(i--)
for(j=0;j<115;j++);
}
void main()
{
ui i=9;
while(1)
{
P0=tab[i/10];
p26=0; //改为P2=0xDF时正常
delay1ms(5);
P0=tab[i%10];
p27=0;//改为P2=0xBF时正常 delay1ms(5);
}
}
最佳答案
//其实你应该提供更多信息的,比如说原理图。
#include<reg52.h>
#define uc unsigned char 
#define ui unsigned int
sbit p25=P2^5;
sbit p26=P2^6;
sbit p27=P2^7;
uc code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//【共阳极数码管段码】
void delay1ms(ui i)
{
 uc j;
 while(i--)
 for(j=0;j<115;j++);
}
void main()

 ui i=9;
 while(1)
 {
  p26=1;//开始送值之前要先灭显示。
  p27=1;
  P0=tab[i/10];
  p26=0;   //改为P2=0xDF时正常 1101 1111
  delay1ms(5);
  p26=1;//显示5ms后要灭掉
  P0=tab[i%10];
  p27=0;//改为P2=0xBF时正常  1011 1111
  delay1ms(5);
  p27=1;//显示5ms后要灭掉
 }
}
有问题请追问。以后问程序问题,最好连同原理图一起提供。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
蚌埠市区哪有太平鸟店
我想开个狗肉店,规模较大,帮忙取个好的店名
映泰显卡咋样
上排在哪里啊,我有事要去这个地方
鲍鱼洗时掉黑水洗干净后发白怎么回事
怎样才能做到一个大气,淡定,从容的女人? 2
【四面八方造句】四面八方造句句
义乌国际商贸城附近有照相馆吗
都市绿洲-南门怎么去啊,有知道地址的么
哪一位是中唐时代的诗人 倩女幽魂手游科举答
贷款账号尾号码与还款的银行卡尾号是一样的吗
求高手、大师解释紫微命盘……
徐浪是书画界VR全景高科先行者?
宝鸡市第二人民医院-胸外科在什么地方啊,我
鄢陵鹤鸣湖在哪里
推荐资讯
【繁殖 电影】找一部科幻电影太空船里有一种
为什么耳机放在手机,它自己就把声音给调低了
20岁了,没牵过女孩子手,没给女孩子说过几句
会计用心学五年可以学成什么样
不锈钢筛网制作工艺有哪些
国威商务宾馆在哪里啊,我有事要去这个地方
火山泥 是不是真的对皮肤好啊
手机qq已经下线为什么还显示离线状态而不消失
求解,怎么能把屏幕上方三个小圆点取消掉,op
中国人民银行可以将美元换为人民币吗?
上面一个好下面一个心 怎么读
英语翻译位于中国浙江义乌小商品市场,我们公
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?