标题: 简单算法判断51单片机默认1T还是12T [打印本页]

作者: onetwoto    时间: 2022-6-1 06:36
标题: 简单算法判断51单片机默认1T还是12T
如果晶振是11.0592MHz,就是11059200Hz,12分频是921600Hz

16位定时器每次只能装65536,11059200/65536=168.75次,将a赋值169后,如果灯珠闪亮的大概是一秒一次,就说明单片机运行的状态是1T.

然后11059200/12=921600,921600/65536=14.0625次,将a赋值14后,如果灯珠闪亮的大概是一秒一次,就说明单片机运行的状态是12T.

代码如下:

#include<reg52.h>
sbit LED=P1^3;//定义LED灯珠端口
unsigned int a;

void Init_Timer0(void)
{
TMOD |=0X01;
TH0=0X00;
TL0=0X00;
EA=1;
ET0=1;
TR0=1;
}

void main()
{
a=0;
Init_Timer0();
while(1);
}

void Timer0_isr(void) interrupt 1 using 1
{
TH0=0X00;
TL0=0X00;
a++;
if(a>=14){a=0;LED=~LED;}
}




作者: 啤酒瓶子老大    时间: 2022-6-1 16:56
是不是1秒闪烁一次也看不不出来啊?
不过通过看芯片手册倒是能看出来是1T还是12T.
作者: 雪玉寐影    时间: 2022-6-1 18:18
看型号不能判断是1T还是12T吗?
作者: onetwoto    时间: 2022-6-1 20:11
本帖最后由 onetwoto 于 2022-6-1 20:18 编辑
啤酒瓶子老大 发表于 2022-6-1 16:56
是不是1秒闪烁一次也看不不出来啊?
不过通过看芯片手册倒是能看出来是1T还是12T.

这个代码肯定能看的出来的,169是14的十多倍,要么0.1秒亮一次,要么1秒亮一次,要么10秒亮一次,这么明显的
作者: THFW    时间: 2023-9-19 03:55
11059200/65536=168.75次,为什么要这样呢,不懂
作者: wufa1986    时间: 2023-9-19 08:01
我为什么要判断呢,如果你不知道型号也不可能编程下载,如果你知道型号,下载手册已经明确说明了,
作者: hi等你    时间: 2023-9-19 08:49
12t的程序写到1t的单片机上面跑的飞快,延迟按键和扫描点亮数码管快的不能用,一眼就看出来了
作者: zhxzhx    时间: 2023-9-25 16:38
你这个,只是 定时器的分频,和单片机 是 1T 12T一点关系都没有
作者: 123156fsadf    时间: 2025-7-7 17:01
直接读单片机的寄存器,看寄存器的1T/12T状态位就好了,没必要这么麻烦
作者: 123156fsadf    时间: 2025-7-7 17:02
// 读取AUXR寄存器判断
if(AUXR & 0x01) {
    // AUXR.0 = 1 → 1T模式
    printf("当前为1T模式");
} else {
    // AUXR.0 = 0 → 12T模式
    printf("当前为12T模式");
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1