单片机课程设计报告范本
- 格式:doc
- 大小:232.50 KB
- 文档页数:12
单片机课设报告
一、引言
单片机是一种集成电路,它可以完成各种不同的功能。
在本次课设中,我们将使用单片机来实现一个简单的计算器。
二、设计思路
本次设计采用了AT89C51单片机作为控制器,通过按键输入数字和运算符,然后将结果显示在数码管上。
具体实现步骤如下:
1. 按键扫描模块:通过对按键进行扫描,获取用户输入的数字和运算符。
2. 数字存储模块:将输入的数字存储到寄存器中。
3. 运算符判断模块:判断输入的运算符类型,并进行相应的计算。
4. 结果显示模块:将计算结果显示在数码管上。
三、硬件设计
1. AT89C51单片机:作为控制器,负责整个系统的控制和数据处理。
2. 数码管:用于显示计算结果。
3. 按键:用于输入数字和运算符。
4. 电源模块:提供系统所需的电源。
四、软件设计
1. 系统初始化:包括端口初始化、定时器初始化等操作。
2. 按键扫描程序:通过对按键进行扫描,获取用户输入的数字和运算符,并将其存储到寄存器中。
3. 运算程序:根据输入的运算符类型,进行相应的计算。
4. 结果显示程序:将计算结果显示在数码管上。
五、实现效果
经过测试,本次设计可以正确地完成加减乘除四种运算,并将结果显示在数码管上。
六、总结
本次课设通过对单片机的学习和应用,使我们更深入地了解了单片机的工作原理和应用场景。
同时,也锻炼了我们的动手能力和团队合作能力。
单片机控制课程设计报告一、课程目标知识目标:1. 理解单片机的内部结构、工作原理及其功能特点;2. 掌握单片机编程的基础知识,如指令系统、寄存器、中断等;3. 学会使用单片机进行基本的输入输出控制。
技能目标:1. 能够运用所学知识,设计简单的单片机控制系统;2. 熟练使用编程软件进行单片机程序编写、调试与下载;3. 培养学生动手实践能力,提高解决实际问题的技能。
情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学生学习积极性;2. 培养学生团队协作意识,提高沟通与表达能力;3. 培养学生创新精神,鼓励学生勇于尝试、不断探索。
课程性质分析:本课程为单片机控制课程设计,旨在帮助学生将所学理论知识与实际应用相结合,提高学生的动手实践能力和创新能力。
学生特点分析:本课程针对的是高年级学生,他们已经具备一定的电子技术基础和编程能力,对单片机有一定了解,但实践经验不足。
教学要求:1. 结合课本内容,注重理论与实践相结合,强化学生的动手实践能力;2. 注重培养学生的创新意识和团队协作能力,提高学生的综合素质;3. 通过课程设计,让学生体验从理论到实践的完整过程,提高学生解决实际问题的能力。
二、教学内容1. 单片机原理概述:介绍单片机的基本概念、内部结构、工作原理及性能特点,对应教材第一章。
- 单片机的内部组成及其功能- 单片机的工作流程与性能参数2. 单片机编程基础:学习单片机编程语言、指令系统、寄存器及中断处理,对应教材第二章。
- 编程语言(汇编语言、C语言)- 指令系统及常用指令- 寄存器及其应用- 中断处理原理与编程3. 单片机I/O接口技术:学习单片机I/O接口的原理与应用,对应教材第三章。
- I/O接口的分类与特性- I/O接口的编程与控制4. 单片机控制系统设计:结合实际案例,教授单片机控制系统的设计方法,对应教材第四章。
- 系统设计流程与步骤- 硬件设计(电路图绘制、元器件选型等)- 软件设计(程序结构、算法实现等)5. 课程设计与实践:组织学生进行课程设计,巩固所学知识,提高实际操作能力。
单片机课程设计报告一、设计目的本课程设计旨在通过对单片机的学习和实践,培养学生的嵌入式系统设计能力。
通过设计报告的撰写,学生需要整理和总结自己在课程设计中的工作,提高自己的表达和沟通能力。
二、设计背景随着科技的迅猛发展,嵌入式系统在各个领域得到广泛应用。
单片机作为嵌入式系统设计的重要组成部分,具有体积小、功耗低、可靠性高等优势,被广泛应用于家电、智能家居、汽车电子等领域。
因此,掌握单片机的基础原理和应用技巧对于工程师来说至关重要。
三、设计内容本次课程设计的主要内容为设计并实现一个简单的单片机应用系统。
具体要求如下:1. 选取一个合适的单片机型号,并给出详细的理由;2. 设计一个实际应用场景,如温度监测、电子琴等,要求具备一定的实际意义;3. 硬件方面,设计电路及相关外围电路,如传感器、显示器等;4. 软件方面,设计控制程序,实现所选应用场景的功能;5. 进行系统集成和调试,确保系统正常工作;6. 撰写设计报告,对设计过程和结果进行详细说明。
四、设计方案1. 单片机的选择在选择单片机时,需要考虑应用需求和成本因素。
根据本次设计的要求,我们选择了XX单片机,这款单片机具有性能稳定、易于编程和丰富的外围接口等特点,非常适合本次设计的需求。
2. 应用场景的设计本次设计的应用场景为温度监测系统。
随着人们对室内温度的要求越来越高,设计一个简单且准确的温度监测系统对于提高生活质量至关重要。
我们将使用温度传感器和数码显示器来实现温度的监测和显示功能。
3. 硬件设计在硬件设计方面,我们将按照以下步骤进行:a) 选择合适的温度传感器,将传感器与单片机进行连接;b) 设计电源电路和信号采集电路,确保传感器与单片机之间的正常通信;c) 设计数字显示电路,将单片机采集到的温度数值进行显示。
4. 软件设计软件设计主要包括编写单片机控制程序。
我们将按照以下步骤进行:a) 初始化单片机和相关外围设备,确保其正常工作;b) 采集传感器的温度数值,并进行数据处理;c) 控制数码显示器,将温度数值显示在屏幕上。
单片机课程设计报告项目简介本文档将详细介绍单片机课程设计项目的背景、目标、实施过程和结果。
本项目旨在通过单片机开发一个特定功能的系统,并实现相应的硬件和软件设计。
背景单片机是一种集成电路,集中了处理器、存储器和其他外围器件的功能。
它的小巧、低功耗和低成本使得它成为嵌入式系统中常用的控制器。
单片机课程设计是大多数电子工程专业的必修课程,通过实际设计和开发单片机系统,提高学生在硬件和软件方面的实践能力。
目标本项目的主要目标是设计一个基于单片机的系统,能够完成特定任务。
我们选择了一个温度监控系统作为设计任务,主要包括以下功能: - 采集温度数据 - 实时显示温度 - 根据设定温度报警设计过程硬件设计在硬件设计方面,我们选用了ATmega328P单片机作为主控芯片,通过使用温度传感器LM35来采集温度数据。
单片机与温度传感器之间通过模拟输入引脚连接。
为了实现实时显示温度,我们选择了一个七段LED显示器,将数字信号发送至显示器实现温度的显示。
此外,我们还使用按钮来设置报警温度,并通过蜂鸣器进行报警。
软件设计在软件设计方面,我们使用C语言进行单片机程序的编写。
通过编写相应的代码,实现以下功能: 1. 初始化单片机及相关外设 2. 采集温度数据并进行处理 3. 将温度数据转换为七段LED显示所需的数字信号 4. 设置报警温度,并进行判断 5. 当温度超过报警温度时,触发蜂鸣器进行报警实施结果经过设计和实施,我们成功实现了温度监控系统的目标功能。
在系统测试中,我们能够准确采集温度数据,并通过七段LED显示器实时显示。
当温度超过设定的报警温度时,系统能够准确触发蜂鸣器进行报警。
整个系统工作稳定,达到了预期效果。
总结单片机课程设计是电子工程专业中重要的实践环节,通过实际设计和开发单片机系统,可以提高学生的动手能力和解决问题的能力。
本项目以温度监控系统为例,详细介绍了硬件和软件的设计过程,并展示了最终的实施结果。
在未来的学习和工作中,我们将继续积极运用单片机技术,深入研究和探索更多的应用领域。
单片机课程设计报告1. 引言本文为单片机课程设计报告,主要介绍了课程设计的背景、目的、设计方案、实施过程以及结果分析和总结。
2. 背景单片机是嵌入式系统的核心部件,广泛应用于各个领域。
作为计算机科学与技术专业的学生,掌握单片机的基本原理和应用是必不可少的。
因此,本次课程设计旨在通过实践,加深对单片机的理解和应用能力。
3. 目的本次课程设计的目的是设计一个基于单片机的智能温度监控系统。
该系统能够实时监测环境温度,并通过显示屏展示当前温度值,并在温度超过设定阈值时发出警报。
4. 设计方案4.1 硬件设计本设计使用STC89C52单片机作为控制核心,配合温度传感器和液晶显示屏,实现温度监测和显示的功能。
温度传感器负责采集环境温度,将采集到的数据发送给单片机进行处理;液晶显示屏用于显示当前温度值和警报信息。
4.2 软件设计软件设计分为两个模块:温度采集和温度监控。
温度采集模块通过单片机的ADC接口获取温度传感器的模拟信号,将其转化为数字信号,并保存在单片机的内存中。
温度监控模块不断读取内存中的温度值,并与设定的阈值进行比较,如果温度超过阈值,则发出警报信号,同时在液晶显示屏上显示警报信息。
5. 实施过程5.1 硬件实施首先,根据设计方案的要求,将STC89C52单片机、温度传感器和液晶显示屏组装在一起,搭建出硬件平台。
接下来,使用面包板和杜邦线等连接元件,将各个模块按照设计方案进行连线。
最后,使用电源适配器给整个系统供电。
5.2 软件实施软件实施主要分为两个步骤:编写硬件控制程序和编写温度监控程序。
硬件控制程序主要负责初始化硬件设备和处理硬件输入输出;温度监控程序则负责实现温度采集和温度监控逻辑。
在编写硬件控制程序时,需要使用STC89C52的GPIO接口对传感器和显示屏进行控制。
在编写温度监控程序时,需要使用STC89C52的ADC接口进行温度采集,以及使用GPIO接口对警报信号和显示屏进行控制。
6. 结果分析和总结经过实施过程的努力,我们成功地完成了基于单片机的智能温度监控系统。
51单片机课程设计报告一、课程目标知识目标:1. 理解51单片机的硬件结构、工作原理及其功能特点;2. 学会使用51单片机的指令系统进行程序设计;3. 掌握51单片机与外围电路的接口技术,能实现简单的硬件控制功能;4. 了解51单片机在嵌入式系统中的应用及发展趋势。
技能目标:1. 能够运用C语言编写51单片机的程序,实现基础控制功能;2. 能够运用仿真软件对51单片机程序进行调试,分析并解决简单问题;3. 能够设计简单的51单片机硬件系统,进行电路连接和功能测试;4. 培养学生的动手能力、创新能力和团队协作能力。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发学习热情;2. 培养学生严谨、务实的科学态度,提高自主学习能力;3. 培养学生关注社会发展,了解科技在生活中的应用,增强社会责任感;4. 培养学生团队合作精神,尊重他人意见,善于沟通交流。
课程性质:本课程为实践性较强的电子技术课程,以51单片机为核心,结合硬件和软件,培养学生的实际操作能力和创新能力。
学生特点:学生具备一定的电子技术基础知识,对单片机有一定了解,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力和解决问题的能力。
通过课程学习,使学生能够独立完成简单的51单片机控制系统设计。
二、教学内容根据课程目标,教学内容分为以下几个部分:1. 51单片机硬件结构及原理- 熟悉51单片机的内部结构、引脚功能;- 掌握51单片机的工作原理及性能特点。
2. 51单片机指令系统与编程- 学习51单片机的指令集,理解各指令的功能和使用方法;- 掌握C语言在51单片机编程中的应用。
3. 51单片机外围接口技术- 学习51单片机与常见外围电路(如LED、LCD、键盘等)的接口技术;- 掌握外围设备的控制原理及编程方法。
4. 仿真软件的使用- 学习使用Keil、Proteus等仿真软件进行51单片机程序设计和调试;- 掌握仿真软件的操作方法,提高程序调试效率。
单片机技术及应用综合训练(设计报告)题目:姓名:学院:专业:班级:学号:指导教师:2014年5 月一、选题要求临床求助呼叫监护是传送临床信息的重要手段,病房呼叫系统是病人请求值班医生或护士进行诊断和护理的紧急呼叫工具,可将病人的请求快速传送给值班医生或护士,并在值班室的监控中心电脑上留下准确完整的记录,是提高医院和病室护理水平的必备设备之一。
呼叫系统的优劣直接关系到病员的安危,要求及时、准确、可靠、简便可行。
本呼叫系统基于Ateml89C52单片机,振荡电路的晶振采用12MHz,由控制核心AT89C52单片机、电源电路、振荡电路、复位电路、数码管解码芯片、病房选择和七段数码管等部分组成,系统框图如下:二、硬件电路设计工作原理为:电源电路为单片机以及其他模块提供5V电源。
晶振模块为单片机提供时钟标准,使系统各部分能协调工作。
复位电路模块为单片机系统提供复位功能。
单片机作为主控制器,根据输入信号对系统进行相应的控制。
病房一共为四个,从1号病房到4号病房病人的情况由重到轻,即1号病房的优先级最高,4号病房的优先级最低。
所以,当有两个病房一起呼叫时,优先级高的病房号显示;当低优先级的病房呼叫完毕后高优先级的病房呼叫,系统显示的号码改变;当优先级高的病房呼叫完毕后工作人员未复位的情况下,低优先级的病房呼叫无效。
另外,当有病房呼叫时蜂鸣器响直至复位。
此次设计的电路图如下:三、软件设计1、功能介绍:启动系统后,数码管显示0。
当有一个病人呼叫时,数码管显示相应病房号,同时蜂鸣器响起;当有多个病人同时呼叫时,数码管显示优先级高的病房号,同时蜂鸣器响起;当有一个病房呼叫后另一个病房呼叫,若后呼叫的病房优先级低,则数码管显示不变,若后呼叫的病房优先级高,则数码管显示后呼叫的病房号,两种情况下蜂鸣器都会叫,只是在有别的病房呼叫时有一点变音。
2、程序流程图:3、程序源代码:#include <reg51.h>#define uchar unsigned char sbit key4=P3^0;//定义按键位置sbit key3=P3^1;sbit key2=P3^2;sbit key1=P3^3;sbit reset=P3^4;//复位sbit BEEP=P1^7;//定义蜂鸣器端口uchar flag,i;void choice();void clean();void delay();void de();void ring();void main(){while(1){P3=0xff;reset=0;BEEP=0;flag=0;choice();delay();clean();}}void choice()//确定病人{ while(reset!=1&&flag==0) {if(key1==0){de();if(key1==0){P0=0X86;flag=1;}}else if(key2==0){de();if(key2==0&&key1!=0){P0=0Xdb;flag=1;}}else if(key3==0){de();if(key3==0&&key1!=0&&key2!=0){P0=0Xcf; flag=1;}}else if(key4==0){de();if(key4==0&&key1!=0&&key2!=0&&key3!=0){P0=0Xe6; flag=1;}}}}void clean() //RESET 为高的时候复位{if(reset==1){BEEP=0;P0=0x3f;}}void delay() //RESET为低的时候延时{while(!reset){ring();}}void ring(){for(i=0;reset==0;i++)//喇叭发声的时间循环{de();BEEP=!BEEP;if(key1==0||key2==0||key3==0)//第二次呼叫{if( P0==0X86)P0=0X86;else if(P0==0Xdb&&key1==0)P0=0X86;else if(P0==0Xcf&&key1==0)P0=0X86;else if(P0==0Xcf&&key1==1&&key2==0)P0=0Xdb;else if(P0==0Xe6&&key1==0)P0=0X86;else if(P0==0Xe6&&key1==1&&key2==0)P0=0Xdb;else if(P0==0Xe6&&key1==1&&key2==1&&key3==0)P0=0Xcf;}}}void de(){for(i=300;i>0;i--);}四、软硬件调试结果1、未通电:2、通电时:3、低优先级病房先呼叫:(蜂鸣器响)高优先级病房后呼叫:(蜂鸣器响)4、高优先级病房先呼叫:(蜂鸣器响)低优先级病房后呼叫:(蜂鸣器响)呼叫有效呼叫无效5、当有三个病房同时呼叫时:1号2号4号病房同时呼叫显示1五、总结本次实验程序参考网上,但下载时程序有误,经细心验证检查得已改正,这有助于我进一步对C语言的学习和掌握。
单片机课程设计报告模板单片机课程设计报告一、设计目的本次单片机课程设计旨在培养我们对单片机的基本认知和应用能力,通过对STC89C52单片机的学习和实践,提升我们的编程能力和创新思维,同时让我们深入了解单片机的工作原理和应用场景,为未来工作和学习打下坚实基础。
二、设计内容本次课程设计主要涵盖了单片机的基本原理、C语言编程以及电路设计。
我们以智能家居为例,设计了一个可以通过Wi-Fi连接到手机APP控制家电的智能开关系统。
1.单片机的选择我们选择STC89C52作为单片机的核心控制器,这是一款8位高性能单片机,拥有大容量闪存和SRAM存储器、多种定时器和计数器、16位定时器等重要功能,非常适合用于物联网控制和智能家居领域。
2.开发环境的搭建我们采用KEIL软件和PROTEUS电路仿真软件作为开发工具,为了让我们更加熟练地使用这两款软件,我们在课堂上进行了详细的讲解和实践操作,学习了单片机的汇编、C语言编程、调试和调试工具的使用。
3.电路设计为了实现智能家居的控制,我们需要搭建一个能够与单片机相互协作的电路。
我们选择了常见的继电器来控制家电设备的开和关。
具体的电路设计方案如下:①按键电路:在电路中加入按键触发模块,实现单片机中断、感应等功能。
②Wi-Fi WiFi模块:为了实现远程控制,我们使用了ESP8266模块和手机APP进行通讯。
③继电器模块:该模块内置独立的继电器驱动IC,设计电容保护电路和DIP开关控制当前继电器输出端口,保障免受电磁干扰和防止继电器共振。
4.软件设计本次课程设计的重点是编写单片机程序。
我们通过不断的实践和调试,成功编写了相应的程序,实现了以下功能:①通过Wi-Fi模块连接到手机APP,实现APP和单片机的通讯。
②实现对接ESP8266模块,并正确设置ESP8266模块的IP地址和端口号。
③通过单片机控制继电器模块,实现对家电的远程控制。
5.上位机程序设计上位机程序我们选择了Visual Studio C++作为开发工具,通过Socket编程实现了与单片机的通讯。
注意:以下单片机课程设计报告格式是结合老师发来的报告要求制作的,其中正文“程序存储器和数据存储器的单元分配”没有,由于大部分同学的程序都是使用C语言编写的,单元分配可能无法知道。
本人报告中不具有这部分内容。
本版本报告给是仅供参考!仅供参考!
惠州学院
课程设计
课程:
题目:
学生系别:
学生专业:
学生班级:
学生姓名:
学生学号:
指导教师:
2013年11月25日
惠州学院课程设计任务书
摘要
目录1.设计方案
1.1设计思想
1.2设计说明
2.硬件部分
2.1原理框图
2.2 STC89C52单片机
2.3四位LED共阴数码管
2.4按键电路
2.4.1复位电路
2.4.2电源电路
2.4.3晶振电路
2.4.4调整电路
2.5 74LS373锁存器
3.软件部分
3.1程序流程图
3.1.1主程序流程图
3.1.2子程序流程图
3.2程序清单
4.调试
4.1整合过程
4.2问题与解决方法
4.3实物效果图
5.总结
6.参考文献
7.附录。
单片机课程设计实验报告单片机课程设计实验报告引言单片机是嵌入式系统中常见的一种计算机芯片,具有体积小、功耗低、成本低等优势。
本次实验旨在通过单片机的应用设计,加深对单片机原理和应用的理解,并提升解决问题的能力。
实验目的本次实验的目的是设计一个简单的温度监测系统,通过单片机采集温度传感器的数据,并将数据显示在液晶显示屏上。
通过这个实验,我们可以掌握单片机的基本编程和电路连接方法,同时加深对温度传感器的原理和应用的理解。
实验原理1. 单片机基本原理单片机是一种集成电路,内部包含了CPU、内存、输入输出端口等功能模块。
通过编程,可以控制这些功能模块的工作,实现各种应用。
2. 温度传感器原理温度传感器是一种能够感知环境温度变化的器件,常见的有热敏电阻、热电偶等。
本次实验使用的是热敏电阻,其电阻值随温度的变化而变化。
实验材料1. 单片机开发板2. 温度传感器3. 液晶显示屏4. 连接线等实验步骤1. 连接电路将单片机开发板与温度传感器、液晶显示屏连接起来,确保电路连接正确无误。
2. 编写程序使用C语言编写单片机的程序,实现温度传感器数据的采集和液晶显示屏的显示。
程序的基本思路是通过单片机的模拟输入端口读取温度传感器的电阻值,然后将电阻值转换为温度值,并将温度值显示在液晶显示屏上。
3. 烧录程序将编写好的程序烧录到单片机开发板上,确保程序能够正常运行。
4. 实验测试将温度传感器放置在不同的环境中,观察液晶显示屏上的温度数值是否能够准确显示,并记录实验结果。
实验结果与分析经过实验测试,我们发现温度传感器能够准确地采集环境温度,并将温度数值显示在液晶显示屏上。
通过对比实际温度和显示温度的差异,我们可以评估温度传感器的准确性和精度。
实验总结通过本次实验,我们深入了解了单片机的基本原理和应用,掌握了单片机的编程方法和电路连接方法。
同时,我们也加深了对温度传感器的原理和应用的理解。
这些知识和技能对于今后的学习和工作都具有重要意义。
浙江树人大学信息学院
课程设计(生产实习)报告题目:数字钟与温度检测设计
班级:
学号:
姓名:
2011年月日
实习任务:
1:数字钟设计
2:基于DS18B20的温度测量模块设计
单片机AT89S52的介绍:
1) MCS-51 单片机产品兼容
2) 8K 字节在系统可编程Flash 存储器
3) 1000 次擦写周期
4) 全静态操作:0Hz~33Hz
5) 三级加密程序存储器
6) 32 个可编程I/O 口线
7) 三个16 位定时器/计数器
8) 八个中断源
9) 全双工UART 串行通道
10) 低功耗空闲和掉电模式
11) 掉电后中断可唤醒
12) 看门狗定时器
13) 双数据指针
14) 掉电标识符
功能特性描述
AT89S52是一种低功耗、高性能CMOS8 位微控制器,具有8K在系统可编程
Flash存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52 具有以下标准功能:8k 字节Flash,256 字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中
断继续工作。
掉电保护方式下,RAM 内容被保存,振荡器被冻结,
单片机一切工作停止,直到下一个中断或硬件复位为止。
数字钟的设计
1.设计目的
(1)学习AT89S52内部定时/计数器的原理及应用
(2)了解使用单片机处理复杂逻辑的方法
(3)掌握多位数码管动态显示的方法
2.设计任务
用AT89S52单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1。
开机时显示00-00-00的时间,开始计时:P1.0控制“秒“的调整,每按一次加1秒;P1.1控制“分“的调整,每按一次加1分;P1.2控制”时“的调整,每按一次加1小时。
计时满23-59-59时,返回00-00-00重新计时。
P1.3用做复位键,在计时过程中如果按下复位键,则返回00-00-00重新计时。
(1)基本要求
a.用AT89S51单片机的定时/计数器T0产生一秒的定时时间,作
为秒计数时间。
b.当一秒产生时,秒计数加1。
c.开机时,显示00-00-00,并开始连续计时。
计时满23-59-59时,
返回00-00-00重新开始计时。
(2)高级要求
在以上设计基础上,在单片机的P1.0-P1.3口分别接入4个按键:
a.P1.0控制“秒”的调整,每按一次加1秒
b.P1.1控制“分”的调整,每按一次加1分
c.P1.2控制“时”的调整,每按一次加1时
d.P1.3用作复位键,在计时过程中如果按下复位键,则返回
00-00-00重新计数。
3.电路原理图(注意:两幅图,显示时间和日期)
4.数字钟程序流程图
5.实验结果分析
基于DS18B20数字温度测量模块设计
1.设计目的
(1)掌握DS18B20数字温度传感器的工作原理及使用方法
(2)掌握对DS18B20转换数据进行处理的方法
(3)学习用数码管显示复杂数据的方法
2.设计任务
用AT89S52控制DS18B20,读取数据,并对DS18B20转换后的数据进行处理,最后在数码管上显示DS18B20测出的温度。
要求使用6位数码管显示,最高位为符号位,如果温度值为正,不显示,如果温度为负,则显示负号;第2—4位显示温度值的整数部分,并在第4位数据上显示小数点;第5位显示一位小数,最低位显示摄氏度符号“C”。
(1)基本要求
a.用AT89C51控制DS18B20,读取数据
b.对DS18B20转换后的数据进行处理,转换成实际温度值
c. 将符号位,整数值和小数值分别存放在特定的存储单元中.
(2)进阶要求
在数码管上显示DS18B20测出的温度,只要求显示出温度值的整数部分及符号位。
(3)高级要求
a.使用6位数码管显示测得的温度
b.最高位为符号位,如果温度值为正,不显示,如果温度为负,则显示负号
c.第2—4位显示温度值的整数部分,并在第4位数据上显示小数点
d.第5位显示一位小数
e.最低位显示摄氏度符号“C”
3.DS18B20数字温度传感器概述
DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
DS18B20产品的特点:
a.只要求一个端口即可实现通信。
b.在DS18B20中的每个器件上都有独一无二的序列号。
c.实际应用中不需要外部任何元器件即可实现测温。
d.测量温度范围在-55。
C到+125。
C之间。
e.数字温度计的分辨率用户可以从9位到12位选择。
f.内部有温度上、下限告警设置。
TO-92封装的DS18B20的引脚排列见图4-2,其引脚功能描述见表4-1。
图4-2 DS18B20引脚结构图(底视图)
表4-1 DS18B20详细引脚功能描述
序号名称引脚功能描述
1 GND 地信号
2 DQ 数据输入/输出引脚。
3 VDD 可选择的VDD引脚。
DS18B20采用严格的单总线通信协议,以保证数据的完整性。
该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。
除了应答脉冲所有这些信号都由主机发出同步信号。
总线上传输的所有数据和命令都是以字节的低位在前。
① 初始化序列:复位脉冲和应答脉冲
在初始化过程中,主机通过拉低单总线至少480µs,以产生复位脉冲(T X)。
然后主机释放总线并进入接收(R X)模式。
当总线被释放后,5kΩ的上拉电阻将单总线拉高。
DS18B20检测到这个上升沿后,延时15µs~60µs,通过拉低总线60µs~240µs产生应答脉冲。
初始化波形如图4-5所示。
图4-5 初始化脉冲
②读和写时序
在写时序期间,主机向DS18B20写入数据;而在读时序期间,主机读入来自DS18B20的数据。
在每一个时序,总线只能传输一位数据。
读/写时序如图3-6所示。
写时序
存在两种写时序:“写1”和“写0”。
主机在写1时序向DS18B20写入逻辑1,而在写0时序向DS18B20写入逻辑0。
所有写时序至少需要60µs,且在两次写时序之间至少需要1µs的恢复时间。
两种写时序均以主机拉低总线开始。
产生写1时序:主机拉低总线后,必须在15µs内释放总线,然后由上拉电阻将总线拉至高电平。
产生写0时序:主机拉低总线后,必须在整个时序期间保持低电平(至少60µs)。
在写时序开始后的15µs~60µs期间,DS18B20采样总线的状态。
如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写
入DS18B20。
读时序
DS18B20只能在主机发出读时序时才能向主机传送数据。
所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。
所有读时序至少60µs,且在两次独立的读时序之间至少需要1µs的恢复时间。
每次读时序由主机发起,拉低总线至少1µs。
在主机发起读时序之后,DS18B20开始在总线上传送1或0。
若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。
当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。
DS18B20发出的数据在读时序下降沿起始后的15µs内有效,因此主机必须在读时序开始后的15µs内释放总线,并且采样总线状态。
图4-6 DS18B20读/写时序图
DS18B20 在使用时,一般都采用单片机来实现数据采集。
只需将DS18B20 信号线与单片机1 位I/O线相连,且单片机的1 位I/O 线可挂接多个DS18B20 ,就可实现单点或多点温度检测。
4.设计原理图
5.程序流程图
6 实验结果分析:
参考文献
[1].唐颖程菊花任条娟.单片机原理与应用及C51程序设计.北京大
学出版社.2008.8
[2].唐颖程菊花黄震梁城友荣.单片机原理及应用实验指导书.
[3].谭浩强.C程序设计.清华大学出版社.2005
[4].P ROTUER MCS-51教学实验指导书.
附录(程序):时钟程序:
注意:必须包含注释
DS18B20程序:注意:必须包含注释。