单片机-课程设计-毕业论文-文献综述 论文翻译 正文部分

上传人:dao****ing 文档编号:54696933 上传时间:2022-02-15 格式:DOC 页数:65 大小:101.50KB
收藏 版权申诉 举报 下载
单片机-课程设计-毕业论文-文献综述 论文翻译 正文部分_第1页
第1页 / 共65页
单片机-课程设计-毕业论文-文献综述 论文翻译 正文部分_第2页
第2页 / 共65页
单片机-课程设计-毕业论文-文献综述 论文翻译 正文部分_第3页
第3页 / 共65页
资源描述:

《单片机-课程设计-毕业论文-文献综述 论文翻译 正文部分》由会员分享,可在线阅读,更多相关《单片机-课程设计-毕业论文-文献综述 论文翻译 正文部分(65页珍藏版)》请在装配图网上搜索。

1、单片机-课程设计-毕业论文-文献综述+论文翻译+正文部分 本科生毕业论文设计册学院 专业 班级 学生 指导教师 河北师范大学本科生毕业论文设计文献综述随着科技的进步社会的发展单片机系统在人们的日常生活中的应用也越来越广泛导弹导航定位飞机各种仪表显示控制计算机的网络通讯与数据传输工业自动化过程的实时控制和数据处理广泛使用的各种智能IC卡民用豪华轿车的安全保障系统录像机摄像机全自动洗衣机的控制以及程控玩具电子宠物等等这些都离不开单片机更不用说自动控制领域的机器人智能仪表医疗器械了本书以ATMEL公司新一代AVR系列单片机中的ATmegal6为蓝本由浅人深软硬结合全面系统地介绍了以AVR为核心构成的

2、单片机嵌入式系统的原理与结构开发环境与工具各种接口与功能单元应用的硬件设计思想和软件编写方法以及系统调试与仿真等内容全书以夯实基础面向应用理论与实践方法与实现紧密结合为主线展开在充分发挥AVR的运行速度快内部资源丰富功能强大等显著特点的基础上结合最新嵌入式系统开发和应用技术的发展遵照单片机嵌入式系统研发的基本步骤和思路采用从简单到复杂循序渐进螺旋式上升的方式进行编排第4章AVR单片机的系统设计与开发工具第6章通用IO接口的基本结构与输出应用第7章中断系统与基本应用第8章定时计数器的结构与应用第9章键盘输入接口与状态机设计河北师范大学本科生毕业论文设计翻译文章 68页 8位带PWM功能的定时器计

3、数器0 TC0是一个通用的单通道8位计时器定数器模块主要特征如下单通道计数器 比较匹配发生时自动清除计时器 具有无干扰脉冲和正确相位的脉冲宽度调制功能 频率发生器 外部时钟源 10位时钟预分频器 溢出和比较匹配中断源TOV0和OCF0综述Figure 27为8位定时器计数器的简化框图ATmega16实际IO引脚请参考P2页的ATmega16引脚分布图CPU可访问的IO寄存器和包括IO位和IO引脚用粗体标识在P77页的8位定时器计数器寄存器说明列出了IO寄存器和位置的相关信息寄存器TCTCNT0和输出比较寄存器OCR0都是8位寄存器在定时器中断标志寄存器TIFR中都可以出现中断请求信号所有中断都

4、可以通过定时器中断屏蔽寄存器TIMSK 单独进行屏蔽图中没有给出TIFR 和TIMSKTC可以通过预分频器由内部时钟源驱动或者是通过T0 引脚的外部时钟源来驱动时钟选择逻辑模块控制使用哪一个时钟源与什么边沿来增加 或降低 TC 的数值如果没有选择时钟源TC 就不工作时钟选择模块的输出定义为定时器时钟clkT0双缓冲的输出比较寄存器OCR0 一直与TC 的数值进行比较比较的结果可用来产生PWM波或在输出比较引脚OC0上产生变化频率的输出如P69 输出比较单元 说明的那样比较匹配事件还将置位比较标志OCF0此标志可以用来产生输出比较中断请求 78页 8位计时器计数器寄存器说明TC控制寄存器-TCC

