单片机的定时器与串口问题

2025-05-01 04:07:03
推荐回答(2个)
回答1:

关于 晶振11.0592M 与 12M 的 差别,应该 是 设置 时 设置的数据引起波特率 误差产生的

回答2:

在应用单片机的定时/计数器资源时,一般都要按照以下几个步骤进行:
(1)确定工作方式,对方式控制寄存器TMOD赋值;
(2)根据要求计算初值并装入寄存器THx、TLx;
计数初值的设定:T0、T1工作在不同方式下,计数的最大值M不同。
方式0:M=213=2000H=8192
方式1:M=216=10000H=65536
方式2、方式3:M=28=100H=256
计数初值X:
当工作在定时方式时,特殊功能寄存器WAKE_CLKO中的位T0x12或T1x12等于0时,一个计数脉冲周期Tp = ;T0x12或T1x12等于1时,一个计数脉冲周期Tp =,实际定时时间Tc=(M-X)Tp,由此可知,X=M-。
(3)根据需要开放定时/计数器中断,即中断允许位EA、ETx置1;
(4)启动定时/计数器开始工作,即TRx位置1;
(5)编写中断服务程序或采用查询处理方式编写查询方式程序。
参考《单片机原理与应用-基于汇编、C51及混合编程》一书的第179-187页的例题7-1、7-2、7-3、7-4、7-5。该书以STC12C5A60S2为主线介绍,这一款单片机内部功能多,适合于竞赛和产品设计,该书的特点:各个例题的原理图与实际电路图一致,标出了各器件的参数,给出了汇编、C51两种编程的详解,该书例题的程序编写思路符合于产品设计,最后一章给出了两个完整的实例,可指导初学者入门。