找回密码
 立即注册
查看: 829|回复: 13

帮忙,我设置主时钟为11.0592M,12T模式,定时时间是不是1秒?

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-12 20:51:09 | 显示全部楼层 |阅读模式
#include "main.h"
#include <intrins.h>

typedef     unsigned char   u8;
typedef     unsigned int    u16;
typedef     unsigned long   u32;

#define     MAIN_Fosc       11059200   //定义主时钟
#define Timer0_Reload   (65536UL -(MAIN_Fosc / 1105)) //定时10ms     

u16 B_ms=0;
code u8 SMG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
u16 count;
void setinoutport()//
{
        P0M1=0X00;P0M0=0X00;
        P2M1=0X00;P2M0=0XFF;
        P1M1=0X00;P1M0=0X00;
        P3M1|=0XFC;P3M0|=0XFC;
}

void main()
{         
          setinoutport();
                        AUXR &= 0x7F;                        //定时器时钟12T模式
                        TMOD &= 0xF0;                        //设置定时器模式
                        TL0 = (u8)Timer0_Reload%256;                                //设置定时初始值
                        TH0 = (u8)Timer0_Reload/256;                                //设置定时初始值
                        ET0 = 1;                                //Timer0 interrupt enable
                        EA = 1;     //打开总中断
                        TR0 = 1;                                //定时器0开始计时

        for(;;)
        {
  OutputPort0=SMG[count];
               
        }
}

/********************** Timer0 10ms中断函数 ************************/
void timer0 (void) interrupt 1
{   
    B_ms ++;      //10ms++
          if(B_ms>100)//满1S
                {
                        B_ms=0;
                        count++;
                        if(count>10)
                                count=0;
                }
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3190

回帖

4870

积分

论坛元老

积分
4870
发表于 2024-6-12 21:37:47 | 显示全部楼层
可能有点误差
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-12 22:03:22 | 显示全部楼层

大佬再问下,程序中确定时钟主频率和定时器初值的计算,是这样计算嘛
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3190

回帖

4870

积分

论坛元老

积分
4870
发表于 2024-6-12 22:21:04 | 显示全部楼层
11059200,12T模式一个周期相当于1.085us。10ms=10000us,=9216周期。换算是dc00.你的算出来是e800.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2024-6-12 22:42:41 | 显示全部楼层
有现成的工具可以使用
截图202406122242237052.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:519
  • 最近打卡:2025-05-02 07:55:51
已绑定手机

46

主题

1694

回帖

2544

积分

金牌会员

积分
2544
发表于 2024-6-12 22:46:43 | 显示全部楼层
没看见你调用定时,你现有的程序只是10ms中断一次
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2024-6-12 23:30:01 | 显示全部楼层
楼主:主时钟为11.0592M,12T模式,定时时间要1秒

截图202406122329181670.jpg

截图202406122329559368.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:449
  • 最近打卡:2025-04-30 10:57:37

17

主题

533

回帖

1326

积分

金牌会员

积分
1326
发表于 2024-6-13 00:19:12 | 显示全部楼层
用STC-ISP 直接复制粘贴
自信就会温和,温和就会坚定!
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2024-09-12 20:44:49

2

主题

64

回帖

358

积分

中级会员

积分
358
发表于 2024-6-13 06:05:23 | 显示全部楼层
你这个初值不对  有误差  还是官方软件计算吧
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2024-09-12 20:44:49

2

主题

64

回帖

358

积分

中级会员

积分
358
发表于 2024-6-13 06:07:43 | 显示全部楼层
截图202406130602242765.jpg

这个才是零误差


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 13:06 , Processed in 0.126968 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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