单片机课程基于ZG使用C语言编程的电子钟显示(有源代码)_第1页
单片机课程基于ZG使用C语言编程的电子钟显示(有源代码)_第2页
单片机课程基于ZG使用C语言编程的电子钟显示(有源代码)_第3页
单片机课程基于ZG使用C语言编程的电子钟显示(有源代码)_第4页
单片机课程基于ZG使用C语言编程的电子钟显示(有源代码)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、.学 号: 浙江理工大学课 程 设 计题 目实时时钟显示设计学 院计算机科学与技术专 业计算机科学与技术班 级 姓 名 指导教师 2010年11月28日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目:实时时钟显示设计初始条件:1. 课程设计使用ZG211硬件综合实验平台(8051单片机),配有课程设计接口芯片和辅助芯片以及器件;2. ZG211有程序设计集成开发环境,程序设计语言为C语言;3. ZG211硬件综合实验平台使用说明书;要求完成的主要任务: (包括课程设计工作量及其技术要求,撰写说明书具体要求)1. 学习使用ZG211硬件综合实验平台,程序设计集成开发环境;2

2、. 根据课程设计题目,进行需求分析,搞清楚课程设计需要设计需求和需要解决的设计内容。3. 查阅和学习课程设计题目需要的接口芯片资料,掌握接口芯片的使用方法和编程要领。查阅和学习课程设计题目需要的辅助芯片以及器件资料。4. 设计接口芯片和辅助芯片以及器件与8051单片机连接硬件电路原理图。5. 设计与硬件电路原理图对应的C语言程序(或8051汇编语言)。给出程序流程图。在集成开发环境中调试程序。给出程序的详细注释。能够解释使用程序模拟电路时序信号和数据。6. 撰写课程设计报告,1)详细陈述以上的设计过程;2)详细陈述电路的调试过程。时间安排:第13周:1. 熟悉ZG211硬件综合实验平台,KEI

3、LC UVISION2 集成开发环境;查阅接口芯片资料,熟悉接口芯片和它的使用方法。2. 设计硬件电路原理图。第14周:1. 使用C语言或汇编语言设计和调试接口程序。2. 撰写计算机硬件综合设计报告。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日实时时钟显示设计1需求分析1.1实验目的1.掌握IO 口操作。2.掌握显示及键盘芯片的运用。3.了解中断的运用。4.了解I2C 总线操作。1.2实验设备1. PC 机一台;ZG-211 单片机系统实验板一块;实验连接线若干。2.芯片:CH451,89S52,CD4052,PCF8563。3.配套并口编程线一根。4.配套电源一个。1.2

4、.1 CH451芯片(1)概述CH451 是一个整合了数码管显示驱动和键盘扫描控制以及P 监控的多功能外围芯片。CH451 内置RC 振荡电路,可以动态驱动8 位数码管或者64 位LED,具有BCD 译码、闪烁、移位等功能;同时还可以进行64 键的键盘扫描;CH451 通过可以级联的串行接口与单片机等交换数据;并且提供上电复位和看门狗等监控功能。(2)特点1. 显示驱动 内置大电流驱动级,段电流不小于30mA,字电流不小于160mA。 动态显示扫描控制,直接驱动8 位数码管或者64 位发光管LED。 可选数码管的段与数据位相对应的不译码方式或者BCD 译码方式。 字数据左移、右移、左循环、右循

5、环。 各数字独立闪烁控制。 通过占空比设定提供16 级亮度控制。 支持段电流上限调整,可以省去所有限流电阻。 扫描极限控制,支持1 到8 个数码管,只为有效数码管分配扫描时间。2. 键盘控制 内置64 键键盘控制器,基于88 矩阵键盘扫描。 内置去抖动电路。 键盘中断,低电平有效输出。 提供按键释放标志位。3. 外部接口 高速的4 线串行接口,支持芯片级联,时钟速度从0 到10MHz。 串行接口中的DIN 和DCLK 信号线可以与其它接口电路共用。 完全内置RC 阻容振荡电路,根据需要可以外接阻容振荡。 内置上电复位和看门狗Watch-Dog,提供高电平有效和低电平有效复位输出。4. 其它杂项