5、R0 Bit 7 FOC0强制输出比较FOC0仅在WGM00指明非PWM模式时才有效但是为了保证与未来器件的兼容性在使用PWM 时写TCCR0 要对其清零对其写1 后波形发生器将立即进行比较操作比较匹配输出引脚 OC0 将按照COM010 的设置输出相应的电平要注意FOC0 类似一个锁存信号真正对强制输出比较起作用的是COM010 的设置FOC0不会引发任何中断也不会在利用OCR0作为TOP的CTC模式下对定时器进行清零的操作FOC0位的值恒为0 Bit 6 3 WGM010 波形产生模式这几位控制计数器的计数序列计数器的最大值TOP以及产生何种波形TC 支持的模式有普通模式比较匹配发生时清除

6、计数器模式 CTC 以及两种PWM 模式详见Table 38 与P72工作模式 Bit 54 COM010 比较匹配输出模式这些位决定了比较匹配发生时输出引脚OC0 的电平如果COM010 中的一位或全部都置位 OC0 以比较匹配输出的方式进行工作同时其方向控制位要设置为1 以使能输出驱动器当OC0 连接到物理引脚上时 COM010 的功能依赖于WGM010 的设置Table 39 给出当WGM010 设置为普通模式或CTC 模式时COM010 的功能Table 40 给出了当WGM010 设置为快速PWM 模式时COM010 的功能Table 41 给出了当WGM010 设置为相位修正PWM

7、 模式时COM010 的功能 Bit 20 CS020 时钟选择用于选择TC 的时钟源如果TC0 使用外部时钟即使T0 被配置为输出其上的电平变化仍然会驱动记数器利用这一特性可通过软件控制记数通过TC 寄存器可以直接对计数器的8 位数据进行读写访问对TCNT0 寄存器的写访问将在下一个时钟阻止比较匹配在计数器运行的过程中修改TCNT0 的数值有可能丢失一次TCNT0 和OCR0 的比较匹配输出比较寄存器 OCR0输出比较寄存器包含一个8 位的数据不间断地与计数器数值TCNT0 进行比较匹配事件可以用来产生输出比较中断或者用来在OC0 引脚上产生波形TC 中断屏蔽寄存器 TIMSK Bit 1

8、OCIE0 TC0 输出比较匹配中断使能当OCIE0 和状态寄存器的全局中断使能位I 都为1 时TC0 的输出比较匹配中断使能当TC0 的比较匹配发生即TIFR 中的OCF0 置位时中断服务程序得以执行 Bit 0 TOIE0 TC0 溢出中断使能当TOIE0 和状态寄存器的全局中断使能位I 都为1 时TC0 的溢出中断使能当TC0发生溢出即TIFR 中的TOV0 位置位时中断服务程序得以执行TC 中断标志寄存器 TIFR Bit 1 OCF0 输出比较标志0当TC0 与OCR0 输出比较寄存器0 的值匹配时OCF0 置位此位在中断服务程序里硬件清零也可以对其写1 来清零当SREG 中的位IO

9、CIE0 TC0 比较匹配中断使能 和OCF0 都置位时中断服务程序得到执行 Bit 0 TOV0 TC0 溢出标志当TC0 溢出时 TOV0 置位执行相应的中断服务程序时此位硬件清零此外 TOV0也可以通过写1 来清零当SREG 中的位ITOIE0 TC0 溢出中断使能 和TOV0 都置位时中断服务程序得到执行在相位修正PWM 模式中当TC0 在0x00 改变记数方向时 TOV0 置位文章来源ATmega16L数据手册P688-bit TimerCounter0 with PWM TimerCounter0 is a general purpose single channel 8-bit

10、TimerCounter moduleThe main features are Single Channel Counter Clear Timer on Compare Match Auto Reload Glitch-free Phase Correct Pulse Width Modulator PWM Frequency Generator External Event Counter 10-bit Clock Prescaler Overflow and Compare Match Interrupt Sources TOV0 and OCF0 Overview A simplif

11、ied block diagram of the 8-bit TimerCounter is shown in Figure 27 For the actual placement of IO pins refer to Pinout ATmega16 on page 2 CPU accessible IO registers including IO bits and IO pins are shown in bold The device-specific IO register and bit locations are listed in the 8-bit TimerCounter

