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

课程设计成果说明书题目:低频信号发生器学生姓名:蔡超学号:111311106学院:东海科学技术学院班级:c11电信指导教师:东海科学技术学院教务处2014年1月7日第1章系统总体方案选择与说明1.1总体设计方案因输出信号的频率较低,可使用单片机作为信号数据产生源,中断查表法完成波形数据的输出,再用DA转换器输出规定的波形信号。
另外也可利用多余的端口经DA转换输出0度~360度的移相波形,同时也可输出一路方波信号。
系统实现的结构框图1.2设计要求及意义50Hz的正弦波、三角波信号,其中正弦波和1.低频信号发生器要求输出0.1~50Hz的范围内调三角波信号可以用按键选择输出,输出信号的频率可以在0.1~整。
2.原理图设计:根据所确定的设计电路,利用Proteus软件绘制电路原理图。
3.软件设计:根据电路工作过程,画出软件流程图,根据流程图编写相应的程序。
利用Proteus与Kiel μVision4联调,直到实验现象正确为止。
第2章系统硬件与工作原理2.1 系统硬件概述低频信号发生器要求能输出0.1~50HZ的正弦波、三角波信号,其中正弦波和三角波信号可以用按键选择输出,输出信号的频率可以在0.1~50HZ的范围内调整。
控制部分控制芯片选择89C52系列单片机。
P3.3~P3.5口接3个按键,其中P3.3口按键为频率增加键,P3.4口按键为频率减小键为正弦波与三角波选择键。
P1口输出正弦波或三角波数据,P2口输出移相波数据,P3.2输出方波。
数模(D/A)转换部分DAC0832是CMOS工艺制造的8位D/A转换器,属于8位电流输出型D/A转换器,转换时间1us,片内带输入数字锁存器。
DAC0832与单片机接成数据直接写入方式,当单片机吧一个数据写入DAC寄存器时,DAC0832的输出模拟电压信号随之相应变化。
利用D/A转换器可以产生各种波形,如方波、三角波、锯齿波等以及它们组合产生的复合波形和不规则波形。
单片机课程设计说明书撰写

内容:设计一 个基于单片机 的控制系统, 实现特定的功
能
硬件设计:选 择合适的单片 机型号,设计 电路图,选择
元器件
软件编程:编 写程序,实现 对硬件的控制
和功能实现
测试和调试: 对设计进行测 试和调试,确 保其正常工作
报告撰写:撰 写课程设计说 明书,包括设 计思路、实现 方法、测试结
果等
08 课程设计总结与展望
课程设计总结和收获
课程设计过程:从选题、设计、实施 到总结,全面回顾
收获:理论知识与实践相结合,提高 了动手能力和解决问题的能力
团队合作:与团队成员共同完成项目, 提高了团队协作能力
创新思维:在课程设计中,培养了创 新思维和解决问题的能力
展望:对未来单片机课程的学习充满 信心,期待更多的实践机会和挑战
提高学生的实践能 力
培养学生的创新思 维和解决问题的能 力
帮助学生理解理论 知识在实际中的应 用
提高学生的团队合 作和沟通能力
课程设计的目标和要求
掌握单片机的基本原理和结构
学会使用单片机进行编程和调 试
理解单片机在控制系统中的应 用
提高解决问题的能力和创新能 力
课程设计的任务和内容
任务:完成一 个单片机课程 设计项目,包 括硬件设计和
复位电路:使单片 机在启动时处于已 知状态
晶振电路:为单片 机提供稳定的时钟 信号
输入输出接口电路 :实现单片机与外 部设备的通信
电路板制作和焊接
电路板设计:根据单片机硬件电路 设计要求,设计电路板布局和布线
焊接:选择合适的焊接工具和材料, 如电烙铁、焊锡、助焊剂等,进行 电路板焊接
添加标题
添加标题
模块化设计:将程序划分为 多个模块,每个模块负责特
单片机课程设计说明书范文概况

