单片机系统课程设计报告范例Word文档格式.docx

上传人:b****2 文档编号:15184838 上传时间:2022-10-28 格式:DOCX 页数:10 大小:63.65KB
下载 相关 举报
单片机系统课程设计报告范例Word文档格式.docx_第1页
第1页 / 共10页
单片机系统课程设计报告范例Word文档格式.docx_第2页
第2页 / 共10页
单片机系统课程设计报告范例Word文档格式.docx_第3页
第3页 / 共10页
单片机系统课程设计报告范例Word文档格式.docx_第4页
第4页 / 共10页
单片机系统课程设计报告范例Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

单片机系统课程设计报告范例Word文档格式.docx

《单片机系统课程设计报告范例Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机系统课程设计报告范例Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

单片机系统课程设计报告范例Word文档格式.docx

三、系统硬件设计2

3.1单片机的最小系统2

3.2时钟电路DS13022

3.3显示电路的设计5

3.4键盘接口的设计5

四、系统软件设计5

4.1主程序设计5

4.2阴历子程序设计6

4.3显示子程序设计6

五、调试及性能分析6

5.1调试步骤6

5.2性能分析7

六、心得体会8

参考文献10

附录1系统硬件电路图11

附录2程序清单11

一、设计任务和性能指标

1.1设计任务

利用单片机及外围接口电路(键盘接口和显示接口电路)设计制作一个日历时钟,用LED把日期﹑时间实时显示出来。

要求用Protel画出系统的电路原理图(要求以最少组件,实现系统设计所要求的功能),印刷电路板(要求布局合理,线路清晰),绘出程序流程图,并给出程序清单(要求思路清晰,尽量简洁,主程序和子程序分开,使程序有较强的可读性)。

1.2性能指标

1.日历:

年(2位)、月(2位)、日(2位)

2.时钟:

时(2位)、分(2位)、秒(2位)

3.星期(1位)

4.校对键:

确认键、加键、翻屏键

5.阴历日期推算并显示:

月(2位)、日(2位)、指示阴历闰月(发光二极管一个)

二.设计方案

按照系统设计的功能的要求,初步确定设计系统由主控模块、时钟模块、显示模块、键扫描接口电路共四个模块组成,电路系统构成框图如图1.1所示。

主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。

它是一种高性能、低功耗的8位COMS微处理芯片,市场应用最多。

时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302。

采用DS1302作为主要计时芯片、可以做到计时准确。

更重要的是,DS1302可以在很小的电流的后备电源(2.5~5.5V电源,在2.5V时耗电小于300nA)下继续计时,并可编程选择多种充电电流对后备电源进行慢速充电,可以保证后备电源基本不耗电。

采用串行数据传输,与单片机硬件连接简单,如果使用时钟芯片DS12887,将采用并行数据传输,占用更多的硬件资源。

因此为节省单片机端口,时钟芯片采用DS1302。

图2..1日历时钟显示系统构成框图

显示模块采用普通的共阴LED数码管,也可采用LCD显示,但考虑其造价较高浪费资源,故使用LED显示。

键盘采用线性连接,连接方式相对简单,使用查询法实现调整功能。

三、系统硬件设计

3.1单片机的最小系统

ATMEL公司生产的AT89C52单片机它是硬件电路的核心部分,时钟电路晶振使用11.0592MHz,复位电路采取按键复位方式。

具体连接见附录1。

3.2时钟电路DS1302

A.DS1302的性能

�实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;

�用于高速数据暂存的31*8位的RAM;

�最少引脚的串行I/O;

�2.5-5.5V的电压工作范围;

�2.5V时耗电小于300nA;

�用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方

式;

�简单的3线接口;

�可选的慢速充电(至Vcc1)的能力。

DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。

它经过一个简单

的串行接口与微处理器通信。

实时时钟/日历提供秒、分、时、日、周、月和年等信息。

对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。

时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多字节的时钟信号或RAM数据。

DS1302有主电源和后备电源双电源引脚:

Vcc1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;

Vcc2在双电源系统中提供主电源,在这种运用方式中,Vcc1连接到备份电源,以便在没有主电源的情况下

能保存时间信息以及数据。

DS1302由较大者供电。

当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电;

当Vcc2小于Vcc1时,DS1302由Vcc1供电。

B.DS1302数据操作原理

DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。

无论是读周期还是写周期,开始8位指定40个寄存器中哪个被访问到。

在开始8个时钟周期,把命令装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时

写入数据。

时钟脉冲在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248个字节数。

如果在传送过程中置RST脚为低电平,则会中止本次数据传送,并且I/O

引脚变为高阻态。

上电运行时,在Vcc≥2.5V之前,RST脚必须保持低电平.只有在SCLK为低电平时,才能将RST置为高电平。

DS1302的引脚及内部结构图如图3.1所示,表3.1为各引脚功能。

图3.1DS1302引脚及内部结构

引脚号

引脚名称

功能

1

Vcc2

主电源

2,3

X1,X2

振荡源,外接32.768KHZ晶振

