找回密码
 立即注册

QQ登录

只需一步,快速开始

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

哪位大神能解释一下红色的部分的定时时间是多长?

[复制链接]
跳转到指定楼层
楼主
ID:64270 发表于 2014-9-5 15:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <AT89X51.H>

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
                               0x66,0x6d,0x7d,0x07,
                               0x7f,0x6f,0x77,0x7c,
                               0x39,0x5e,0x79,0x71,0x00};
unsigned char second;
unsigned char keycnt;
unsigned int tcnt;

void main(void)
{
  unsigned char i,j;

  TMOD=0x02;
  ET0=1;
  EA=1;
  second=0;
  P0=dispcode[second/10];
  P2=dispcode[second%10];
  while(1)
    {
      if(P3_5==0)
        {
          for(i=20;i>0;i--)
          for(j=248;j>0;j--);
          if(P3_5==0)
            {
              keycnt++;
              switch(keycnt)
                {
                  case 1:
                   TH0=0x06;
                    TL0=0x06;
                    TR0=1;
                    break;
                  case 2:
                    TR0=0;
                    break;
                  case 3:
                    keycnt=0;
                    second=0;
                    P0=dispcode[second/10];
                    P2=dispcode[second%10];
                    break;
                }
              while(P3_5==0);
            }
        }
    }
}

void t0(void) interrupt 1 using 0
{
  tcnt++;
  if(tcnt==400)
    {
      tcnt=0;
      second++;
      if(second==100)
        {
          second=0;
        }
      P0=dispcode[second/10];
      P2=dispcode[second%10];
    }
}

哪位大神能解释一下红色的部分的定时时间是多长?

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

使用道具 举报

沙发
ID:63656 发表于 2014-9-5 16:54 | 只看该作者
你可以算的呀,用ISP下载软件可以算,红色部分不应该放在那里的
回复

使用道具 举报

板凳
ID:64270 发表于 2014-9-5 17:19 | 只看该作者
2842687945 发表于 2014-9-5 16:54
你可以算的呀,用ISP下载软件可以算,红色部分不应该放在那里的

我把程序修改了好多次了,不放在那里根本仿真不了啊

回复

使用道具 举报

地板
ID:63656 发表于 2014-9-5 17:24 | 只看该作者
liuxin198405 发表于 2014-9-5 17:19
我把程序修改了好多次了,不放在那里根本仿真不了啊

你想实现什么功能呀
回复

使用道具 举报

5#
ID:64270 发表于 2014-9-5 17:28 | 只看该作者
2842687945 发表于 2014-9-5 17:24
你想实现什么功能呀

0~100的码表
回复

使用道具 举报

6#
ID:63656 发表于 2014-9-5 17:33 | 只看该作者
本帖最后由 2842687945 于 2014-9-5 17:39 编辑

#include <reg52.h>
#define uint unsigned int
//延时函数
void delay(void)
{
        uint i;
        for(i = 0;i < 200;i++);
}
//主程序
uint hour=0,second=0;
void main()
{
        uint code led[10] = {0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f};
        TMOD = 0x01;
        TH0 = 0xdc;
        TL0 = 0x00;
        ET0 = 1;
        TR0 = 1;
        EA = 1;
        while(1)
        {
                P2 = 0x00;//位码
                P0 = led[hour/10];
                delay();//延时
                P0 = 0x00;//消影
                P2 = 0x01;
                P0 = led[hour%10];
                delay();
                P0 = 0x00;
        }
                                       
}
//服务子函数
void int0(void) interrupt 1        //10MS中断一次
{
        TH0 = 0xdc;//赋初值
        TL0 = 0x00;        
        second++;
        if(second==100)
        {
                second = 0;
                hour++;
                if(hour==100)
                {
                        hour = 0;
                }
        }
}

评分

参与人数 1威望 +45 黑币 +45 收起 理由
admin + 45 + 45 回帖助人的积分奖励!!

查看全部评分

回复

使用道具 举报

7#
ID:63656 发表于 2014-9-5 17:35 | 只看该作者
你试一下这个程序
回复

使用道具 举报

8#
ID:51024 发表于 2014-9-5 19:11 来自手机 | 只看该作者
2842687945 发表于 2014-9-5 17:33
#include
#define uint unsigned int
//延时函数

果然是大神级别的   学习了
回复

使用道具 举报

9#
ID:64817 发表于 2014-9-5 21:46 | 只看该作者
一个机器周期是一微秒了,机器周期是单片机晶振产生的频率信号经12分频得到的,,,假如你的晶振是12M的,就是12/12是一个机器周期。。如果晶振是6M就是12/6是一个周期。TH0=0X06,TL0=0X06,就是十进制1542,定时器装满值是65536,65536减去1542=62452,也就是你订了62452个数或者说订了62452个机器周期。。62452*12/12单位是US。或62452*12/6单位是US.

评分

参与人数 1威望 +40 黑币 +40 收起 理由
admin + 40 + 40 回帖助人的积分奖励!!

查看全部评分

回复

使用道具 举报

10#
ID:58502 发表于 2014-9-5 23:35 | 只看该作者
ffff-0606=f9f9,换成十进制是63993.大约是64毫秒
回复

使用道具 举报

11#
ID:153199 发表于 2017-2-17 17:02 | 只看该作者
大约是63毫秒
回复

使用道具 举报

12#
ID:164847 发表于 2017-2-17 19:24 | 只看该作者
要看时钟频率多少
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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