6、 可选多种封装:DIP28、SOP28、DIP24S。 经过授权采用了2 项专利技术,低成本,简便易用。单片机MCU等CH451外围芯片8 位数码管或64 位发光管DCLKDOUTRSTRST#LOADDIN88 矩阵64 键键盘DIG7-0SEG7-01.2.2 89S52芯片(1)主要性能 与MCS-51单片机产品兼容。 8K字节在系统可编程Flash存储器。 1000次擦写周期。 全静态操作:0Hz33Hz。 三级加密程序存储器。 32个可编程I/O口线。 三个16位定时器/计数器。 八个中断源。 全双工UART串行通道。 低功耗空闲和掉电模式。11 掉电后中断可唤醒。12 看门狗定时器

7、。13 双数据指针。14 掉电标识符。(2)功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量

8、2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。1.2.3 CD4052芯片(1)简要说明CC4052 是一个差分4 通道数字控制模拟开关,有A0、A1 两个二进制控制输入端和INH 输入,具有低导通阻抗和很低的截止漏电流。幅值为4.520V 的数字信号可控制峰峰值至20V 的模拟信号。例如,若VDD5V,VSS0,VEE13.5V,则05V 的

9、数字信号可控制13.54.5V 的模拟信号。这些开关电路在整个VDDVSS 和VDDVEE 电源范围内具有极低的静态功耗,与控制信号的逻辑状态无关。当INH 输入端“1”时,所有的通道截止。二位二进制信号选通4通道中的一通道,可连接该输入端至输出。CC4052 提供了16 引线多层陶瓷双列直插(D)、熔封陶瓷双列直插(J)、塑料双列直插(P)和陶瓷片状载体(C)4 种封装形式。(2)推荐工作条件电源电压范围3V15V输入电压范围0VVDD(3)工作温度范围M类55125E 类.4085(4)极限值电源电压.0.5V18V输入电压0.5VVDD+0.5V输入电流.10mA储存温度65150(5)

10、引出端符号A0A1 地址端1I0/O01I3/O3 输入输出端2I0/O02I3/O3 输入输出端INH 禁止端1O/I 公共输出/输入端2O/I 公共输出/输入端VDD 正电源VEE 模拟信号地Vss 数字信号地(6)逻辑符号1.2.4 PCF8563芯片(1)概述PCF8563 是低功耗的CMOS 实时时钟日历芯片,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过I2C 总线接口串行传递。最大总线速度为400Kbits/s,每次读写数据后,内嵌的字地址寄存器会自动产生增量。(2)特性 低工作电流:典型值为0.25A(VDD=3.0V,Tamb=25时)。 世纪标志。

11、 大工作电压范围:1.05.5。 低休眠电流;典型值为0.25A(VDD=3.0V,Tamb=25)。 400KHz 的I2C 总线接口(VDD=1.85.5V 时)。 可编程时钟输出频率为:32.768KHz,1024Hz,32Hz,1Hz。 报警和定时器。 掉电检测器。 内部集成的振荡器电容。 片内电源复位功能。11 I2C 总线从地址:读,0A3H;写,0A2H。12 开漏中断引脚。(3)应用 移动电话 便携仪器 传真机 电池电源产品(4)功能描述PCF8563 有16 个位寄存器:一个可自动增量的地址寄存器,一个内置32.768KHz 的振荡器(带有一个内部集成的电容),一个分频器(用

12、于给实时时钟RTC 提供源时钟),一个可编程时钟输出,一个定时器,一个报警器,一个掉电检测器和一个400KHz I2C总线接口。所有16 个寄存器设计成可寻址的8 位并行寄存器,但不是所有位都有用。前两个寄存器(内存地址00H,01H)用于控制寄存器和状态寄存器,内存地址02H08H 用于时钟计数器(秒年计数器),地址09H0CH 用于报警寄存器(定义报警条件),地址0DH 控制CLKOUT 管脚的输出频率,地址0EH 和0FH 分别用于定时器控制寄存器和定时器寄存器。秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为BCD,星期和星期报警寄存器不以BCD 格式编码。当一

13、个RTC 寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下, 可以禁止对时钟日历芯片的错读。1.3实验板模块真实实验板示意图如下:2实验要求 能正常操作LED 数码显示。 能通过中断方式接收按键信息。 能通过I2C 总线方式与PCF8563 芯片交换数据。 能正确解释并显示从PCF8563 芯片取出的日期和时间数据。在应用所学计算机硬件相关课程中的知识的基础之上,使用C语音实现对接口的编程方法。熟悉51系列单片机原理,并口工作原理和编程方法。学习CH451和DS18B20芯片的引脚功能和编程方法。在PC机上安装Keilc51在线编程软件,编写“数字显示与键盘输入”程序。使用并口线把ZG

