单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx

上传人:b****5 文档编号:5627794 上传时间:2022-12-29 格式:DOCX 页数:42 大小:1.08MB
下载 相关 举报
单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx_第1页
第1页 / 共42页
单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx_第2页
第2页 / 共42页
单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx_第3页
第3页 / 共42页
单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx_第4页
第4页 / 共42页
单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx

《单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx》由会员分享,可在线阅读,更多相关《单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx(42页珍藏版)》请在冰豆网上搜索。

单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱.docx

单片机应用课程设计电子时钟和温度测量两份合集绝对靠谱

 

单片机应用课程设计

设计课题:

电子钟及温度控制器

 

院(系、部):

机械工程系

专业:

机械设计制造及其自动化专业

学生姓名:

学生学号:

指导教师:

孙继*

2012年6月22日

1、

单片机电子时钟的设计

 

一、前言.....................................................................................2

二、设计任务与要求...............................................................2

三、系统主要功能与方案设计...............................................3

3.1系统主要功能...................................................................3

3.2电子时钟方案..................................................................3

3.3数码管显示方案...............................................................3

四、电路硬件与软件设计........................................................4

4.1系统及设计.......................................................................4

4.2主要元器件清单................................................................7

4.3软件设计流程..................................................................8

4.4源程序代码...................................................................10

五、课程设计体会..................................................................15

六、参考文献..........................................................................16

一.前言

20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。

忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。

但是,一旦重要事情,一时的耽误可能酿成大祸。

目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

下面是单片机的主要发展趋势。

单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。

这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

单片机模块中最常见的是数字钟,数字时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟有两方面的含义:

一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:

一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:

DS1302,DS12887,X1203等都可以满足高精度的要求。

本设计由单片机AT89S51芯片和LED数码管为核心,运用DS1302时钟芯片,辅以必要的电路,构成了一个单片机电子时钟。

二.设计任务与要求

设计一个基于单片机的电子时钟,画出硬件电路图、编写相应的软件,完成电子时钟的任务,并进行proteus仿真。

该控制任务应该完成下列功能:

1.电子时钟显示用LED数码管显示,格式为:

XXXXXX,由左向右分别为:

时、分、秒,比如:

232040表示23时20分40秒,刚开始工作时应该显示为:

年月日和学号;

2.实现对时、分、秒进行校准;

3.设计电子时钟原理图,学习用PROTEL画出该原理图,并用proteus进行仿真;设计和绘制软件流程图,编写程序,进行调试。

三.系统的主要功能与方案设计

3.1主要功能

电子时钟显示用LED数码管显示,格式为:

XXXXXX,由左向右分别为:

时、分、秒,比如:

232040表示23时20分40秒,刚开始工作时应该显示为:

年月日和学号;可实现对时、分、秒进行校准,简单报时功能。

3.2数字时钟方案

数字时钟是本设计的最主要的部分。

根据需要,可利用两种方案实现。

方案一:

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

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

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

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

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

方案二:

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

原理为:

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

利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。

该方案具有硬件电路简单的特点。

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

而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。

基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。

3.3数码管显示方案

方案一:

静态显示。

所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。

该方式每一位都需要一个8位输出口控制。

静态显示时较小的电流能获得较高的亮度,且字符不闪烁。

但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。

方案二:

动态显示。

所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。

利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。

显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。

调整参数可以实现较高稳定度的显示。

动态显示节省了I/O口,降低了能耗。

从节省I/O口和降低能耗出发,本设计采用方案二。

四.硬件设计原理及电路原理图

4.1系统说明

利用单片机(AT89S51)制作简易电子时钟,由六个LED数码管分别显示小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位。

6个PNP管(9012)分别控制六个数码管的亮灭,一个按键用于时间调整。

4.1.1系统框图

 

 

 

4.1.2电路原理图

 

图4-1

4.1.3Proteus仿真图

显示学号时:

 

图4-2

显示时间时:

4.2主要元器件清单

名称

数量

型号

芯片

1片

AT89S52

六位一体数码管

1个

共阳极

按键

4个

晶振

2个

12M

电容

2个

30p

蜂鸣器

1个

排阻

8个

220欧

电阻

11个

1.5k

发光三极管

7个

元件清单图

 

4.3软件设计流程

4.4源程序代码

#include

#include

#defineucharunsignedchar

#defineuintunsignedintuchardata_7seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};/*段码*/

ucharhour,min,sec;

ucharyear,mon,day;

sbitshi=P1^0;

sbitfen=P1^1;

sbitmiao=P1^2;

sbitkey4=P1^3;/*时分秒切换调节键*/

sbitrst=P1^4;

sbitsck=P1^5;

sbitio=P1^6;

sbitfm=P1^7;

/*函数声明:

*/

voidwrite_ds1302_byte(uchardat);

voidwrite_ds1302(ucharadd,uchardat);

ucharread_ds1302(ucharadd);

voidread_rtc();

voidset_rtc();

voidread_rtd();

voidset_rtd();

