基于单片机温度自动控制系统毕业设计(编辑修改稿)内容摘要:

e Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片机。 而在众多的 51 系列单片机中,要算 ATMEL 公司的 AT89C51更实用,也是一种高效微控制器,因为它不但和 8051 指令、管脚完全兼容,而且其 片内的 4K 程序存储器是 FLASH 工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。 而这种单片机对开发设备的要求很低,开发时间也大大缩短。 10 AT89C51 基本功能描述如下: AT89C51 是一种低损耗、高性能、 CMOS 八位微处理器,而且在其片种还有 4k 字节的在线可重复编程快擦快写程序存储器,能重复写入 /擦除 1000 次,数据保存时间为十年。 它与 MCS51 系列单片机在指令系统和引脚上完全兼容,不仅可完全代替 MCS51 系列单片机,而且能使系统具有许多 MCS51 系列产品没有的功能。 AT89C51 可构 成真正的单片机最小应用系统,缩小系统体积 , 增加系统的可靠性,降低了系统成本。 只要程序长度小于4k, 四个 I/O口全部提供给用户。 可用 5V电压编程,而且写入时间仅 10毫秒 , 仅为 8751/87C51 的擦除时间的百分之一,与 8751/87C51 的 12V电压擦写相比 , 不易损坏器件 , 没有两种电源的要求,改写时不拔下芯片,适合许多嵌入式控制领域。 AT89C51 芯片提供三级程序存储器锁定加密, 提供了方便灵活而可靠的硬加密手段 , 能完全保证程序或系统不被仿制。 另外 ,AT89C51 还具有 MCS51系列单片机 的所有优点。 128179。 8 位内部 RAM, 32 位双向输入输出线 , 两个十六位定时器 /计时器 , 5 个中断源 , 两级中断优先级 , 一个全双工异步串行口及时钟发生器等。 AT89C51 有间歇、掉电两种工作模式。 间歇模式是由软件来设置的 , 当外围器件仍然处于工作状态时 , CPU 可根据工作情况适时地进入睡眠状态 , 内部RAM和所有特殊的寄存器值将保持不变。 这种状态可被任何一个中断所终止或通过硬件复位。 掉电模式是 VCC 电压低于电源下限 , 当振荡器停止振动时 , CPU 停止执行指令。 该芯片内 RAM 和特殊功能寄存器值保持不变 , 一直到掉电模式被终止。 只有 VCC 电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位、掉电模式可被终止。 AT89C51 系列引脚功能 AT89C51 有 40 引脚双列直插( DIP)形式。 其与 80C51 引脚结构基本相同,其逻辑引脚图 如 下 图 21所示: 图 21 AT89C51 逻辑引脚图 各引脚功能叙述如下: 1.电源和晶振 VCC—— 运行和程序校验时加 +5V GND—— 接地 11 XTAL1—— 输入到振荡器的反向放大器 XTAL2—— 反向放大器的输出,输入到内部时钟发生器 (当使用外部振荡器时, XTAL1 接地, XTAL2 接收振荡器信号) RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引脚用于输入编 程脉冲。 在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时, ALE只有在执行 MOVX, MOVC 指令是 ALE 才起作用。 另外,该引脚被略微拉高。 2. I/O( 4 个口, 32 根) P0 口 —— 8位、漏极开路的双向 I/O 口。 当使用片外存储器( ROM、 RAM)时,作地址和数据分时复用。 在程序校验期间,输出指令字节(需加外部上拉电路)。 P0口(作为总线时)能驱动 8个 LSTTL 负载。 P1 口 —— 8位、准双向 I/O 口。 在编程 /校验期间,用于输入低位字节地址。 P1口可驱动 4 个 LSTTL 负载。 对于 80C51, —— T2,是定时器的计数端且位输入; —— T2EX,是定时器的外部输入端。 这时,读两个特殊输入引脚的输出锁存器应由程序置 1。 P2 口 —— 8位、准双向 I/O 口。 当使用片外存储器( ROM 及 RAM)时,输出高 8 位地址。 在编程 /校验期间,接收高位字节地址。 P2口可以驱动 4个 LSTTL负载。 P3 口 —— 8 位、准双向 I/O 口,具有内部上拉电路。 P3 口提供各种替代功能。 在提供这些功能时,其输出锁存器应由程序置 1。 P3 口可以输入 /输出 4 个LSTTL 负载。 3.串行口 —— RXD(串行输入口),输入。 —— TXD(串行输出口),输出。 4.中断 —— INT0 外部中断 0,输入。 —— INT1 外部中断 1,输入。 5.定时器 /计数器 —— T0 定时器 /计数器 0 的外部输入,输入。 —— T1 定时器 /计数器 1 的外部输入,输入。 6.数据存储器选通 —— WR 低电平有效,输出,片外存储器写选通。 —— RD 低电平有效,输出,片外存储器读选通。 7.控制线 (共 4根 ) 输入: RST—— 复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 EA/Vpp—— 片外程序存储器访问允许信号,低电平有效。 在编程时,其上施加 21V 的编程电压。 注意:在加密方式 1 时, EA将内部锁定为 RESET;当 EA端保持高电平时,此间内部程序存储器。 在 FLASH编程期间,此引脚也用于施加 12V编程电源( VPP)。 12 输入、输出: ALE/PROG—— 地址锁存允许信号,输出。 ALE 以 1/6 的振荡频率稳定速率输出,可用作对外输出 的时钟或用于定时。 在 EPROM 编程期间,作输入,输入编程脉冲( PROG)。 ALE 可以驱动 8 个 LSTTL 负载。 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 注意:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE的输出可在 SFR8EH 地址上置 0。 此时, ALE 只有在执行 MOVX, MOVC 指令是 ALE才起作用。 另外 ,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止,置位无效。 输出: PSEN—— 片外程序存储器选通信号,低电平有效。 在从片外程序存储器取址期间,在每个机器周期中,当 PSEN 有效时,程序存储器的内容被送上 P0 口(数据总线)。 PSEN 可以驱动 8个 LSTTL 负载。 AT89C51 系列单片机的功能单元 1.并行 I/O 接口: 单片机芯片内有一项主要功能就是并行 I/O 口。 51 系列共有 4 个 8 位的并行 I/O 口,分别记作 P0、 P P P3 每个口都包含一个锁存器,一个输出驱动器和输入缓冲器。 实际上,它 们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。 在访问片外扩展存储器时,低八位地址和数据由 P0 口分时传送,高八位地址由 P2口传送。 2.定时器 /计数器 定时器 /计数器( timer/counter)是单片机中的重要部件,其工作方式灵活、编程简单,使用它对减轻 CPU 的负担和简化外围电路都大有好处。 C51 系列包含有两个 16 位的可编程定时器 /计数器分别称为定时器 /计数器T0和定时器 /计数器 T1;在 C51 部分产品中,还包含有一个用做看门狗的 8位定时器。 定时器 /计数器的核心是一个加 1 计数引脚上施加器,其基本功 能是加 1功能。 在单片机的定时器 T0或 T1 中,有一个定时器发生由 0到 1的跳变时,计数器增 1,即为计数功能;在单片机内部对机器周期或其分频进行计数,从而得到定时,这就是定时功能。 在单片机中,定时功能和计数功能的设定和控制都是通过软件来进行的。 定时器 /计数器内部结构及其原理:由定时器 0、定时器 定时器方式寄存器TMOD 和定时器控制寄存器 TCON 组成。 当定时器 /计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加 1,直至计满溢出。 定时器的定时时间与系统的振荡频率紧密相关,因为 C51 系 列单片机的一个机器周期由 12个振荡脉冲组成,所以,计数频率 fc=fosc/12。 如果单片机系统采 12MHz晶振,则计数周期为 : T=1/12*106*(1/12)=1μ S ,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。 当定时器 /计数器设置为计数工作方式时,计数器对来自输入引脚 T0( )和 T1( )的外部信号计数,外部脉冲的下降沿将触发计数。 在每个机器周期的 S5P2 期间采样引脚输入电平,若前一个机器周期采样值为 1,后一个机器周期采样值为 0,则计数器加 1。 新的计数值是在检测到输入引 脚电平发生 1 到 13 0 的负跳变后,于下一个机器周期的 S3P1 期间装入计数器中的,可见,检测一个由 1到 0的负跳变需要两个机器周期,所以最高检测频率为振荡频率的 1/24。 计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。 3.振荡器 XTAL1 和 XTAL2 分别为反向放大器的输入和输出。 该反向放大器可以配置为片内振荡器。 石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件, XTAL2应不接。 当输入至内部时钟信号时要通过一个二分频触发器,而对外部时钟信号的 脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4.芯片擦除 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平 10ms 来完成。 在芯片擦除操作中,代码阵列全被写“ 1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。 在闲置模式下, CPU 停止工作。 但 RAM、定时器、计数器、串口和中断系统仍在工作。 在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能 ,直到下一个硬件复位为止。 5.中断系统 中断系统是单片机的重要组成部分。 实时控制、故障自动处理、单片机与外围设备间的数据传送往往采用中断系统。 中断系统大大提高了系统的效率。 C51 系统有关中断的寄存器有 4个,分别为中断源寄存器 TCON 和 SCON、中断允许控制寄存器 IE和中断优先级控制寄存器 IP;中断源有 5 个,分别为外部中断 0请求 INT0、外部中断 1 请求 INT定时器 0溢出中断请求 TF0、定时器 1溢出中断请求 TF1和串行中断请求 R1 或 T1。 5个中断源的排列顺序由中断优先级控制寄存器 IP 和顺序查询逻辑电路共 同决定, 5 个中断源分别对应 5 个固定的中断入口地址。 中断的特点是分时操作,实时处理和故障处理。 简单介绍一下本次设计所需的单片机芯片 AT89C51 的中断系统中要用到的中断类型。 ( 1) 外部中断源 AT89C51 有 INT0 和 INT1 两条外部中断请求输入线 ,用于输入两个外部中断源的中断请求信号 ,并允许外部中断源以低电平或负边沿两种中断触发方式来输入中断请求信号。 AT89C51 究竟工作于哪种中断触发方式 ,可由用户对定时器控制寄存器 TCON 中 IT0 和 IT1 位状态的设定来选取。 AT89C51 在每个机器周期的S5P2 时对 INT0、线上中断请求信号进行一次检测 ,检测方式和中断触发方式的选取有关。 若 AT89C51 设定为电平触发方式 (IT0=0 或 IT1=0),则 CPU检测到 INT0、INT1 上低电平时就可认定其上中断请求有效。 若设定为边沿触发方式 (IT0=1 或IT1=1),则 CPU 需要两次检测 INT0、 INT1 线上电平方能确定其上中断请求是否有效 ,即前一次检测为高电平和后一次检测为低电平时中断请求才有效。 ( 2) 定时器溢出中断源 定时器溢出中断由 AT89C51 内部定时器分的中断源产生 ,故它们属于内部中断。 AT89C51 内部有两个 16 位定时器 /计数器 ,受内部定时脉冲 (主脉冲经 12 分频后 )或 T0/T1 引脚上输入的外部定时脉冲计数。 定时器 T0/T1 在定时脉冲作用下从全“ 1”变成全“ 0”时可以自动向 CPU 提出溢出中断请求 ,以表明定时器 T0或 T1 的定时时间已到。 14 ( 3) 串行口中断源 串行口中断由 AT89C51 内部串行口的中断源产生 ,也是一种内部中断。 串行口中断分为串行口发送中断和串行口接收中断两种。 在串行口进行发送 /接收数据时 ,每当串行口发送 /接收完一组串行数据时串行口电路自动使 串行口控制寄存器 SCON中的 RI或 TI中断标志位置位,并自动向 CPU发出串行口中断请求 ,CPU响应串行口中断后便立即转入串行口中断服务程序执行。 因此 ,只要在串行口中断服务程序中安排一段对 SCON中 RI和 TI中断标志位状态的判断程序 ,便可区分串行口发生了接收中断请求还是发送中断请求。 ( 4) 中断标志 AT89C51 在 S5P2 时检测 (或接收 )外部 (内部 )中断源发来的中断请求信号后先使相应中断标志位置位 ,然后便在下个机器周期检测这些中断标志位状态 ,以决定是否响应该中断。 ADC0809 模数转换器 ADC0809 是位 A/D 转换芯片,它是采用逐次逼近的方法完成 A/D 转换的。 ADC0809 由单 +5V 电源供电;片内带有锁存功能的 8路模拟多路开关,可对 8 路0~ 5V 的输入模拟电压分时进行转换,完成一次转换约需 100181。 S;片内具有多路开关的地址译码器和锁存器、高阻抗斩波器、稳定的比较器, 256 电阻 T 型网络和树状电子开关以及逐次逼近寄存器。 ADC0809 是引脚双列直插式封装,引脚及其功能 如 下 图 22所示 : 图 22 ADC0809 的管脚图 图 23 运 算放大器 LM324 的引脚图 1. D7~ D0: 8 位数字量输出引脚。 2. IN0~ IN7: 8路模拟量输入引脚。 3. VCC: +5V 工作电压。 4. GND:接地。 5. REF( +):参考电压正端。 6. REF( ):参考电压负端。 15 7. START: A/D 转换启动信号输入端。 8. A、 B、 C:地址输入端。 9. ALE:地址锁存允许信号输入端。 10. EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 11. OE: 输出允许控制端,用以打开三态数据输出锁存器。 12. CLK:时钟信号输入端, 译码后可选通 IN0~ IN7 八个通道中的一个进行转换。 表 21 A、 B、 C的输入与被选通道的通道关系 被选中的通道 C B A IN0 0 0 0 IN1 0 0 1 IN2 0 1 0 IN3 0 1 1 IN4 1 0 0 IN5 1 0 1 IN6 1 1 0 IN7 1 1 1 LM324 本次设计所用的运算放大器是 LM324,而 LM3。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。