《微机与单片机综合课程设计说明书》模板蔡才华Word版

上传人:每**** 文档编号:50618260 上传时间:2022-01-21 格式:DOC 页数:32 大小:841.50KB
返回 下载 相关 举报
《微机与单片机综合课程设计说明书》模板蔡才华Word版_第1页
第1页 / 共32页
《微机与单片机综合课程设计说明书》模板蔡才华Word版_第2页
第2页 / 共32页
《微机与单片机综合课程设计说明书》模板蔡才华Word版_第3页
第3页 / 共32页
点击查看更多>>
资源描述
微机与单片机综合课程设计说明书课题名称: 基于单片机和DS1302的时钟设计 学 号: 1304210102 班 级: 13级过程自动化3班 姓 名: 蔡才华 成 绩: 指导教师: 陈 裕 国 课题工作时间: 2016-1-4 至 2016-1-15 武汉工程大学电气信息学院推荐精选一、课程设计任务和基本要求: (一) 设计任务利用单片机和DS1302时钟芯片设计一个简易时钟,完成对时钟芯片的读写编程,将读到的时间在数码管显示出来。(二) 基本要求通过本系统的设计,了解DS1302时钟芯片和数码管显示的工作原理并掌握其编程方法;进一步熟悉单片机系统设计方法二、指定参考书:1. 徐爱钧,徐阳 编著。单片机原理与应用基于Proteus虚拟仿真技术(第2版),机械工业出版社。2014年7月 2. 赵广元 编著。proteus辅助的单片机原理实践基础设计、课程设计、毕业设计,北京航空航天大学出版社。2013年9月推荐精选答辩记录:答辩意见及答辩成绩答辩教师(签字): 20 年 月 日推荐精选 目录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.proteus仿真 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.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。 DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。 1.1.1 引脚图及寄存器 内部电路: 推荐精选各引脚的功能为:Vcc1:主电源;Vcc2:备份电源。当 Vcc2Vcc1+0.2V 时, 由 Vcc2向 DS1302供电,当 Vcc20; i- ) /循环8次移位 SCLK = 0;temp = dat;DIO = (bit)(temp&0x01); /每次传输低字节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; /数据进制转换,十六进制转换成十进制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) 数据读取函数: 先写地址,再返回数据。 / 数据读取函数 uchar DS1302ReadCmd (uchar addr) /数据读取子程序 DS1302WriteByte(addr); /发送地址 return (DS1302ReadByte(); /接收数据 推荐精选5) 初始化时间: 先禁止写保护,再初始化时间,最后开启写保护。 / DS1302初始化函数void DS1302Init(void) /初始化DS1302 DS1302WriteCmd (0x8E,0x00); /禁止写保护DS1302WriteCmd (0x80,0x00); /秒位初始化DS1302WriteCmd (0x82,0x00); /分钟初始化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;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让数码管正常显示出来推荐精选2.2.3 主函数模块。 TimBuf数组变量存储从ds1302中读取的数据。 / 主函数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();推荐精选3 Proteus仿真 3.1电路图搭建 3.1.1元件库的选择 由图上的操作后元件库如下: 推荐精选 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.2 proteus仿真效果推荐精选4 总结 本次单片机机课程设计的选题不仅仅完成了对C51编程、protues软件的学习,同时对于单片机硬件的了解掌握更加完善,在硬件电路搭配过程中更是提高了动手能力以及加深模拟电路理论知识的理解。在完成本次课程设计的过程中,开拓了视野,获得了到以前上课所不能学到的知识和经验,会为以后的课程学习带来很大的帮助。 参考书 1. 徐爱钧,徐阳 编著。单片机原理与应用基于Proteus虚拟仿真技术(第2版),机械工业出版社。2014年7月 2. 赵广元 编著。proteus辅助的单片机原理实践基础设计、课程设计、毕业设计,北京航空航天大学出版社。2013年9月推荐精选附录一:完整的源程序代码 #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;/时分秒值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引脚为低,数据传送中止SCLK = 0; /清零时钟总线CE = 1; /CE引脚为高,逻辑控制有效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+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 (0x8E,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 = 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让数码管正常显示出来推荐精选/ 主函数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();推荐精选附录二:系统硬件原理图: 推荐精选 (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!