基于单片机的led流水灯设计内容摘要:

少保持一个完整周期的时间,以保证输入信号至少被采样一次。 捕获方式 在捕获方式下 ,通过 T2CON 控制位 EXEN2 来选择两种方式。 如果 EXEN2=0,定时器 2 是一个 16 位定时器或计数器,计数溢出时,对 T2CON 的溢出标志 TF2 置位,同时激活中断。 如果 EXEN2=1,定时器 2 完成相同的操作,而当 T2EX 引脚外部输入信号发生 1 至 0 负跳变时,也出现 TH2 和 TL2 中的值分别被捕获到 RCAP2H 和 RCAP2L 中。 另外, T2EX 引脚信号的跳变使得 T2CON 中的 EXF2 置位,与 TF2 相仿, EXF2 也会激活中断。 自动重装载(向上或向下计数器)方式 当定时器 2 工 作于 16 位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器 T2CON 的 DCEN 位(允许向下计数)来选择的。 复位时, DCEN 位置 “0” ,定时器 2 默认设置为向上计数。 当 DCEN 置位时,定时器 2 既可向上计数也可向下计数,这取决于 T2EX 引脚的值,当 DCEN=0 时,定时器 2 自动设置为向上计数,在这种方式下, T2CON 中的 EXEN2 控制位有两种选择,若 E 微 机原理及应用课程设计说明书 9 XEN2=0,定时器 2 为向上计数至 0FFFFH 溢出,置位 TF2 激活中断,同时把 16 位计数寄存器 RCAP2H 和 RCAP2L 重装载, RCAP2H 和 RCAP2L 的值可由软件预置。 若 EXEN2=1,定时器 2 的 16 位重装载由溢出或外部输入端 T2EX 从 1 至 0 的下降沿触发。 这个脉冲使 EXF2 置位,如果中断允许,同样产生中断。 定时器 2 的中断入口地址是: 002BH —— 0032H。 当 DCEN=1 时,允许定时器 2 向上或向下计数。 这种方式下, T2EX 引脚控制计数器方向。 T2EX 引脚为逻辑 “1” 时,定时器向上计数,当计数 0FFFFH 向上溢出时,置位 TF2,同时把 16 位计数寄存器 RCAP2H 和 RCAP2L 重装载到 TH2 和 TL2 中。 T2EX 引脚为逻辑 “0” 时,定时器 2 向下计数,当 TH2 和 TL2 中的数值等于RCAP2H 和 RCAP2L 中的值时,计数溢出,置位 TF2,同时将 0FFFFH 数值重新装入定时寄存器中。 当定时 /计数器 2 向上溢出或向下溢出时,置位 EXF2 位。 波特率发生器 当 T2CON 中的 TCLK 和 RCLK 置位时,定时 /计数器 2 作为波特率发生器使用。 如果定时 /计数器 2 作为发送器或收器,其发送和接收的波特率可以是不同的,定时器 1 用于其它功能。 若 RCLK 和 TCLK 置位,则定时器 2 工作于波特率发生器方式。 波特率发生器的方式与自动重装载方式相仿,在此方式下, TH2 翻转使定时器2 的寄存器用 RCAP2H 和 RCAP2L 中的 16位数值重新装载,该数值由软件设置。 在方式 1 和方式 3 中,波特率由定时器 2 的溢出速率根据下式确定:方式 1和 3 的波特率 =定时器的溢出率 /16 定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式( C/T2=0)。 定时器 2 作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期( 1/12 振荡频率)寄存器的值加 1,而作为波特率发生器使用时,在每个状态时间( 1/2 振荡频率)寄存器的值加 1。 波特率的计算公式如下: 方式 1 和 3 的波特率 =振荡频率 /{32*[65536(RCP2H,RCP2L)]} 式中( RCAP2H, RCAP2L)是 RCAP2H 和 RCAP2L中的 16 位无符号数。 T2CON 中的 RCLK 或 TCLK=1 时,波特率工作方式才有效。 在波特率发生器工作方式中, TH2 翻转不能使 TF2 置位,故而不产生中断。 但若 EXEN2 置位,且 T2EX 端产生由 1 至 0 的负跳变,则会使 EXF2 置位,此时并不能将( RCAP2H, RCAP2L)的内容重新装入 TH2 和 TL2 中。 所以,当定时器 2 作为波特率发生器使用时, T2EX 可作为附加的外部中断源来使用。 需要注意的是,当定时器 2 工作于波特率器时,作为定时器运行( TR2=1)时,并不能访问 TH2 和 TL2。 因为此时每个状态时间定时器都会加 1,对其读写将得到一个不确定的数值。 然而,对 RCAP2 则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和 /或重装载出错。 在访问定时器 2或 RCAP2 寄存器之前,应将定时器关闭(清除 TR2)。 微 机原理及应用课程设计说明书 10 中断 AT89C52 共有 6 个中断向量:两个外中断( INT0 和 INT1), 3 个定时器中断(定时器 0、 2)和串行口中断。 这些中断源可通过分别设置专用寄存器 IE 的置位或清 0 来控制每一个中断的允许或禁止。 IE 也有一个总禁止位 EA,它能控制所有中断的允许或禁止。 定时器 2 的中断是由 T2CON 中的 TF2 和 EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是 TF2 或 EXF2 产生中断,而由软件清除中断标志位。 定时器 0 和定时器 1 的标志位 TF0 和 TF1 在定时器溢出那个机器周期的 S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。 然而,定时器 2 的标志位 TF2 在定时器溢出的那个机器周期的 S2P2 状态置位,并在同一个机器周期内查询到该标志。 时钟振荡器 AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分 别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图 10。 外接石英晶体(或陶瓷谐振器)及电容 C C2 接在放大器的反馈回路中构成并联振荡电路。 对外接电容 C C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用 30pF177。 10pF ,而如使用陶瓷谐振器建议选择 40pF177。 10F。 用户也可以采用外部时钟。 这种情况下,外部时钟脉冲接到 XTAL1 端 ,即内部时钟发生器的输入端, XTAL2 则悬空。 由于外部时钟信号是通过一个 2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 编程方法 编程前,须设置好地址、数据及控制信号, AT89C52 编程方法如下: 1. 在地址线上加上要编程单元的地址信号。 2. 在数据线上加上要写入的数据字节。 3. 激活相应的控制信号。 4. 在高电压编程方式时,将 EA/Vpp 端加上 +12V 编程电压。 5. 每对 Flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个 ALE/PROG 编程脉冲。 每个字节写入周期是自身定时的,通常约为。 重复 1— 5 步骤,改变编程单元的地址和写入的数据,直到全部文件编程结束。 微 机原理及应用课程设计说明书 11 单片机时钟电路 时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号的控制下严格地按时序进行工作。 在 MCS51芯片内部有一个高增益反相放大器,其输入端为芯片引脚 X1,输出端为芯片引脚 X2,在芯片的 外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。 此电路采用 12MHZ 的石英晶体。 时钟电路如下图所示: 图 31 时钟电路图 单片机复位电路 电阻的作用是用于上电复位的, VCC 以上电,由于电容两端电压不能够突破,所以 RST 上为高电平,然后电容放电, RST 就为低电平了 还可以用手动复位。 复位电路如下图所示: 图 32 复位电路图 微 机原理及应用课程设计说明书 12 4 系统软件设计 proteus 软件环境介绍 本系统的硬件设计首先是在 Proteus 软件环境中仿真实现的。 Proteus 软件是来自英国Labcenter electronics 公司的 EDA 工具软件, Proteus 软件有十多年的历史,在全球广泛使用,除了具有和其它 EDA 工具一样的原理布图、 PCB 自动或人工布线及电路仿真的功能外,其革命性的功能是, 它 的电路仿真是互动的。 针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。 如 果 有显示及输出,配合系统配置的虚拟仪器如示波器、 逻辑分析仪等 , 还能看到运行后输入输出的效果。 Proteus建立了完备的电子设计开发环境 , 尤其重要的是 Proteus Lite 可以完全免费,也可以花微不足道的费用注册达到更好的效果。 Proteus 是目前最好的模拟单片机外围器件的工具。 可以仿真 51 系列、 AVR、。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。