基于AW60和PCF8563的电子万年历毕业论文.doc_第1页
基于AW60和PCF8563的电子万年历毕业论文.doc_第2页
基于AW60和PCF8563的电子万年历毕业论文.doc_第3页
基于AW60和PCF8563的电子万年历毕业论文.doc_第4页
基于AW60和PCF8563的电子万年历毕业论文.doc_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)电子万年历的设计摘 要电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周、时、分、秒进行计时。本设计是基于飞思卡尔MC9S08AW60单片机进行的电子万年历设计,可以显示年月日时分秒,具有可调整日期和时间功能。该电路采用MC9S08AW60单片机作为核心,功耗小 万年历的设计过程包括硬件与软件方面。硬件部分主要由AW60单片机,单片机控制电路,显示电路以及校正电路等组成。时钟芯片采用PCF8563 ,其是PHILIPS 公司推出的一款工业级内含IIC 总线接口功能的具有极低功耗的多功能时钟/日历芯片。软件方面主要包括日历程序、时间调整程序,显示程序等。关键词: MC9S08AW60单片机、 PCF8563时钟芯片、电子万年历。ABSTRACTThe electronic calendar is a very wide range of daily timing tool,more and more popular in modern society. It can be on-year, month, day, week, hours, minutes, seconds for timing. This design is based on the Freescale MC9S08AW60 microcontrollers. You can adjust the date and time. The circuit with MC9S08AW60 MCU as the core, has the characteristic of low power consumption. The design process of the calendar includes hardware and software design. The hardware part is mainly composed by AW60 MCU, the MCU control circuit, display circuit, and correction circuit. The clock chip is PCF8563, which is an industrial grade multi-functional clock / calendar chip with very low power consumption launched by PHILIPS company, and has the function of IIC bus interface.The Software part includes calendar program, time-adjusting program and the displaying program.Key words: MC9S08AW60MCU, PCF8563,electronic calendar目 录第一章 绪论11.1 课题研究的背景11.2 课题研究的目的和意义11.3 国内外研究现状11.4 电子万年历的分类2本章小结2第二章 电子万年历的总体方案设计32.1 功能介绍32.2设计法案选择32.3课题解决的主要内容32.4 总体设计思路4本章小结4第三章 系统的硬件设计53.1 主控芯片最小系统的设计53.1.1 MC9S08AW60特点53.1.2 芯片引脚分配63.1.3 MCU内部结构73.1.4 系统时钟分配93.1.5 MCU最小系统设计93.2 时钟模块103.2.1PCF8563概述103.2.2 PCF8563模块原理图123.3 键盘模块133.4 LCD显示模块143.5 串行通信接口模块153.5.1 串行通信简介153.5.2 RS-232九芯接口153.5.3 TTL电平到RS-232电平转换电路163.6 电源模块17本章小结18第四章 系统的软件设计194.1 系统软件设计概述194.2 系统软件流程图194.3 AW60和PCF8563之间数据传输204.4 LCD显示程序设计274.5 键盘调用程序设计28本章小结29第五章 调试305.1 硬件调试305.1.1 简介305.1.2 SD-ExtBoard-D 型扩展板315.1.2 SD-PRG-III型写入器325.1.3 MC9S08AW60核心板345.2 软件调试355.2.1 CodeWarrior简介355.2.2 程序调试36本章小结38第六章 总结与展望396.1 总结396.2 展望39参考文献40附录41谢辞60第一章 绪论1.1 课题研究的背景电子万年历是采用独立芯片控制内部数据运行,以LED或LCD数码显示日期、时间、星期、节气倒计,以及温度等日常信息,糅合了多项先进电子技术及现代经典工艺打造的现代数码计时产品。随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。对于电子万年历,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,采用直观的数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用MC9S08AW60单片机1作为核心,功耗小,能在5V的低压工作。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。1.2 课题研究的目的和意义二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。1.3 国内外研究现状 电子万年历经过几十年的发展,其功能越来越全面,性能越来越稳定,时间精度也越来越高。当今的电子万年历不仅可以显示年、月、日、时、分、秒、星期,有些万年历还可以显示当时当地的温度,附带功能还包括整点闹铃、定时闹铃等。安全性也越来越能得到保障,部分电子万年历具有防爆、防震、防火、防水的特性。显示屏的选择也更丰富,可以选择LCD或LED。1.4 电子万年历的分类一、以LED显示方式:l 1、静态显示:静态的每一位数码管是一直处于通电状态,只需输入一个新的信号就会更新旧的数据并显示l 2、动态显示:动态的每一位数码管在新数据输入之前是处于断电状态,当输入一个新的信号后再给所需点亮的数码管通电方能点亮显示,其他的数码管以同样的方式在短时间内依次扫描点亮。二、以时间显示方式:l 数字式:日期、时间、星期、节气倒计、温度等显示全部为LED数码管;l 2、数字、指针混合式:日期、星期、节气倒计、温度等信息以LED数码管显示,时间部分以指针显示三、以外观方式:l 全数码显示万年历:以LED夜光数码显示日期、时间、星期、节气倒计,以及温度等日常信息,无附加信息;l 2、带画面电子万年历:除以LED夜光数码显示日期、时间、星期、节气倒计,以及温度等日常信息,糅合了多项先进电子技术及现代经典工艺,带有艺术画面的产品。本章小结 本章的任务主要是介绍电子万年历的相关知识和有关信息,了解目前电子万年历发展状况和未来的发展方向和前景,对当今市场中存在的电子万年历产品做相关介绍和分类。第二章 电子万年历的总体方案设计2.1 功能介绍本次设计主要用单片机控制程序让它在液晶上显示年、月、日、时、分、秒及星期。时、分、秒的计数结果经过数据处理可直接送显示器显示。当计时发生误差的时候可以用校时电路进行校正。时计数器计满24小时后自动向日计数器进一,日计数器由平年、闰年的大、小月和二月的判断应与当月相应的日期相一致,当日计数器计满时,向月计数器进位,月计数器计满12月向年计数器进位,当年计数器计满100时所有计数器清零。设计采用的是年、月、日和时、分、秒、星期同时显示。2.2设计法案选择方案一 用EDA技术及VHDL语言控制来实现显示,且显示也可以用数码管,但是数码管屏幕有限不是很方便的显示很多的数据以及文字等。对于VHDL语言也不够了解,故不采用此方案。方案二 用C语言编程来控制单片机让它在液晶上显示数据及文字。由于单片机结构简单、控制功能强、可靠性高、体积小、价格低等优点,以及液晶屏幕可以完整的同时显示数据及文字等内容, 综合上述方案的选择与比较,选择方案二。主要是由于电器元件的熟悉程度以及市场的供求关系。在方案二中,大部分的电器元件我们较熟悉并且更容易获得2.3课题解决的主要内容本课题所研究的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:(1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。(2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。(3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。(4)根据硬件电路图,在开发板上完成器件的焊接。(5)根据设计的硬件电路,编写控制MC9S08AW60芯片的单片机程序。(6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。(7)在硬件电路和软件程序设计时,要考虑提高人机界面的友好性,方便用户操作等因素。(8)软件设计时必须要有完善的思路,要做到程序简单,调试方便。2.4 总体设计思路 此设计在液晶上显示年、月、日、时、分、秒及星期,其原理框图如下图所示,电路一般包括以下几个部分:单片机模块、时钟模块、键盘模块及显示模块。主控芯片采用飞思卡尔的MC9S08AW60单片机,时钟芯片采用PCF8563。图2-1 电子万年历原理框图对于各部分:(1) 为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正液晶上显示的时间。(2) 时钟模块为单片机提供时钟信号。(3) 单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。(4) 单片机发送的信号经过显示电路通过译码最终在液晶上显示出来。本章小结 本章确定了本课题的设计目标,在设计目标确定后分析实现方案,并最终确定要选择的方案。具体方案就是基于MC9S08AW60单片机和PCF8563时钟/日历芯片来实现电子万年历的设计。第三章 系统的硬件设计 硬件设计主要包括AW60主控芯片最小系统的设计、显示电路的设计、键盘矫正电路的设计、时钟模块的设计、串行通信接口电路的设计和电源模块。3.1 主控芯片最小系统的设计 本设计的主控芯片采用飞思卡尔的MC9S08AW60单片机,其是低成本、高性能8位微处理器S08家族中的成员。Freescale的S08系列8位MCU由于其稳定性高、开发周期短、成本低、型号多样、兼容性好而被广泛应用1。3.1.1 MC9S08AW60特点l 8 位HCS08 中央处理单元(CPU) 。l 40 MHz 的HCS08 的CPU(中央处理单元)。l 20 MHz 的内部总线频率。l HC08 指令子集,增加了BGND 指令。 l 单线后台调试模式接口。 l 断点的能力,允许单一的断点设置在线调试(在片内调试模块加了多于两个的断点)。 l 片内实时,在线仿真(ICE)带有两个比较器(在BDM 中要加一) ,9 个触发模式,以及片内总线捕获缓冲区。通常显示,在触发点之前或之后大约有50 条指令。 l 支持多达32 个中断/复位源。存储器选项:l 高达60 KB 的片内在线可编程FLASH 存储器,带有块保护和安全选项。l 高达2 KB 的片内RAM。时钟源选项:l 时钟源选项包括晶体,谐振器,外部时钟,或内部产生的时钟。 l 可选的计算机正常操作(COP)复位。l 低电压检测与复位或中断。 l 非法操作码检测与复位。l 非法地址检测与复位(一些设备不具有非法地址)。省电模式: l Wait 另加两个STOPS。 外部设备: l ADC-多达16 个通道,10 位AD 转换器与自动比较功能。 l SCI-两个串行通信接口模块与可选的13 位中断。l SPI 的-串行外设接口模块。 l IIC -集成电路互连总线模块运作高达100 kbps 的最高总线负载;拥有更高的传输速率与减少了负荷 。l Timers-1 个2 通道和1 个 6 通道16 位定时器/脉冲宽度调制器(TPM)模块: 可选输入捕捉,输出比较,和边沿分布的 PWM 能力,在每个通道。每个定时器模块,可配置为缓冲,对所有通道以PWM(CPWM)为中心。 l KBI -高达8 引脚键盘中断模块。 输入/输出:l 高达54 通用输入/输出(I / O)管脚。 l 输入时,每个端口都有软件选择的上拉电阻。l 输出时,每个端口都有软件选择的回转速率控制。l 输出时,每个端口都有软件选择的驱动强度。l 主复位引脚和上电复位(POR)。l 内部上拉复位, IRQ, 和BKGD /MS 管脚,以减少客户的系统成本 RESET 3.1.2 芯片引脚分配64脚的引脚分配如下图所示。每个引脚 有可能有多个复用功能,有的引脚有两个复用功能,有的引脚有四个复用功能。进行硬件最小系统设计时,一般以引脚的第一功能作为引脚名进行原理图设计。图3-1 MC9S08AW60 64脚QFP/LQFP封装图3.1.3 MCU内部结构图3-2给出了MC9S08AW60的内部结构2。图3-2 MC9S08AW60 MCU结构框图注: 1. 如果是输入端口,端口引脚被软件配置为上拉装置。 2. 如果IRQ启用(IRQPE = 1),引脚包含软件配置上拉/下拉式设备。 如果上升沿检测被选定(IRQEDG = 1),下拉式启用。 3. IRQ没有一个钳二极管电源VDD。IRQ不应该在VDD上被驱动。 4. 引脚包含集成上拉装置。 5. 引脚PTD7 , PTD3 , PTD2 和PTG4包含上拉和下拉式装置。下拉式启用,当KBI启用( KBIPEN = 1)和上升沿被选定(KBEDGN = 1)。3.1.4 系统时钟分配AW60系统时钟分配如下图所示:图3-3 系统时钟分配图一些模块内的MCU有时钟源的选择。图1-2显示了一个简化的时钟接线图。ICG提供了时钟来源: l ICGOUT是ICG模块的一个输出。它可以是下列之一: 外部晶体振荡器 外部时钟源 频率锁相环子模块中的输出数位控制振荡器(DCO) ICG内的控制位确定连接哪个时钟源。 l FFE是一个控制信号,在ICG内部产生。如果ICGOUT的频率 4 ICGERCLK的频率,这个信号是一个逻辑1,固定频率的时钟将为ICGERCLK / 2 。否则,固定频率的时钟将为BUSCLK 。 l ICGLCLK 开发工具可以选择内部自时钟频率源( 8MHz),以加快BDC通信系统,在那里总线时钟很慢。 l ICGERCLK 外部参考时钟可以选择作为实时中断时钟源。也可以用来作为ALTCLK,输入给ADC模块。 3.1.5 MCU最小系统设计MCU的最小系统是指可以使内部程序运行所必需的外围电路。一般情况下,MCU的硬件最小系统由BDM下载器接口、晶振及复位等电路组成。图3-4 MCU硬件最小系统电路图3.2 时钟模块3.2.1 PCF8563概述PCF8563 是 PHILIPS 公司推出的一款工业级内含 I2C 总线接口功能的具有极低功耗的多功能时钟/日历芯片 PCF8563 的多种报警功能 定时器功能 时钟输出功能以及中断输出功能能完成各种复杂的定时服务 甚至可为单片机提供看门狗功能 内部时钟电路 内部振荡电路 内部低电压检测电路 1.0V 以及两线制 I2C 总线通讯方式 不但使外围电路及其简洁 而且也增加了芯片的可靠性 同时每次读写数据后 内嵌的字地址寄存器会自动产生增量 当然作为时钟芯片 PCF8563 亦解决了 2000 年问题 因而PCF8563 是一款性价比极高的时钟芯片 它已被广泛用于电表 水表 气表 电话 传真机 便携式仪器以及电池供电的仪器仪表等产品领域。(1) PCF8563特性:l 宽电压范围 1.05.5V,复位电压标准值 Vlow=0.9V;l 超低功耗:典型值为 0.25A (VDD=3.0V,Tamb=25);l 可编程时钟输出频率为 32.768KHz 、1024Hz 、32Hz 、1Hz;l 四种报警功能和定时器功能;l 内含复位电路、振荡器电容和掉电检测电路;(2) PCF8563内部结构框图如下图所示:图3-5 PCF8563内部结构方框图(3) 引脚配置及引脚说明分别如图3-6和表3-1所示。图3-6 PCF8563引脚配置表3-1 PCF8563引脚描述符号引脚号描述OSCI1振荡器输入OSCO2振荡器输出/INT3中断输出(开漏;低电平有效)VSS4地SDA5串行数据 I/OSCL6串行时钟输入CLKOUT7时钟输出(开漏)VDD8正电源(4) PCF8563基本原理PCF8563 有 16 个8 位寄存器:一个可自动增量的地址寄存器,一个内置 32.768KHz 的振荡器(带有一个内部集成的电容),一个分频器(用于给实时时钟 RTC 提供源时钟),一个可编程时钟输出,一个定时器,一个报警器,一个掉电检测器和一个 400KHz I2C 总线接口。所有 16 个寄存器设计成可寻址的 8 位并行寄存器,但不是所有位都有用。 前两个寄存器(内存地址00H 01H)用于控制寄存器和状态寄存器,内存地址 02H 08H 用于时钟计数器(秒年计数器)地址09H0CH用于报警寄存器(定义报警条件),地址 0DH 控制 CLKOUT 管脚的输出频率,地址 0EH 和 0FH分别用于定时器控制寄存器和定时器寄存器。秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为 BCD,星期和星期报警寄存器不以 BCD 格式编码。当一个 RTC 寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下,可以禁止对时钟/日历芯片的错读。3.2.2 PCF8563模块原理图PCF8563和AW60芯片的连接采用IIC总线接口。IIC是多主设备两线双向串行总线接口,是不同芯片间传输数据的简单、有效且常有的通信方式之一。IIC总线接口的特点:l 在硬件上,二线制的I2C串行总线使得各IC只需最简单的连接,而且总线接口都集成在IC中,不需另加总线接口电路。l I2C总线还支持多主控(multi-mastering)。l 串行的8位双向数据传输位速率在标准模式下可达100kbps,快速模式下可达400kbps,高速模式下可达3.4Mbps。l 连接到相同总线的IC数量只受到总线最大电容(400pf)的限制。但如果在总线中加上82B715总线远程驱动器可以把总线电容限制扩展十倍,传输距离可增加到15m。图3-7 IIC总线的典型连接PCF8563时钟芯片的外围电路如图3-8所示,将其中的SCL和SDA分别接AW60的PTC0、PTC1引脚即可。图3-8 AW60与PCF8563的硬件接口3.3 键盘模块 键盘是由若干按键组成的开关矩阵,它是最简单的MCU数字量输入设备,在本设计中起到调整日期、时间的作用。键盘的种类分多种。按键盘的分布方式可分为独立式和矩阵式;按读入键值的方式可分为直读方式和扫描方式;按是否进行硬件编码可分为硬件编码方式和非编码方式;按微处理器响应方式可分为中断方式和查询方式。本设计采用44矩阵式键盘,4条I/O线组成行输入口,4条I/O线组成列输出口,在行列线的每一个交点上设置一个按键。读键值的方法一般采用扫描方式,即MCU输出口按位轮换输出低电平,再从输入口读入键信息最后获得编码。这种方式占用I/O线较少。图3-9 44键盘与MCU接法3.4 LCD显示模块LCD(Liquid Crystal Display)作为电子信息产品的主要显示器件,相对于其他类型的显示部件有其自身的特点,主要包括:低电压微功耗、平板型结构、使用寿命长、被动显示、显示信息量大、易于彩色化、无电磁辐射等。LCD与AW60的连接方式如图3-9所示图3-10 LCD与AW60的硬件连接3.5 串行通信接口模块3.5.1 串行通信简介目前几乎所有的台式机电脑都带有9针的异步串行通信口,简称串口或COM口,串行通信是MCU与外界通信的简便方式之一。MCU引脚输入输出一般使用TTL电平,即晶体管-晶体管逻辑电平。而TTL电平的“1”和“0”的特征电压分别为2.4V和0.4V,即大于2.4V则识别为“1”,低于0.4V则识别为“0”。它适用于板内数据传输,不能传输的很远,为使信号传输的更远,美国电子工业协会EIA制定了串行物理接口标准RS-232。RS232采用负逻辑,-15V-3V为逻辑“1”,+3V+15V为逻辑“0”。RS-232最大的传输距离是30m通信速率一般低于20kbps。3.5.2 RS-232九芯接口在RS-232通信中,常常使用精简的RS-232通信,通信中仅使用3根线:RxD(接收线)、TxD(发送线)和GND(地线)。表3-1 9芯串行接口引脚含义表图3-11 9芯串行接口排列引脚号功能引脚号功能1接收线信号检测(载波检测DCD)6数据通信设备准备就绪(DSR)2接收数据线(RXD)7请求发送(RTS)3发送数据线(TXD)8允许发送(CTS)4数据终端准备就绪(DTR)9振铃指示5信号地(SG)3.5.3 TTL电平到RS-232电平转换电路在MCU 中,若用RS-232总线进行串行通信,则需外接电路实现电平转换,在发送端,需要用驱动电路将TTL电平转换成RS-232电平;在接收端,需要用接受电路将RS-232D电平转换成TTL电平。在此使用MAX232芯片进行转换,该芯片使用单一+5V电源供电实现电平转换。图3-12 MAX232引脚分配表3-2 MAX232芯片输入输出引脚分类与基本接法TTL电平引脚方向典型接口RS232电平引脚方向典型接口11输入接MCU的TXD13输入接到9芯接口的2脚RXD12输出接MCU的RXD14输出接到9芯接口的3脚TXD10输入接MCU的TXD8输入接到9芯接口的2脚RXD9输出接MCU的RXD7输出接到9芯接口的3脚TXD MAX232芯片进行电平转换的基本原理:1) 发送过程:发送过程:MCU的TXD(TTL电平)经过MAX232的11脚(T1IN)送到MAX232内部,在内部TTL电平被“提升”为232电平,通过14脚(T1OUT)发送出去。2) 接收过程:外部232电平经过MAX232的13脚(R1IN)进入到MAX232的内部,在内部232电平被“降低”为TTL电平,经过12脚(R1OUT)送到MCU的RXD,进入MCU内。图3-13 串行通信接口电平转换电路3.6 电源模块扩展板使用12 伏直流电源供电,通过开关型可调降压稳压器LM2576T-ADJ 可输出5 伏电源,电路原理图分别如图3-14所示。图3-14 12V转换为5V的 电源模块原理图本章小结 本章在方案选择完成后进行具体的方案论证和硬件实现,并对MC9S08AW60和PCF8563芯片作了一定的介绍。本章的主要任务是对本次设计的各个模块进行逐个设计和分析,具体的模块包括AW60最小系统模块、时钟/日历模块、键盘控制模块、LCD显示模块、串行通信模块以及电源模块。第四章 系统的软件设计在硬件电路确定之后,则系统所有的智能功能要由软件来完成。软件是整个控制系统设计的核心,它具有充分的灵活性,可以根据系统的要求而变化,对于同样的硬件系统,配以不同的软件系统,所实现的功能也就不一样,而且有此硬件电路的功能都可以用软件来实现。所以对于一个系统设计来说,软件系统常常比硬件系统需要更多的工作量。整个系统的硬件组成相对简单,较小的硬件开销需要相对复杂的软件进行补偿,下面较为详细地分析软件的设计。 4.1 系统软件设计概述本系的软件采用结构化模块程序设计,所谓“模块”,实质上就是具有一定功能、相对独立的程序段。其基本思路是将整个控制系统的功能分解为几个相对独立的标准模块,使其中的每一个程序模块完成某一特定的控制功能,并且分别只有一个入口和出口中,这样就可以对每一个程序分别定义无歧义性的输入变量和输出变量,使它们的运行相对地不受其它程序的影响,从而增强了系统的可靠性。模块设计的主要特点是:单模块比一个完整的程序容易编写、查错和测试;模块可以实现共享,一个模块可被多个任务在不同的条件下调用;把输入/输出封装起来,可以使程序其余部分免受经常变动;输入/输出放入模块使得程序很容易适应输入/输出设备的变动。这样的设计有利于程序化码的优化,而且便于设计、调试和维护。软件结构采用模块化设计方法,将所要完成的功能分别编写和调试,所有模块调试成功以后,将各个模块连接成软件系统。在本电子万年历的设计中,软件系统包括主程序、LCD显示程序、键盘调整程序等模块。4.2 系统软件流程图系统软件设计流程图如图4-1所示。图4-1 软件设计流程图4.3 AW60和PCF8563之间数据传输(1) AW60和PCF8563之间数据传输采用IIC总线接口,AW60向PCF8563写一个字节数据的数据帧格式图4-3所示。图4-2 AW60向PCF8563中写一字节的数据帧格式主机要向从机写1个字节数据时,主机首先产生START信号,然后紧跟着发送一个从机地址,这个地址共有7位,紧接着的第8位是数据方向位(R/W),0表示主机发送数据(写),1表示主机接收数据(读),这时候主机等待从机的应答信号(ACK),当主机收到应答信号时,发送要访问的地址,继续等待从机的响应信号,当主机收到响应信号时,发送1个字节的数据,继续等待从机的响应信号,当主机收到响应信号时,产生停止信号,结束传送过程。AW60向PCF8563写一个字节数据的流程图如图4-3所示。图4-3 AW60向PCF8563写一个数据AW60向PCF8563中写一个字节数据的具体C语言程序如下所示:uint8 IICwrite1(uint8 DeviceAddr, uint8 AccessAddr, uint8 Data) I2C_IIC1C |= 1 TXBit; /TX = 1,MCU设置为发送模式 SendSignal(S); /发送开始信号 I2C_IIC1D = DeviceAddr & 0xFE;/发送设备地址,并通知从机接收数据 if (Wait(T) /等待一个字节数据传送完成 return 1; /没有传送成功,写一个字节失败 if (Wait(A) /等待从机应答信号 return 1; /没有等到应答信号,写一个字节失败 I2C_IIC1D = AccessAddr; /发送访问地址 if (Wait(T) /等待一个字节数据传送完成 return 1; /没有传送成功,写一个字节失败 if (Wait(A) /等待从机应答信号 return 1; /没有等到应答信号,写一个字节失败 I2C_IIC1D = Data; /写数据 if (Wait(T) /等待一个字节数据传送完成 return 1; /没有传送成功,写一个字节失败 if (Wait(A) /等待从机应答信号 return 1; /没有等到应答信号,写一个字节失败 SendSignal(O); /发送停止信号 return 0; 写多个字节数据的C语言程序如下所示:uint8 IICwriteN(uint8 DeviceAddr, uint8 AccessAddr, uint8 Data, uint8 N) uint8 i, j; for (i = 0;i N;i+) for(j = 0;j = N) return 0; /成功发送N个数据,返回成功标志:0 (2) AW60从PCF8563读一字节数据的数据帧格式如图4-4所示。图4-4 AW60从PCF8563中读一字节的数据帧格式当主机要从从机读1个字节数据时,主机首先产生START信号,然后紧跟着发送一个从机地址,注意此时该地址的第8位为0,表明是向从机写命令,这时候主机等待从机的应答信号(ACK),当主机收到应答信号时,发送要访问的地址,继续等待从机的应答信号,当主机收到应答信号后,主机要改变通信模式,所以主机发送重新开始信号,然后紧跟着发送一个从机地址,注意此时该地址的第8位为1,表明将主机设置成接收模式开始读取数据,这时主机等待从机的应答信号,当主机收到应答信号时,就可以接收1个字节的数据,当接收完成后,主机发送非应答信号,表示不再接收数据,主机进而产生停止信号,结束传送过程。AW60从PCF8563读一字节数据的流程图如图4-5所示。图4-5 AW60从PCF8563读一个数据AW60从PCF8563中读一个字节数据的具体C语言程序如下所示: uint8 IICread1(uint8 DeviceAddr, uint8 AccessAddr, uint8 *Data) I2C_IIC1C |= 1 TXBit; /TX = 1,MCU设置为发送模式 SendSignal(S); /发送开始信号 I2C_IIC1D = DeviceAddr & 0xFE;/发送设备地址,并通知从机接收数据 if (Wait(T) /等待一个字节数据传送完成 return 1; /没有传送成功,读一个字节失败 if (Wait(A) /等待从机应答信号 return 1; /没有等到应答信号,读一个字节失败 I2C_IIC1D = AccessAddr; /发送访问地址 if (Wait(T) /等待一个字节数据传送完成 return 1; /没有传送成功,读一个字节失败 if (Wait(A) /等待从机应答信号 return 1; /没有等到应答信号,读一个字节失败 I2C_IIC1C |= 1 RSTABit; /主机模式下,RSTA位置1,产生重复开始信号 I2C_IIC1D = DeviceAddr | 0x01;/通知从机改为发送数据 if (Wait(T) /等待一个字节数据传送完成 return 1; /没有传送成功,读一个字节失败 if (Wait(A) /等待从机应答信号 return 1; /没有等到应答信号,读一个字节失败 I2C_IIC1C &= (1 TXBit ); /TX = 0,MCU设置为接收模式 *Data = I2C_IIC1D; /读出IIC1D,准备接收数据 if (Wait(T) /等待一个字节数据传送完成 return 1; /没有传送成功,读一个字节失败 SendSignal(O); /发送停止信号 *Data = I2C_IIC1D; /读出接收到的一个数据 return 0; /正确接收到一个字节数据读取多个字节数据的C语言程序如下所示:uint8 IICreadN(uint8 DeviceAddr, uint8 AccessAddr, uint8 Data, uint8 N) uint8 i, j; for (i = 0;i N;i+) for(j = 0;j = N) return 0; /成功接收N个数据,返回成功标志:0 4.4 LCD显示程序设计LCD显示程序的任务是AW60主控芯片持续不断地从PCF8563时钟芯片中读出相应数据,之后再转换为用于LCD显示的数据。图4-6 LCD显示程序流程图4.5 键盘调用程序设计键盘调整程序的任务是当键盘被按下时,系统响应键盘中断。系统按照按键的意义作出相应的反应,如调整时间、调整日期等。当AW60芯片通检测键盘被按下后,立即调用键盘调整程序,此时LCD显示具体调整的情况。图4-7 键盘调整程序流程图本章小结 在硬件电路设计完成以后,接下来就是软件的设计。本章就如何设计本课题的软件部分作了一定的描述,并辅以流程图作更直观的讲解。软件设计包括AW60对PCF8563的读取和写入程序设计、键盘的控制程序设计、LCD显示程序设计以及主程序的设计。第五章 调试本章调试分为硬件调试和软件调试,检验本次设计是否合理、可行。硬件调试所用工具为飞思卡尔嵌入式开发平台,软件调试所用工具为Codewarrior。5.1 硬件调试5.1.1 简介传统的嵌入式应用开发方法主要是使用仿真器模拟目标系统中MCU的运行情况,希望达到在目标系统硬件尚未定型与制版情况下,先行调试目标系统的硬件、软件,为目标系统的研制提供前期基础。但是在一些情况下,难以实现100%的实时仿真,有些功能在用仿真器调试时十分正常,而到了实际应用系统却不能顺利运行。同时,传统的仿真方式的一些调试功能仅适用于初学者,对于具有一定开发经验并拥有通用功能模块积累的开发者,往往增加了开发时间。SD嵌入式开发套件是针对飞思卡尔MC9S08/S12/ColdFire系列的开发工具,提供BDM方式在线编程调试功能。开发套件由写入器、核心板以及扩展板组成。写入器通过USB接口与PC机连接,通过BDM接口与核心板连接(如图5-1)。在集成开发环境的支持下,通过写入器可对核心板上的MCU进行在线编程、调试。扩展板上提供核心板底座、数码管、44键盘、开关、模拟电位器、蜂鸣器、LCD、传感器、串行口以及USB、CAN、IIC、SPI、网络等接口。图5-1 集成开发套件结构框图SD嵌入式开发套件可作为飞思卡尔系列MCU教学、培训的实验器材,也可作为大中专学生和技术人员自学的实验器材。系统特点如下:(1) 通用性。支持目前飞思卡尔S08、S12、ColdFire系列MCU。(2) 灵活性。硬件系统灵活,根据实际需要选配或自己制作核心板。(3) 功能齐全。提供配套教材、丰富的编程实例及网上技术交流平台。(4) 可靠性强。擦除、写入等操作后的数据检验功能确保了操作的正确性。5.1.2 SD-ExtBoard-D 型扩展板SD-ExtBoard-D型扩展板(以下简称扩展板)适用于HC08、HCS08、HC12、HCS12、ClodFire等系列MCU的核心板,提供160引脚核心板底座接口。核心板底座接口如图5-2所示。图5-2 核心板底座接口示意图核心板底座接口共有四个双排插座:Core1、Core2、Core3以及Core4。为方便接线,每个插座对应一个40引脚的单排插座。扩展板硬件布局如图5-3所示。扩展板包括的硬件模块有:复位、电源、调试小灯、蜂鸣器、继电器、8段数码管、液晶、44键盘、拨码开关、传感器接口(光敏、热敏)、串行口、USB、CAN、IIC、SPI、以太网口、Zigbee、RFID、串口转USB等。此外,扩展板上还提供了六列插孔,以便插入元件进行实验。图 5- 扩展板布局5.1.2 SD-PRG-III型写入器1) 写入器简介:S08/S12/ColdFire BDM为S08/S12/ColdFire 三合一写入器(如图5-4),适用于Freescale HCS08/RS08/HCS12/S12X/ColdFire全系列MCU,开发环境使用Freescale CodeWarrior。写入器使用USB线连接PC,使用BDM接口连接目标板。其中HCS08/RS08/HCS12系列芯片使用6针BDM接口,ColdFire芯片使用26针BDM接口。图5-4 SD-PRG-III型写入器2) 驱动安装将写入调试器与PC机的USB口相连,系统弹出“发现新硬件”的提示,并弹出“找到新的硬件向导”对话框,选择“从列表或指定位置安装(高级)”选项。单击“下一步”,选择“不要搜索,我要自己选择要安装的驱动程序。”,单击“下一步”,选择“Windows CE USB Devices”,单击“下一步”,选择“从磁盘安装”,然后选择驱动程序的路径,选择driver文件夹,单击确定将完成USB驱动的安装。3) 调试库安装调试库共包含5个文件:OpenSourceBDM.dll,tbdml.dll,tblcf.dll,tblcf.cfg和 tblcf_gdi.dll。调试库可以通过以下两种方式进行安装:l 手动安装调试库:S08:将OpenSourceBDM.dll拷贝到:Codewarrior for S08安装目录Proggdi目录中。 S12:将tbdml.dll拷贝到:Codewarrior for S12安装目录Proggdi目录中。 ColdFire:新建Codewarrior for ColdFire安装目录binPluginsSupportColdFireusbdm_cf目录。将tblcf.dll,tblcf.cfg和 tblcf_gdi.dll拷贝到目录usbdm_cf中。l 脚本自动安装调试库:以上步骤可通过执行Install.cmd脚本完成,首先使用记事本打开Ins

温馨提示

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

评论

0/150

提交评论