51单片机数字秒表设计用4位数码管分别显示十秒,秒,百毫秒,十毫秒计时范围为10ms到99s

 我来答
帐号已注销
推荐于2017-05-21 · TA获得超过2062个赞
知道小有建树答主
回答量:342
采纳率:0%
帮助的人:339万
展开全部

/***************************************************************************/

#include <reg51.h>

sbit Axs=P1^3; sbit Bxs=P1^2; sbit Cxs=P1^1; sbit Dxs=P1^0;//数码管位选端口

char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管显示编码

void YS(char hs); void XS(int xm,int xs); void Time1(void);int n,i,m,s;

/***************************************************************************/

void main(void){Time1();while(1){XS(m,s);}}//主函数

/***************************************************************************/

void int1() interrupt 1 //定时器中断

{

    TH0=(65536-1000)/256; TL0=(65536-1000)%256; n++;

    if(n>1000){n=0;s++; if(s>59){s=0;m++;if(m>59){m=0;}}}

}

/***************************************************************************/

void Time1(void)//定时器初始化

{

    TH0=(65536-921)/256; TL0=(65536-921)%256;

    TMOD=0x01; EA=1; ET0=1; TR0=1;

}

/***************************************************************************/

void XS(int xm,int xs) //数码管显示

{

    char d1,d2,d3,d4;

    d1=(xs/1)%10;  d2=(xs/10)%10;  d3=(xm/1)%10;  d4=(xm/10)%10;

    P0=table[d1]; Axs=0; YS(10); Axs=1;//个位显示

    P0=table[d2]; Bxs=0; YS(10); Bxs=1;//十位显示

    P0=table[d3]; Cxs=0; YS(10); Cxs=1;//百位显示

    P0=table[d4]; Dxs=0; YS(10); Dxs=1;//千位显示

}

/***************************************************************************/

void YS(char hs){char hk;for(;hs>0;hs--){for(hk=200;hk>0;hk--);}}//延时函数

/***************************************************************************/

这是我做的利用单片机定时器中断,模拟时钟的程序


和你要的一样,无偿奉献了


数码管的端口用的可能不一样,自己改下

追问
我的是数字秒表的,也一样吗
追答
一样的,无非是定时器中判断值多少而已

定时器每一毫秒产生一个中断,变量就加一,如果1000次中断,那么就是一秒钟

所以,如果你把1000改为10,你的数码管显示的就是你想要的啦
深圳市兴威帆电子技术有限公司
2023-08-24 广告
实时时钟模块可以选择许多不同的制造商和型号,具体选择取决于您的应用需求和预算。一些流行的实时时钟模块品牌包括DS1302、MA电商平台6925和MCP7941。这些模块都具有精度高、稳定性好、功耗低等优点,并具有不同的功能和特性,可以满足各... 点击进入详情页
本回答由深圳市兴威帆电子技术有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式