找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2365|回复: 2
打印 上一主题 下一主题
收起左侧

99秒计时,希望大家能帮帮我这个菜鸟,谢谢了

[复制链接]
跳转到指定楼层
楼主
ID:51960 发表于 2013-7-20 16:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg51.h>
#define uchar unsigned char
uchar sec=0,time=0;         //sec每过一秒加一,time每中断一次加一
uchar code num[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f};//0--9的编码
sbit DU=P2^6;
sbit WE=P2^7;
sbit SDA=P2^0;
sbit SCL=P2^1;
void delay(uchar n)         //n=1,延时0.2ms
{
        uchar i,j;
        for(i=0;i<n;i++)
                for(j=0;j<110;j++);
}
void t0_init()        //定时器T0初始化函数{        P0=0xff;        TMOD=0x01; //选择定时器T0方式为1 ,16位        TH0=60;        TL0=176;//装初值        TR0=1;        //让T0开始工作        ET0=1; //打开T0中断        EA=1; //打开全局中断        delay(5);}
void display(uchar sec)         //数码管显示函数{        uchar Ge,Shi;           //Ge用来显示个位,Shi 十位//        if(sec>=100)//                sec=0;        Ge=sec%10;        Shi=sec/10;        DU=1;                  // 个位显示        P0=num[Ge];        DU=0;        P0=0xff;        WE=1;        P0=0xfd;//1111 1101        WE=0;        delay(5);        DU=1;                   // 十位显示        P0=num[Shi];        DU=0;        P0=0xff;        WE=1;        P0=0xfe; //1111 1110        WE=0;        delay(5);        //这个延时一定要加}void main(){        t0_init();        while(1)        {                display(sec);        }}void t0()interrupt 1          //定时器T0中断函数{        time++;        if(time==20)        {//                if(sec>=100)//                        sec=0;                sec++;                time=0;                wr=1;        }        TL0=176;        TH0=60;}本来作用是利用T0计时99秒上面有两个注销的部分,任选其中一个,为{:soso_e154:}{:soso_e154:}{:soso_e154:}什么选上面那个到了九十九,到零为什么会停好久才回又开始计时,而选后面那个到九十九,到零,又直接开始计时,不是两个作用一样吗?不知道有没表达清楚,但是还是请帮帮忙吧,谢谢了

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:58274 发表于 2013-12-27 09:41 | 只看该作者
有汇编的吗?
回复

使用道具 举报

板凳
ID:58499 发表于 2014-1-3 14:15 | 只看该作者
中断的问题,不宜选用中断外注销
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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