ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:2.27MB ,
资源ID:23250008      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23250008.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子钟设计报告.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子钟设计报告.docx

1、电子钟设计报告机 电 工 程 系课 程 设 计 报 告题目: 电子日历 专 业:_应用电子技术_班 级:_10应电(1)班_学 号:_ _*_ * * * * 答辩日期: _2012-11-27_ 一、绪论单片机是指一个集成在一块芯片上的完整计算机系统,它具有一个完整的计算机所需要的大部分部件:CPU,内存,内部和外部总线系统,目前大部分还会具有外存,定时,计数和多种接口于一体的为控制器。它体积小,成本低,功能强,广泛应用于于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。本次课程设计主要是基

2、于STC89C52单片机的电子时钟。通过时钟芯片DS1302产生时间计时和脉冲,在液晶显示LCD1602显示相应的时间和日期。并通过多个控制按钮来实现时间和日期的调节。应用keil软件实现单片机电子时钟系统的程序设计,用Proteus的ISIS软件实现仿真。二、对本课程设计的分析 2.1 系统实现的功能1、准确计时,时钟具有年、月日、星期、时、分、秒的显示功能。2、时间具有年、月、日、时、分的时间功能。3、具有闹钟功能。2.2 实现系统功能的电路模块1、时钟的显示模块:在单片机系统中,时间的显示可以通过四位显示数码管显示时间,通过单片机对数码管段选和位选的软件扫描来显示系统所达到的时间的显示。

3、也可以通过液晶显示板1602LCD来显示系统的时间。2、电子钟的时钟模块:在单片机系统中,时间的计时可以通过单片机内部的时钟,通过单片机定时器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数来达到时间的计时。也可以通过专门的时钟芯片DS1302,自动对秒、分、时、日、周、月、年、以及闰年补偿的年进行计数。3、电子钟的调时模块:电子钟的调时通过按键对系统进行设置,按键通过独立按键的方式,通过中断函数的编写来控制各个按键的不同功能,包括调整对象的选择,调节的加和减,调节后时间的写入,设定等。 2.3 相关参数设定最小系统为单片机基本的内部环境:STC89C52RC最小系统组成I/O口内部基

4、本条件是晶振为12MHz;显示部分,日历显示为:DATE -;时间显示为:;调节时间是:当调节对象为年时,显示板在右下角显示出Y,调节对象为月时,显示板右下角显示出M,调节对象为日时,显示板右下角显示出D,调节对象为时时,显示板右下角显示出H,调节对象为分时,显示板右下角显示出M。加1,减1的按键实现所对应的调节对象的加1与减1。确定按键为对所调的时间进行写入,当时间写入时,显示板在调节状态所显示的Y、M、D、H、M消失,在调节后的时间基础下继续计时。三、主要电路模块的实现方案比较及选择 3.1 主要电路的方案的比较和选择方案一:单片机的系统芯片采用STC89C52芯片作为硬件的核心,电子钟的

5、显示部分通过采用LED数码管的动态扫描方法,时钟模块直接采用单片机内部的定时器提供的秒信号,使用程序实现年、月、日、星期、时、分、秒计数。方案二:单片机的系统芯片采用STC89C52芯片作为硬件的核心,电子钟的显示部分通过采用液晶显示LCD1602显示屏显示时间,时钟模块采用DS1302时钟芯片实现时钟,自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数。方案三:单片机的系统芯片采用STC89C52芯片作为硬件的核心,电子钟的显示部分通过采用采用点阵式数码管显示时间,时钟模块采用DS1302时钟芯片实现时钟,自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数。方案比较:方案一中的显

6、示部分通过LED数码管显示,虽然数码管价格便宜,比较适合显示数字,但是LED数码管功耗大,且显示内容不够。而方案三中采用点阵数码管显示,对于显示文字比较合适,但只是显示数字显得太浪费,价格也先对较高。在时钟模块,如果采用单片机内部的定时器功能的话,虽然减少了芯片的使用,节约成本,但是,现实的时间误差较大。通过上述的三个方案综合比较,采用方案二比较合适。 3.2 主要电路模块的工作原理 3.2.1 时钟模块DS1302时钟芯片以及时钟集成模块介绍1、DS1302概述DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,

