永发信息网

哪位亲知道该数码管计数,用C语言怎么写出程序!(keil C软件)急求,谢谢啦

答案:2  悬赏:60  手机版
解决时间 2021-03-31 21:19
  • 提问者网友:骑士
  • 2021-03-31 09:52
哪位亲知道该数码管计数,用C语言怎么写出程序!(keil C软件)急求,谢谢啦
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-03-31 10:45
#include
unsigned char n=0,digicode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void main()
{
    P0=0;
    P2=0;
    while(1)
    {
if(P3_7==0)
{
    delay(5);
    if(P3_7==0)
    {
if(++n==100)n=0;
P2=digicode[n/10];
P0=digicode[n%10];
while(~P3_7);
    }
}
    }
}
void delay(unsigned int x)
{
    unsigned char i;
    while(x--)
        for(i=0;i<120;i++);
}追问


追答你的delay函数定义了吗?怎么说是被重定义了?追问我是跟着你的程序写的,然后提示P3_7不明身份,我就位定义sbit K=P3^7,将你程序中的P3_7用K替代,结果调试




就出现这错误,是不是延时函数要放在前面,不然delay(5)会出现错误,你写这程序的时候调试没有出现错误吗?

追答嗯,把delay函数放在前面吧,另外,你的头文件写错了,我的是regx51.h ,看清楚了,有个 x 。我确实没有调试,这个太简单。很长时间没有做单片机了。追问放到前面啦,调试无错误,但是在仿真的时候还是不能进1,只能是个位的数码管在按10下键之后才会加1,加到9,再按下一次,十位没有显示。我在想想别的办法吧,还是谢谢你啦追答我做个项目仿真看一下
全部回答
  • 1楼网友:归鹤鸣
  • 2021-03-31 11:49
需要给你完成一份吗追问一个淘宝的广告商,,追答需要定做可以丘上说
我id追问这么简单取模取余的程序也要用钱买的话,那你真实觉得钱太好挣啦,不用你写啦追答真觉得简单就不会问啦 =.=追问呵呵,那别人在回答问题的过程中思考提高自己,百度知道里面那么多厉害人物,如果人家回答问题都要钱的话,已经挣上万啦,越是贪小钱的人你就越穷追答1天就上能万了 =.=
知识这么贱 lz还是别学了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