一氧化碳报警器毕业设计论文(编辑修改稿)内容摘要:

3 硬件电路设计 9 3 硬件电路设计 硬件的总体构思 基于 8051 单片机实现的 煤气报警器 的具体方案如图 所示。 该方案主要包括了 气体传感器 、 A/D 转换器、 8051 单片机电路、晶振、蜂鸣器以及 LED 显示电 路。 气体传感器输出为模拟量,需要利用 A/D 转换器将模拟量转换成数字量送给8051 单片机;晶振和 按 键控制作为 8051 单片机的外围输入电路,蜂鸣器作为报警用的 8051 单片机的外围输出电路;显示 电路采用了 LED 显示,由 8051 单片机控制实现显示。 图 基于 8051单片机的实现 芯片介绍及相关电路模块设计 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器 /计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、 A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 ADC0809是美国国家半导体公司生产的 CMOS 工艺 8通道, 8位逐次逼近式 A/D转换器。 其内部有一个 8通道多路开关,它可以根据地址码锁存译码后的信号,只选通 8路模拟输入信号中的一个进行 A/D 转换。 是目前国内应用最广泛的 8位通用A/D 芯片。 河南城建学院本科毕业设计(论文) 3 硬件电路设计 10 主控电路原理 主控电路中,以单片机为主体,通过分析 A/D 转换的得到的数字值,控制事故处理模块运行,它是系统的大脑。 本次设计采用的是 AT89C51 型单片机 ,AT89C51 是一种带 4K 字节闪存可编程可擦除只读存储器( FPEROM— Flash Programmable and Erasable Read Only Memory)的低电压、高 性能 CMOS 8 位微处理器,俗称单片机。 AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。 单片机的可擦除只读存储器可以反复擦除 1000 次。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控制器, AT89C2051 是它的一种精简版本。 AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 其引脚排列如图 所示: 图 单片机引脚排列图 VCC:供电电压。 GND:接地。 P0 口 : P0 口为一个 8位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当P0 口的管脚第一次写 “ 1” 时,被定义为高阻输入。 P0 能够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。 在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时, P0输出原码,此时 P0外部必须被拉高。 P1 口 : P1 口是一个内部提供上拉电阻的 8位双向 I/O 口, P1口缓冲器能接河南城建学院本科毕业设计(论文) 3 硬件电路设计 11 收输出 4TTL 门电流。 P1口管脚写入 “ 1” 后,被内部上拉为高,可用作 输入, P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH 编程和校验时, P1 口作为第八位地址接收。 P2 口 : P2 口为一个内部上拉电阻的 8位双向 I/O 口, P2口缓冲器可接收,输出 4 个 TTL 门电流,当 P2口被写 “ 1”时,其管脚被内部上拉电阻拉高,且作为输入。 并因此作为输入时, P2口的管脚被外部拉低,将输出电流。 这是由于内部上拉的缘故。 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。 在给出地址 “ 1”时,它利用内部上拉优势,当对外部八位地址数据存 储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口 : P3 口管脚是 8个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。 当 P3口写入 “ 1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3口将输出电流( ILL), 这是由于上拉的缘故。 RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址 的位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE的输出可在 SFR8EH 地址上置 “ 0”。 此时, ALE只有在执行 MOVX 和 MOVC 指令时 ALE 才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。 在由外部程序存储器工作 期间,每个机器周 期两次 /PSEN 有效。 但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 /EA/VPP:当 /EA 保持低电平时,则在此期间外部程序存储器 可寻址0000HFFFFH, 不管是否有内部程序存储器。 注意加密方式 1时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性 : XTAL1 和 XTAL2 分别为反向放大器的输入和输出。 该反向放大器可以配置为片内振荡器。 石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件, XTAL2 应不接。 由于 输入至内部时钟信号要通过一个二分频触发器,因河南城建学院本科毕业设计(论文) 3 硬件电路设计 12 此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 整个 EPROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE 管脚处于低电平 10ms 来完成。 在芯片擦 除 操作中,代码阵列全被写 “ 1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外, AT89C51 设有稳态逻辑,可以在 低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。 在闲置模式下, CPU 停止工作。 但 RAM、定时器、计数器、 串口和中断系统仍在工作。 在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 串口通讯: 是 单片 机的结构和特殊寄存器,这是编写软件的关键。 至于串口通信需要用到哪 些特殊功能寄存器呢,它们是 SBUF、 TCON、 TMOD 和 SCON 等,各代表什么含义呢。 SBUF 数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。 SBUF 包含了两个独立的寄存器,一个是发送寄 存 器 ,另一个是接收寄存器,但它们都共同使用同一个寻址地址- 99H。 CPU 在读 SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数 据已到来 而造成的数据重叠问题。 发送器则不需 要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去处 理发送数据。 操作 SBUF 寄存器的方法则很简单,只要把这个 99H 地址用关键字 sfr 定义为一个变量就可以对其进行读写操作了,如 sfr SBUF = 0x99。 当然你也可以用其它的名称。 通常在标准的 或 等头文件中已对其做了定义,只要用 include 引用就可以了。 SCON 串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。 SCON 就是 51 芯片的串行口控制寄存器。 它的寻址地址是 98H,是一个可以位寻址的寄存器,作用就是监视和控制 51 芯片串行口的工作状态。 51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用 SCON 寄存器。 SM2 在模式 模式 3 中为多机处理 通信使能位。 在模式 0 中要求 该位为 “ 0”。 REN 为允许接收位, REN 置 “ 1” 时串口允许接收,置 “ 0” 时禁止接收。 REN 是由软件置位或清零。 如果在一个电路中接收和发送引脚 、 都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入 REN=0 来禁止接收,在子程序结束处加入 REN=1 再次打开串口接收。 大家也可以用上面的实际源码加入 REN=0 来进行实验。 TB8 发送数据位 8,在模式 2 和 3 是要发送的第9 位。 该位可以用软 件根据需要置 位或清除,通常这位在通信协议中做奇偶位,在多机处理 通信中这一位则用于表示是地址帧还是数据帧。 河南城建学院本科毕业设计(论文) 3 硬件电路设计 13 RB8 接收数据位 8,在模式 2 和 3 是已接收数据的第 9 位。 该位可能是奇偶位或 地址 /数据标识位。 在模式 0 中, RB8 为保留位没有被使用。 在模式 1 中,当 SM2=0, RB8 是已接收数据的停止位。 TI 发送中断标识位。 在模式 0,发送完第 8 位数据时,由硬件置位。 其它模式中则是在发送停止位之初,由硬件置位。 TI 置位后,申请中断, CPU 响应中断后,发送下一帧数据。 在任何模式下, TI 都必 须由软件来清除,也就是说在数据写入到 SBUF 后,硬件发送数据,中断响应(如中断打开),这时 TI=1,表明发送已完成, TI 不会由硬件清除,所以这时必须用软件对其清零。 RI 接收中断标识位。 在模式 0,接收第 8 位结束时,由硬件置位。 其它模式中则是在接收停止位的半中间,由硬件置位。 RI=1,申请中断,要求 CPU 取走数据。 但在模式 1 中, SM2=1 时,当未收到有效的停止位,则不会对 RI 置位。 同样 RI 也必须要靠软件清除。 常用的串口模式 1 是传输 10 个位的, 1 位起始位为 0,8 位数据位,低位在先, 1 位停止位为 1。 它的波特率是可变的,其速率是取决于定时器 1 或定时器 2 的定时值。 AT89C51 和 AT89C2051 等 51 系列芯片只有两个定时器,定时器 0 和定时器 1,而定时器 2是 89C52 系列芯片才有的。 波特率在使用串口做通讯时, 是 一个很重要的参数,只有上下位机的波特率一样时才可以进行正常通讯。 波特率是指串行端口每秒内可以传输的波特位数。 有一些初学的朋友认为波特率是指每秒传输的字节数,如标准 9600 会被误认为每秒种可以传送 9600 个字节,而实际上它是指每秒可以传送 9600 个二进位,而一个字节要 8 个二进位,如用串口模式 1 来传输那么加上起始位和停止位,每个数据字节就要占用 10 个二进位, 9600 波特率用模式 1 传输时,每秒传输的字节数是 9600247。 10= 960 字节。 51 芯片的串口工作模式 0 的波特率是固定的,为fosc/12,以一个 12M 的晶振来计算,那么它的波特率可以达到 1M。 模式 2 的波特率是固定在 fosc/64 或 fosc/32,具体用哪 一种就取决于 PCON 寄存器中的 SMOD位,如 SMOD 为 0,波特率为 focs/64,若 SMOD 为 1,波特率为 focs/32。 模式 1 和模 式 3 的波特率是可变的,取决于定时器 1 或 2( 52 芯片)的溢出速率。 那么我们怎么去计算这两个模式的波特率设置时相关的寄存器的值呢。 可以用以下的公式去计算:波特率=。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。