




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机与单片机综合课程设计说明书课题名称:基于单片机和DS1302 的时钟设计学号:1304210102班级:13 级过程自动化3 班姓名:蔡才华成绩:指导教师:裕 国课题工作时间:2016-1-4 至2016-1-15工程大学电气信息学院一、课程设计任务和基本要求:(一)设计任务利用单片机和 DS1302 时钟芯片设计一个简易时钟,完成对时钟芯片的读写编程,将读到的时间在数码管显示出来。(二)基本要求通过本系统的设计,了解 DS1302 时钟芯片和数码管显示的工作原理并掌握其编程方法;进一步熟悉单片机系统设计方法二、指定参考书:1. 徐爱钧,徐阳 编著。单片机原理与应用基于 Proteus 虚
2、拟仿真技术(第 2 版),机械工业。 2014 年 7 月2. 编著。proteus 辅助的单片机原 理实践基础设计、课程设计、毕业设计,航空航天大学。 2013 年 9 月答辩记录:答辩意见及答辩成绩答辩教师(签字):20年月日目录1. 系统分析1.1 ds1302 芯片6引脚图及寄存器6读写时序说明8部电路图91.2数码管显示原理102. 程序设计2.1总体设计 .112.2分块程序设计 .122.2.1ds1302 初始化模块 .132.2.2数码管显示模块 .162.2.3主函数模块 .173.proteus仿真3.1电路图的搭建 .183.1.1元件库的选择 .183.1.2元件的布
3、局 .193.2仿真运行.213.2.1 keil软件的使用 .213.2.2 proteus运行效果图 .234. 总结.24参考资料24附录一源程序清单25附录二电路原理图301. 系统分析1.1DS1302 时钟芯片DS1302 时钟芯片,该芯片是美国 DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,附加31 字节静态 RAM ,采用 SPI 三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM 数据。实时时钟可提供秒、 分、时、日、星期、月和年,一个月小与31 天时可以自动调整,且具有闰年补偿功能。工作电压宽达 4.55.5V。采用双电源供电(
4、主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302 用于数据记录, 特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。引脚图及寄存器部电路:各引脚的功能为:Vcc1:主电源;Vcc2:备份电源。当V cc2>Vcc1+0.2V 时, 由Vcc2向DS1302供电,当 V cc2< Vcc1时,由 Vcc1向DS1302供电。SCLK :串行时钟,输入,控制数据的输入与输出; I/O :三线接口时的双向数据线;CE:输入信号, 在读、写数据期间, 必须为高。该引脚有两 个功能:第一,
5、 CE 开始控制字访问移位寄存器的控制逻辑;其次, CE 提供结束单字节或多字节数据传输的方法;DS1302有下列几组寄存器:DS1302有关日历、时间的寄存器共有 12个,其中有 7个寄存器(读时 81h8Dh,写时80h8Ch)存放的数据格式为, BCD 码形式, 如图所示。DS1302有关日历、时间的寄存器 小时寄存器( 85h、84h)的位 7 用于定义 DS1302是运行于 12小时 模式还是 24小时模式。当为高时,选择 12小时模式。在12小时模式时,位5是 ,当为1时,表示 PM 。在24小时模式时,位 5是第二个 10小时位。秒寄存器( 81h、80h)的位 7定义为时钟暂停
6、标志( CH )。 当该 位置为 1时,时钟振荡器停止, DS1302处于低功耗状态; 当该位置为0时,时钟开始运行。控制寄存器(8Fh 、8Eh)的位 7是写保护位(WP ,)其它 7位均置为0。在任何的对时钟和 RAM 的写操作之前, WP 位必须为 0。当 WP 位为 1时,写保护位防止对任一寄存器的写操作。 DS1302有关 RAM 的地址DS1302中附加 31字节静态 RAM的地址如图所示。 DS1302的工作模式寄存器所谓突发模式是指一次传送多个字节的时钟信号和 RAM 数据。 突发模式寄存器如图所示。读写时序说明DS1302是SPI 总线驱动方式。 它不仅要向寄存器写入控制字,
7、还需要读取相应寄存器的数据。要想与 DS1302通信,首先要先了解的控制字如图DS1302的控制字。DS1302控制字的最高有效位 (位 7)必须是逻辑 1,如果它为 0,则不能把 数据写入到DS1302中。位6:如果为 0,则表示存取日历时钟数据, 为1表示存取 RAM 数 据;位5至位 1(A4 A0 ):指示操作单元的地址;位 0(最低有效位):如为 0,表示要进行写操作, 为 1表示进行读 操作。控制字总是从 最低位开始输出 。在控制字指令输入后的下一个SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从最低位 (0 位)开始。同样,在紧跟 8位的控制字指令后的下一个 SCL
8、K 脉冲的 下降沿,读出 DS1302的数据,读出的数据也是从最低位到最高位。 数据读写时序如图 。电路原理图 :电路原理图如图 8,DS1302与单片机的连接也仅需要 3条线:CE 引脚、 SCLK 串行时钟引脚、 I/O 串行数据引脚, Vcc2为备用电源,外接 32.768kHz 晶振,为芯片提供计时脉冲。1.2 数码管显示原理我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让
9、其接地,这样给任何一个LED 的另一端高电平,它便能点亮。而共阳极就是将八个 LED的阳极连在一起。其原理图如下。其中引脚图的两个COM 端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正 5 伏电源。一个八段数码管称为一位, 多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp )连在一起,而各自的公共端称为位选线。 显示时,都从段选线送入字符编码, 而选中哪个位选线,那个数码管便会被点亮。 数码管的 8 段,对应一个字节的8 位,a 对应最低位,dp 对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3
10、f ;共阳数码管的字符编码为11000000,即0xc0 。可以看出两个编码的各位正好相反。如下图。2 程序设计2.1 总体设计在设计程序之前我们已经对 ds1302和 c51CPU 之间的通信原理很清楚了。我们设计简易时钟时,先把主函数设计好。那么如何设计主函数?主函数是实现该功能的主要部分, 主函数实现将 ds1302的时钟信号准确无误的传给 CPU,在传递过程中要明确地址和数据传送时的区别,时钟信号线 I/O 是分时复用的。这里我们写了一个数据读取函数 DS1302ReadCmd (),将地址中的数据传递给单片机,因为 ds1302 和单片机不能直接通信,所以在子程序 DS1302Rea
11、dCmd () 中 还 要 嵌 套 一 个 DS1302 写 字 节 函 数-DS1302WriteByte(uchar dat),这个写字节函数的主要功能是把, ds1302 时分秒寄存器地址告诉 1302 芯片,ds1302在接受到地址值后自动将该地址下的数据传给 CPU,最后加一个数码管显示模块就可以完成上述功能。具体实现的方法如下所示:2.2 分块程序设计为了理解方便,将本课程设计软件部分分为如下模块 : Ds1302 初始化模块 ,数码管显示模块 ,主函数模块 。(模块之间有交叉,分模块是为了说明方便)Ds1302 初始化模块:1)写字节函数 :将要写入的数据 dat 赋值给单片机中
12、间变量 temp,将 temp 数据的八位由低到高依次传递到 ds1302的 I/O 口。其中每传递一位,给 SLK 端口一个上升沿(这是由ds1302的工作时序决定的 )。/ DS1302 写字节函数void DS1302WriteByte(uchar dat)uchar i = 0,temp = 0;CE=0;/CE引脚为低,数据传送中止SCLK = 0;CE=1;/清零时钟总线/CE 引脚为高,逻辑控制有效for (i=8; i>0; i- ) / 循环 8 次移位SCLK = 0;temp = dat;DIO = (bit)(temp&0x01); / 每次传输低字节da
13、t >>= 1;/右移一位SCLK = 1;分析:针对本课题的要求,写字节函数的作用是对1302 进行初始化。2) 读字节函数:将 ds1302 I/O 口的数据传给 ACC 寄存器的最高位,利用循环语句移位,依次将 8 位传递到 ACC 寄存器,此函数返回值 ACC。/ DS1302 读字节函数uchar DS1302ReadByte()uchar i,dat1,dat2;CE=1;for (i=8; i>0; i-)ACC_7 = DIO;SCLK = 1;ACC >>= 1;SCLK = 0;CE=0;dat1=ACC;dat2=dat1/16; /数据进制
14、转换 ,十六进制转换成十进制 dat1=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
15、) 数据读取函数:先写地址,再返回数据。/ 数据读取函数uchar DS1302ReadCmd (uchar addr)/数据读取子程序DS1302WriteByte(addr);/发送地址return (DS1302ReadByte();/接收数据5) 初始化时间:先禁止写保护,再初始化时间,最后开启写保护。/ DS1302 初始化函数void DS1302Init(void) /初始化 DS1302DS1302WriteCmd (0x8E,0x00); DS1302WriteCmd (0x80,0x00); DS1302WriteCmd (0x82,0x00); DS1302WriteCm
16、d (0x84,0x20);/禁止写保护/秒位初始化/分钟初始化/小时初始化DS1302WriteCmd (0x86,0x01); / 日初始化DS1302WriteCmd (0x88,0x01); / 月初始化DS1302WriteCmd (0x8c,0x12); / 年初始化DS1302WriteCmd (0x8E,0x80);/允许写保护分析:此函数的初始化值可由使用者自己设定。数码管显示模块。此函数作用是将单片机中 ACC 寄存器中时间数据值显示到七段数码管中。其中, P3 端口接受位选信号, P2 端口接受段选信号。/ 数码管显示函数void LEDDisplay()uchar i;
17、DisplayBuf7 = 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 让数码管正常显示出来主函数模块。TimBuf 数组变量存储从ds1302中读取的数据。/ 主函数void main()DS130
18、2Init();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();3Proteus仿真3.1 电路图搭建元件库的选择由图上的操作后元件
19、库如下:元件的布局 :ds1302与 C51的连接:注: DIO 接单片机 P1.0 口SCLK 接单片机 P1.1 口RST 接单片机 P1.2 口数码管与 C51 的连接:位选接 P3 口,段选接 P2 口。注:当 proteus 原理图十分复杂且连线操作困难时,可以用 Lab 命令标记,这样可以减少连线的数量从而使原理图更简洁直观。具体操作如下:第一步“Lab”键第二步:点击需要标号的引脚,改成对应的编号注意 : 相连的引脚标号一定要一致, 否则会导致错连进而影响电路图的正确性。3.2仿真运行:软件的使用本课设借助 keil 编译环境实现软件驱动:先建工程再建文件仿真效果4 总结本次单片
20、机机课程设计的选题不仅仅完成了对 C51编程、 protues 软件的学习,同时对于单片机硬件的了解掌握更加完善, 在硬件电路搭配过程中更是提高了动手能力以及加深模拟电路理论知识的理解。在完成本次课程设计的过程中,开拓了视野,获得了到以前上课所不能学到的知识和经验,会为以后的课程学习带来很大的帮助。参考书1. 徐爱钧,徐阳 编著。单片机原理与应用基于 Proteus 虚拟仿真技术(第 2 版),机械工业。 2014 年 7 月2. 编著。proteus 辅助的单片机原理实践基础设计、课程设计、毕业设计,航空航天大学。 2013 年 9 月附录一:完整的源程序代码#include<reg5
21、1.h>#define uchar unsigned char#define uint unsigned intUcharcodetable=0x3F,0X30,0X5b,0X4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/共阴数码管"0-9","灭","-"编码ucharcode Seg=0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87;/位选编码uchar data DisplayBuf=0,0,11,0,0,11,0,0;/时分秒显示缓冲区uchar d
22、ata TimeBuf=0,0,0;/时分秒值sbit 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引脚为低,数据传送中止SCL
23、K = 0;/ 清零时钟总线CE=1;/CE引脚为高,逻辑控制有效for (i=8; i>0; 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; i>0; i-)ACC_7 = DIO;SCLK = 1;ACC >>= 1;SCLK = 0;CE=0;dat1=ACC;dat2=dat1/
24、16; /数据进制转换 , 十六进制转换成十进制dat1=dat1%16;dat1=dat2*10+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) /初始化 DS1302DS1302WriteCmd (0x8E,0x00); /禁止写保护DS1302W
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大会选举业务培训知识课件
- 公司重介质分选工成本预算考核试卷及答案
- 施工质量验收标准与流程
- 大众急救知识培训课件
- 城市公园运动设施建设与规划方案
- 2025黑龙江黑河市直招聘公益性岗位就业人员65人模拟试卷及1套参考答案详解
- 公司酱油酱类制作工季度绩效考核试卷及答案
- 公司数据治理员质量追溯知识考核试卷及答案
- 铁矿露天开采工程环境影响报告书
- 低碳聚醚多元醇生产线项目施工方案
- 2025年电力工程师高级职称评审要点与面试题库及答案
- 2025年湖南衡南县发展集团有限公司招聘12人备考考试题库附答案解析
- 2025年汽车驾驶员(高级)理论考试试题及答案
- 2025年及未来5年中国锂电池叠片机行业市场深度分析及发展趋势预测报告
- 应用流媒体服务拓展创新创业项目商业计划书
- 2025年幼儿园保健医考核试题及答案
- 乌兹别克语自学课件
- 《“盛世华诞”国庆主题》课件
- 四川省算云科技有限责任公司笔试历年参考题库附带答案详解
- 2025年江苏卫生健康职业学院单招《语文》检测卷
- 物流客服培训课件
评论
0/150
提交评论