12、Register Description on page 77 Figure 27 8-bit TimerCounter Block Diagram Registers The TimerCounter TCNT0 and Output Compare Register OCR0 are 8-bit registersInterrupt request abbreviated to IntReq in the figure signals are all visible in the Timer Interrupt Flag Register TIFR All interrupts are i

13、ndividually masked with the Timer Interrupt Mask register TIMSK TIFR and TIMSK are not shown in the figure since these registers are shared by other timer units The TimerCounter can be clocked internally via the prescaler or by an external clock source on the T0 pin The Clock Select logic block cont

14、rols which clock source and edge the TimerCounter uses to increment or decrement its value The TimerCounter is inactive when no clock source is selected The output from the clock select logic is referred to as the timer clock clk T0 The double buffered Output Compare Register OCR0 is compared with t

15、he TimerCounter value at all times The result of the compare can be used by the wave- form generator to generate a PWM or variable frequency output on the Output Compare Pin OC0 See Output Compare Unit on page 69 for details The compare match event will also set the compare flag OCF0 which can be us

16、ed to generate an output compare interrupt request P78 8-bit TimerCounter Register Description TimerCounter Control Register - TCCR0 Bit 7 - FOC0 Force Output Compare The FOC0 bit is only active when the WGM00 bit specifies a non-PWM mode However for ensuring compatibility with future devices this b

17、it must be set to zero when TCCR0 is written when operating in PWM mode When writing a logical one to the FOC0 bit an immediate compare match is forced on the waveform generation unit The OC0 output is changed according to its COM010 bits setting Note that the FOC0 bit is implemented as a strobe The

18、refore it is the value present in the COM010 bits that determines the effect of the forced compare A FOC0 strobe will not generate any interrupt nor will it clear the timer in CTC mode using OCR0 as TOP The FOC0 bit is always read as zero Bit 63 - WGM010 Waveform Generation Mode These bits control t

19、he counting sequence of the counter the source for the imum TOP counter value and what type of waveform generation to be used Modes of operation supported by the TimerCounter unit are Normal mode Clear Timer on compare match CTC mode and two types of Pulse Width Modulation PWM modes See Table 38 and

20、 Modes of Operation on page 71 Table 38 Waveform Generation Mode Bit Description 1 Note 1 The CTC0 and PWM0 bit definition names are now obsolete Use the WGM010 definitions However the functionality and location of these bits are compatible with previous versions of the timer Bit 54 - COM010 Compare

21、 Match Output Mode These bits control the output compare pin OC0 behavior If one or both of the COM010 bits are set the OC0 output overrides the normal port functionality of the IO pin it is connected to However note that the Data Direction Register DDR bit corre- sponding to the OC0 pin must be set

22、 in order to enable the output driver When OC0 is connected to the pin the function of the COM010 bits depends on the WGM010 bit setting Table 39 shows the COM010 bit functionality when the WGM010 bits are set to a normal or CTC mode non-PWM Table 39 Compare Output Mode non-PWM Mode Table 40 shows t

23、he COM010 bit functionality when the WGM010 bits are set to fast PWM mode Note 1 A special case occurs when OCR0 equals TOP and COM01 is set In this case the compare match is ignored but the set or clear is done at TOP See Fast PWM Mode on page 73 for more details Table 41 shows the COM010 bit funct

24、ionality when the WGM010 bits are set to phase correct PWM mode Table 41 Compare Output Mode Phase Correct PWM Mode1Note 1 A special case occurs when OCR0 equals TOP and COM01 is set In this case the compare match is ignored but the set or clear is done at TOP See Phase Correct PWM Mode on page 74 f

25、or more detailsBit 20 - CS020 Clock Select The three clock select bits select the clock source to be used by the TimerCounter Table 42 Clock Select Bit Description If external pin modes are used for the TimerCounter0 transitions on the T0 pin will clock the counter even if the pin is configured as a

26、n output This feature allows software control of the counting TimerCounter Register - TCNT0 The TimerCounter Register gives direct access both for read and write operations to the TimerCounter unit 8-bit counter Writing to the TCNT0 register blocks removes the compare match on the following timer cl

