单片机课程设计作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
2.3DS1302的控制字节
DS1302 的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
闹铃设置:闹铃时间在时间设置中进行。闹铃允许和取消可在任意时刻按“静音”键。
显示开关:可在任意时刻按“显示”键开启和关闭显示器。
初始化:在按“菜单”键进入设置状态后任意时刻按“日历”键,初始化后
的时间为2002/12/1/12:00:00
3.2 程序框图
AT89C51作为主控芯片,一是对接收到的红外遥控编码进行判断识别,并执行相应的处理;第二就是定期的读取时钟芯片DS1302中的时间并把小时和肥以示在4位LED中;第三就是对设置的闹铃时间与实时时间进行比较,如果时间相同且闹铃允许,那么蜂鸣器就会以1秒的周期鸣响一分钟,提醒使用者。如果要停止鸣闹,只要按遥控器相应键就可以关闭闹铃。闹铃时间保存在DS1302自带的RAM中。程序框图如下:
N
Y
Y
N
N
Y
N
Y
显示及键识别程序框图
YY
NN
DS1302实时时间流程
Y
N
N
Y
Y
N
N
Y
Y
N
主程序框图
四、总结
通过这次单片机课程设计的学习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
三.软件设计
3.1遥控器设计
遥控器按键
遥控器编码
电子钟动作
操作方法
菜单
40 BF0CF3
进入/退出设置状态
任意

40 BF 19 E6
所显数字增加
进入设置状态后有效

40 BF 1D E2
所显数字减少
进入设置状态后有效

40 BF 46 B9
显示左移
进入设置状态后有效

40 BF 47 B8
显示右移
AT89C2051作为主控芯片,一是对接收到的红外遥控编码进行判断识别,并执行相应的处理;第二就是定期的读取时钟芯片DS1302中的时间并把小时和分钟示在4位LED中; 第三就是对设置的闹铃时间与实时时间进行比较,如果时间相同且闹铃允许,那么蜂鸣器就会以1秒的周期鸣响一分钟,提醒使用者。如果要停止鸣闹,只要按遥控器相应键就可以关闭闹铃。闹铃时间保存在DS1302自带的RAM中,不需要单独的EEPROM。
这个设计过程中,我们通过采用AT89C2051单片机设计的自动校时时间控制器,以日常工作和教学时间为设计目的。该系统在硬件设计上采用了廉价、高性能的AT89C2051单片机作为主机,时间信号由高性能、低功耗的DS1302串行时钟存储器提供,时间校正由中波收音机及音频锁相环解码电路LM567组成。软件上采用的是模块化设计,尽可能采用子程序调用,以压缩程序量。在已度过的大学时间里,我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?做课程设计就为我们提供了良好的实践平台。
进入设置状态后LED显示关闭/开启
任意
静音
40 BF 10 EF
闹铃关闭/开启
任意
日历
40 BF 44 BB
初始化DS1302
进入设置状态后有效
软件部分的重点是对DS1302的操作以及红外遥控的解码。单片机解码可参看其他文章,这里主要对设置部分作一些说明:遥控器采用长虹彩电K11F型遥控器,遥控器按照16位地址码,8位数据码以及8位数据码的反码发送。表一列出了各按键的编码及本电子钟对应的动作。如果采用其他遥控器,需对程序相应部分的编码作修改。操作方法中,任意是指该键第一次按后,进入该状态,再次按后退出该状态。时间设置:按“菜单”键进入设置状态,LED只显示正常时间的小时,按“↑↓”键调整数值,按“←“、”→”键可在闹铃与正常时间之间移动。任意时刻再次按“菜单”键就退出设置。
2.6DS1302与AT89C2051的连接
89C2051是一种带2K字节闪速可编程、可擦除只读存储器的低功耗、高性能COMS 8位单片机,采用DIP20的小封装形式,因其性能优异、价格低廉且封装形式小而被广泛应用。
图4为89C2051与DS1302的接口电路。RST接在P1.2上,此引脚为高位时选中该芯片,可对其进行操作。串行数据线I/O与串行时钟线SCLK分别接在P1.0和P1.1上,所有的地址、命令及数据均通过这两条线传输。本系统中,89C2051为主器件,DS1302为从器件,主器件在总线上产生时钟脉冲、寻址信号、数据信号等,而从器件则相应接收数据,送出数据。
摘要:
LED电子钟在很多电子报刊杂志上都可以见到,但大多数在断电后都要重新设置时间等参数,给使用带来很多不便。也有用后备电池作为备用电源的,但往往体积较大。本文介绍的LED电子钟克服了以往的弊端,而且采用了家电通用的红外遥控器进行控制,方便使用。有一路闹铃输出,可以通过遥控器设置闹铃时间及允许与否。采用AT89C2051单片机设计的自动校时时间控制器,以日常工作和教学时间为设计目的。该系统在硬件设计上采用了廉价、高性能的AT89C2051单片机作为主机,时间信号由高性能、低功耗的DS1302串行时钟存储器提供,时间校正由中波收音机及音频锁相环解码电路LM567组成。软件上采用的是模块化设计,尽可能采用子程序调用,以压缩程序量。
关键词:DS1302主控芯片遥控器
目录
一.设计原理与技术方法:3
1、工作原理3
二.硬件电路3
2.1总体结构3
2.2 DS1302的结构及工作原理4
2.3 DS1302的控制字节4
2.4数据输入输出(I/O)5
2.5 DS1302的寄存器5
2.6 DS1302与AT89C2051的连接6
三.软件设计7
2.2DS1302的结构及工作原理
图1示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。
2.4数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
数据传送时序
2.5DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。
要特别说明的是备用电源B1,可以用电池或者超级电容(10万uF以上)。虽然DS1302在主电源掉电后,耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的那种3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容代替。100uF就可以保证1小时的正常走时。DS1302在第一次加电后,须进行初始化操作。初始化后就可以按正常方法调整时间及闹铃。
首先在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:C语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
二.硬件电路
2.1总体结构
上图一为电路的原理图,IC2为DS1302,电子爱好者可以向MAXIM公司索取免费样品。Y2为32768 Hz石英晶振,可以用普通电子表里的。IC3为三脚的塑封一体化红外接收头。LED1-4为高亮度共阳数码管。89C2051所用的晶振Y1如果没有10MHz也可以用其他12M以内的代替,只要修改程序中YS1和YS2的延时参数,让其保持延时长度不变就行。调整R2可以改变数码管亮度。P1口接数码管的八字段。数码管左两位显示小时,右两位显示分,当显示的是闹铃时间时闪动。第二位和第三位的小数点作为秒闪动,注意第三位数码管按图一布好印制版后安装时要旋转180°,以便让时和分之间出现“:”,最后一位小数点作为闹铃开关标志,亮表示闹铃开启。蜂鸣器B2采用小型自带音源的。
最后,在做课设之前,我们要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在以后的学习、工作和生活中。
图4 接口电路
实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2μA (典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。
3.1遥控器设计7
3.2程序框图7
四.总结11
参考文献:12
一、设计原理与技术方法:
(包括:电路工作原理分析与原理图、元器件选择、电路调试方法与结果说明;软件设计说明书与流程图、软件源程序代码、软件调试方法与运行结果说明)
1、工作原理
DS1302为达拉斯公司的一种实时时钟芯片,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32768Hz晶振。
相关文档
最新文档