OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6049|回复: 8

求指点,带小数点的秒表

[复制链接]

9

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2017-5-4
在线时间
23 小时
发表于 2017-5-6 11:47:06 | 显示全部楼层 |阅读模式
3金钱
怎么给秒表第二位加上小数点?我只会数码管一加就全都有小数点

最佳答案

查看完整内容[请看2#楼]

void datapros() { MBXS[0]=duanxuan[s1/10]; MBXS[1]=duanxuan[s2%10]|0x80; MBXS[2]=duanxuan[s2/10]; MBXS[3]=duanxuan[s3%10]; }
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-5-6 11:47:07 | 显示全部楼层
15116493876 发表于 2017-5-6 17:52
#include "reg52.h"       
typedef unsigned int u16;
typedef unsigned char u8;

void datapros()
{
        MBXS[0]=duanxuan[s1/10];        
        MBXS[1]=duanxuan[s2%10]|0x80;
        MBXS[2]=duanxuan[s2/10];
        MBXS[3]=duanxuan[s3%10];
}
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-5-6 15:52:11 | 显示全部楼层
贴个代码吧
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2530
金钱
2530
注册时间
2016-3-6
在线时间
392 小时
发表于 2017-5-6 16:47:01 | 显示全部楼层
可以用或运算实现,比如:P0=table[shi2]|0x80;//共阴极数码管加上小数点
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

9

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2017-5-4
在线时间
23 小时
 楼主| 发表于 2017-5-6 17:48:10 | 显示全部楼层
18811707971 发表于 2017-5-6 16:47
可以用或运算实现,比如:P0=table[shi2]|0x80;//共阴极数码管加上小数点

这个代码会让所有数码管都加上小数点,而我只想一位数码管有小数点
回复

使用道具 举报

9

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2017-5-4
在线时间
23 小时
 楼主| 发表于 2017-5-6 17:52:58 | 显示全部楼层

#include "reg52.h"       
typedef unsigned int u16;
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit k2=P3^0;
sbit k3=P3^2;
sbit k4=P3^3;
u8 code duanxuan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

u8 s1,s2,s3,sum;
u8 MBXS[4];
void delay(u16 i)
{
        while(i--);       
}
void Timer0Init()
{
        TMOD|=0X01;
        TH0=0Xd8;
        TL0=0Xf0;       
        ET0=1;
        EA=1;
        TR0=1;
}

void DigDisplay()
{
        u8 i;
        for(i=0;i<4;i++)
        {
                switch(i)
                {
                        case(0)SA=0;LSB=0;LSC=0; break;
                        case(1)SA=1;LSB=0;LSC=0; break;
                        case(2)SA=0;LSB=1;LSC=0; break;
                        case(3)SA=1;LSB=1;LSC=0; break;       
                }
                P0=MBXS;
                delay(100);
                P0=0x00;
        }
}

void datapros()
{
        MBXS[0]=duanxuan[s1/10];       
        MBXS[1]=duanxuan[s2%10];
        MBXS[2]=duanxuan[s2/10];
        MBXS[3]=duanxuan[s3%10];
}       
void main()
{       
        Timer0Init();
        while(1)
        {
                datapros();
                DigDisplay();       
        }               
}

void Timer0() interrupt 1
{
        TH0=0Xd8;
        TL0=0Xf0;
        s1++;
        if(s1>=100)
        {
                s1=0;
                s2++;
                if(s2>=100)
                {
                        s2=0;
                        s3++;
                        if(s3>=10)
                        {
                                s3=0;
                        }
                }       
        }       
}
帮忙看看,谢谢
回复

使用道具 举报

17

主题

329

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2530
金钱
2530
注册时间
2016-3-6
在线时间
392 小时
发表于 2017-5-6 19:05:51 | 显示全部楼层
15116493876 发表于 2017-5-6 17:48
这个代码会让所有数码管都加上小数点,而我只想一位数码管有小数点

这个就是单独加啊,楼下已经回答你了
路漫漫其修远兮,吾将上下而求索。
回复

使用道具 举报

9

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2017-5-4
在线时间
23 小时
 楼主| 发表于 2017-5-6 19:08:19 | 显示全部楼层
BMN李 发表于 2017-5-6 11:47
void datapros()
{
        MBXS[0]=duanxuan[s1/10];        

谢谢
回复

使用道具 举报

9

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2017-5-4
在线时间
23 小时
 楼主| 发表于 2017-5-6 19:11:39 | 显示全部楼层
18811707971 发表于 2017-5-6 19:05
这个就是单独加啊,楼下已经回答你了

能帮我看看这个程序吗,为什么实现不了单键暂停,清零,只能实现开启
#include "reg52.h"       
typedef unsigned int u16;
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit k2=P3^0;
sbit k3=P3^2;
sbit k4=P3^3;
u8 code duanxuan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                        0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

u8 s1,s2,s3,sum;
u8 MBXS[4];
void delay(u16 i)
{
        while(i--);       
}
void Timer0Init()
{
        TMOD|=0X01;
        TH0=0Xd8;
        TL0=0Xf0;       
        ET0=1;
        EA=1;
        TR0=1;
}

void DigDisplay()
{
        u8 i;
        for(i=0;i<4;i++)
        {
                switch(i)
                {
                        case(0): LSA=0;LSB=0;LSC=0; break;
                        case(1): LSA=1;LSB=0;LSC=0; break;
                        case(2): LSA=0;LSB=1;LSC=0; break;
                        case(3): LSA=1;LSB=1;LSC=0; break;       
                }
                P0=MBXS;
                delay(100);
                P0=0x00;
        }
}

void datapros()
{
        MBXS[0]=duanxuan[s1/10];       
        MBXS[1]=duanxuan[s2%10]|0X80;
        MBXS[2]=duanxuan[s2/10];
        MBXS[3]=duanxuan[s3%10];
}

void key2()
{
        if(k2==0)
        {
                delay(1000);
                if(k2==0)
                {
                        Timer0Init();
      sum++;
                        switch(sum)
                        {
                                case(2):TR0=0;
                                case(3):s1=0;s2=0;s3=0;
                                default:sum=0;
                        }
                }
                while(!k2);
        }       
}
void main()
{       
        while(1)
        {
                key2();
                datapros();
                DigDisplay();       
        }               
}

void Timer0() interrupt 1
{
        TH0=0Xd8;
        TL0=0Xf0;
        s1++;
        if(s1>=100)
        {
                s1=0;
                s2++;
                if(s2>=100)
                {
                        s2=0;
                        s3++;
                        if(s3>=10)
                        {
                                s3=0;
                        }
                }       
        }       
}
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 21:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表