单片机数码管小数点怎么显示_单片机数码管小数点怎么显示

单片机数码管小数点怎么显示_单片机数码管小数点怎么显示哎!自己学真累

单片机数码管小数点怎么显示_单片机数码管小数点怎么显示

哎!自己学真累。简单程序害我调了一个下午。

终于完成了。程序后面写写出的错误

#include

#define uchar unsigned char

uchar wan,qian,bai,shi,ge,yu,pan,p;

long zhi;

uchar code led[]=

{0x03,0x9f,0x25,0x0d,0x99,

0x49,0x41,0x1f,0x01,0x09,0xfe};

void xian();

void init();

void delay(uchar z);

void main()

{

init();//初始化子程序

while(1)

{

wan=zhi/100000;

qian=zhi%100000/10000;

bai=zhi%100000%10000/1000;

shi=zhi%100000%10000%1000/100;

ge=zhi%100000%10000%1000%100/10;

yu=zhi%100000%10000%1000%100%10;

pan=6;//判断位赋初值

if(wan==0)

{        pan–;

if(qian==0)

{ pan–;

if(bai==0)

{ pan–;

if(shi==0)

{ pan–;

if(ge==0)

{

pan–;

}

}

}

}

}

xian();       //显示子程序

zhi++;

if(zhi>999999)

{

zhi=0;

};

}

}

void xian()

{

if(pan==6)                         //模式6:有6位数需要显示,省略最后2位

{

P2=0X08;

P0=led[wan];

delay(p);

P2=0X04;

P0=led[qian];

delay(20);

P2=0X02;

P0=led[bai];

delay(20);

P0=led[10];            //LED表格里定义的小数点显示在个位的数码管上(真正的个位给我写成余了)

delay(20);

P2=0X01;

P0=led[shi];

}

if(pan==5)                        //模式5,以下类推

{

P2=0X08;

P0=led[qian];

delay(p);

P2=0X04;

P0=led[bai];

delay(20);

P0=led[10];            //LED表格里定义的小数点显示在个位的数码管上(真正的个位给我写成余了)

delay(20);

P2=0X02;

P0=led[shi];

delay(20);

P2=0X01;

P0=led[ge];

}

if(pan==4)

{

P2=0X08;

P0=led[bai];

delay(p);

P0=led[10];            //LED表格里定义的小数点显示在个位的数码管上(真正的个位给我写成余了)

delay(p);

P2=0X04;

P0=led[shi];

delay(20);

P2=0X02;

P0=led[ge];

delay(20);

P2=0X01;

P0=led[yu];

}

if(pan==3)

{

P2=0X04;

P0=led[shi];

delay(20);

P2=0X02;

P0=led[ge];

delay(20);

P2=0X01;

P0=led[10];

delay(20);

P0=led[yu];

}

if(pan==2)

{

P2=0X02;

P0=led[ge];

delay(20);

P2=0X01;

P0=led[10];

delay(20);

P0=led[yu];

}

if(pan<=1)

{

P2=0X01;

P0=led[10];

delay(20);

P0=led[yu];

}

}

void delay(uchar z)

{

uchar x,y;

for(x=z;x>0;x–)

for(y=110;y>0;y–);

}

void init()

{

P0=0xff;                        //关闭段码

P2=0x00;                                            //关闭位选码

zhi=0;

p=10;                                                    //赋初值

}

以下是调试过程

1。数码管一定要延时。不然看不见

2。P0-P4口使用时P一定要大写。(原本不知道郭老师的视频教材没把这个当回事来讲)

3。if语句和它的大括号不能隔行,估计别的语句也不允许

4。if语句小括号后面打了分号则无效。该有的地方漏写分号也绝对不可以。

5。临时修改的参数一定要标记。正式用时改回来。

今天的文章单片机数码管小数点怎么显示_单片机数码管小数点怎么显示分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/89164.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注