温度+时钟+计算器单片机课程设计摘要.docVIP

温度+时钟+计算器单片机课程设计摘要.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机课程设计实验 题 目: 温度+时钟+计算器的设计 姓 名: 易丹丹 学 号: 012301234207 专业名称:  电子信息工程 2015年 6 月 13 日 第一节 设计要求及系统组成 一、设计要求 1.有温度计功能,能够在七段数码管上显示DS18B20温度传感器的值,测周围温度。 2.有数字时钟功能,数码管上显示时间,能够对时钟的初始值(时、分、秒)进行设置。 3.有整数加减乘除的计算器功能,数码管上显示输入和输出值。 二、系统的组成 原理框图如下图所示 图1.1 系统原理框 第二节 系统设计方案 1、系统设计方案 电路原理图如图2.1所示 原理图2.1 2、功能演示 功能一:按下KEYI 在数码管上, 图2.2 此时温度为27.0摄氏度 功能二:按下KEY2 数码管, 图2.3 此时时间为3分18秒 功能三:按下KEY3 实现做一个整数加、减、乘、除的计算器,数码管分别(本次以加,乘为例)。如下图所示。 上图完成的是28+35=63的加法运算。 上图完成的是35*5=175的除法运算。 3、电路模块组成及其工作原理 1.时钟电路 系统时钟源由内部时钟方式产生,时钟电路由12MH晶振和两个30PF瓷片电容组成,构成自激振荡,形成振荡源提供给单片机。电容可在5PF到30PF之间选择,电容的大小对振荡频率有微小影响,可起频率微调作用。时钟电路如图2.4 图2.4 时钟电路 2.复位电路 单片机复位有上电复位和手动复位两种方式,上电复位是接通电源后利用RC充电来实现复位。如图2.5 图2.5 复位电路 3.按键电路 按键调试 2.6 按键调试电路 ? 图2.7按键选择电路 按下KEY1,D1灯亮,实现温度计功能 按下KEY2,D2灯亮,实现时间显示功能 按下KEY3,D3灯亮,实现计数器功能 4.温度传感电路 DS18B20温度传感器通过感应周围温度而通过LED数码管显示出来 电路如图2.8 // 主函数 // void main() 主流程图 { P3=0X54; if(P3_0==0) { dela(10); if(P3_0==0) { while(!P3_0); P3_1=1; IE=0X82; TMOD=0X01; TH0=65536/256; TL0=65536%256; TR0=0; Init_DS18B20(); Read_Temperature(); dela(1000); while(1) { Read_Temperature(); if(DS18B20_IS_OK) { TR0=1; Display_Temperature(); } else{ P0=P2=0X00;} }} } if(P3_2==0) { dela(10); if(P3_2==0) { while(!P3_2); P3_3=1; P1=0X0F; TMOD=0x11; TH0=0x3c; TL0=0xb0; EA=1; ET0=1; TR0=1; while (1) { keyscan( ); time_pro( ); display( ); } } } if(P3_4==0) { dela(10); if(P3_4==0) { while(!P3_4); while(1) { P3_5=1; if(kyscan()==15) { flag1=1; shu1=shu2=fuhao=flag_shu=newkey=0; while(flag1) { if(!flag_fuhao) dsplay(shu1); else dsplay(shu2); key_shu=kyscan(); suan(); } } } } } } 温度子流程图 温度子程序: //温度函数// uchar Init_DS18B20() //初始化 * * uchar ReadOneByte() //读一个字节 * * void WriteOneByte(uchar dat) //写一个字节 * * void Read_Temperature() //读取温度 * * void Display_Temperature() //处理温度,显示 时钟子流程图 时钟子程序: //时钟函数// void time_pro(void) //时钟内

文档评论(0)

琼瑶文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档