2284|5

23

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

stc51数码管 从 0.01 到 99.99 累加的C程序 [复制链接]

   hlep  ma   stc51数码管 从 0.01 到 99.99 累加的C程序  
此帖出自单片机论坛

最新回复

这个这么简单!何必这个纠结与小数点呢?从1到9999的计数会不,存在数组里,5个元素 0---->千位 1---->百位 2---->小数点 3---->十位 4---->个位 懂吗?  详情 回复 发表于 2016-5-22 19:32
点赞 关注
 

回复
举报

28

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
没有电路图,怎么写,而且基本的51学习教程里就有这样的例子吧
此帖出自单片机论坛
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

板凳
 
这个这么简单!何必这个纠结与小数点呢?从1到9999的计数会不,存在数组里,5个元素
0---->千位
1---->百位
2---->小数点
3---->十位
4---->个位

懂吗?
此帖出自单片机论坛
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

23

帖子

2

TA的资源

一粒金砂(中级)

4
 
ywlzh 发表于 2016-5-22 19:32
这个这么简单!何必这个纠结与小数点呢?从1到9999的计数会不,存在数组里,5个元素
0---->千位
1---->百 ...

谢谢,已懂
此帖出自单片机论坛
 
 
 

回复

23

帖子

2

TA的资源

一粒金砂(中级)

5
 
#include "reg51.h"       //包含头文件

sbit LE1=P2^0;           //位选573锁存器使能
sbit LE2=P2^1;           //段选573锁存器使能


#define uchar unsigned char
#define uint  unsigned int

uchar wei;
float num;

uchar code dis[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
                   //  0    1    2    3    4    5    6    7   
                     0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};//0~F的段码
                   //  8    9    A    B    C    D    E    F  


//**************************************************************************************************
//延时函数
//**************************************************************************************************
delay(uint time)              //int型数据为16位,所以最大值为65535            
{
  uint  i,j;                  //定义变量i,j,用于循环语句
  for(i=0;i      for(j=0;j<50;j++);       //for循环,循环50次
}
//**************************************************************************************************
//动态扫描函数
//**************************************************************************************************
scan()
{
  uchar i;
  for(i=0;i<10;i++)
   {
     //显示个位
     P1=0xdf;                 //0xbf=1011 1111,即选通个位  11011111
     LE1=1;                   //锁存位
     LE1=0;                   //断开锁存,位选573的Q7~Q0仍保持
     wei=num*100;
     P1=dis[wei/100]| 0x80;   //dis[wei/10]为0~9的编码,0x80为小数点
     LE2=1;                   //锁存段码
     LE2=0;                   //断开锁存,段选573的Q7~Q0仍保持
     delay(100);              //延时保持一下,延时过大会闪动,延时过小会有重影   

     P1=0x00;LE2=1;LE2=0;     //清除P1口数据,以免造重影
     //显示十分位
     P1=0xbf;                 //0xbf=0111 1111,即选通十分位         10111111
     LE1=1;                   //锁存位
     LE1=0;                   //断开锁存,位选573的Q7~Q0仍保持
     wei=num*100;
     P1=dis[wei/10%10];          //0~9的编码
     LE2=1;                   //锁存段码
     LE2=0;                   //断开锁存,段选573的Q7~Q0仍保持
     delay(100);              //延时保持一下,延时过大会闪动,延时过小会有重影  

     P1=0x00;LE2=1;LE2=0;     //清除P1口数据,以免造重影   
                P1=0x7f;                 //0xbf=0111 1111,即选通十(百)分位
     LE1=1;                   //锁存位
     LE1=0;                   //断开锁存,位选573的Q7~Q0仍保持
     wei=num*100;
     P1=dis[wei%10];          //0~9的编码
     LE2=1;                   //锁存段码
     LE2=0;                   //断开锁存,段选573的Q7~Q0仍保持
     delay(100);              //延时保持一下,延时过大会闪动,延时过小会有重影  

     P1=0x00;LE2=1;LE2=0;     //清除P1口数据,以免造重影  
   }

    if(num==9.99)num=0;        //扫描到显示9.9时,重新开始扫描
    num+=0.01;                 //num加0.1
}
//**************************************************************************************************
//主函数
//**************************************************************************************************
void main()                   //主函数
{
     num=0;                   //初始化段码为0
     while(1)                 //进入while死循环
      {
        scan();               //数码管扫描函数
      }         
}
此帖出自单片机论坛
 
 
 

回复

23

帖子

2

TA的资源

一粒金砂(中级)

6
 
yuzhimude 发表于 2016-5-22 19:07
没有电路图,怎么写,而且基本的51学习教程里就有这样的例子吧

恩恩,明白了
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表