收藏 分销(赏)

课程设计-基于单片机和ds1302的时钟设计大学论文.doc

上传人:a199****6536 文档编号:6795293 上传时间:2024-12-21 格式:DOC 页数:30 大小:868KB
下载 相关 举报
课程设计-基于单片机和ds1302的时钟设计大学论文.doc_第1页
第1页 / 共30页
课程设计-基于单片机和ds1302的时钟设计大学论文.doc_第2页
第2页 / 共30页
课程设计-基于单片机和ds1302的时钟设计大学论文.doc_第3页
第3页 / 共30页
课程设计-基于单片机和ds1302的时钟设计大学论文.doc_第4页
第4页 / 共30页
课程设计-基于单片机和ds1302的时钟设计大学论文.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、30微机与单片机综合课程设计说明书课题名称: 基于单片机和DS1302的时钟设计 学 号: 班 级: 13级过程自动化3班 姓 名: 成 绩: 指导教师: 课题工作时间: 2016-1-4 至 2016-1-15 武汉工程大学电气信息学院一、课程设计任务和基本要求: (一) 设计任务利用单片机和DS1302时钟芯片设计一个简易时钟,完成对时钟芯片的读写编程,将读到的时间在数码管显示出来。(二) 基本要求通过本系统的设计,了解DS1302时钟芯片和数码管显示的工作原理并掌握其编程方法;进一步熟悉单片机系统设计方法二、指定参考书:1. 徐爱钧,徐阳 编著。单片机原理与应用基于Proteus虚拟仿真

2、技术(第2版),机械工业出版社。2014年7月 2. 赵广元 编著。proteus辅助的单片机原理实践基础设计、课程设计、毕业设计,北京航空航天大学出版社。2013年9月答辩记录:答辩意见及答辩成绩答辩教师(签字): 20 年 月 日30 目录1. 系统分析 1.1 ds1302芯片.6 1.1.1 引脚图及寄存器.6 1.1.2 读写时序说明.8 1.1.3 内部电路图.9 1.2 数码管显示原理.102. 程序设计 2.1 总体设计.11 2.2 分块程序设计.12 2.2.1 ds1302初始化模块.13 2.2.2 数码管显示模块.16 2.2.3 主函数模块. 17 3.proteu

3、s仿真 3.1 电路图的搭建.18 3.1.1元件库的选择.18 3.1.2 元件的布局.19 3.2 仿真运行.21 3.2.1 keil软件的使用.21 3.2.2 proteus运行效果图.23 4.总结.24 参考资料.24附录一 源程序清单.25附录二 电路原理图.30 1.系统分析1.1 DS1302时钟芯片DS1302时钟芯片, 该芯片是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以

4、自动调整,且具有闰年补偿功能。工作电压宽达4.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。 DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。 1.1.1 引脚图及寄存器 内部电路: 各引脚的功能为:Vcc1:主电源;Vcc2:备份电源。当 Vcc2Vcc1+0.2V 时, 由 Vcc2向 DS1302供电,当 Vcc20; i- ) /循环8次移位 SCLK = 0;temp = dat;DIO = (bit)(temp&0x01); /每次传

5、输低字节dat = 1; /右移一位SCLK = 1; 分析: 针对本课题的要求,写字节函数的作用是对1302进行初始化。2) 读字节函数: 将ds1302 I/O口的数据传给ACC寄存器的最高位,利用循环语句移位,依次将8位传递到ACC寄存器,此函数返回值ACC。 / DS1302读字节函数uchar DS1302ReadByte()uchar i,dat1,dat2; CE = 1;for (i=8; i0; i-)ACC_7 = DIO;SCLK = 1;ACC = 1;SCLK = 0; CE=0;dat1=ACC;dat2=dat1/16; /数据进制转换,十六进制转换成十进制dat