27、ock Modifying the counter TCNT0 while the counter is running introduces a risk of missing a compare match between TCNT0 and the OCR0 register Output Compare Register - OCR0 The Output Compare Register contains an 8-bit value that is continuously compared with the counter value TCNT0 A match can be u

28、sed to generate an output compare interrupt or to generate a waveform output on the OC0 pin TimerCounter Interrupt Mask Register - TIMSK Bit 1 - OCIE0 TimerCounter0 Output Compare Match Interrupt Enable When the OCIE0 bit is written to one and the I-bit in the Status Register is set one the TimerCou

29、nter0 Compare Match interrupt is enabled The corresponding interrupt is executed if a compare match in TimerCounter0 occurs ie when the OCF0 bit is set in the TimerCounter Interrupt Flag Register - TIFR Bit 0 - TOIE0 TimerCounter0 Overflow Interrupt Enable When the TOIE0 bit is written to one and th

30、e I-bit in the Status Register is set one the TimerCounter0 Overflow interrupt is enabled The corresponding interrupt is executed if an overflow in TimerCounter0 occurs ie when the TOV0 bit is set in the TimerCounter Interrupt Flag Register - TIFR TimerCounter Interrupt Flag Register - TIFR Bit 1 -

31、OCF0 Output Compare Flag 0 The OCF0 bit is set one when a compare match occurs between the TimerCounter0 and the data in OCR0 - Output Compare Register0 OCF0 is cleared by hardware when executing the corresponding interrupt handling vector Alternatively OCF0 is cleared by writing a logic one to the

32、flag When the I-bit in SREG OCIE0 TimerCounter0 Com- pare match Interrupt Enable and OCF0 are set one the TimerCounter0 Compare match Interrupt is executed Bit 0 - TOV0 TimerCounter0 Overflow Flag The bit TOV0 is set one when an overflow occurs in TimerCounter0 TOV0 is cleared by hardware when execu

33、ting the corresponding interrupt handling vector Alternatively TOV0 is cleared by writing a logic one to the flag When the SREG I-bit TOIE0 TimerCounter0 Overflow Interrupt Enable and TOV0 are set one the TimerCounter0 Overflow interrupt is executed In phase correct PWM mode this bit is set when Tim

34、erCounter0 changes counting direction at 00 文献来源ATmega16L数据手册本科生毕业论文设计题目 基于ATmega16L多路复用腌鱼计时计数器的设计 作者姓名 指导教师 所在学院 专业系 班级届 完成日期 2010 年 5 月 21 日目录摘 要I1绪论111研究的背景112研究的目的和意义113本文研究的主要内容12ATmega16L单片机简介421 性能概括422 ATmega16L的特点43整体硬件设计1031主控制器模块1032按键电路部分1133显示电路部分1234 报警电路部分144整体软件设计1641 软件程序功能与内容1642 主

35、程序1643 EEPROM读写子程序1744 按键相关程序1845 LED数码管显示子程序2246 定时计数器和中断服务程序部分255开发制作流程28结束语31参考文献32Abstract33附录一全部硬件资源35附录二多路复用腌鱼计时计数器按键使用说明34摘 要传统的腌鱼计时计数需要专门的工作人员通过目测钟表来判断记录每条鱼的腌制时间通过笔纸记录某盆腌液历史腌鱼的条数但是由于人工误差往往不能精确计时同时还需要专人负责记录历史腌鱼条数增加了经营成本基于此问题专门为石家庄某餐饮企业设计开发了一款基于ATmega16L单片机的多路复用腌鱼计时计数器ATmega16L单片机拥有32个IO输出端口本系

36、统采用两组四联排数码管显示共需要占用16个IO端口按键部分占用五个IO端口蜂鸣器占用一个IO端口ATmega16L的IO端口电流大无需驱动电路就可以直接连接LED数码管基于此功能要求和ATmega16L上述特点故选用ATmega16L作为主控芯片关键词ATmega16L计时计数器LED数码管1绪论研究的背景应石家庄某餐饮企业对于腌鱼计时计数工作的需要经过多方调查研究发现烤鱼店在烤鱼前需要用特制腌液腌制根据所腌每条鱼的重量来确定这条鱼应该腌制的时间如果超出规定时间腌制的鱼过咸少于规定时间则变淡另外每盆腌液所腌制鱼的条数有限超出腌制鱼的最大条数后必须更换作料否则再腌的鱼就会变淡综合以上要求这就需要

