河北师范大学-我自己的毕业论文-单片机-课程设计-毕业论文-文献综述+论文翻译+正文部分.doc_第1页
河北师范大学-我自己的毕业论文-单片机-课程设计-毕业论文-文献综述+论文翻译+正文部分.doc_第2页
河北师范大学-我自己的毕业论文-单片机-课程设计-毕业论文-文献综述+论文翻译+正文部分.doc_第3页
河北师范大学-我自己的毕业论文-单片机-课程设计-毕业论文-文献综述+论文翻译+正文部分.doc_第4页
河北师范大学-我自己的毕业论文-单片机-课程设计-毕业论文-文献综述+论文翻译+正文部分.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北师范大学本科毕业生毕业论文(设计)翻译文章(这是我自己的毕业论文,先贡献出来给广大学弟、学妹一些启发,觉不涉及任何版权问题)本科生毕业论文(设计)册 学院 专业 班级 学生 wyx2010001 指导教师 河北师范大学本科毕业生毕业论文(设计)文献综述河北师范大学本科生毕业论文(设计)文献综述随着科技的进步,社会的发展,单片机系统在人们的日常生活中的应用也越来越广泛,导弹导航定位,飞机各种仪表显示控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了,现在各种消费类电子产品以及各种日常生活控制设备,可以说几乎很难找到那个领域没有单片机的踪迹。当今,计时、计数设备中有传统的机械设备,电子或数字电路设备,基于单片机的设备。采用单片机控制使得计时、计数数字化、智能化、微型化,且功能比起其他设备更强大,操作更简单,走时更精确。现今,烤鱼餐饮业中,在腌鱼工序中需要计时、计数(记录每条鱼腌制的时间和每盆腌液中历史腌鱼的条数),传统的腌鱼计时计数需要通过目测时间来估算腌制的时间,通过纸笔来记录已腌条数。此种计时计数方法往往不能准确计时计数,同时也给工作人员带来了不便,增加了经营成本。ATmega16L单片机的详细资料概括如下:它是一款中档功能的AVR芯片,有40个引脚,在片内集成了1K字节的SRAM、16K字节的Flash、512个字节的EEPROM,2个8位、1个16位共3个超强功能的定时器/计数器,以及USART、SPI、多路10位ADC、WDT、RTC、ISP、IAP、TWI、片内高精度RC振荡器等多找那个功能的接口和特性。经过多方资料查证和市场调查,由腌鱼工序的具体情况和ATmega16L的较精准计时器/计数器、多I/O端口电流大的特点,产品设计开发功能如下:三个独立的计时器,每个计时器分别计时,互不影响,每个计时器均采用倒计时计时,当倒计时为零时有声音警报提示;当计数次数达到设定的次数上限后又有另一声音警报提示。并且可以根据每批鱼的大小调节每个计时器的计时时间和计数次数。综合以上参考文献论证得出,“基于ATmega16单片机的多路复用腌鱼计时计数器”的研发设计是可行的。参考文献:马潮.AVR单片机嵌入式系统原理与应用实践.北京航空航天大学.2007年本书以ATMEL公司新一代AVR系列单片机中的ATmegal6为蓝本,由浅人深,软硬结合,全面系统地介绍了以AVR为核心构成的单片机嵌入式系统的原理与结构,开发环境与工具,各种接口与功能单元应用的硬件设计思想和软件编写方法,以及系统调试与仿真等内容。全书以夯实基础,面向应用,理论与实践、方法与实现紧密结合为主线展开,在充分发挥AVR的运行速度快,内部资源丰富,功能强大等显著特点的基础上,结合最新嵌入式系统开发和应用技术的发展,遵照单片机嵌入式系统研发的基本步骤和思路,采用从简单到复杂、循序渐进、螺旋式上升的方式进行编排。其中我主要参考的章节如下:第1章,单片机嵌入式系统概述;第2章,AVR单片机的基本结构;第4章,AVR单片机的系统设计与开发工具;第6章,通用I/O接口的基本结构与输出应用;第7章,中断系统与基本应用;第8章,定时/计数器的结构与应用;第9章,键盘输入接口与状态机设计。II河北师范大学本科生毕业论文(设计)翻译文章(68页)8位带PWM功能的定时器/计数器0 T/C0是一个通用的单通道8位计时器/定数器模块。主要特征如下:单通道计数器 比较匹配发生时自动清除计时器 具有无干扰脉冲和正确相位的脉冲宽度调制功能 频率发生器 外部时钟源 10位时钟预分频器 溢出和比较匹配中断源(TOV0和OCF0)综述Figure 27为8位定时器/计数器的简化框图。ATmega16实际I/O引脚请参考P2页的“ATmega16引脚分布图”。CPU可访问的I/O寄存器和包括I/O位和I/O引脚用粗体标识。在P77页的“8位定时器/计数器寄存器说明”列出了I/O寄存器和位置的相关信息。寄存器T/C(TCNT0)和输出比较寄存器(OCR0)都是8位寄存器。在定时器中断标志寄存器TIFR中都可以出现中断请求信号。所有中断都可以通过定时器中断屏蔽寄存器TIMSK 单独进行屏蔽。图中没有给出TIFR 和TIMSK。T/C可以通过预分频器由内部时钟源驱动,或者是通过T0 引脚的外部时钟源来驱动。时钟选择逻辑模块控制使用哪一个时钟源与什么边沿来增加( 或降低)T/C 的数值。如果没有选择时钟源T/C 就不工作。时钟选择模块的输出定义为定时器时钟clkT0。双缓冲的输出比较寄存器OCR0 一直与T/C 的数值进行比较。比较的结果可用来产生PWM波,或在输出比较引脚OC0上产生变化频率的输出,如P69 “ 输出比较单元” 说明的那样。比较匹配事件还将置位比较标志OCF0。此标志可以用来产生输出比较中断请求。(78页)8位计时器/计数器寄存器说明T/C控制寄存器-TCCR0 Bit 7 FOC0:强制输出比较FOC0仅在WGM00指明非PWM模式时才有效。但是,为了保证与未来器件的兼容性,在使用PWM 时,写TCCR0 要对其清零。对其写1 后,波形发生器将立即进行比较操作。比较匹配输出引脚 OC0 将按照COM01:0 的设置输出相应的电平。要注意FOC0 类似一个锁存信号,真正对强制输出比较起作用的是COM01:0 的设置。FOC0不会引发任何中断,也不会在利用OCR0作为TOP的CTC模式下对定时器进行清零的操作。FOC0位的值恒为0。 Bit 6, 3 WGM01:0: 波形产生模式这几位控制计数器的计数序列,计数器的最大值TOP,以及产生何种波形。T/C 支持的模式有:普通模式,比较匹配发生时清除计数器模式(CTC),以及两种PWM 模式,详见Table 38 与P72“工作模式”。 Bit 5:4 COM01:0: 比较匹配输出模式这些位决定了比较匹配发生时输出引脚OC0 的电平。如果COM01:0 中的一位或全部都置位, OC0 以比较匹配输出的方式进行工作。同时其方向控制位要设置为1 以使能输出驱动器。当OC0 连接到物理引脚上时, COM01:0 的功能依赖于WGM01:0 的设置。Table 39 给出当WGM01:0 设置为普通模式或CTC 模式时COM01:0 的功能。Table 40 给出了当WGM01:0 设置为快速PWM 模式时COM01:0 的功能。Table 41 给出了当WGM01:0 设置为相位修正PWM 模式时COM01:0 的功能。 Bit 2:0 CS02:0: 时钟选择用于选择T/C 的时钟源。如果T/C0 使用外部时钟,即使T0 被配置为输出,其上的电平变化仍然会驱动记数器。利用这一特性可通过软件控制记数。通过T/C 寄存器可以直接对计数器的8 位数据进行读写访问。对TCNT0 寄存器的写访问将在下一个时钟阻止比较匹配。在计数器运行的过程中修改TCNT0 的数值有可能丢失一次TCNT0 和OCR0 的比较匹配。输出比较寄存器 OCR0输出比较寄存器包含一个8 位的数据,不间断地与计数器数值TCNT0 进行比较。匹配事件可以用来产生输出比较中断,或者用来在OC0 引脚上产生波形。T/C 中断屏蔽寄存器 TIMSK Bit 1 OCIE0: T/C0 输出比较匹配中断使能当OCIE0 和状态寄存器的全局中断使能位I 都为“1” 时,T/C0 的输出比较匹配中断使能。当T/C0 的比较匹配发生,即TIFR 中的OCF0 置位时,中断服务程序得以执行。 Bit 0 TOIE0: T/C0 溢出中断使能当TOIE0 和状态寄存器的全局中断使能位I 都为“1” 时,T/C0 的溢出中断使能。当T/C0发生溢出,即TIFR 中的TOV0 位置位时,中断服务程序得以执行。T/C 中断标志寄存器 TIFR Bit 1 OCF0: 输出比较标志0当T/C0 与OCR0( 输出比较寄存器0) 的值匹配时,OCF0 置位。此位在中断服务程序里硬件清零,也可以对其写1 来清零。当SREG 中的位I、OCIE0(T/C0 比较匹配中断使能) 和OCF0 都置位时,中断服务程序得到执行。 Bit 0 TOV0: T/C0 溢出标志当T/C0 溢出时, TOV0 置位。执行相应的中断服务程序时此位硬件清零。此外, TOV0也可以通过写1 来清零。当SREG 中的位I、TOIE0(T/C0 溢出中断使能) 和TOV0 都置位时,中断服务程序得到执行。在相位修正PWM 模式中,当T/C0 在0x00 改变记数方向时, TOV0 置位。文章来源:ATmega16(L)数据手册(P68)8-bit Timer/Counter0 with PWM Timer/Counter0 is a general purpose, single channel, 8-bit Timer/Counter module.The 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 simplified block diagram of the 8-bit Timer/Counter is shown in Figure 27. For the actual placement of I/O pins, refer to Pinout ATmega16 on page 2. CPU accessible I/O registers, including I/O bits and I/O pins, are shown in bold. The device-specific I/O register and bit locations are listed in the 8-bit Timer/Counter Register Description on page 77. Figure 27. 8-bit Timer/Counter Block Diagram Registers The Timer/Counter (TCNT0) and Output Compare Register (OCR0) are 8-bit registers.Interrupt request (abbreviated to Int.Req. in the figure) signals are all visible in the Timer Interrupt Flag Register (TIFR). All interrupts are individually 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 Timer/Counter can be clocked internally, via the prescaler, or by an external clock source on the T0 pin. The Clock Select logic block controls which clock source and edge the Timer/Counter uses to increment (or decrement) its value. The Timer/Counter 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 the Timer/Counter 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 used to generate an output compare interrupt request. (P78)8-bit Timer/Counter Register Description Timer/Counter Control Register - TCCR0 l .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 bit 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 COM01:0 bits setting. Note that the FOC0 bit is implemented as a strobe. Therefore it is the value present in the COM01:0 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. l Bit 6,3 - WGM01:0: Waveform Generation Mode These bits control the counting sequence of the counter, the source for the maximum (TOP) counter value, and what type of waveform generation to be used. Modes of operation supported by the Timer/Counter unit are: Normal mode, Clear Timer on compare match (CTC) mode, and two types of Pulse Width Modulation (PWM) modes. See Table 38 and 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 WGM01:0 definitions. However, the functionality and location of these bits are compatible with previous versions of the timer. l Bit 5:4 - COM01:0: Compare Match Output Mode These bits control the output compare pin (OC0) behavior. If one or both of the COM01:0 bits are set, the OC0 output overrides the normal port functionality of the I/O pin it is connected to. However, note that the Data Direction Register (DDR) bit corre- sponding to the OC0 pin must be set in order to enable the output driver. When OC0 is connected to the pin, the function of the COM01:0 bits depends on the WGM01:0 bit setting. Table 39 shows the COM01:0 bit functionality when the WGM01:0 bits are set to a normal or CTC mode (non-PWM). Table 39. Compare Output Mode, non-PWM Mode Table 40 shows the COM01:0 bit functionality when the WGM01:0 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 COM01:0 bit functionality when the WGM01:0 bits are set to phase correct PWM mode. Table 41. Compare Output Mode, Phase Correct PWM Mode(1)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 Phase Correct PWM Mode on page 74 for more detailsl Bit 2:0 - CS02:0: Clock Select The three clock select bits select the clock source to be used by the Timer/Counter. Table 42. Clock Select Bit Description If external pin modes are used for the Timer/Counter0, transitions on the T0 pin will clock the counter even if the pin is configured as an output. This feature allows software control of the counting. Timer/Counter Register - TCNT0 The Timer/Counter Register gives direct access, both for read and write operations, to the Timer/Counter unit 8-bit counter. Writing to the TCNT0 register blocks (removes) the compare match on the following timer clock. 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 used to generate an output compare interrupt, or to generate a waveform output on the OC0 pin. Timer/Counter Interrupt Mask Register - TIMSK l Bit 1 - OCIE0: Timer/Counter0 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 Timer/Counter0 Compare Match interrupt is enabled. The corresponding interrupt is executed if a compare match in Timer/Counter0 occurs, i.e., when the OCF0 bit is set in the Timer/Counter Interrupt Flag Register - TIFR. l Bit 0 - TOIE0: Timer/Counter0 Overflow Interrupt Enable When the TOIE0 bit is written to one, and the I-bit in the Status Register is set (one), the Timer/Counter0 Overflow interrupt is enabled. The corresponding interrupt is executed if an overflow in Timer/Counter0 occurs, i.e., when the TOV0 bit is set in the Timer/Counter Interrupt Flag Register - TIFR. Timer/Counter Interrupt Flag Register - TIFR l Bit 1 - OCF0: Output Compare Flag 0 The OCF0 bit is set (one) when a compare match occurs between the Timer/Counter0 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 flag. When the I-bit in SREG, OCIE0 (Timer/Counter0 Com- pare match Interrupt Enable), and OCF0 are set (one), the Timer/Counter0 Compare match Interrupt is executed. l Bit 0 - TOV0: Timer/Counter0 Overflow Flag The bit TOV0 is set (one) when an overflow occurs in Timer/Counter0. TOV0 is cleared by hardware when executing the corresponding interrupt handling vector. Alternatively, TOV0 is cleared by writing a logic one to the flag. When the SREG I-bit, TOIE0 (Timer/Counter0 Overflow Interrupt Enable), and TOV0 are set (one), the Timer/Counter0 Overflow interrupt is executed. In phase correct PWM mode, this bit is set when Timer/Counter0 changes counting direction at $00. 文献来源:ATmega16(L)数据手册IX本科生毕业论文设计题目 基于ATmega16L多路复用腌鱼计时计数器的设计 作者姓名 指导教师 所在学院 专业(系) 班级(届) 完成日期 2010 年 5 月 21 日II河北师范大学本科毕业生毕业论文(设计)目录摘 要(I)1绪论(1)1.1研究的背景(1)1.2研究的目的和意义(1)1.3本文研究的主要内容(1)2ATmega16L单片机简介(4)2.1 性能概括(4)2.2 ATmega16L的特点(4)3整体硬件设计(10)3.1主控制器模块(10)3.2按键电路部分(11)3.3显示电路部分(12)3.4 报警电路部分(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)结束语(31)参考文献(32)Abstract(33)附录一:全部硬件资源(35)附录二:多路复用腌鱼计时计数器按键使用说明:(34) 摘 要传统的腌鱼计时计数需要专门的工作人员通过目测钟表来判断记录每条鱼的腌制时间,通过笔纸记录某盆腌液历史腌鱼的条数。但是由于人工误差往往不能精确计时;同时还需要专人负责记录历史腌鱼条数,增加了经营成本,基于此问题,专门为石家庄某餐饮企业设计开发了一款“基于ATmega16L单片机的多路复用腌鱼计时计数器”。ATmega16L单片机拥有32个I/O输出端口,本系统采用两组四联排数码管显示,共需要占用16个I/O端口,按键部分占用五个I/O端口,蜂鸣器占用一个I/O端口。ATmega16L的I/O端口电流大,无需驱动电路就可以直接连接LED数码管。基于此功能要求和ATmega16L上述特点,故选用ATmega16L作为主控芯片。关键词:ATmega16L;计时计数器;LED数码管42河北师范大学本科毕业生毕业论文(设计)1绪论1.1 研究的背景应石家庄某餐饮企业对于腌鱼计时计数工作的需要,经过多方调查研究发现,烤鱼店在烤鱼前需要用特制腌液腌制,根据所腌每条鱼的重量来确定这条鱼应该腌制的时间,如果超出规定时间,腌制的鱼过咸,少于规定时间则变淡。另外每盆腌液所腌制鱼的条数有限,超出腌制鱼的最大条数后,必须更换作料,否则再腌的鱼就会变淡,综合以上要求,这就需要企业配置专门人员记录同一盆腌液腌鱼的条数和腌液中每一条鱼的腌制时间。1.2 研究的目的和意义传统的腌鱼计时计数需要专门的工作人员通过目测钟表来判断记录每条鱼的腌制时间,通过笔纸记录某盆腌液历史腌鱼的条数。但是由于人工误差往往不能精确计时,还需要专人负责记录历史腌鱼条数,同时也给工作人员带来了不便增加了经营成本,基于此问题,我们专门为石家庄某餐饮企业设计开发了一款“多路复用腌鱼计时计数器”。工作人员利用这款计时器可以实现腌制每条鱼时间的精确计时和腌制条数的精确计数,为经营者节省了成本,同时还提高了腌鱼的质量。1.3 本文研究的主要内容这款“多路复用计时计数器”根据客户要求共开发设计三个独立的计时器,每个计时器分别计时,互不影响,每个计时器采用倒计时计时,当倒计时为零时有声音警报提示;当计数次数达到设定的次数上限后又有另一声音警报提示。并且可以根据每批鱼的大小调节每个计时器的计时时间和计数次数。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:ACDB1 2 3 45 6 7 8EFG备注信息:12为计时器134为计时器256为计时器378为计数器ABC为计时/调时按键D为调数按键E为功能选择按键FG分别为扬声器和开关图1-1 产品设计预想模型图本系统由主控电路部分、显示电路部分、按键电路部分和报警电路部分四个模块组成。将电脑上预先编译后的文件下载到单片机芯片后,利用按键调整每个计时器的计时时间和最大计数次数,本系统就可以正常运行使用。本文主要介绍利用单片机实现这一计时、计数功能的方法和该系统软硬件设计的实现,旨在对如何书写程序对单片机实施控制,实现这一实际应用要求进行探讨、研究。2ATmega16L单片机简介2.1 性能概括ATmega16L是一款增强型内置Flash的RISC(Reduced in Struction Set CPU)精简指令集高速8位AVR单片机。以其高可靠性、功能强、高速度、低功耗和低价位的特点在市场上获得了很高的市场占有率。AVR单片机废除了机器周期,抛弃了复杂的指令计算机(CISC)追求指令完备的做法,采用了精简指令集,取值周期短,还可以预取指令,提高了执行指令的速度。该系列单片机集中了多种器件(如:包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、A/D转换器、定时器/计数器等)和多种功能(如:复位系统、休眠模式、多种中断系统、比较匹配输出等多样功能的计时器/计时器、具有第二功能的I/O端口等)。综上所述,AVR单片机也因此成为8位机中最优秀单片机之一。2.2 ATmega16L的特点2.2.1 内核介绍AVR 内核具有丰富的指令集和32 个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC 微控制器最高至10 倍的数据吞吐率。ATmega16L 有如下特点:16K字节的系统内可编程Flash(具有同时读写的能力,即RWW),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 端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态; ADC 噪声抑制模式时终止CPU 和除了异步定时器与ADC 以外所有I/O 模块的工作,以降低ADC 转换时的开关噪声; Standby 模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby 模式下则允许振荡器和异步定时器继续工作。本芯片是以Atmel 高密度非易失性存储器技术生产的。片内ISP Flash 允许程序存储器通过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口,具有可编程的内部上拉电阻,其输出缓冲器具有对称的驱动特性,既可以输出又可以吸收较大电流。当该端口作为输入使用时,内部上拉电阻使能,端口被外部电路拉低时将输出电流。在复位过程中,端口一直处于高阻状态。这些特点又称为端口的第一功能。端口A、B、C、D均具有第二功能,如引脚功能图括弧中的标识,在本设计中未用及第二功能,在这里就不做介绍了。RESET:复位输入引脚。XTAL1:反向震荡放大器与片内时钟操作电路的输入端。XTAL2:反向震荡放大器的输出端。AVCC:端口A与A/D转换器的电源,不适用ADC功能时,该引脚直接与VCC连接。AREF:A/D的模拟基准输入引脚。配置引脚:每个端口引脚都具有三个寄存器位:DDxn、PORTxn、和PINxn。其中DDxn用来选择引脚的方向。DDxn 为1“ 时, Pxn 配置为输出,否则配置为输入。当引脚配置为输入时,PORTxn为“1”,上拉电阻将使能;当引脚配置为输出时,PORTxn为“1”则引脚输出为高电平(“1”)。不论如何配置DDXn,都可以通过读取PINxn寄存器来获得当前的引脚电平。2.2.3 EPROM数据存储器 ATmega16L包含512字节的EEPROM数据存储器。它的寿命至少为100000次擦写周期。EEPROM的访问由地址寄存器、数据寄存器和控制寄存器决定。EEPROM地址寄存器-EEARH和EEARL图2-1 EEPROM地址寄存器-EEARH和EEARLBits15-9-Res:为保留位,Bits8.0-EEAR8.0:EEPROM地址,EEPROM地址寄存器 EEARH和EEARL指定了512字节的EEPROM空间。EEPROM地址是线性的,从0 到511。EEAR 的初始值没有定义。在访问EPROM 之前必须为其赋予正确的数据。EEPROM 数据寄存器 EEDR图2-2 EEPROM 数据寄存器 EEDR Bits 7.0 EEDR7.0: EEPROM 数据,对于EEPROM 写操作, EEDR 是需要写到EEAR 单元的数据;对于读操作, EEDR 是从地址EEAR 读取的数据。EEPROM 控制寄存器 EECR图2-3 EEPROM 控制寄存器 EECRBits7.4-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 & (1EEWE) EEAR = uiAddress; /* 等待上一次写操作结束 */;EEDR = ucData; /* 设置地址和数据寄存器*/EECR |= (1EEMWE); /* 置位EEMWE */EECR |= (1EEWE); /* 置位EEWE 以启动写操作*/unsigned char EEPROM_read(unsigned int uiAddress)/*EEPROM写操作函数*/while(EECR & (1EEWE)/* 等待上一次写操作结束 */;EEAR = uiAddress; /* 设置地址寄存器*/EECR |= (1EERE); /* 设置EERE 以启动读操作*/return EEDR; /* 自数据寄存器返回数据 */当电源电压过低时,CPU和EEPROM不能正常工作,造成数据的损坏为了防止EEPROM 数据损坏这一问题,可以通过以下方法解决:当电压过低时保持AVR RESET信号为低。这可以通过使能芯片的掉电检测电路BOD来实现。如果BOD 电平无法满足要求则可以使用外部复位电路。若写操作过程当中发生了复位,只要电压足够高,写操作仍将正常结束。2.2.4 系统时钟 ATmega16L单片机的时钟系统共包括CPU时钟-clkcpu、I/O 时钟 clkI/O、Flash 时钟 clkFLASH、异步定时器时钟 clkASY、ADC 时钟 clkADC,有五种通过FLASH熔丝位进行选择的时钟源,他们分别是:外部晶体/陶瓷振荡器、外部低频晶振、外部RC振荡器、标定的内部RC振荡器、外部时钟。当CPU 自掉电模式或省电模式唤醒之后,被选择的时钟源用来为启动过程定时,保证振荡器在开始执行指令之前进入稳定状态。当CPU从复位开始工作时,还有额外的延迟时间以保证在MCU 开始正常工作之前电源达到稳定电平。这个启动时间的定时由看门狗振荡器完成。2.2.5 8位定时器/计数器寄存器T/C 控制寄存器 TCCR0图2-4 T/C 控制寄存器 TCCR0n Bit7-FOC0:强制输出比较,FOC 0仅在WGM00指明非PWM模式时才有效;n Bit 6, 3 WGM01:0: 波形产生模式,T/C的工作模式包括普通模式、比较匹配发生时清除计数器模式(CTC),以及两种PWM模式;n Bit 5:4 COM01:0: 比较匹配输出模式,这些位决定了比较匹配发生时输出引脚

温馨提示

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

评论

0/150

提交评论