7、具有闰年补偿功能,工作电压为2.5V5.5V。采用双电源供电(主电源和备用电源),同时提供了对后背电源进行涓细电流充电的能力。采用三线接口与CPU进行同步通信。图1 DS1302封装图2、DS1302引脚介绍各引脚功能为Vcc:主电源;Vcc2:备用电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电;当Vcc2Vcc1时,由Vcc1向DS1302供电。SCLK:串行时钟输入端,控制数据的输入与输出I/O:三线接口时的双向数据线 CE:输入信号,在读、写数据期间必须为高3、DS1302使用方法(1)时钟芯片DS1302工作原理DS1302在每次进行读、写程序前都必须初始化,先把S

8、CLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如图5所示。表2为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表6为DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作

9、之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。(2) DS1302的控制字节DS1302的控制字如表所示。控制字节最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始传输1RAMA4A3A2A1A0RDCKWR表1 DS1302控制字(3) 数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧

10、跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。其读写时序如图示图2 DS1302读写时序(4)DS1302寄存器DS1302中与时间、日期有关的寄存器共有12个,其中7个存放数据的格式为BCD码格式,其读写地址如下表所示读寄存器写寄存器Bit7Bit7Bit7Bit7Bit7Bit7Bit7Bit7范围81H80HCH10秒秒00-5983H82H10分分00-5985H84H12010时时0-2324AM/PM1-1287H86H10日日1-3189H88H10月月1-128BH8AH00000周1-78DH8CH10年年00-998F

11、H8EHWP0000000表2 DS1302时钟寄存器第一行秒寄存器,CH为时钟暂停标志位,该位为1时时钟停止,该位为0时时钟运行。第二行分寄存器,bit0bit6表示分钟数,因采用BCD编码,所以低四位最大能表示的数字为9,计数满向高三位进1。第三行时寄存器,12/24用来定义DS1302小时的运行模式,12小时模式下bit5为1表示PM下午,bit5为0表示AM上午。第八行控制寄存器,bit7是写保护位WP,当WP为1时,写保护位可防止对任一寄存器的写操作,在任何的对时钟和RAM的写操作之前,WP位必须为0 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RA

12、M相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。4、时钟集成模块内部原理图以及实物图图3 DS1302硬件图 3.2.2 显示模块1602字符液晶以及显示模块介绍1、1602液晶概述工业字符型液晶,1602是指显示的内容为16*2,即能够同时显示两行,每行16个字符。常见的1602

13、字符液晶有两种,一种显示的是绿色背光黑色字体,另一种显示蓝色背光白色字体,目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的。本课题所用1602液晶模块,显示屏是蓝色背光白色字体。如图4所示图4 LCD封装图2、1602引脚介绍编号符号引脚说明编号符号引脚说明1GND电源地2VCC电源正极3VO液晶显示对比度调节端4RS数据/命令选择端5R/W读写选择6E使能信号7D0数据口8D1数据口9D2数据口10D3数据口11D4数据口12D5数据口13D6数据口14D7数据口15BLA背光电源正16BLK背光电源负表3 1602字符液晶引脚说明各个引脚具体功能说明第1脚:G

14、ND为地电源。第2脚:VCC接5V正电源。第3脚:VO为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生重影,使用一个1K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:DB0DB7为8位双向数据线。第1516脚:背光灯电源。3、1602液晶使用方法(1)基本操作时序操作输入输出读状态RSL,RWH,EHD0D7状态字写指令RSL,RWL,D0D7指令码,E高脉冲

15、无读数据RSH,RWH,EHD0D7数据写数据RSH,RWL,D0D7数据,E高脉冲无图5 1602液晶读时序图图6 1602液晶写时序图(2)RAM 1602液晶控制器芯片内部带有80个8位的RAM缓冲区,其地址和屏幕的对应关系如图7示图7(3)1602字符液晶字库 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

