- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能仪器实训课程设计报告-单片机电子时钟设计精选
第一组:
实训指导老师: 郑老师
日 期 :第十三十四周
目录
绪论 3
1.1 概述 3
1.2 设计要求及主要功能介绍 3
第二章 系统总体方案设计 4
2.1 系统功能模块的划分 4
2.2 系统原理框图 4
2.3 系统仿真原理图 5
2.4 PCB原理图 5
2.5 PCB板 6
2.6系统硬件设计 6
2.7 系统软件设计 7
2.8 硬件设计与调试 13
2.9 成果展示 13
小组总结 14
3. 1 小组成员有话说: 14
3. 2小组总结 15
3. 3 小组评分 15
参考文献 16
绪论
1.1 概述
单片机以其强大的控制能力已经被广泛应用于诸多领域,配以各种接口传感器可以实现系统的智能化。无论是在工业控制领域、医疗卫生领域、还是在国防军事领域、航天航空领域,微控制器都起着举足轻重的作用。从最初的8位控制器到现在的16位、32位控制器都还有很大的发展和应用空间。
本次实训以贴近实际为主,我们组就设计一个带有测温功能的电子万年历,再设计的过程中将所学的知识运用到实际中来,已达到培养我们运用知识解决实际问题的能力。
1.2 设计要求及主要功能介绍
(1)显示实时时间。由实时时钟芯片DS1302提供实时时间的数据。
(2)显示实时温度。由温度测量芯片DS18B20提供实时温度的数据。
(3)参数修改。由四个按钮来修改参数:加减按钮﹑定位按钮﹑确定按钮。
(4)通讯。 通过RX232串口与上位机的通讯,将数据上传给上位机。
第二章 系统总体方案设计
2.1 系统功能模块的划分
按照设计要求,系统可以分为以下几个基本功能模块:显示模块
参数修改模块﹑通讯模块等。
有些模块的功能是由硬件完成,有些模块的功能由软、硬件配合完成,有些模块则是由软件、硬件、机械三部分共同完成。
将系统拆分成以上的这些基本功能模块后,再根据各个模块所要完成的功能分别去设计,也就是按照“逐步求精”的思想去设计本系统,这将使设计工作细化,也有助于制定进度安排。
2.2 系统原理框图
2.3 系统仿真原理图
2.5 PCB板
2.6系统硬件设计
1)该项目的CPU使用AVR系列中的ATMEG16。该芯片能存储16K的指令程序且程序不丢。(并且我们有现成的针对AVR系列单片机的仿真软件和程序编写环境)
2) 实时时间模块用美国DALLAS公司推出实时时间芯片DS1302,
实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。DS1302可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。
3)实时温度模块用智能温度芯片DS18B20。单线数字温度传感器DS18B20 就是一个1-wire 器件,该器件可把温度直接转换成串行数字信号供微机处理。由于每片DS18B20 含有唯一的硅串行数,所以在一条总线上可挂接任意多个DS18B20 芯片。从DS18B20 读出的信息或写入DS18B20 的信息,仅需要一根端口线,该端口线同时也可以向DS18B20 供电,从而无需额外电源。DS18B20 提供9~12 位温度读数,构成多点温度检测系统而无需任何外围硬件。
4)参数修改模块采。在该模块中采用四个功能各不相同的按键(加减参数按钮﹑定位修改按钮﹑确定修改按钮)。
2.7 系统软件设计
该项目相对来说简单,软件也不复杂,我将软件分为如下模块:
显示模块:
void CanShuXianShi(int canshu, char dian)
{
char i;
lcd[0]=32; //编号的十位转变为ASCII码
lcd[1]=32; //编号的个位转变为ASCII码
lcd[2]=32; //空格
canshu=canshu*6.25;
if(canshu=0) lcd[3]=32; //符号处理
else{
canshu=-canshu;
lcd[3]=0x2d; //负号
}
lcd[4]=(uchar)(canshu/10000)+0x30; //参数的万位转变为ASCII码
lcd[5]=(uchar)(canshu/1000%10)+0x30; //参数的千位转变为ASCII码
lcd[6]
文档评论(0)