《基于ATmega16L多路复用腌鱼计时计数器的设计 毕业设计》由会员分享,可在线阅读,更多相关《基于ATmega16L多路复用腌鱼计时计数器的设计 毕业设计(45页珍藏版)》请在金锄头文库上搜索。
1、本科生毕业论文设计题目 基于 ATmega16L 多路复用腌鱼计时计数器的设计 作者姓名 指导教师 所在学院 专业(系) 班级(届) 完成日期 2010 年 5 月 21 日 毕业生毕业论文(设计)I目录摘 要 .(I)1 绪论 .(1)1.1 研究的背景 .(1)1.2 研究的目的和意义 .(1)1.3 本文研究的主要内容 .(1)2 ATmega16L 单片机简介 .(4)2.1 性能概括 .(4)2.2 ATmega16L 的特点 .(4)3 整体硬件设计 .(10)3.1 主控制器模块 .(10)3.2 按键电路部分 .(11)3.3 显示电路部分 .(12)3.4 报警电路部分 .(
2、14)4 整体软件设计 .(16)4.1 软件程序功能与内容 .(16)4.2 主程序 .(16)4.3 EEPROM 读写子程序 .(17)4.4 按键相关程序 .(18)4.5 LED 数码管显示子程序 .(22)4.6 定时计数器和中断服务程序部分 .(25)5 开发制作流程 .(28) 毕业生毕业论文(设计)II结束语 .(31)参考文献 .(32)Abstract .(33)附录一:全部硬件资源 .(35)附录二:多路复用腌鱼计时计数器按键使用说明: .(34) 毕业生毕业论文(设计)I摘 要传统的腌鱼计时计数需要专门的工作人员通过目测钟表来判断记录每条鱼的腌制时间,通过笔纸记录某盆
3、腌液历史腌鱼的条数。但是由于人工误差往往不能精确计时;同时还需要专人负责记录历史腌鱼条数,增加了经营成本,基于此问题,专门为石家庄某餐饮企业设计开发了一款“基于 ATmega16L 单片机的多路复用腌鱼计时计数器” 。ATmega16L 单片机拥有 32 个 I/O 输出端口,本系统采用两组四联排数码管显示,共需要占用 16 个 I/O 端口,按键部分占用五个 I/O 端口,蜂鸣器占用一个 I/O 端口。ATmega16L 的 I/O 端口电流大,无需驱动电路就可以直接连接 LED 数码管。基于此功能要求和 ATmega16L 上述特点,故选用 ATmega16L 作为主控芯片。关键词:ATm
4、ega16L;计时计数器;LED 数码管河北师范大学本科毕业生毕业论文(设计)21 绪论1.1 研究的背景应石家庄某餐饮企业对于腌鱼计时计数工作的需要,经过多方调查研究发现,烤鱼店在烤鱼前需要用特制腌液腌制,根据所腌每条鱼的重量来确定这条鱼应该腌制的时间,如果超出规定时间,腌制的鱼过咸,少于规定时间则变淡。另外每盆腌液所腌制鱼的条数有限,超出腌制鱼的最大条数后,必须更换作料,否则再腌的鱼就会变淡,综合以上要求,这就需要企业配置专门人员记录同一盆腌液腌鱼的条数和腌液中每一条鱼的腌制时间。1.2 研究的目的和意义传统的腌鱼计时计数需要专门的工作人员通过目测钟表来判断记录每条鱼的腌制时间,通过笔纸记
5、录某盆腌液历史腌鱼的条数。但是由于人工误差往往不能精确计时,还需要专人负责记录历史腌鱼条数,同时也给工作人员带来了不便增加了经营成本,基于此问题,我们专门为石家庄某餐饮企业设计开发了一款“多路复用腌鱼计时计数器” 。工作人员利用这款计时器可以实现腌制每条鱼时间的精确计时和腌制条数的精确计数,为经营者节省了成本,同时还提高了腌鱼的质量。1.3 本文研究的主要内容这款“多路复用计时计数器”根据客户要求共开发设计三个独立的计时器,每个计时器分别计时,互不影响,每个计时器采用倒计时计时,当倒计时为零时有声音警报提示;当计数次数达到设定的次数上限后又有另一声音警报提示。并且可以根据每批鱼的大小调节每个计
6、时器的计时时间和计数次数。ATmega16L 是一款高性能的 8 位 AVR 微处理器,它具有先进的 RISC 结构、32 个 8 位通用工作寄存器、非易失性程序和数据存储器、两个具有独立分频器和比较功能的 8 位定时器/计时器、供电范围宽(2.7-5.5V) 、功耗低(正常模式为 1.1mA,空闲模式为 0.35mA,掉电模式为 1A) 、32 个 I/O 接口(单个 I/O 电流输出最大可达到 40mA,可以直接驱动 LED数码管) 。基于功能要求和 ATmega16L 上述特点,故选用 ATmega16L 作为主控芯片。产品设计预想模型图如图 1-1:河北师范大学本科毕业生毕业论文(设计
7、)3A C DB1 2 3 45 6 7 8EFG备注信息:12 为计时器 134 为计时器 256 为计时器 378 为计数器ABC 为计时/ 调时按键D 为调数按键E 为功能选择按键FG 分别为扬声器和开关图 1-1 产品设计预想模型图本系统由主控电路部分、显示电路部分、按键电路部分和报警电路部分四个模块组成。将电脑上预先编译后的文件下载到单片机芯片后,利用按键调整每个计时器的计时时间和最大计数次数,本系统就可以正常运行使用。本文主要介绍利用单片机实现这一计时、计数功能的方法和该系统软硬件设计的实现,旨在对如何书写程序对单片机实施控制,实现这一实际应用要求进行探讨、研究。河北师范大学本科毕
8、业生毕业论文(设计)42 ATmega16L 单片机简介2.1 性能概括ATmega16L 是一款增强型内置 Flash 的 RISC(Reduced in Struction Set CPU)精简指令集高速 8 位 AVR 单片机。以其高可靠性、功能强、高速度、低功耗和低价位的特点在市场上获得了很高的市场占有率。AVR 单片机废除了机器周期,抛弃了复杂的指令计算机(CISC)追求指令完备的做法,采用了精简指令集,取值周期短,还可以预取指令,提高了执行指令的速度。该系列单片机集中了多种器件(如:包括 FLASH 程序存储器、看门狗、EEPROM、同/异步串行口、A/D 转换器、定时器/计数器等
9、)和多种功能(如:复位系统、休眠模式、多种中断系统、比较匹配输出等多样功能的计时器/计时器、具有第二功能的I/O 端口等) 。综上所述,AVR 单片机也因此成为 8 位机中最优秀单片机之一。2.2 ATmega16L 的特点2.2.1 内核介绍AVR 内核具有丰富的指令集和 32 个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的 CISC 微控制器最高至 10 倍的数据吞吐率。ATmega16L 有如下特点:16K 字节的系统内可编程 Flash(具有同时读写的能力,即 RW
10、W),512 字节 EEPROM,1K 字节 SRAM,32 个通用 I/O 口线,32 个通用工作寄存器,用于边界扫描的 JTAG 接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/ 计数器(T/C),片内/外中断,可编程串行 USART,有起始条件检测器的通用串行接口,8 路 10 位具有可选差分输入级可编程增益(TQFP 封装) 的 ADC ,具有片内振荡器的可编程看门狗定时器,一个 SPI 串行端口,以及六个可以通过软件进行选择的省电模式。 工作于空闲模式时 CPU 停止工作,而 USART、两线接口、A/D 转换器、SRAM、T/C、SPI 端口以及中断系统继续工作;掉电模式
11、时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止 CPU 和除了异步定时器与 ADC 以外所有河北师范大学本科毕业生毕业论文(设计)5I/O 模块的工作,以降低 ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展 Standby 模式下则允许振荡器和异步定时器继续工作。本芯片是以 Atmel 高密度非易失性存储器技术生产的。片内 ISP Flash 允许程序存储
12、器通过 ISP 串行接口,或者通用编程器进行编程,也可以通过运行于 AVR 内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用 Flash 存储区。在更新应用 Flash 存储区时引导 Flash 区(Boot Flash Memory)的程序继续运行,实现了 RWW 操作。 2.2.2 引脚功能 图 2-1 ATmega16L 的 FDIP 封装引脚功能图ATmega16L 引脚说明:VCC:数字电路的电源;GND:地接口;端口 A(PA7-PA0):端口 A、端口 B、端口C、端口 D 作为 I/O 输入输出口时具有共同的特点:均为 8 位双向的 I/O 口,具有可编
13、程的内部上拉电阻,其输出缓冲器具有对称的驱动特性,既可以输出又可以吸收较大电流。当该端口作为输入使用时,内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,端口一直处于高阻状态。这些特点又称为端口的第一功能。端口 A、B、C、D均具有第二功能,如引脚功能图括弧中的标识,在本设计中未用及第二功能,在这里就不做介绍了。RESET:复位输入引脚。XTAL1:反向震荡放大器与片内时钟操作电路的输入端。XTAL2:反向震荡放大器的输出端。AVCC:端口 A 与 A/D 转换器的电源,不适用 ADC 功能河北师范大学本科毕业生毕业论文(设计)6时,该引脚直接与 VCC 连接。AREF:A/D 的模拟基准输入引脚。配置引脚:每个端口引脚都具有三个寄存器位:DDxn、PORTxn、和 PINxn。其中 DDxn