14、211实验板与PC 机连接起来,仔细检查无误后接通电源。PC机上C程序编译成功后,打开联机下载软件,将HEX 文件下载到89S52 单片机中去。观看下载程序在89S52 单片机中运行情况。如有问题,则在PC机上修改程序,然后再次下载运行。能正常操作LED 数码显示,通过中断方式接收按键信息。设计阶段,能够正确进行程序设计电路设计。课程设计实验阶段,能够正确连接电路;能够分析和解决在实验中碰见的问题;解决问题的思路和方法正确;实验结果满足课程设计要求。主要任务:1. 学习使用ZG211硬件综合实验平台,程序设计集成开发环境;2. 根据课程设计题目,进行需求分析,搞清楚课程设计需要设计需求和需要解

15、决的设计内容。3. 查阅和学习课程设计题目需要的接口芯片资料,掌握接口芯片的使用方法和编程要领。查阅和学习课程设计题目需要的辅助芯片以及器件资料。4. 设计接口芯片和辅助芯片以及器件与8051单片机连接硬件电路原理图。5. 设计与硬件电路原理图对应的C语言程序(或8051汇编语言)。给出程序流程图。在集成开发环境中调试程序。给出程序的详细注释。能够解释使用程序模拟电路时序信号和数据。6. 撰写课程设计报告,1)详细陈述以上的设计过程;2)详细陈述电路的调试过程。3实验原理在单片机应用系统中的实时时钟信号,一般都由专门的时钟芯片来提供,单片机只需要定期读取时钟芯片中固定地址中的时钟信息即可。本实

16、验板采用的是PCF8563 时钟芯片。PCF8563 芯片的引脚说明见表下表。符号管脚号描述OSCI1振荡器输入OSCO2振荡器输出 /INT3中断输出(开漏:低电平有效)VSS4地SDA5串行数据I/OSCL6串行时钟输入CLKOUT7时钟输出(开漏)VDD8正电源PCF8563 芯片在第一次运行时需要设置控制寄存器和状态寄存器,见表如下,一般均设置为0。地址位BIT符号描述007TEST1TEST1=0;普通模式TEST1=1;EXT_CLK 测试模式5STOPSTOP=0 ;芯片时钟运行 STOP=1 ;所有芯片分频器异步置逻辑0;芯片时钟停止运行, (CLKOUT 在32.768KHZ

17、 时可用)3TESTCTESTC= 0;电源复位功能失效 (普通模式时置逻辑0)TESTC=1; 电源复位功能有效6,4,2,1,00缺省值置逻辑0017,6,50缺省值置逻辑04TI/TFTI/TP=0: 当TF 有效时INT 有效 (取决于TIE 的状态)TI/TP=1:INT 脉冲有效(取决于TIE 的状态)注意:若AF 和AIE 都有效时,则INT 一直有效3AF当报警发生时,AF 被置逻辑1;在定时器倒计数结束时,TF 被置逻辑1,它们在被软件重写前一直保持原有值,若定时器和报警中断都请求时,中断源由AF 和TF 决定,若要使清除一个标志位而防止另一标志位被重写,应运用逻辑指令AND

18、。2TF1AIE标志位AIE 和TIE 决定一个中断的请求有效或无效,当AF 或TF 中一个为“1” 时中断是AIE 和TIE 都置“1” 时的逻辑或。AE=0 :报警中断无效;AIE=1 :报警中断有效TIE=0 :定时器中断无效;TIE=1 :定时器中断有效0TIE在 PCF8563 芯片中,秒、分钟、小时、日、月、年编码格式为BCD。星期不以BCD 格式编码。具体格式见表如下。地址说明BIT符号描 述02H秒/VL寄存器7VLVL=0: 保证准确的时钟/日历数据 VL=1:不保证准确的时钟/ 日历数据60代表BCD 格式的当前秒数值,值为0099例如:1011001, 代表59 秒03H

19、分钟寄存器7无效60代表BCD 格式的当前分钟数值,值为005904H小时寄存器76无效50代表BCD 格式的当前小时数值,值为0023:05H日寄存器76无效50代表BCD 格式的当前日数值, 值为0131。当年计数器的值是闰年时,PCF8563 自动给二月增加一个值,使其成为29 天06H星期寄存器73无效20代表当前星期数值06,这些位也可由用户重新分配07H月寄存器7C世纪位;C=0 指定世纪数为20,C=1 指定世纪数为19,“” 为年寄存器中的值。当年寄存器中的值由99 变为00时,世纪位会改变。65无用08H年寄存器70年代表BCD 格式的当前年数值,值为0099实验只使用 PC