voiddisplay();

voiddisplay1();

voiddelay(intn);

voidshow();

voidfmzz();

/*DS1302单字节写入:

*/

voidwrite_ds1302_byte(uchardat)

{

uchari;

for(i=0;i<8;i++)

{

sck=0;

io=dat&0x01;

dat=dat>>1;

sck=1;

}

}

/*DS1302多字节写入:

*/

voidwrite_ds1302(ucharadd,uchardat)

{

rst=0;_nop_();

sck=0;_nop_();

rst=1;_nop_();

write_ds1302_byte(add);

write_ds1302_byte(dat);

rst=0;_nop_();

io=1;

sck=1;

}

/*DS1302读取:

*/

ucharread_ds1302(ucharadd)

{

uchari,value;

rst=0;_nop_();

sck=0;_nop_();

rst=1;_nop_();

write_ds1302_byte(add);

for(i=0;i<8;i++)

{

value=value>>1;

sck=0;

if(io)value=value|0x80;

sck=1;

}

rst=0;_nop_();

sck=0;_nop_();

sck=1;

io=1;

returnvalue;

}

/*调整时间:

*/

voidset_rtc()

{

if(shi==0)delay(100);

if(shi==0)

{

hour=(hour>>4)*10+(hour&0x0f);

hour++;

if(hour==24)hour=0;

hour=((hour/10)<<4)+(hour%10);

write_ds1302(0x84,hour);

}

if(fen==0)delay(100);

if(fen==0)

{

min=(min>>4)*10+(min&0x0f);

min++;

if(min==60)min=0;

min=((min/10)<<4)+(min%10);

write_ds1302(0x82,min);

}

if(miao==0)delay(100);

if(miao==0)

{

sec=(sec>>4)*10+(sec&0x0f);

sec++;

if(sec==60)sec=0;

sec=((sec/10)<<4)+(sec%10);

write_ds1302(0x80,sec);

}

}

/*调整日期:

*/

voidset_rtd()

{

if(shi==0)delay(100);

if(shi==0)

{

year=(year>>4)*10+(year&0x0f);

year++;

if(year==99)year=0;

year=((year/10)<<4)+(year%10);

write_ds1302(0x8C,year);

}

if(fen==0)delay(100);

if(fen==0)

{

mon=(mon>>4)*10+(mon&0x0f);

mon++;

if(mon==13)mon=0;

mon=((mon/10)<<4)+(mon%10);

write_ds1302(0x88,mon);

}

if(miao==0)delay(100);

if(miao==0)

{

day=(day>>4)*10+(day&0x0f);

day++;

if(day==31)sec=0;

day=((day/10)<<4)+(day%10);

write_ds1302(0x86,day);

}

}

 

/*读取时间:

*/

voidread_rtc()

{

hour=read_ds1302(0x85);

min=read_ds1302(0x83);

sec=read_ds1302(0x81);

}

/*读取日期*/

voidread_rtd()

{

year=read_ds1302(0x8D);

mon=read_ds1302(0x89);

day=read_ds1302(0x87);

}

/*显示时间:

*/

voiddisplay()

{

unsignedinta=1;

P2=0x01;P0=data_7seg[hour/16];delay(a);

P2=0x02;P0=data_7seg[hour%16];delay(a);

P2=0x04;P0=data_7seg[min/16];delay(a);

P2=0x08;P0=data_7seg[min%16];delay(a);

P2=0x10;P0=data_7seg[sec/16];delay(a);

P2=0x20;P0=data_7seg[sec%16];delay(a);

}

/*显示日期:

*/

voiddisplay1()

{

unsignedinta=1;

P2=0x01;P0=data_7seg[year/16];delay(a);

P2=0x02;P0=data_7seg[year%16];delay(a);

P2=0x04;P0=data_7seg[mon/16];delay(a);

P2=0x08;P0=data_7seg[mon%16];delay(a);

P2=0x10;P0=data_7seg[day/16];delay(a);

P2=0x20;P0=data_7seg[day%16];delay(a);

}

/*蜂鸣:

*/

voidfmzz()

{

uinti;

for(i=0;i<100;i++)

{

fm=!

fm;

delay

(2);

}

}

/*延时程序:

*/

voiddelay(intn)