37、企业配置专门人员记录同一盆腌液腌鱼的条数和腌液中每一条鱼的腌制时间研究的目的和意义传统的腌鱼计时计数需要专门的工作人员通过目测钟表来判断记录每条鱼的腌制时间通过笔纸记录某盆腌液历史腌鱼的条数但是由于人工误差往往不能精确计时还需要专人负责记录历史腌鱼条数同时也给工作人员带来了不便增加了经营成本基于此问题我们专门为石家庄某餐饮企业设计开发了一款多路复用腌鱼计时计数器工作人员利用这款计时器可以实现腌制每条鱼时间的精确计时和腌制条数的精确计数为经营者节省了成本同时还提高了腌鱼的质量本文研究的主要内容这款多路复用计时计数器根据客户要求共开发设计三个独立的计时器每个计时器分别计时互不影响每个计时器采用倒计

38、时计时当倒计时为零时有声音警报提示当计数次数达到设定的次数上限后又有另一声音警报提示并且可以根据每批鱼的大小调节每个计时器的计时时间和计数次数ATmega16L是一款高性能的8位AVR微处理器它具有先进的RISC结构32个8位通用工作寄存器非易失性程序和数据存储器两个具有独立分频器和比较功能的8位定时器计时器供电范围宽27-55V功耗低正常模式为11mA空闲模式为035mA掉电模式为1A32个IO接口单个IO电流输出最大可达到40mA可以直接驱动LED数码管基于功能要求和ATmega16L上述特点故选用ATmega16L作为主控芯片产品设计预想模型图如图1-1本系统由部分个模块组成本文主要介绍

39、2ATmega16L单片机简介21 性能概括ATmega16L是一款增强型内置Flash的RISCReduced in Struction Set CPU精简指令集高速8位AVR单片机以其高可靠性功能强高速度低功耗和低价位的特点在市场上获得了很高的市场占有率AVR单片机废除了机器周期抛弃了复杂的指令计算机CISC追求指令完备的做法采用了精简指令集取值周期短还可以预取指令提高了执行指令的速度该系列单片机集中了多种器件如包括FLASH程序存储器看门狗EEPROM同异步串行口AD转换器定时器计数器等和多种功能如复位系统休眠模式多种中断系统比较匹配输出等多样功能的计时器计时器具有第二功能的IO端口等综

40、上所述AVR单片机也因此成为8位机中最优秀单片机之一22 ATmega16L的特点com 内核介绍AVR 内核具有丰富的指令集和32 个通用工作寄存器所有的寄存器都直接与算逻单元 ALU 相连接使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器这种结构大大提高了代码效率并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率ATmega16L 有如下特点16K字节的系统内可编程Flash 具有同时读写的能力即RWW 512 字节EEPROM1K 字节SRAM32 个通用IO 口线32 个通用工作寄存器用于边界扫描的JTAG 接口支持片内调试与编程三个具有比较模式的灵活的定时器 计数器

41、 TC 片内外中断可编程串行USART有起始条件检测器的通用串行接口8路10位具有可选差分输入级可编程增益 TQFP 封装 的ADC 具有片内振荡器的可编程看门狗定时器一个SPI 串行端口以及六个可以通过软件进行选择的省电模式 工作于空闲模式时CPU 停止工作而USART两线接口AD 转换器SRAMTCSPI 端口以及中断系统继续工作掉电模式时晶体振荡器停止振荡所有功能除了中断和硬件复位之外都停止工作在省电模式下异步定时器继续运行允许用户保持一个时间基准而其余功能模块处于休眠状态 ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有IO 模块的工作以降低ADC 转换时的开关噪声

42、 Standby 模式下只有晶体或谐振振荡器运行其余功能模块处于休眠状态使得器件只消耗极少的电流同时具有快速启动能力扩展Standby 模式下则允许振荡器和异步定时器继续工作本芯片是以Atmel 高密度非易失性存储器技术生产的片内ISP Flash 允许程序存储器通过ISP 串行接口或者通用编程器进行编程也可以通过运行于AVR 内核之中的引导程序进行编程引导程序可以使用任意接口将应用程序下载到应用Flash存储区在更新应用Flash存储区时引导Flash区 Boot Flash Memory 的程序继续运行实现了RWW 操作 com 引脚功能 图2-1 ATmega16L的FDIP封装引脚功能

