电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
查看: 3550|回复: 3

数码管跳动时间没有1S怎么回事??

[复制链接]
发表于 2016-10-3 22:25:05 | 显示全部楼层 |阅读模式

注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
#include<reg52.h>

unsigned char  LEDchar[]=
                  {0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void main()
{
unsigned char cnt = 0;
unsigned char i = 0;
  TMOD = 0x01;            
  TH0 =  0xb1df;            // x*12/12000000=0.02s    x=20000      x+y=65535     y=45535=0xb1df  
  TL0 = 0x00;
  TR0 = 1;

  while (1)
  {
    if(TF0==1)
     {
      TF0 = 0;
      TH0 = 0xb1df;
      TL0 = 0x00;
      cnt++;
         if(cnt>=50)
          {
            cnt = 0;
                P0 = LEDchar[i];
                i++;
         if(i>=9)
         {
            i = 0;
         }

          }
      }
   }
}
发表于 2016-10-7 11:25:47 | 显示全部楼层
调TL0和TH0的值就行了,肯定是你算的不对或是有误差。
发表于 2016-12-21 10:52:12 | 显示全部楼层
你中断一次是0.02s,中断50次不正好1s吗?程序里当cnt==50时不就是1s吗?
 楼主| 发表于 2017-1-5 19:31:50 | 显示全部楼层
烟台大黑锅 发表于 2016-12-21 10:52
你中断一次是0.02s,中断50次不正好1s吗?程序里当cnt==50时不就是1s吗?

应该是TL0= 0xb1  TH0=OXdf
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2024-5-16 12:47 , Processed in 0.058792 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

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