20、F8563 的时间读取功能,只需对该芯片地址02H-08H 的内存进行读写操作,其它地址的内存保持为默认值,实验板上提供电池,可以在掉电后保持时钟正常工作。实验板上PCF8563 的相关连接原理图如下图所示。其中CD4052 芯片的操作见下表。AB选通状态00X=X0;Y=Y010X=X1;Y=Y101X=X2;Y=Y211X=X3;Y=Y34 I2C协议I2C 总线用两条线(SDA 和SCL)在芯片和模块间传递信息。SDA 为串行数据线,SCL为串行时钟线。1只有在总线空闲时才允许启动数据传送。2在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态不允许。有跳变时钟线为高电平时,数据

21、线的任何电平变化将被看作总线的起始或停止信号。(1)起始信号时钟线保持高电平期间,数据线电平从高到低的跳变作为 I2C 总线的起始信号。(2)停止信号时钟线保持高电平期间,数据线电平从低到高的跳变作为 I2C 总线的停止信号。总线时序写周期时序起始/停止时序(3)器件寻址主器件通过发送一个起始信号启动发送过程,然后发送它所要寻址的从器件的地址。8位从器件地址的高4 位固定为1010。 接下来的3 位A2 A1 A0 为器件的地址位,用来定义哪个器件以及器件的哪个部分被主器件访问。从器件8 位地址的最低位, 作为读写控制位。“1” 表示对从器件进行读操作,“0” 表示对从器件进行写操作。在主器件

22、发送起始信号和从器件地址字节后,PCF8563 监视总线并当其地址与发送的从地址相符时响应一个应答信号(通过SDA 线)。PCF8563 再根据读写控制位(R/W)的状态进行读或写操作。(4)应答信号I2C 总线数据传送时每成功地传送一个字节数据后,接收器都必须产生一个应答信号,应答的器件在第9 个时钟周期时将SDA 线拉低,表示其已收到一个8 位数据。PCF8563 在接收到起始信号和从器件地址之后响应一个应答信号,如果器件已选择了写操作,则在每接收一个8 位字节之后响应一个应答信号。当PCF8563 工作于读模式时,在发送一个8 位数据后释放SDA 线并监视一个应答信号,一旦接收到应答信号

23、,PCF8563 继续发送数据,如主器件没有发送应答信号,器件停止传送数据并,等待一个停止信号主器件。应答时序图从器件地址位其中A0、A1 和A2 对应24C02的管脚1、2 和3,PCF8563的从地址读操作时为0A3H,写操作时为0A2H。(5)写操作:1.字节写在字节写模式下,主器件发送起始命令和从器件地址信息(R/W 位置零)给从器件,在从器件产生应答信号后,主器件发送PCF8563 的字节地址,主器件在收到从器件的另一个应答信号后,再发送数据到被寻址的存储单元。PCF8563 再次应答,并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中PCF8563 不再应答主器件的任何请

24、求。字节写时序图2页写用页写,PCF8563 可以一次写入16 个字节的数据,页写操作的启动和字节写一样,不同在于传送了一字节数据后并不产生停止信号。主器件被允许发送P(PCF8563:P=15;)个额外的字节。每发送一个字节数据后PCF8563 产生一个应答位并将字节地址低位加1, 高位保持不变。如果在发送停止信号之前主器件发送超过P+1 个字节,地址计数器将自动翻转,先前写入的数据被覆盖。接收到P+1 字节数据和主器件发送的停止信号后,芯片启动内部写周期将数据写到数据区,所有接收的数据在一个写周期内写入PCF8563。页写时序图(6)应答查询可以利用内部写周期时禁止数据输入这一特性,一旦主

25、器件发送停止位指示主器件操作结束时,PCF8563 启动内部写周期,应答查询立即启动,包括发送一个起始信号和进行写操作的从器件地址。如果PCF8563 正在进行内部写操作,不会发送应答信号。如果PCF8563已经完成了内部自写周期,将发送一个应答信号,主器件可以继续进行下一次读写操作。(7)写保护写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写,当WP管脚接高时整个寄存器区全部被保护起来而变为只可读取。(8)读操作PCF8563读操作的初始化方式和写操作时一样,仅把(R/W) 位置为1,有三种不同的读操作方式:立即地址读、选择读和连续读。立即地址读:PCF8563 的地址计