目录1 绪论 (1)1.1 概述 (1)1.2 设计目的 (1)2 设计任务及内容 (1)2.1 设计任务 (1)2.2 设计内容 (1)3 总体设计及核心器件简介 (2)3.1 总体设计 (2)3.2 硬件设计 (2)3.2.1 硬件系统总体设计 (2)3.2.2 单片机的选择 (3)3.2.3 显示电路的选择与设计 (4)3.2.4 按键电路的选择与设计 (6)3.2.5 时钟电路的选择与设计 (7)3.2.6 复位电路的选择与设计 (8)3.2.7 系统总电路的设计 (10)3.3 软件设计 (11)3.3.1 程序设计思想 (11)3.3.2 系统资源的分配 (11)3.3.3 主程序设计 (11)3.3.4 中断程序设计 (12)4 数字电子秒表的安装与调试 (15)4.1 软件的仿真与调试 (15)4.2 硬件的安装与调试 (15)4.2 汇编程序 (15)5 设计体会与总结 (21)1 绪论1.1 概述单片微型计算机简称单片机,又称微控制器,是微型计算机的一个重要分支。
单片机是20世纪七十年代中期发展起来的一种大规模集成电路芯片,是集CPU、RAM、ROM、I/O接口和终端系统与同一硅片的器件。
20世纪八十年代以来单片机发展迅速各类新产品不断涌现出现许多新产品,出现了许多高性能新型机种现已成为工业控制和各控制领域的支柱产业之一。
由于单片机功能强、体积小、可靠性好、价格便宜等独特优点因而受到人们的高度重视并取到了一系列的科研成果,成为传统工业技术改造和新产品更新换代的理想机种,并具有广阔的发展前景。
本设计运用所学的单片机知识,将单片机与普通秒表相结合设计了电子秒表,具有显示直观、读取方便、精度高等优良特点,在计时中应用广泛。
1.2 设计目的加强对51系列单片机的构造了解及应用,熟悉汇编语言或C语言编程,综合掌握和理解设计各部分的工作原理、设计过程、芯片器件的选择方法、模块化编程等多项知识。
单片机课程设计说明书(word文档+全!)

调试工具:J-Link、ST-Link等 仿真工具:Proteus、Multisim等 编程技巧:模块化编程、代码优化等
程序流程图设计与实现
流程图设计:根据 需求分析,设计出 流程图
流程图实现:根据 流程图,编写程序 代码
程序调试:对编写 的程序进行调试, 确保其正确运行
人工智能:单片机在人工智能领域的应用将更加深入,如智能机器人、智能语音识别等
医疗健康:单片机在医疗健康领域的应用将更加普及,如智能医疗设备、智能穿戴设备等 环保节能:单片机在环保节能领域的应用将更加重要,如智能能源管理、智能环保设备等
感谢您的观看
汇报人:
软件测试与优化
测试方法:单元测试、集成测试、系统测试等 测 试 工 具 : J U n i t 、 Te s t N G 、 S e l e n i u m 等 优化目标:提高代码质量、提高运行效率、降低资源消耗等 优化方法:代码重构、算法优化、性能调优等
课程设计总结与 展望
课程设计总结
课程设计目标:掌 握单片机基本原理 和编程方法
课程设计目的
掌握单片机的基本原理和应用
提高编程能力和硬件设计能力
培养创新思维和解决问题的能 力
提高团队合作和沟通能力
课程设计要求
课程设计 目的:掌 握单片机 原理和应 用技术
课程设计 内容:包 括硬件设 计和软件 设计两部 分
课程设计要 求:硬件设 计要求实现 特定功能, 软件设计要 求编写程序 实现特定功 能
调试步骤:根据测 试结果,对硬件进 行调试和优化
常见问题:信号 干扰、电源不稳 定、硬件故障等
解决方案:根据问题 原因,采取相应的解 决方案,如更换元器 件、调整电路参数等
(完整版)单片机技术毕业课程设计说明书范文

郑州工业应用技术学院课程设计说明书题目:姓名:院(系):专业班级:学号:指导教师:成绩:时间:年月日至年月日郑州工业应用技术学院课程设计任务书题目: 电子秒表设计专业、班级学号姓名主要内容、基本要求、主要参考资料等:主要内容:利用单片机设计一个电子秒表,完成四位显示××.××秒,并具备开始计时、暂停、清零等功能。
基本要求:1.利用单片机设计一个电子秒表,完成四位显示××.××秒,并设定按钮完成开始计时、暂停、清零等功能。
2.利用proteus软件完成设计电路和仿真;3.掌握定时器的使用和数码管显示的方法;4.通过此次设计将单片机软硬件结合起来对程序进行编辑、校验,锻炼实践能力和理论联系实际的能力。
主要参考资料:[1]李全利,单片机原理及接口技术[M],高等教育出版社[2]王文杰,单片机应用技术[M],冶金工业出版社[3]朱清慧,PROTEUS教程——电子线路设计、制版与仿真[M],清华大学出版社[4]单片机实验指导书,天煌教仪[5]彭伟,单片机C语言程序设计实训100例[M],电子工业出版社完成期限:指导教师签名:课程负责人签名:年月日目录1.引言 (1)2.方案设计与论证 (3)2.1 直流调速系统 (3)2.1 检测系统 (4)2.3显示电路 (9)2.4系统原理图 (9)3.硬件设计 (10)3.1 80C51单片机硬件结构 (10)3.2 最小应用系统设计 (11)3.3前向通道设计 (12)3.4后向通道设计 (15)3.5显示电路设计 (17)4.软件设计 (20)4.1主程序设计 (20)4.2显示子程序设计 (24)4.3避障子程序设计 (25)4.4软件抗干扰技术 (26)4.5“看门狗”技术 (28)4.6可编程逻辑器件 (29)5.测试数据、测试结果分析 (30)6.结论 (31)致谢 (31)参考文献 (32)附录A 程序清单 (33)附录B 硬件原理图 (41)1.引言随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。
微机与单片机综合课程设计说明书模板蔡才华