43、图ATmega16L引脚说明VCC数字电路的电源GND地接口端口APA7-PA0端口A端口B端口C端口D作为IO输入输出口时具有共同的特点均为8位双向的IO口具有可编程的内部上拉电阻其输出缓冲器具有对称的驱动特性既可以输出又可以吸收较大电流当该端口作为输入使用时内部上拉电阻使能端口被外部电路拉低时将输出电流在复位过程中端口一直处于高阻状态这些特点又称为端口的第一功能端口ABCD均具有第二功能如引脚功能图括弧中的标识在本设计中未用及第二功能在这里就不做介绍了RESET复位输入引脚XTAL1反向震荡放大器与片内时钟操作电路的输入端XTAL2反向震荡放大器的输出端AVCC端口A与AD转换器的电源不适

44、用ADC功能时该引脚直接与VCC连接AREFAD的模拟基准输入引脚配置引脚每个端口引脚都具有三个寄存器位DDxnPORTxn和PINxn其中DDxn用来选择引脚的方向DDxn 为1 时 Pxn 配置为输出否则配置为输入当引脚配置为输入时PORTxn为1上拉电阻将使能当引脚配置为输出时PORTxn为1则引脚输出为高电平1不论如何配置DDXn都可以通过读取PINxn寄存器来获得当前的引脚电平com EPROM数据存储器 ATmega16L包含512字节的EEPROM数据存储器它的寿命至少为100000次擦写周期EEPROM的访问由地址寄存器数据寄存器和控制寄存器决定EEPROM地址寄存器-EEAR

45、H和EEARL图2-1 EEPROM地址寄存器-EEARH和EEARLBits15-9-Res为保留位Bits80-EEAR80EEPROM地址EEPROM地址寄存器 EEARH和EEARL指定了512字节的EEPROM空间EEPROM地址是线性的从0 到511EEAR 的初始值没有定义在访问EPROM 之前必须为其赋予正确的数据EEPROM 数据寄存器 EEDR图2-2 EEPROM 数据寄存器 EEDR Bits 70 EEDR70 EEPROM 数据对于EEPROM 写操作 EEDR 是需要写到EEAR 单元的数据对于读操作 EEDR 是从地址EEAR 读取的数据EEPROM 控制寄存器

46、 EECR图2-3 EEPROM 控制寄存器 EECRBits74-Res这几位是保留位读操作的返回值为零Bit3-EERIE使能EEPROM准备好中断Bit 2 EEMWE EEPROM 主机写使能Bit 1 EEWE EEPROM 写使能综上所述EEPROM的读写操作的C代码历程可表示为如下格式void EEPROM_write unsigned int uiAddress unsigned char ucData EEPROM读操作函数while EECR 1 EEWE EEAR uiAddress 等待上一次写操作结束 EEDR ucData 设置地址和数据寄存器EECR 1 EEMW

47、E 置位EEMWE EECR 1 EEWE 置位EEWE 以启动写操作 unsigned char EEPROM_read unsigned int uiAddress EEPROM写操作函数while EECR 1 EEWE 等待上一次写操作结束 EEAR uiAddress 设置地址寄存器EECR 1 EERE 设置EERE 以启动读操作return EEDR 自数据寄存器返回数据 当电源电压过低时CPU和EEPROM不能正常工作造成数据的损坏为了防止EEPROM 数据损坏通过以下方法解决当电压过低时保持AVR RESET信号为低这可以通过使能芯片的掉电检测电路BOD来实现如果BOD 电平

48、无法满足要求则可以使用外部复位电路若写操作过程当中发生了复位只要电压足够高写操作仍将正常结束IO 时钟 clkIOFlash 时钟 clkFLASH异步定时器时钟 clkASYADC 时钟 clkADC有五种通过FLASH熔丝位进行选择的时钟源他们分别是外部晶体陶瓷振荡器外部低频晶振外部RC振荡器标定的内部RC振荡器外部时钟当CPU 自掉电模式或省电模式唤醒之后被选择的时钟源用来为启动过程定时保证振荡器在开始执行指令之前进入稳定状态当CPU从复位开始工作时还有额外的延迟时间以保证在MCU 开始正常工作之前电源达到稳定电平这个启动时间的定时由看门狗振荡器完成com 8位定时器计数器寄存器TC 控