6、1=dat1%16; dat1=dat2*10+dat1;return dat1; 分析: 读字节函数是将ds1302芯片中的时钟信号传给单片机的主要部分。3) 地址和数据发送函数: 先写地址addr,再给数据。先将要读出的时间信号的地址告诉ds1302,单片机再将数据传到I/O口。 / 地址、数据发送函数 void DS1302WriteCmd (uchar addr,uchar dat) DS1302WriteByte(addr); /发送地址 DS1302WriteByte(dat); /发送数据 分析:此函数可以在本程序中实现对ds1302芯片的初始化。4) 数据读取函数: 先写地址,

7、再返回数据。 / 数据读取函数 uchar DS1302ReadCmd (uchar addr) /数据读取子程序 DS1302WriteByte(addr); /发送地址 return (DS1302ReadByte(); /接收数据 5) 初始化时间: 先禁止写保护,再初始化时间,最后开启写保护。 / DS1302初始化函数void DS1302Init(void) /初始化DS1302 DS1302WriteCmd (0x8E,0x00); /禁止写保护DS1302WriteCmd (0x80,0x00); /秒位初始化DS1302WriteCmd (0x82,0x00); /分钟初始化

8、DS1302WriteCmd (0x84,0x20); /小时初始化DS1302WriteCmd (0x86,0x01);/日初始化DS1302WriteCmd (0x88,0x01);/月初始化DS1302WriteCmd (0x8c,0x12);/年初始化DS1302WriteCmd (0x8E,0x80); /允许写保护分析:此函数的初始化值可由使用者自己设定。 2.2.2 数码管显示模块。 此函数作用是将单片机中ACC寄存器中时间数据值显示到七段数码管中。其中,P3端口接受位选信号,P2端口接受段选信号。/ 数码管显示函数void LEDDisplay() uchar i;Displa

9、yBuf7 = TimeBuf2%10;DisplayBuf6 = TimeBuf2/10;DisplayBuf4 = TimeBuf1%10;DisplayBuf3 = TimeBuf1/10;DisplayBuf1 = TimeBuf0%10;DisplayBuf0 = TimeBuf0/10;for(i = 0 ; i 8; i+) /数码管动态显示P3 = Segi;P2 = tableDisplayBufi;delay(1); /延时1ms让数码管正常显示出来2.2.3 主函数模块。 TimBuf数组变量存储从ds1302中读取的数据。 / 主函数void main()DS1302I

10、nit();while(1)TimeBuf2=DS1302ReadCmd(0x81); /0x81,0x83,0x85分别为秒,分,时读地址位TimeBuf1=DS1302ReadCmd(0x83);TimeBuf0=DS1302ReadCmd(0x85);/TimeBuf2=DS1302ReadCmd(0x87); /0x87,0x89,0x8b分别为年,月,日读地址位/TimeBuf1=DS1302ReadCmd(0x89);/TimeBuf0=DS1302ReadCmd(0x8d);LEDDisplay();3 Proteus仿真 3.1电路图搭建 3.1.1元件库的选择 由图上的操作后

11、元件库如下: 3.1.2元件的布局: ds1302与C51的连接: 注:DIO接单片机P1.0口 SCLK接单片机P1.1口 RST接单片机P1.2口 数码管与C51的连接: 位选接P3口,段选接P2口。 注:当proteus 原理图十分复杂且连线操作困难时,可以用Lab命令标记,这样可以减少连线的数量从而使原理图更简洁直观。具体操作如下: 第一步 “Lab”键 第二步: 点击需要标号的引脚,改成对应的编号 注意: 相连的引脚标号一定要一致,否则会导致错连进而影响电路图的正确性。3.2 仿真运行: 3.2.1 keil软件的使用 本课设借助keil编译环境实现软件驱动:先建工程再建文件 3.2

12、.2 proteus仿真效果4 总结 本次单片机机课程设计的选题不仅仅完成了对C51编程、protues软件的学习,同时对于单片机硬件的了解掌握更加完善,在硬件电路搭配过程中更是提高了动手能力以及加深模拟电路理论知识的理解。在完成本次课程设计的过程中,开拓了视野,获得了到以前上课所不能学到的知识和经验,会为以后的课程学习带来很大的帮助。 参考书 1. 徐爱钧,徐阳 编著。单片机原理与应用基于Proteus虚拟仿真技术(第2版),机械工业出版社。2014年7月 2. 赵广元 编著。proteus辅助的单片机原理实践基础设计、课程设计、毕业设计,北京航空航天大学出版社。2013年9月附录一:完整的

