智能定时电源开关设计毕业设计(编辑修改稿)内容摘要:

出缓冲器可驱动(吸收或输出电流方式) 4个 TTL输入。 对端口写入 1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。 P3 做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流()。 在对 Flash ROM 编程或程序校验时, P3还接收一些控制信号。 P3 口除作为一般 I/O 口外,还有其他一些复用功能,如 表 : 表 P3口引脚复用功能 引脚号 复用功能 RXD(串行输入口) TXD(串行输出口) (外部中断 0) 太原工业学院毕业设计 13 (外部中断 1) T0(定时器 0 的外部输入) T1(定时器 1 的外部输入) (外部数据存储器写选通) (外部数据存储器读选通) RST( 9 引脚):复位输入。 当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。 看门狗计时完成后, RST 引脚输出 96 个晶振周期的高电平。 特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。 DISRTO默认状态下,复位高电平有效。 ALE/( 30 引脚):地址锁存控制信号( ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。 在 Flash 编程时,此引脚()也用作编程输入脉冲。 在一般情况下, ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。 然而,特别强调,在每次访问外部数据存储器时, ALE 脉冲将会跳过。 如果需要,通过将地址位 8EH 的 SFR 的第 0位置“ 1” , ALE操作将无效。 这一位置“ 1” , ALE 仅在执行 MOVX 或 MOV指令时有效。 否则, ALE 将被微弱拉高。 这个 ALE使能标志位(地址位 8EH 的 SFR 的第 0位)的设置对微控制器处于外部执行模式下无效。 ( 29 引脚):外部程序存储器选通信号()是外部程序存储器选通信号。 当AT89C51RC 从外部程序存储器执行外部代码时,在每个机器周 期被激活两次,而访问外部数据存储器时,将不被激活。 /VPP( 31 引脚):访问外部程序存储器控制信号。 为使能从 0000H 到 FFFFH 的外部程序存储器读取指令,必须接 GND。 注意加密方式 1时,将内部锁定位 RESET。 为了执行内部程序指令,应该接 VCC。 在 Flash 编程期间,也接收 12 伏 VPP电压。 XTAL1( 19引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2( 18引脚):振荡器反相放大器的输入端。 单片机定时 /计数器的原理与应用方法 定时/计数器的基本结构 定时/计数器的基本结构如图 所示 [5]。 包括两个定时器/计数器 T0 和 T工作方式寄存器 TMOD 和控制寄存器 TCON。 其中每个定时/计数器是由两个 8 位寄存器 TH0、 TL0 和 TH TH1 构成,用于存放定时/计数器的计数初值和经过值;太原工业学院毕业设计 14 工作方式寄存器 TMOD 用于定时/计数器的工作方式设置;控制寄存器 TCON 用来对定时/计数器进行启动、停止运行控制管理。 图 定时/计数器的基本结构 定时/计数器的工作原理 定时器 T0和 T1分别是由 TH0、 TL0和 TH TL1,这两个 8位计数器构成的 16位计数器。 两个 16位计数器都可以理解为 16位的加 1计数器 [7]。 T0和 T1定时 /计数器都可由软件设置为定时或计数的工作方式,其中 T1还可作为串行口的波特率发生器。 T0和 T1这些功能的实现都由特殊功能寄存器中的 TMOD 和TCON 进行控制 当 T0或 T1用作对外部事件计数的计数器时,通过 89C51外部引脚 T0( )或T1( )对外部脉冲信号进行计数。 当加在 T0或 T1引脚上的外部脉冲信号出现一个由 1到 0的负跳变时,计数器加 1,如此直至计数器产生溢出。 当 T0或 T1用作定时器时,对外接晶振产生的振荡信号进行 12分频后,提供给计数器,作为计数的脉冲输入,计数器对输入的脉冲进行计数,直至产生溢出。 不论 T0或 T1是工作于定时方式还是计数方式,它们在对内部时钟或外部事件进行计数时,都不占用 CPU 时间,直到定时 /计数器产生溢出。 如果满足条件, CPU 才会太原工业学院毕业设计 15 停下当前的操作,去处理 “时间到 ”或者 “计数满 ”这样的事件。 因此,定时 /计数器是与CPU‘并行’工作的,除非溢出不会影响 CPU的其它工作。 /计数器的方式寄存器与控制寄存器 [6][7] T0和 T1由两个 8位寄存器 TMOD 和 TCON 来控制,分别用来设置各个定时/计数器的工作方式、选择定时或计数功能、控制启动运行以及作为运行状态的标志等。 当 89C52系统复位时, TMOD 和 TCON 所有位都清 0。 ( 1)定时器 /计数器的方式寄存器 TMOD 图 定时/计数器的方式寄存器 TMOD 在特殊功能寄存器中,字节地址为 89H。 由于 TMOD 只能进行字节寻址,所以对 T0或 T1工作方式的控制只能整字节 (8位 )写入。 在 TMOD 中,高 4位用于对定时器 T1的方式控制,而低 4位用于对定时器 T0的方式控制。 图 ,各位功能简述如下: 1) 工作方式选择位 M1M0:定时器工作方式选择位。 通过对 M1M0的设置,可使定时器工作于 4种工作方式之一。 参考表 表 定时器工作方式 M1 M0 方式 说 明 0 0 0 13 位定时器 (TH的 8 位和 TL的低 5 位) 0 1 1 16 位定时器 /计数器 1 0 2 自动重装入初值的 8 位计数器 1 1 3 T0 分成两个独立的 8 位计数器 ,T1 在方式 3 时停止工作 2) C/ T 定时/计数器选择位 — C/ T=1,工作于计数方式; 太原工业学院毕业设计 16 — C/ T=0,工作于定时方式。 3) GATE 门控位 由 GATE、软件控制位 TR1/ TR0和 INT1/ INT0共同决定定时/计数器的打开或关闭。 — GATE=0,只要用指令置 TR1/ TR0为 1即可启动定时/计数器工作,而不管INT 的 状态如何; — GATE=1,只有 INT1/ INT0为高电平且用指令置 TR1/ TR0为 1时,才能启动定时/计数器工作。 ( 2)定时 /计数器控制寄存器 (TCON) TCON 是一个特殊功能寄存器, TCON 的字节地址为 88H,其各位地址从 88位开始分别为 88H~ 8FH。 高 4位为定时/计数器的运行控制和溢出标志位,低 4位与外部中断有关。 其格式如下表列: TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON 的高 4 位的功能描述如下: ① TF1/ TF0 溢出标志位 当 T1或 T0产生溢出时,由硬件自动置位中断触发器 TF1或 TF0,并向 CPU 申请中断。 如果用中断方式,则 CPU 在响应中断进入中断服务程序后, TF1或 TF0被硬件自动清 0。 如果是用软件查询方式对 TF1或 TF0进行查询,则在定时/计数器回 0后,应当用指令将 TF1或 TF0清 0。 ② TR1/ TR0 运行控制位 用指令 (“ SETB TR1” )对 TR1或 TR0进行置位或清零,也可以启动或关闭 T1或T0的运行。 /计数器的 MODE0[8] MODE0 为 13 位定时 /计数器工作方式,其内部结构如图。 由图 ,MODE0 实际上是由 TL0( 5 位)和 TH0( 8 位)构成的 13 位脉冲计数器,并由 TCON和 TMOD 控制和管理。  设定 MODE0 的步骤: ( 1).设定 MODE0的步骤(四选 1) 太原工业学院毕业设计 17 MOV TMOD, 00H TIMER0设定计时工作方式 (内部输入 ) MOV TMOD, 00H TIMER1设定计时工作方式 (内部输入 ) MOV TMOD, 04H TIMER0设定计数工作方式 (T0输入 ) MOV TMOD, 40H TIMER1设定计数工作方式 (T1输入 ) ( 2).预置计数初值 MOV TLX, (8192–COUNT) MOD/32。 TLX 的值为计数值除以 32的余数 MOV THX, (8192–COUNT)/32。 THX 为计数值除以 32的商 ( 3).启动定时器 SETB TRX ( 4).检查 TFX 是否溢出 JBC TFX。 查询方式检查 TFX 是否溢出,溢出转移,否则等待 图 方式 0内部结构 定时 /计数器的 MODE1[8] 方式 1和方式 0的工作原理基本相同,唯一不同是 T0和 T1工作在方式 1时,计数长度 M是 2的 16次方,内部结构参考图。 16位的初值直接拆成高低字节,分别送入 TH 和 TL 即可,对于实际应用比 MODE0更有实际意义。  设定 MODE1的步骤: ( 1).设定 MODE1的步骤(四选 1) MOV TMOD, 01H TIMER0设定计时工作方式 (内部输入 ) MOV TMOD, 10H TIMER1设定计时工作方式 (内部输入 ) 太原工业学院毕业设计 18 MOV TMOD, 05H TIMER0设定计数工作方式 (T0输入 ) MOV TMOD, 50H TIMER1设定计数工作方式 (T1输入 ) ( 2).启动定时器 SETB TRX ( 3).预置计数初值 MOV TLX, (65536– COUNT) MOD 256 MOV THX, (65536– COUNT)/ 256 ( 4).检查 TFX 是否溢出 JBC TFX 图 方式 1内部结构 定时 /计数器的 MODE2[8] 方式 1和方式 0的工作原理基本相同,计数溢出后计数器清 0。 在循环计数或循环定时应用时就存在反复设置计数初值的问题。 不仅会给程序设计带来不便,同时影响定时的精度。 针对以上问题,最好的解决办法就是使用方式 2,它具有自动加载功能,即自动加载计数初值。 在这种方式下,把 16位计数器分为两部分,即 TL 作为计数器,以 TH作初值预置寄存器,初始化时将计数初值分别装入 TL和 TH中。 计数溢出后由预置寄存器 TH 以硬件方法自动给 TL重新加载,由硬件重新赋值,所以也称为硬件 自动重加载工作方式。 其内部结构参考图。 定时器 T1 工作在方式 2 时 , 可直接用作串行口波特率发生器的控制。 太原工业学院毕业设计 19 图 方式 2内部结构  设定 MODE2的步骤 ( 1).设定 MODE2的步骤(四选 1) MOV TMOD, 02H TIMER0设定计时工作方式 (内部输入 ) MOV TMOD, 20H TIMER1设定计时工作方式 (内部输入 ) MOV TMOD, 06H TIMER0设定计数工作方式 (T0输入 ) MOV TMOD, 60H TIMER1设定计数工作方式 (T1输入 ) ( 2).启动定时器 SETB TRX ( 3).预置计数初值 MOV TLX, (256– COUNT) MOV THX, (256– COUNT) ( 4).检查 TFX 是否溢出 JBC TFX 定时 /计数器的 MODE3[8] 在工作方式 3模式下,定时 /计数器 T0被拆成两个独立的 8位计数器 TL0和 TH0。 其结构如图。 其中 TL0既可以作计数器使用,也可以作为定时器使用,定时 /计数器 T0的各控制位和引脚信号全归它使用。 其功能和操作与方式 0或方式 1完全相同。 TH0就没有那么多 “ 资源 ” 可利用了,只能作为简单的定时器使用,而且由于定时 /计数器 T0的控制位已被 TL0占用,因此只能借用定时 /计数器 1的控制位 TR1和 TF1,也就是以计数溢出去置位 TF1, TR1则负责控制 TH0定时的启动和停止。 由于 TL0既能作定时器也能作计数器使用,而 TH0只能作定时器使用而不能作计数器使用,因此在方式 3模式下,定时 /计数器 0可以构成二个定时器或者一个定时器和一个计数器。 太原工业学院毕业设计 20 如果定时 /计数器 0工作于工作方式 3,那么定时 /计数器 1的工作方式就不可避免受到一定的限制,因为自己的一些控制位已被定时 /计数器借用,只能工作在方式 0、方式 1或方式 2下,如果设置 T1工作在方式 3,则 T1停止工作,相当于其他方式时令 TR1= 0。 图 方式 3 内部结构  设定 MODE3的步骤 ( 1).设定 MODE3的步骤(三选 1) MOV TMOD, 03H TL0设定计时工作方式 (内部输入 ) M。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。