49、制寄存器 TCCR0图2-4 TC 控制寄存器 TCCR0Bit7-FOC0强制输出比较FOC 0仅在WGM00指明非PWM模式时才有效Bit 6 3 WGM010 波形产生模式TC的工作模式包括普通模式比较匹配发生时清除计数器模式CTC以及两种PWM模式Bit 54 COM010 比较匹配输出模式这些位决定了比较匹配发生时输出引脚OC0 的电平如果COM010 中的一位或全部都置位 OC0 以比较匹配输出的方式进行工作同时其方向控制位要设置为1 以使能输出驱动器Bit 20 CS020 用于选择TC的时钟源TC 中断屏蔽寄存器 TIMSK图2-5 TC 中断屏蔽寄存器 TIMSKBit 1

50、OCIE0 TC0 输出比较匹配中断使能Bit 0 TOIE0 TC0 溢出中断使能com 外部中断所谓中断即当计算机执行正常程序时系统中发生急需处理的异常和特殊请求后CPU则暂时中止当前运行的程序转去对这个更紧迫事件做处理处理完成后返回源程序继续执行ATmega16L有三个外部中断源通过INT0INT1INT2触发中断当外部中断使能后可以由下降沿上升沿低电平触发外部中断寄存器有通用中断控制寄存器-GICRMCU控制寄存器-MCUCR控制寄存器包含中断触发控制位与通用MCU功能MCU控制与状态寄存器-MCUCSR通用中断标志寄存器-GIFR每个寄存器的详细设置说明见ATmega16L 的数据手

51、册例如对要设置INT0中断需要设置MCUCR寄存器GICR寄存器和TIMSK寄存器3整体硬件设计该多路复用计时计数器的硬件部分包括主控制部分按键电路部分数码显示电路部分和报警电路部分其中单片机控制部分采用ATmega16L为主控制器这几个模块在单片机的控制下相互协调工作保证了系统功能的实现该系统的硬件结构框图如下图所示图3-1 系统硬件结构框图主控制器主要由ATmega16L单片机组成是程序运行的载体并实现对整个系统的控制按键电路部分该部分为系统的外部输入是联系系统和操作者的纽带显示电路部分显示系统的三个独立计时器和计数器报警电路当系统程序运行到预设定状态时启动蜂鸣器实现报警 主控制器模块AT

52、mega16L单片机是整个系统的核心部分是指一个集成在一块芯片上的完整计算机系统固定触点形成与该固定触点可接触的可动触点具有刚性和弹性的圆顶状的第1翻转弹簧传递使该第1翻转弹簧翻转的按压力并由较前述第1翻转弹簧柔软的材料制成且具有弹性的第2在前述第1翻转弹簧和前述第2翻转弹簧之间设定使这些第1翻转弹簧和第2翻转弹簧几乎同时翻转的间隙尺寸com 报警电路设计实现单频音报警的接口电路比较简单其发音元件通常可采用压电蜂鸣器当在蜂鸣器两引脚上加315V直流工作电压就能产生3kHZ左右的蜂鸣振荡音响压电式蜂鸣器结构简单耗电少更适于在单片机系统中应用压电式蜂鸣器约需10mA的驱动电流可在某端口接上一只三极

53、管和电阻组成的驱动电路来驱动如图3-6所示图3-6 报警电路硬件连接图在图中SPEAKER端与单片机的IO接口相连当SPEAKER输出低电平0时三极管导通蜂呜器的通电而发音当SPEAKER输出高电平1三极管截止蜂鸣器停止发音4整体软件设计41 软件程序功能与内容本设计共分为三路计时器见上文中的产品预想模型图一路计数器其中123键分别控制一二三路计时器当开机后123键中某键按下时相应的计时器开始倒计时并且计数器加一当任意一路计时器倒计为0时蜂鸣器发出间断性声音以提示工作人员将腌好的鱼取出当计数器达到所设定的该盆佐料所能腌鱼的最大次数后蜂鸣器长鸣从而提醒工作人员更换佐料同时计数器清零重新计数另外根