13、源程序代码 #include#define uchar unsigned char#define uint unsigned intUchar code table=0x3F,0X30,0X5b,0X4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/共阴数码管0-9,灭,-编码uchar code Seg=0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87;/位选编码uchar data DisplayBuf=0,0,11,0,0,11,0,0;/时分秒显示缓冲区uchar data TimeBuf=0,0,0;/时分秒值sbi

14、t ACC_7 = ACC7; /位寻址寄存器定义sbit SCLK = P11; / DS1302时钟信号 7脚sbit DIO= P10; / DS1302数据信号 6脚sbit CE = P12; / DS1302片选 5脚/ 延时函数void delay(uint i)uint j;for(i; i 0; i-)for(j = 110; j 0; j-);/ DS1302写字节函数void DS1302WriteByte(uchar dat)uchar i = 0,temp = 0;CE = 0; /CE引脚为低,数据传送中止SCLK = 0; /清零时钟总线CE = 1; /CE引脚

15、为高,逻辑控制有效for (i=8; i0; i- ) /循环8次移位 SCLK = 0;temp = dat;DIO = (bit)(temp&0x01); /每次传输低字节dat = 1; /右移一位SCLK = 1;/ DS1302读字节函数uchar DS1302ReadByte()uchar i,dat1,dat2; CE = 1;for (i=8; i0; i-)ACC_7 = DIO;SCLK = 1;ACC = 1;SCLK = 0; CE=0;dat1=ACC;dat2=dat1/16; /数据进制转换,十六进制转换成十进制dat1=dat1%16; dat1=dat2*10

16、+dat1;return dat1; / 地址、数据发送函数void DS1302WriteCmd (uchar addr,uchar dat) DS1302WriteByte(addr); /发送地址DS1302WriteByte(dat); /发送数据/ 数据读取函数uchar DS1302ReadCmd (uchar addr) /数据读取子程序 DS1302WriteByte(addr); /发送地址return (DS1302ReadByte(); /接收数据/ DS1302初始化函数void DS1302Init(void) /初始化DS1302 DS1302WriteCmd (0

17、x8E,0x00); /禁止写保护DS1302WriteCmd (0x80,0x00); /秒位初始化DS1302WriteCmd (0x82,0x00); /分钟初始化DS1302WriteCmd (0x84,0x20); /小时初始化DS1302WriteCmd (0x86,0x01);/日初始化DS1302WriteCmd (0x88,0x01);/月初始化DS1302WriteCmd (0x8c,0x12);/年初始化DS1302WriteCmd (0x8E,0x80); /允许写保护/ 数码管显示函数void LEDDisplay() uchar i;DisplayBuf7 = Ti

18、meBuf2%10;DisplayBuf6 = TimeBuf2/10;DisplayBuf4 = TimeBuf1%10;DisplayBuf3 = TimeBuf1/10;DisplayBuf1 = TimeBuf0%10;DisplayBuf0 = TimeBuf0/10;for(i = 0 ; i 8; i+) /数码管动态显示P3 = Segi;P2 = tableDisplayBufi;delay(1); /延时1ms让数码管正常显示出来/ 主函数void main()DS1302Init();while(1)TimeBuf2=DS1302ReadCmd(0x81); /0x81,0x83,0x85分别为秒,分,时读地址位TimeBuf1=DS1302ReadCmd(0x83);TimeBuf0=DS1302ReadCmd(0x85);/TimeBuf2=DS1302ReadCmd(0x87); /0x87,0x89,0x8b分别为年,月,日读地址位/TimeBuf1=DS1302ReadCmd(0x89);/TimeBuf0=DS1302ReadCmd(0x8d);LEDDisplay();附录二:系统硬件原理图:

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服