proteus单片机仿真,数码管显示有问题,但实物就没问题
代码:sbitw1=P2^0;sbitw2=P2^2;sbitw3=P2^4;sbitw4=P2^6;/////////////////////////////sbitk...
代码:sbit w1=P2^0;sbit w2=P2^2;sbit w3=P2^4;sbit w4=P2^6;/////////////////////////////sbit key1=P3^4;//设置时间sbit key2=P3^5;//加sbit key3=P3^6;//减sbit key4=P3^7;//闹钟sbit beep=P1^0;/////数码管段选//////////////////////////////////////////////uchar code table[22]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,//0-F, 0-150xbf,0xc7,0x89,0xff,0x00,0xc8};//'-',L,H,灭,全亮,n 16-21uchar num,miao,fen,shi;uchar fen1,shi1;uchar d1,d2,d3,d4;void delay(uint ms){ uchar x; for(ms;ms>0;ms--) for(x=110;x>0;x--);}void display()//显示函数{ d1=shi/10; //小时 d2=shi%10; // d3=fen/10; // d4=fen%10; //分钟 w1=0;P0=table[d1];delay(10);//第1位显示数据 P0=0xff;w1=1;//关闭显示消除动态扫描阴影 w2=0;P0=table[d2];delay(10);//第2位显示数据 P0=0xff;w2=1;//关闭显示消除动态扫描阴影 w3=0; if(num>=10)P0=table[d3]; if(num<10)P0=table[d3]&0x7f; delay(10);//第3位显示数据 P0=0xff;w3=1;//关闭显示消除动态扫描阴影 w4=0; if(num>=10)P0=table[d4]; if(num<10)P0=table[d4]&0x7f; delay(10);//第4位显示数据 P0=0xff;w4=1;//关闭显示消除动态扫描阴影}void disp_set()//显示函数{ d1=shi1/10; d2=shi1%10; d3=fen1/10; d4=fen1%10; w1=0;P0=table[d1];delay(10); P0=0xff;w1=1; w2=0;P0=table[d2];delay(10); P0=0xff;w2=1; w3=0;P0=table[d3]&0x7f;delay(10); P0=0xff;w3=1; w4=0;P0=table[d4]&0x7f;delay(10); P0=0xff;w4=1;}
展开
1个回答
展开全部
程序不全,不过既然实物没问题,说明程序代码是没有问题的,问题应该出在仿真时数码管的共阴共阳有问题,你可以换一个试试。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2020-01-15 广告
2020-01-15 广告
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询