温度+时钟+计算器单片机课程设计_第1页
温度+时钟+计算器单片机课程设计_第2页
温度+时钟+计算器单片机课程设计_第3页
温度+时钟+计算器单片机课程设计_第4页
温度+时钟+计算器单片机课程设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机课程设计实验题 目: 温度+时钟+计算器的设计姓 名: 易丹丹学 号: 专业名称: 电子信息工程2015年 6 月 13日1第一节 设计要求及系统组成一、设计要求1.有温度计功能,能够在七段数码管上显示 DS18B20温度传感器的值,测周围温度。2.有数字时钟功能,数码管上显示时间,能够对时钟的初始值(时、分、秒)进行设置。3.有整数加减乘除的计算器功能, 数码管上显示输入和输出值。二、系统的组成原理框图如下图所示LED显示时钟电路器STC89C52单片机复位电路 按键选择电路图1.1系统原理框2第二节 系统设计方案1、系统设计方案电路原理图如图 2.1所示C1RP1U1X1C2C3R1R2U2D1D2D3原理图2.12、功能演示○1功能一:按下KEYI在数码管上显示 DS18B20温度传感器的值显示当前温度值 ,如图2.2所示012345678901012345672345111111QQQQQQQQQQQQQQQQQQQQQQQQRP11图2.2此时温度为27.0摄氏度3○2功能二:按下KEY2时钟显示器,数码管上显示时钟,能够对时钟的初始值进行设置显示小时、分钟、秒、且可调,如图 2.3所示.012345678901012345672345111111QQQQQQQQQQQQQQQQQQQQQQQQRP1图2.3此时时间为3分18秒○3功能三:按下KEY3实现做一个整数加、减、乘、除的计算器,数码管上分别显示输入和输出值(本次以加,乘为例)。如下图所示。012345678901012345672345111111QQQQQQQQQQQQQQQQQQQQQQQQ012345678901012345672345111111QQQQQQQQQQQQQQQQQQQQQQQQ012345678901012345672345QQQQQQQQQQQQQQQQQQQQQQQQ上图完成的是28+35=63的加法运算。4012345678901012345672345111111QQQQQQQQQQQQQQQQQQQQQQQQ012345678901012345672345111111QQQQQQQQQQQQQQQQQQQQQQQQ012345678901012345672345111111QQQQQQQQQQQQQQQQQQQQQQQQ上图完成的是35*5=175的除法运算。3、电路模块组成及其工作原理时钟电路系统时钟源由内部时钟方式产生,时钟电路由 12MH晶振和两个30PF瓷片电容组成,构成自激振荡,形成振荡源提供给单片机。电容可在5PF到30PF之间选择,电容的大小对振荡频率有微小影响,可起频率微调作用。时钟电路如图 2.4C11nFU1X119XTAL1C2 CRYSTAL181nF

XTAL29C3图2.4 时钟电路

RST5复位电路单片机复位有上电复位和手动复位两种方式,上电复位是接通电源后利用RC充电来实现复位。如图2.5C31uFR1100RP0P1P2PP4P5P6P7图2.5复位电路按键电路○1按键调试在单片机的P1口接矩阵按键,通过不断检测按键状态,识别按键的按下顺序和次数即可实现时间的任意修改; 并且用作计算器的数字和符号按键如图2.6789+P0456-P1123*P2C0=%P34567PPPP2.6按键调试电路6○2按键选择通过不断检测按键状态,识别按键的按下顺序从而选择使用哪种功能10k101112KEY113D114151617LED-GREENKEY2D2LED-GREENKEY3D3LED-GREEN图2.7按键选择电路按下KEY1,D1灯亮,实现温度计功能按下KEY2,D2灯亮,实现时间显示功能按下KEY3,D3灯亮,实现计数器功能温度传感电路DS18B20温度传感器通过感应周围温度而通过LED数码管显示出来电路如图2.8456PPPR2U210k3VCC27.02DQ1GNDDS18B207第三节 软件—程序和流程图系统软件总体设计用keil编写c语言程序,软件程序主要是主控程序,温度读写和显示程序,时钟读写和显示程序,计数器读写和显示程序。主控程序对整个程序进行控制,进行初始化和键盘功能程序以及显示程序。程序和流程图开始初始化键盘扫描读DS18B20和寄存器的值将读出的值在LED上显示结束// 主函数 //voidmain() 主流程图{P3=0X54;if(P3_0==0){dela(10);if(P3_0==0)8{ ET0=1;while(!P3_0); TR0=1;P3_1=1; while(1) {IE=0X82; keyscan();TMOD=0X01; time_pro();TH0=65536/256; display(); }}}TL0=65536%256; if(P3_4==0)TR0=0; {Init_DS18B20(); dela(10);Read_Temperature(); if(P3_4==0)dela(1000); {while(1) while(!P3_4);{ while(1) {Read_Temperature(); P3_5=1;if(DS18B20_IS_OK) if(kyscan()==15){ {TR0=1; flag1=1;Display_Temperature(); shu1=shu2=fuhao=flag_shu=new} key=0;else{ while(flag1)P0=P2=0X00;}}}} {if(P3_2==0) if(!flag_fuhao){ dsplay(shu1);dela(10); elsedsplay(shu2);if(P3_2==0) key_shu=kyscan();{ suan();while(!P3_2); }P3_3=1; }P1=0X0F; }TMOD=0x11; }TH0=0x3c; }TL0=0xb0; }EA=1;9开始初始化DS18B20键盘扫描N是否按下KEY1键Y读DS18B20的值将读出的值在LED上显示结束温度子流程图温度子程序://温度函数//ucharInit_DS18B20()// 初始化* *ucharReadOneByte() // 读一个字节* *voidWriteOneByte(uchardat) // 写一个字节* *voidRead_Temperature() // 读取温度* *voidDisplay_Temperature() // 处理温度,显示10开始初始化定时,计数键盘扫描N是否按下KEY2键Y在LED上显示时间结束时钟子流程图时钟子程序://时钟函数//voidtime_pro(void) // 时钟内部运行* *voiddisplay(void) // 时钟显示* *voidkeyscan(void) // 时钟按键调整* *voidtimer0(void)interrupt1using0 // 时钟定时11开始初始化定时,计数键盘扫描N是否按下KEY3键Y开启计数,显示初值 0按键输入值显示输出值结束计算器子流程图计算器子程序:// 计算器函数//voiddsplay(unsignedlongintdis_shu) // 显示* *ucharkyscan() // 键盘扫描并返回值* *voidsuan() // 计算器计算函数另有延时程序:voiddela(uchark) // 总延时* *voidDelay(uintx) // 温度延时12第四节系统仿真与调试实验过程中出现了很多的问题,经过反复的程序修改和调试,最终实现了温度显示,计时和计算器功能要求。在电路焊接前,通过 protues 单片机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论