26、数器内容为最后操作字节的地址加1。也就是说,如果上次读/写的操作地址为N,则立即读的地址从地址N+1 开始。如果N=E(这里对24C02,E=255;对PCF8563,E=16),则计数器将翻转到0 且继续输出数。PCF8563 接收到从器件地址信号后(R/W 位置1),它首先发送一个应答信号,然后发送一个8 位字节数据。主器件不需发送一个应答信号,但要产生一个停止信号。立即地址读时序图(9)选择性读操作允许主器件对寄存器的任意字节进行读操作,主器件首先通过发送起始信号、从器件地址和它想读取的字节数据的地址执行一个伪写操作。在PCF8563 应答之后,主器件重新发送起始信号和从器件地址,此时R

27、/W 位置1, PCF8563 响应并发送应答信号,然后输出所要求的一个8 位字节数据,主器件不发送应答信号但产生一个停止信号。选择读时序图(10)连续读连续读操作可通过立即读或选择性读操作启动。在PCF8563 发送完一个8 位字节数据后,主器件产生一个应答信号来响应,告知PCF8563 主器件要求更多的数据,对应每个主机产生的应答信号PCF8563 将发送一个8 位数据字节。当主器件不发送应答信号而发送停止位时结束此操作。从PCF8563 输出的数据按顺序由N 到N+1 输出。读操作时地址计数器在PCF8563 整个地址内增加,这样整个寄存器区域在可在一个读操作内全部读出。当读取的字节超过

28、E(对于PCF8563,E=16;对24C02, E=255)计数器将翻转到零并继续输出数据字节。连续读时序图5实验步骤5.1 硬件连接将并口线插在实验板与 PC 机的并口插座上。按图连接实验线路。P10P11P12P13CPU89s52XYAB4052J11_8563SCLSDAJ1_4052X0Y0856CH451 与CPU 连接实验线路。CPU89S52J5_89S52 P34P15P33P32J32_CH451LOADDCLKDINDOUTCH4515.2 软件设计进入 KEILC 开发环境编写程序。首先根据2.3.5 节I2C 协议 内容,编写I2C 函数。在编写I2C 函数时,应注

29、意代码的可重用性,方便其它函数调用。例如:编写起始信号函数时,可以将它独立出来,VOID BEGIN()程序代码PCF8563 的I2C 接口最大频率是400KHZ,在程序中对一个IO 口操作完后,需要延时2.5毫秒(本实验板CPU 晶振为11.0592MHZ,一个指令周期为1.08 毫秒)。写好I2C 读写函数后,可对PCF8563 进行操作。先将CD4052 的通道选为0,这样CPU 与PCF8563 物理联接起来了。第一次操作需要对PCF8563 进行初始化设置。先将0X00 分别写入PCF8563 中地址为0X0,0X01的寄存器中,接着将要设置的时间按:年、月、星期、日、小时、分、秒

30、的顺序,以BCD码格式写入地址为0X08-0X02 的寄存器中,具体见表2-8、表2-9。在将时间按:年、月、星期、日、小时、分、秒读出后,按“XX-XX-XX”格式分两屏显示出来,显示接口的应用见。6实验成功标志 按下1 号按键,显示测量得到的日期。 按下2 号按键,显示测量得到的时间。7程序说明1. send_disp_data向CH451芯片发送命令。2. send_comm向CH451芯片发送命令。3. disp_initialize向CH451芯片发送初始化命令。4. key中断函数,获取当前按键状态。5. Display_TEST测试显示LED数码管。6. InitMCU初始化MC

31、U。7. delay_1ms毫秒级延时。8. chang_4052选择4052的通道。9. PCF8563Start向时钟芯片发送开始信号。10. PCF8563Stop向时钟芯片发送停止信号。11. PCF8563Clock从总线接受一BIT数据。12. PCF8563Ack向总线发送一个数据接受完成信号。13. PCF8563Nack检查PCF8563芯片是否接受到一字节的数据。14. PCF8563OutByte向总线发送一个字节的数据。15. PCF8563GetByte从总线接受一个字节的数据。16. PCF8563DummyWrite向总线发送开始信号和从地址。17. PCF8563Read从PCF8563读取数据。18. PCF8563Write从PCF8563读取数据。19. Set_8563_Register设置PCF8563控制状态寄存器。20. Get_Time读取时钟。21. disp_time显示时钟。8操作过程说明8.1编译和链接用 PROJECT 菜单或BUILD 工具栏的BUILD TARGET 命令编译和链接

温馨提示

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

评论

0/150

提交评论