专业综合课程设计范本参考文档格式.docx

上传人:b****6 文档编号:16109028 上传时间:2022-11-20 格式:DOCX 页数:13 大小:423.95KB
下载 相关 举报
专业综合课程设计范本参考文档格式.docx_第1页
第1页 / 共13页
专业综合课程设计范本参考文档格式.docx_第2页
第2页 / 共13页
专业综合课程设计范本参考文档格式.docx_第3页
第3页 / 共13页
专业综合课程设计范本参考文档格式.docx_第4页
第4页 / 共13页
专业综合课程设计范本参考文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

专业综合课程设计范本参考文档格式.docx

《专业综合课程设计范本参考文档格式.docx》由会员分享,可在线阅读,更多相关《专业综合课程设计范本参考文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

专业综合课程设计范本参考文档格式.docx

●提高温度检测精度,在0℃-40℃显示0.1℃;

●实现双电源供电(220V及电池供电);

●能够提供生日提醒指示;

能够每天提供3个时间点的闹钟报时功能;

●非接触止闹功能。

4.创新部分:

●非易失定时闹铃

●重要日期提醒

●整点报时

二、方案论证:

1.显示部分:

显示部分是本次设计的重要部分,一般有以下两种方案:

方案一:

采用LED显示,分静态显示和动态显示。

对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,且可靠性也较低。

而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。

方案二:

采用LCD显示。

LCD液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点,对于信息量多的系统,是比较适合的。

鉴于上述原因,我们采用方案二。

2.数字时钟:

数字时钟是本设计的核心的部分。

根据需要可采用以下两种方案实现:

方案完全用软件实现数字时钟。

原理为:

在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;

若秒值达到60,则将其清零,并将相应的分字节值加1;

若分值达到60,则清零分字节,并将时字节值加1;

若时值达到24,则将时字节清零。

该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。

而且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。

方案采用Dallas公司的专用时钟芯片DS1302。

该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。

为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。

当电网电压不足或突然掉电时,可使系统自动转换到内部锂电池供电系统。

而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。

基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能。

3.温度采集:

由于现在用品追求多样化,多功能化,给系统加上温度测量显示模块,能够方便人们的生活,使该设计具有人性化。

采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测小于1摄氏度的信号是不适用的。

采用温度传感器DS18B20。

DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,且DS18B20测量精度高,增值量为0.5摄氏度,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。

基于DS18B20的以上优点,我们决定选取DS18B20来测量温度。

4.闹铃部分:

一般的时钟都带有闹铃,实现闹铃方式可采用以下两种:

将闹钟信息存放在单片机自带的存储器中。

该方案成本低而且易于实现,但是一但掉电会造成之前信息的丢失。

将闹钟信息存放在非易失储存器AT24C02中。

该方案即使在完全的掉电的情况下也不会造成闹钟信息的丢失,可避免方案一带来的麻烦。

5.电源模块:

采用干电池作为系统电源。

但需经常换电池,不符合节约型社会的要求。

采用直流稳压电源作为系统主电源,干电池作为辅助电源。

不仅不需要经常更换电源,并且当市电停止时能够采用干电池做为系统电源,使用更加安全可靠。

基于以上分析,我们决定采用方案二

三、总体方案:

1.工作原理:

本设计采用STC89C52RC单片机作为本系统的控制模块。

单片机可把由DS18B20、DS1302、AT24C02中的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、日历和闹铃的显示。

以LCD液晶显示器为显示模块,把单片机传来的数据显示出来,并且显示多样化。

在显示电路中,主要靠按键来实现各种显示要求的选择与切换。

2.总体设计:

设计总体框架图如图1

四、系统硬件设计(单元电路设计及分析):

1.STC89C52RC单片机最小系统:

最小系统包括晶体振荡电路、复位开关和电源部分。

图2为STC89C52RC单片机的最小系统。

图2最小系统电路图

2.温度测量模块:

温度测量传感器采用DALLAS公司DS18B20的单总线数字化温度传感器,测温范围为-55℃~125℃,可编程为9位~12位A/D转换精度,测温分辨率达到0.0625℃,采用寄生电源工作方式,CPU只需一根口线便能与DS18B20通信,占用CPU口线少,可节省大量引线和逻辑电路。

接口电路如图3所示。

图3DS18B20测量电路

3.时钟模块:

时钟模块采用DS1302芯片,DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM指示决定采用24或12小时格式DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线:

RST复位、I/O数据线、SCLK串行时钟。

时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信。

DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW,其接线电路如图4所示:

图4时钟电路

4.存储器模块:

存储器采用Atmel公司的AT24C02芯片。

该芯片带有2KB的串行COMSEEPROM,内部含有256个8位字节,可通过I2C总线对其接口进行读写操作,而且带有写保护功能。

其接线图如图5所示。

 

图5AT24C02存储器电路

5.LCD液晶显示模块:

LCD液晶显示模块采用LCD1602型号,具有很低的功耗,正常工作时电流仅2.0mA/5.0V。

通过编程实现自动关闭屏幕能够更有效的降低功耗。

LCD1602分两行显示,每行可显示多达16个字符。

LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,通过内部指令可实现对其显示多样的控制,并且还能利用空余的空间自定义字符。

其接线如图6所示:

图6LCD显示电路

6.系统电源:

双电源设计是本设计的重点。

220V交流转5V直流稳压电源会更加安全、实用。

当没有交流电时,系统采用干电池供电;

当接通交流电时,则电路自动切换到交流电供电,并且对干电池进行慢性充电。

电路图如图7:

图7电源电路

7.整体电路:

系统整体电路如图8所示:

图8系统总体电路图

五、系统软件设计流程:

1.主程序流程如图9所示:

图9系统主程序流程

2.时间设定程序流程如图10所示:

图10显示时间子程序流程

3.温度测量流程图如图11所示:

图11温度测量程序流程图

4.闹铃设定流程图如图12所示:

图12闹铃设定程序流程图

5.生日设定流程图如图13所示:

图13生日设定程序流程图

六、程序:

//实时时钟写入一字节(内部函数)

voidDS1302InputByte(uchard)

{uchari;

ACC=d;

for(i=8;

i>

0;

i--)

{io=ACC0;

//相当于汇编中的RRC

clk=1;

clk=0;

ACC=ACC>

>

1;

}

}

//实时时钟读取一字节(内部函数)

ucharDS1302OutputByte(void)

{ACC=ACC>

1;

//相当于汇编中的RRC

ACC7=io;

return(ACC);

//写入DS1302数据

//参数说明:

ucAddr--DS1302地址,ucData--要写的数据*

voidWrite1302(ucharucAddr,ucharucDa)

{rst=0;

rst=1;

DS1302InputByte(ucAddr);

//地址,命令

DS1302InputByte(ucDa);

//写1Byte数据

rst=0;

}

//读取DS1302某地址的数据

ucharRead1302(ucharucAddr)

{ucharucData;

DS1302InputByte(ucAddr|0x01);

//地址,命令

ucData=DS1302OutputByte();

//读1Byte数据

return(ucData);

//获取时钟芯片的时钟数据到自定义的结构型数组

voidDS1302_GetTime(SYSTEMTIME*Time)

{ucharReadValue;

ReadValue=Read1302(DS1302_SECOND);

Time->

Second=((ReadValue&

0x70)>

4)*10+(ReadValue&

0x0F);

//由高低各四位组成,转BCD码为十进制码

ReadValue=Read1302(DS1302_MINUTE);

Minute=((ReadValue&

ReadValue=Read1302(DS1302_HOUR);

Hour=((ReadValue&

ReadValue=Read1302(DS1302_DAY);

Day=((ReadValue&

ReadValue=Read1302(DS1302_WEEK);

Week=((ReadValue&

ReadValue=Read1302(DS1302_MONTH);

Month

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

当前位置:首页 > 求职职场 > 笔试

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

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