《微机与单片机综合课程设计》说明书课题名称:基于单片机和DS1302的时钟设计学号:02班级:13 级过程自动化3班姓名:________ 蔡才华成绩:指导教师:________________ 陈裕国课题工作时间:2016-1-4 至2016-1-15武汉工程大学电气信息学院一、课程设计任务和基本要求:(一)设计任务利用单片机和DS1302时钟芯片设计一个简易时钟,完成对时钟芯片的读写编程,将读到的时间在数码管显示出来。
(二)基本要求通过本系统的设计,了解DS1302时钟芯片和数码管显示的工作原理并掌握其编程方法;进一步熟悉单片机系统设计方法二、指定参考书:1. 徐爱钧,徐阳编著。
《单片机原理与应用一基于Proteus虚拟仿真技术(第2版)》,机械工业出版社。
2014年7月2. 赵广元编著。
《proteus辅助的单片机原理实践一基础设计、课程设计、毕业设计》,北京航空航天大学出版社。
2013年9月答辩记录:答辩意见及答辩成绩答辩教师(签字):20 年月日目录1. 系统分析ds1302 芯片 (6)引脚图及寄存器 (6)读写时序说明 (8)内部电路图 (9)数码管显示原理 (10)2. 程序设计总体设计 (11)分块程序设计 (12)ds1302 初始化模块 (13)数码管显示模块 (16)主函数模块 (17)仿真电路图的搭建 (18)元件库的选择 (18)元件的布局 (19)仿真运行 (21)keil 软件的使用 (21)proteus 运行效果图 (23)4. 总结 (24)参考资料 (24)附录一源程序清单 (25)附录二电路原理图 (30)1. 系统分析DS1302时钟芯片DS1302时钟芯片,该芯片是美国DALLAS^司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM采用SPI三线接口与CPU S行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。
单片机课程设计说明书

代码重构:简化代码结构, 提高可读性和可维护性
优化算法:提高程序运行效 率,减少资源消耗
性能测试:通过测试找出性 能瓶颈,进行针对性优化
错误处理:完善错误处理机制, 提高程序稳定性和可靠性
收获:掌握了单片机的基本原理和编程方法 收获:提高了解决问题的能力和创新能力 不足:对单片机的应用领域了解不够深入 不足:对单片机的性能和局限性认识不足
具备一定的硬件 设计和制作能力
能够独立完成课 程设计的任务和 要求
ห้องสมุดไป่ตู้
定义:单片机是 一种集成电路芯 片,将微处理器、 存储器、输入/输 出接口等集成在 一个芯片上
分类:根据指令 集和架构,可以 分为8位、16位、 32位等不同类型
应用:广泛应用 于工业控制、家 电、汽车电子等 领域
特点:体积小、 功耗低、可靠性 高、编程简单、 易于扩展等
,a click to unlimited possibilities
汇报人:
01
02
03
04
05
06
提高学生的实践能力 培养学生的创新思维和解决问题的能力 帮助学生理解单片机的工作原理和应用领域 为学生未来的职业生涯打下坚实的基础
单击添加项标题
智能家居:控制家电、照明、安防等
单击添加项标题
电路板设计:根据单片机功能需求,设计电路板布局和元件位置 电路板制作:使用PCB软件绘制电路板,然后进行蚀刻、打孔等工艺 元件焊接:将元器件按照电路板设计进行焊接,注意焊接顺序和焊接质量 电路板测试:焊接完成后,进行电路板测试,确保电路板功能正常
调试步骤:检查电源、检查 电路连接、检查信号输出等
电路图的绘制:使用 电路设计软件绘制电 路原理图,包括元件 符号、连线、注释等
微机与单片机原理课程设计任务书和作品设计说明书