{

unsignedinti,j;

for(i=0;i

{

for(j=0;j<121;j++)

{;}

}

}

/*显示学号:

*/

voidshow()

{

unsignedintm;

for(m=0;m<20;m++)

{

uinta=10;

P2=0x01;P0=data_7seg[0];delay(a);

P2=0x02;P0=data_7seg[2];delay(a);

P2=0x04;P0=data_7seg[4];delay(a);

P2=0x08;P0=data_7seg[2];delay(a);

P2=0x10;P0=data_7seg[2];delay(a);

P2=0x20;P0=data_7seg[2];delay(a);

}

}

/*主程序:

*/

voidmain()

{

show();

delay(100);

write_ds1302(0x84,0x12);//初始化

write_ds1302(0x82,0x00);

write_ds1302(0x80,0x00);

write_ds1302(0x8C,0x12);//初始化

write_ds1302(0x88,0x06);

write_ds1302(0x86,0x02);

while

(1)

{

if(key4==0)

{

set_rtc();

read_rtc();

display();

}

else

{

set_rtd();

read_rtd();

display1();

}

if(min==0)

{if(sec==0)

{fmzz();}

}

}

}

五.课程设计体会

通过这次数字电子钟的课程设计,我们才把学到的东西与实践相结合。

从中对我们学的知识有了更进一步的理解,而且更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法。

也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。

虽然这只是一次简单的课程设计,但通过这次课程设计我们了解了课程设计的一般步骤,和设计中应注意的问题。

设计本身并不是有很重要的意义,而是同学们对待问题时的态度和处理事情的能力。

各个芯片能够完成什么样的功能,使用芯片时应该注意那些要点。

同一个电路可以用那些芯片实现,各个芯片实现同一个功能的区别。

单片机最小系统电路与显示器之间的线路多而且比较杂乱,这主要是和我们的经验不足所致。

老师也给许多指导,这是使我们受益匪浅。

过程中我发现:

(1)元器件的分布不合理,接线端口的不正确使用,在实际的工作中要求是相当高的,我们从每一次课程设计汲取教训,多思考比较简单而又高效的接线方法,我们总结此类问题,找出合适的方法。

(2)我们采用C语言程序,抛弃了繁琐的汇编程序,但是也存在很多问题。

关于消息响应机制:

本次设计中在消息响应方面处理还有所欠缺。

真正的消息响应机制应该是由一个独立的进程不断循环接收外部事件,并在接收到外部事件的同时把消息传递给主程序进行处理。

本次试验只是在程序中加入判断,该判断基本能够达到类似的效果。

但是日后如果对系统进行改进,现有的机制肯定不能满足需求。

因此须采用独立线程进行消息的响应。

(3)之前接触到的电子系统设计不多,所以一开始,感觉难以入手,后来请求同学的帮助,了解了要对各种芯片编写程序时首先应找到该芯片的数据手册,根据数据手册上的说明、时序要求及流程图编写对应程序。

(4)巩固了KeilC51工程文件的建立,程序编写以及编译的掌握程度。

(5)掌握了Proteus的使用方法,从实际操作中认识到Proteus在仿真方面的优越性,激发了自己学习Proteus的兴趣;

六.参考文献

[1]《单片机原理、接口技术与应用》杨学昭,王东云主编.西安电子科技大学出版社.2009年2月

[2]《微型计算机原理与接口技术》冯博琴,吴宁编.清华大学出版社.2007年8月

[3]《电子技术基础》康光华等编著.高等教育出版社.2005年3月

[4]《基于AT89051单片机与DS18B20的温度测量系统》蔺鹏,柴世红.甘肃科技.2008年第9期

[6]《基于DS18B20测温系统的设计》颜丽娜,张铁民.机械与电子.2010年第11期

[7]《51单片机C语言教程------入门、提高、开发、拓展全攻略》郭天祥编著.电子工业出版社.2009年12月

2、基于DS18B20的温度测量

一.设计任务与要求19

二.系统的主要功能与方案设计19

2.1基于DS18B20的温度测量系统19

2.2系统设计方案20

2.2.1方案论证21

2.2.2方案二的总体设计框图21

2.3系统组成22

三.电路硬件及软件设计22

3.1DS18B20介绍22

3.2DS18B20初始化22

3.3部分电路图设计25

3.4软件流程图26

3.4.1主程序设计26

3.4.2读温度子程序27

3.4.3温度转换命令子程序28

3.4.4计算温度子程序28

3.4.5总程序28

四.原理图、仿真与实物34

4.1原理图34

4.2仿真图34

4.3实物图35

五.课程设计体会36

六.参考文献37

1.设计任务与要求

通过该课程设计使学生进一步了解和加深智能化仪器设计的一般原则;熟练掌握智能化仪器与装置的软、硬件设计方法;掌握仪器的软件调试及软硬件联合统调方法与技能。

掌握仪器的接口技术;熟练掌握仪表总线的工作原理、设计步骤、编程及调试;掌握VC或汇编设计软件的编程与调试方法。

1、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。

2.、培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力。

3、通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。

设计一个基于单片机的温度控制器。

设计要求:

(1)9V供电;

(2)温度采集采用DS18B20;(3)4位LED显示;(4)4个按键;(5)设计温度控制器原理图,学习用PROTEL画出该原理图,并用proteus进行仿真;设计和绘制软件流程图,编写程序;焊接硬件电路,进行调试。

二.系统的主要功能与方案设计

2.1基于DS18B20的温度测量系统

此次课程设计,就是用单片机[1]实现温度控制,传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。

本次采用DS18B20数字温度传感器来实现基于51单片机的数字温度计的设计。

该数字温度计利用AD590集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号,经

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

当前位置:首页 > 自然科学 > 物理

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

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