54、据客户需求因为每次淹鱼的大小不尽相同并且腌鱼的容器可能会发生更换所以我们特别开发了可调计时时间计数次数功能当按下5键蜂鸣器长响时选择调时调数功能此时123每按一次计时时间增加半分钟4键每按一次计数上限增加1再次按下5键蜂鸣器短响进入计时计数状态此时按下123中某一个按键时相应计时器开始计时综合以上这些功能本设计软件程序设计编写了主程序EEPROM读写子程序按键功能子程序LED数码管显示子程序中断服务子程序另外针对电路中的四个按键还设计了防抖程序来防止干扰42 主程序主程序是整个应用程序的执行入口执行程序后先后调用不同作用的程序模块在该设计中首先初始化单片机的各个IO端口并发出短暂报警提示以证明

55、系统功能正常然后是设备初始化在该函数主要实现了在系统运行开始从EEPROM中读取上次储存的计时计数信息再者是使能全局中断最后是一个嵌入式系统中最常用的while 循环循环体中主要包含三个函数按键扫描函数按键防抖函数LED数码管显示函数详细程序如下int main void port_init PORTD 0x7f通电后发出短暂声音提示 _delay_ms 10 PORTD 1 7 device_init SREG 0X80 全局中断使能while 1 fun scanKey if anjianjiange 0 去抖动 anjianjiange 1 if fun 0xff keyfun fun

56、Display 数码管显示函数 43 EEPROM读写子程序在keyfun函数中通过EEPROM_write函数将调时调数后的数据信息写入EEPROM中保存了相关信息再利用EEPROM_read函数读出计时计数信息这样就完整的实现了不受系统掉电影响的调时调数信息的保存void EEPROM_write uint16 addressuint8 data EEPROM写函数 SREG 0x80 while EECR 1 EEWE 等待上一次写操作结束 EEAR address EEDR data 设置地址和数据寄存器 EECR 1 EEMWE 置位EEMWE EECR 1 EEWE 置位EEWE

57、以启动写操作 SREG 0x80 uint8 EEPROM_read uint16 address EEPROM读函数 SREG 0x80 while EECR 1 EEWE 等待上一次写操作结束 EEAR address设置地址寄存器 EECR 1 EERE 设置EERE以启动读操作 SREG 0x80 return EEDR数据寄存器返回数据 44 按键相关程序com 按键查询程序本设计的按键设计采用扫描按键方式每个按键占用一个独立的IO端口PD0PD4 IO口连接五个按键采用低电平有效通过对PIND值的判断分析哪一个按键被按下例如当判断PIND的值为1111 1110则说明连接最后一个I

58、O口的按键被按下其中按键5为功能选择键当按下按键5时若蜂鸣器长响则123进入调时调数功能状态unsigned char scanKey void KEY_PORT 0xFF 设置按键输出1之后语句检测按键若端口变为0则表示被按 if KEY_PIN 0xFE 1111 1110 return 1 修改次数键 if KEY_PIN 0xFD 1111 1101 return 2 if KEY_PIN 0xFB 10110 1011 return 3 if KEY_PIN 0xF7 1111 0111 return 0 if KEY_PIN 0xEF 1110 1111 return 4 0引脚功

59、能切换键 return -1 com 按键功能程序部分void keyfun unsigned char fun 按键功能函数 if fun 1fun 2fun 3 PORTD 0x7f当有按键按下时产生短暂的声音提示 _delay_ms 10 PORTD 1 7 if function 0 调整计时时间并写入EEPROM中从而记录计时时间 if timefun-1 50 timefun-1 5 else timefun-1 0 EEPROM_write funtimefun-1 在地址0x01写入0x66 else if function 1 计时计数状态 startfun-1 1 num1fun-1 timefun-15430 if times TIME-1 times else超出最大计数次数后蜂鸣器唱响发出声音提示 times Display PORTD 0X80 _delay_ms 3000 PORTD 0X80 times 0 if fun 0 PORTD 0x7f _delay_ms 10 PORTD 1 7 if function 0 if TIME 30 TIME else TIME 0 else if function 1TIME

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!