《微机与单片机原理》课程设计任务书1.《微机与单片机原理》课程设计性质:《微机与单片机原理》课程设计是毕业设计前的一次预演,也是该课程所学知识的一次综合运用。
2.课程设计题目:一种数字电压表的设计3.设计指标:(1)量程:直流电压0-5V;(2)精度:0.1V。
4.考核方式:(1)每位同学提交一件作品。
学生作品测量基准直流电压的结果与4位半精密数字电压表测量结果对比,并根据学生回答问题情况以及撰写设计说明书的质量确定该门课程的成绩。
(2)于本学期15周前提交作品和设计说明书。
作品于本学期结束前发还学生,设计说明书存档。
5.设计要求:(1)电压测量可以采用单片机内部AD、ADC0809、7135、7109等AD转换芯片;(2)电压显示可以采用LED数码管、LCD1602和128X64图形点阵液晶显示模块;(3)单片机可采用8051、AT89C51、STC12C5A60S2和STC12C5410AD等51内核芯片;(4)编程可以采用C51或汇编语言编程。
6.作品设计说明书:要求撰写设计说明书主要包括一下几个方面:(1)封面:含题目、姓名、班级和学号(座号);(2)中文摘要:300字以上,主要说明:你做了什么?怎么做的?结果如何?(3)目录:(4)正文:第一章:任务书1-5的内容;第二章:数字电压表硬件电路设计,包括单片机最小系统电路、电源电路、测量电路、显示电路等;第三章:数字电压表软件设计,包括测量程序、显示程序、数据处理程序等;第四章:数字电压表调试与误差分析,系统调试方法、调试过程和调试结果,给出一组测量数据并进行误差分析,给出相对误差、绝对误差等数据,并画图显示;第五章:总结:包含摘要中的内容,适当扩充。
(6)参考文献:期刊5篇以上,给出准确的引用格式。
引用文献在正文中用上标标出。
[序号]作者1姓名,作者2姓名.论文名[J].期刊名,年,卷(期):页码.例子:[1]王小增,杨久红. 蓝宝石基GaN薄膜热疲劳分析[J]. 人工晶体学报,2015,41(07):1975-1982.7.问题分析(1)为了提高系统测量精度,软件和硬件应如何考虑?(2)为了提高系统测量速度,软件和硬件应如何考虑?(3)该系统可以扩展哪些功能?如何实现?做法举例:利用单片机内部AD进行电压测量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《微机与单片机综合课程设计》说明书课题名称:基于单片机和DS1302的时钟设计学号: 02班级: 13级过程自动化3班姓名:蔡才华成绩:指导教师:陈裕国课题工作时间: 2016-1-4 至 2016-1-15武汉工程大学电气信息学院目录1.系统分析ds1302芯片 (6)引脚图及寄存器 (6)读写时序说明 (8)内部电路图 (9)数码管显示原理 (10)2.程序设计总体设计 (11)分块程序设计 (12)ds1302初始化模块 (13)数码管显示模块 (16)主函数模块 (17)仿真电路图的搭建 (18)元件库的选择 (18)元件的布局 (19)仿真运行 (21)keil软件的使用 (21)proteus运行效果图 (23)4.总结 (24)参考资料 (24)附录一源程序清单 (25)附录二电路原理图 (30)1.系统分析DS1302时钟芯片DS1302时钟芯片,该芯片是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。
工作电压宽达~。
采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。
DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。
引脚图及寄存器内部电路:各引脚的功能为:V cc1:主电源;Vcc2:备份电源。
当V cc2>Vcc1+ 时,由V cc2向DS1302供电,当V cc2< Vcc1时,由V cc1向D S1302供电。
SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线;CE:输入信号,在读、写数据期间,必须为高。
该引脚有两个功能:第一,CE 开始控制字访问移位寄存器的控制逻辑;其次,CE 提供结束单字节或多字节数据传输的方法;DS1302有下列几组寄存器:①D S1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD 码形式,如图所示。
DS1302有关日历、时间的寄存器小时寄存器(85h、84h)的位7用于定义D S1302是运行于12小时模式还是24小时模式。
当为高时,选择12小时模式。
在12小时模式时,位5是,当为1时,表示PM。
在24小时模式时,位5是第二个10小时位。
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。
当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。
控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。
在任何的对时钟和R AM 的写操作之前,WP 位必须为0。
当WP 位为1时,写保护位防止对任一寄存器的写操作。
②DS1302有关R AM 的地址DS1302中附加31字节静态R AM 的地址如图所示。
③D S1302的工作模式寄存器所谓突发模式是指一次传送多个字节的时钟信号和R AM 数据。
突发模式寄存器如图所示。
读写时序说明DS1302是S PI 总线驱动方式。
它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。
要想与D S1302通信,首先要先了解DS1302的控制字。
DS1302的控制字如图控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。
位6:如果为0,则表示存取日历时钟数据,为1表示存取R AM 数据;位5至位1(A4~A0):指示操作单元的地址;位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。
控制字总是从最低位开始输出。
在控制字指令输入后的下一个SCLK 时钟的上升沿时,数据被写入D S1302,数据输入从最低位(0 位)开始。
同样,在紧跟8位的控制字指令后的下一个S CLK 脉冲的下降沿,读出D S1302的数据,读出的数据也是从最低位到最高位。
数据读写时序如图。
电路原理图:电路原理图如图8,DS1302与单片机的连接也仅需要3条线:CE 引脚、SCLK 串行时钟引脚、I/O 串行数据引脚,Vcc2为备用电源,外接晶振,为芯片提供计时脉冲。
数码管显示原理我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。
所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
而共阳极就是将八个LED的阳极连在一起。
其原理图如下。
其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。
显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。
所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为,即0xc0。
可以看出两个编码的各位正好相反。
如下图。
2 程序设计总体设计在设计程序之前我们已经对ds1302和c51CPU之间的通信原理很清楚了。
我们设计简易时钟时,先把主函数设计好。
那么如何设计主函数主函数是实现该功能的主要部分,主函数实现将ds1302的时钟信号准确无误的传给CPU,在传递过程中要明确地址和数据传送时的区别,时钟信号线I/O是分时复用的。
这里我们写了一个数据读取函数DS1302ReadCmd (),将地址中的数据传递给单片机,因为ds1302和单片机不能直接通信,所以在子程序DS1302ReadCmd ()中还要嵌套一个DS1302写字节函数---DS1302WriteByte(uchar dat),这个写字节函数的主要功能是把,ds1302时分秒寄存器地址告诉1302芯片,ds1302在接受到地址值后自动将该地址下的数据传给CPU,最后加一个数码管显示模块就可以完成上述功能。
具体实现的方法如下所示:分块程序设计为了理解方便,将本课程设计软件部分分为如下模块:Ds1302初始化模块,数码管显示模块,主函数模块。
(模块之间有交叉,分模块是为了说明方便)Ds1302初始化模块:1)写字节函数:将要写入的数据dat赋值给单片机中间变量temp,将temp数据的八位由低到高依次传递到ds1302的I/O口。
其中每传递一位,给SLK端口一个上升沿(这是由ds1302的工作时序决定的)。
徐爱钧,徐阳 编著。
《单片机点击需要标号的引脚,改成对应的编号 再建文件先建工程原理与应用—基于Proteus虚拟仿真技术(第2版)》,机械工业出版社。
2014年7月2. 赵广元编著。
《proteus辅助的单片机原理实践—基础设计、课程设计、毕业设计》,北京航空航天大学出版社。
2013年9月附录一:完整的源程序代码#include<>#define uchar unsigned char#define uint unsigned intUchar codetable[]={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 = ACC^7; //位寻址寄存器定义sbit SCLK = P1^1; // DS1302时钟信号 7脚sbit DIO= P1^0; // DS1302数据信号 6脚sbit CE = P1^2; // 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; 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/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;DisplayBuf[7] = TimeBuf[2]%10;DisplayBuf[6] = TimeBuf[2]/10;DisplayBuf[4] = TimeBuf[1]%10;DisplayBuf[3] = TimeBuf[1]/10;DisplayBuf[1] = TimeBuf[0]%10;DisplayBuf[0] = TimeBuf[0]/10;for(i = 0 ; i < 8; i++) //数码管动态显示{P3 = Seg[i];P2 = table[DisplayBuf[i]];delay(1); //延时1ms让数码管正常显示出来}}// 主函数void main(){DS1302Init();while(1){TimeBuf[2]=DS1302ReadCmd(0x81); //0x81,0x83,0x85分别为秒,分,时读地址位TimeBuf[1]=DS1302ReadCmd(0x83);TimeBuf[0]=DS1302ReadCmd(0x85);// TimeBuf[2]=DS1302ReadCmd(0x87); //0x87,0x89,0x8b分别为年,月,日读地址位// TimeBuf[1]=DS1302ReadCmd(0x89); // TimeBuf[0]=DS1302ReadCmd(0x8d);LEDDisplay();}}附录二:系统硬件原理图:。