16、 。 高位低位0000001000110100010101100111101010111100110111101111XXXX00000Pp-PXXXX0001!1AQaqqXXXX0010“2BRbrXXXX0011#3CScsXXXX0100$4DTdtXXXX0101%5EUeuoXXXX0110&6FVfvXXXX01117GWgwXXXX1000(8HXhxfXXXXX1001)9IYiy-1yXXXX1010*:JZjz千XXXX1011+;Kk万XXXX1100,NnXXXX1111/?O-o图84、时钟集成模块内部原理图以及实物图图9 LCD1602硬件图3.2.3按键模块 电

17、子钟的调时模块1、调时按键概述电路通过按键对电路进行时间设置,电路的可调对象分别时年、月、日、时、分。通过四个按键对电路进行调节。一个按键K1控制电路调节对象的选择,当调节对象为年、月、日、时、分时液晶显示板上分别显示Y、M、D、H、M。一个按键K2调节数字的加。一个按键K3调节数字的减。通过一个按键对所调节的时间进行写入确定。按键程序的实现通过编写时间的读取函数void DateTime(),调节时间对象的函数void DateTime_Adjust();和中断函数,实现按键的功能。2、调时模块原理图以及实物图图10 按键硬件图四、系统电路图图11 电路硬件图系统原理图如图,电路以STC89

18、C52为最小系统控制核心,以时钟芯片DS1302提供时间计数,采用三线接口与CPU进行同步通信,实现单片机对DS1302时钟芯片的时间的读取和写入。显示部分用1602LCD显示,1602通过控制RS、RW、E的管脚的高低电平对单片机进行状态的读取,指令的写入和数据的读取。数据通过D0-D7口与单片机相连,进行数据的传输。电路的输入调时部分通过四个独立的按键K1、K2、K3、K4,通过中断函数来控制按键通过单片机对DS1302时间的调节,包括调节对象的选择,数字的加1,数字的减1和时间的写入确定。五、系统的软件设计1、主程序部分电子钟的时间计时有时钟芯片DS1302提供,通过液晶板显示,首先对D

19、S1302及LCD进行初始化设置,调时功能用按键通过中断函数判断。在住函数中Init_LCD();GetTime();inital_1302();为对DS1302和LCD的初始化和初值的写入,IE = 0X83;允许INT0,T0的中断。2、按键部分程序电路通过4个按键来调时,按键只有在按下调节对象按钮后,其余按键才能实现其各自的共能。首先判断控制调节对象的案件是否按下,选择其要调节的对象,在通过其他案件来对时间进行调节。调时的中断函数用if-else-函数对按键按下先后控制以实现各个按键的功能。if (K1 = 0),else if (K2 = 0),else if (K3 = 0),els

20、e if (K4 = 0),来判断按键的动作。3、DS1302时钟数据的读/写部分程序Ds1302的读写时,要设置RST = 0; CLK = 0; RST = 1,才可以对ds1302进行读写。/从DS1302指定位置读数据uchar Read_Data(uchar addr) uchar dat; RST = 0; CLK = 0; RST = 1; Write_A_Byte_TO_DS1302(addr); dat = Get_A_Byte_FROM_DS1302(); CLK = 1; RST = 0; return dat;/向DS1302某地址写入数据void Write_DS13

21、02(uchar addr,uchar dat) RST = 0;CLK = 0; RST = 1; Write_A_Byte_TO_DS1302(addr); Write_A_Byte_TO_DS1302(dat); CLK =1; RST = 0;4、LCD的控制程序要进行读取LCD状态时,设置RSL,RWH,EH。uchar Read_LCD_State() uchar state; RS = 0; RW = 1; EN = 1; DelayMS(1); state = P0;EN = 0; DelayMS(1); return state;要向LCD写数据时, RSH,RWL,D0D7

22、数据,E高脉冲。void Write_LCD_Data(uchar dat) LCD_Busy_Wait(); RS = 1;RW = 0;EN = 0;P0 = dat;EN = 1;DelayMS(1);EN = 0;要向LCD写指令时,RSL,RWL,D0D7指令码,E高脉冲。void Write_LCD_Command(uchar cmd) LCD_Busy_Wait(); RS = 0;RW = 0;EN = 0;P0 = cmd;EN = 1;DelayMS(1);EN = 0;/LCD初始化void Init_LCD() Write_LCD_Command(0x38);Delay