4

GND

地线

5

RST

复位/片选线

6

I/O

串行数据输入/输出端(双向)

7

SCLK

串行数据输入端

8

Vcc1

后备电源

表3.1DS1302引脚功能

DS1302与单片机的具体连接见附录1,它的控制字如图3.2所示。

控制字的最高有效位(位7)必须是逻辑1;

如果为0,则不能把数据写到DS1302中。

位6如果为0,则表示存取日历时钟数据;

为1表示存取RAM数据。

位5-1(A4-A0)指示操作单元的地址。

最低有效位(位0)如果为0,表示要进行写操作;

为1表示要进行读操作。

控制字节总是从最低位开始输入/输出。

76543210

RAMCK

A4

A3

A2

A1

A0

RAMK

图3.2DS1302的控制字

DS1302共有12个寄存器,其中有7个寄存器与日历、时钟有关,存放的数据为BCD码形式。

其日历、时间寄存器及其控制字见表2.2,其中奇数为读操作,偶数为写操作。

DS1302的晶振选用32.768KHz。

3.3显示电路的设计

显示部分采用普通的共阴数码管显示,使用动态扫描,以便减少硬件电路。

考虑到一次扫描7位数码管显示时会出现闪烁情况,设计时采用多次调用显示子程序解决这个问题。

驱动数码管的芯片采用驱动能力较强的74HC373,使用单片机的P0口作为并行输出,74HC373是高电平锁存,用P1.4口作为74HC373时钟控制端口,即置‘1’控制端。

由于数码管采用共阴接法,使用P2.0口-P2.6口作为数码管的位选,同时加入74LS04作为反向驱动。

74HC373在得到高电平后,将8位数据锁存,并行输出送至数码管各段选控制口。

由于P0口内部无上拉电阻,因此需要采用外接上拉电阻的方法,以提高带负载能力,同时还使用发光二极管来指示阴历的闰月。

3.4键盘接口的设计

键盘只有4个,其中1个用于单片机上电复位,其余三个用普通按键接10KΩ上拉电阻,分别控制移位(对应硬件电路图中的S4键,)、翻屏(对应硬件电路图中的S3)、加一键(对应硬件电路图中的S2),使用查询法来完成读键功能。

其具体连接见附录1。

四、系统软件设计

4.1主程序设计

因为使用了时钟芯片DS1302,阳历只需从DS1302各寄存器中读出年、周、月、日、时、分、秒等数据,再经处理即可。

在首次对DS1302进行操作之前,必须对它进行初始化,然后从DS1302中读出数据,再经过处理后,送给显示缓冲单元。

然后调用阴历更新程序,根据阳历日期推算出阴历日期。

在调用更新阴历程序后,要读取键值。

此时如果控制键有效,则进入时间调整部分。

调整时间用3个调整按键,1个作为移位、控制用,1个定义为控制按键,用于翻屏,另外1个按键用作加1键。

在调整时间过程中,要调整的位与未调整位应有所区别,所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。

闪烁的原理就是,让调整的一位每隔一定时间熄灭一次,利用计数器0,方式1,初值设为0,因为晶振为11.0592MHZ,所以当计数达到60ms左右时会溢出,让计数器T0中断6次,就送给调整位熄灭符,再次中断6次时,再送正常显示的值,不断交替,直到调整该位结束。

此时送正常显示值给该位,再进入下一位调整闪烁程序。

主程序流程图见图4.1。

4.2阴历子程序设计

阴历程序的实现是依靠阳历日期来推算的。

要根据阳历来推算阴历日期,首先要设计算法。

推算的方法是根据阳历当前日期在一年中的天数来计算阴历日期。

计算出的阳历天数为该年的第几天,存放在R2和R3中。

计算出天数后,如果大于#FFH,则把#FFH存放在R2中,余数存放在R3中。

由于整体算法很复杂,需要计算从2000年到2050年阴、阳历之间的关系,制成表格,用DPTR查表的方法来送显示,因此这里只给出流程图解释说明,阴历程序流程图如图4.2和图

4.3所示。

4.3显示子程序设计

为编程方便将翻屏部分放到了显示子程序中,在子程序入口首先判断翻屏键是否有效,如果有效将翻屏标志位加1,取相应的显示缓冲区首地址,即从另一存储单元开始显示,达到翻屏效果。

373为高电平锁存,其CLK端接单片机P1.4,在给它地址锁存信号时只需将P1.4置1,应注意置1后要将其归0,方便锁存。

程序流程图如图4.5所示。

五、调试及性能分析

5.1调试步骤

调试分为硬件调试和软件调试。

硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。

具体步骤及测试

结果如下:

(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,测试结果所有连接线都已连接好;

(2)检验DS1302和单片机的晶振是否起振,用示波器观察波形;

测试结果波形都很好;

(3)检查各芯片的功能是否正常,检测按键的导通情况。

测试结果正常。

软件调试主要是程序调试,将整个日历时钟显示程序按照实现功能分为各子

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1