23、MS(1); Write_LCD_Command(0x01);DelayMS(1); Write_LCD_Command(0x06);DelayMS(1); Write_LCD_Command(0x0c);DelayMS(1);六、结论通过上述程序和硬件的制作,电子钟的显示如图(12),图12 电子钟调整时间:在调节对象为年时,液晶板右下角显示Y。如图(13)图13 调整对象为年调整时间:在调节对象为月时,液晶板右下角显示M。如图(14)图14 调整对象为月调整时间:在调节对象为日时,液晶板右下角显示D。如图(15)图15 调整对象为天调整时间:在调节对象为小时时,液晶板右下角显示H。如图(1

24、6)图16 调整对象为小时调整时间:在调节对象为分时,液晶板右下角显示M。如图(17)图17 调整对象为分钟时间调整完成,写入DS1302,液晶读取显示。如图(18)图18 调时后时间确定结论:通过此次的电子钟的课程设计,基本实现当初设想的80%的功能,为电子日历,电子钟的显示,时间的调整功能。由于自己后面的时间把握不好,没有实现当初设想的闹铃的功能。在程序下载到板是出现了液晶板第二行的头尾出现乱码显示,出现了显示不足,但并不影响电子钟的功能。七、课程设计过程中遇到的主要问题以及解决办法1、 在程序的学习、编写过程中,会因为对程序的功能的不熟悉和对函数的各个模块的整合的不了解给程序的编译和仿真

25、不能正常工作。2、 在硬件的制作的过程中,在protel的原理图绘制中,由于对LCD的管脚不是很了解,在画板是管脚画错了,给调试带来了麻烦。3、 PCB制板中,由于对protel的不是很熟练,和电路原件的封装的绘制的误差等给电路的焊接造成了麻烦。4、 电路焊接后,通过对软件的载入,发现并不能实现电子钟的所有功能,时间不走等情况。 然而通过自己的学习和同学们的帮助,特别是在老师的指导下,不管是软件的学习还是硬件的调试,问题都在最后很好的得到了解决,让自己更深入的认识了自己的不足和团队的力量。八、心得体会在本次的课程设计中,是在上学期基础上的进一步对单片机的学习和进行产品的设计,通过这学期对所做的

26、课题的程序及硬件电路的分析下,让自己更加的深入的了解了单片机的作用。虽然是在有基础的情况下进行的课题题设计,但也不是一帆风顺的,由于自己当初对程序的学习不是很到位,加上一段时间的没去学习单片机,使自己在许多的知识都开始陌生了,软件的使用,程序的分析都不能遂心应手。所以在这次的课程设计中也让自己对资料和课本上的知识的再次学习,最后也完成了程序的编写,也让自己更加深入的理解了以前没学到的知识,自己对单片机有了更深一层的认识。在这个过程中让自己再次熟悉了keil,proteus,protel等软件的运用,及在编译调试程序过程中对程序的作用的进一步理解。当然此次课程设计不仅让自己学习到了书本上的知识,

27、也让我们知道了知识在实际生活中的应用。更让自己看到了自己在课程设计过程中所表现出来的各种不良的心态,和有时的过分的相信自己。让自己找到了自身的问题所在,给以后的学习和生活找到了方向。附录1、Keil源程序:#include #include #define uchar unsigned char#define uint unsigned intsbit SAD = P10;sbit CLK = P11;sbit RST = P12;sbit RS = P20;sbit RW = P21;sbit EN = P22;sbit K1 = P34;sbit K2 = P35;sbit K3 = P36;sbit K4 = P37;uchar tCount = 0;uchar MonthsDays = 0,31,0,31,30,31,30,31,31,30,31,30,31;uchar *WEEK = SUN,MON,TUS,WEN,THU,FRI,SAT;uchar LCD_DSY_BUFFER1 = DATE 00-00-00 ;uchar LCD_DSY_BUFFER2 = TIME 00:00:00

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1