基于51单片机课程设计报告
51单片机课程设计报告
51单片机课程设计报告.成绩:单片机原理及应用课程设计课程名<单片机原理及应用> </单片机原理及应用>学部机械与电子信息工程学部专业移动通信技术学号姓名指导教师日期 .一、设计任务与要求1. 任务:制作并调试51单片机学习板2. 要求:(1)了解并能识别学习板上的各种元器件,会读元器件标示;(2)会看电路原理图;(3)制作51单片机学习板;(4)学会使用Keil C软件下载调试程序;用调试程序将51单片机学习板调试成功。
二、实验内容(5)(6)(7)(8)(9)*****芯片工作电路,利用晶振提供控制信号。
10引脚下载口与*****芯片相关引脚相连完成下载电路。
8个10K电阻与*****芯片P0口相连,利用上拉电阻组成上拉电路。
使用开关与5.1K电阻连成外部中断0、1电路和复位电路。
利用16个开关做成键盘,实现输入号对已编程的*****芯片的控制并通过数码管显示0--F。
(10)用2片74HC573N具有锁存功能芯片与8个数码管相连,通过编程的*****位选和段选实现输出信号的显示功能。
(11)使用74HC573N锁存功能结合*****AG芯片8非门芯片和74HC04N6非门芯片与4个2N5551三极管实现对步进电机的控制,和控制步进电机的信号结合LED输出显示的功能。
(12)6、利用1片74HC573N芯片与8个共阴极LED实现跑马灯功能。
三、总原理图1.总原理图.四、硬件调试1、是否短路用万用表检查P2两端是短路。
电阻为0,则短路,电阻为一适值,电路正常。
2、焊接顺序焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。
3、器件功能1)检查原理图连接是否正确2)检查原理图与PCB图是否一致3)检查原理图与器件的*****ET上引脚是否一致4)用万用表检查是否有虚焊,引脚短路现象5)查询器件的*****ET,分析一下时序是否一致,同时分析一下命令字是否正确6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的7)飞线。
基于51单片机的温度报警控制系统报告
报告评分批改老师《现代电子综合实验》课程设计报告基于单片机的温度检测控制系统设计学生姓名 学 号专 业 班 级同组学生 提交日期 年 月 日指导教师目录2一、实验目的 .....................................................................................2二、实验要求 .....................................................................................2三、实验开发环境及工具 ...........................................................................2四、按键扫描和液晶显示功能实现 ...................................................................24.1矩阵键盘电路 ...............................................................................4.1.1矩阵键盘电路简介 .....................................................................224.1.2矩阵式按键扫描原理 ...................................................................24.1.3 按键扫描子程序设计思想及流程图 ......................................................34.2 LCD1602显示电路 ..........................................................................34.2.1 LCD1602模块简介 ....................................................................34.2.2 LCD1602模块引脚说明 .................................................................4.2.3 LCD1602控制方式及指令 ..............................................................344.2.4 LCD1602液晶显示子程序设计思想及流程图 ..............................................5五、基于单片机的温度检测控制系统设计过程 .........................................................55.1 系统整体电路框图及功能说明 ................................................................55.2 DS18B20数字温度传感器电路 ..............................................................55.2.1 单总线通信方式简介 ..................................................................65.2.2 DS18B20简介 ......................................................................5.2.3 DS18B20读写操作 ..................................................................665.3 声光报警及控制电路 ........................................................................75.4 软件设计 ..................................................................................5.4.1 主程序设计流程图 ....................................................................775.4.2 DS18B20子程序设计思想及流程图 ...................................................85.4.3 声光报警子程序设计思想及流程图 .....................................................9七、 实验过程及实验结果 ...........................................................................9八、实验中遇到的问题及解决方法 ...................................................................10附件 ............................................................................................一、实验目的(1). 掌握单片机应用系统的设计方法与步骤;(2).掌握硬件电路各功能模块的工作原理、应用电路与编程方法;(3).熟练掌握单总线的应用及编程;(4). 掌握基于单片机的温度检测控制系统的设计与实现。
51单片机课程设计报告
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单片机程序设计和调试;- 掌握仿真软件的操作方法,提高程序调试效率。
基于51单片机的课程设计
-探索51单片机在智能家居中的应用,如家居环境监测与控制;
-介绍并实践51单片机与蓝牙模块的连接,实现无线数据通信;
-分析并设计一个简易的抢答器系统,涉及按键扫描、状态机设计等;
-结合课堂所学,开展创新设计竞赛,鼓励学生自主设计并实现具有实际应用价值的单片机控制系统。
-开展综合实训,要求学生团队协作,完成一个综合性的单片机控制系统设计,如智能家居控制系统,提升学生的实际操作能力和项目实践能力。
-汇编语言程序设计
- C语言程序设计
3.《单片机原理与应用》第六章:51单片机的I/O接口及应用
- I/O口的控制方法
-基本输入/输出应用实例
4.《单片机原理与应用》第七章:51单片机的定时器/计数器与中断系统
-定时器/பைடு நூலகம்数器的工作原理及应用
-中断系统的原理及应用
5.《单片机原理与应用》第八章:51单片机的串行通信
-串行通信的原理
-串行通信接口的编程与应用
本章节将以上述内容为基础,结合实际案例,引导学生掌握51单片机的原理、编程及应用。
2、教学内容
本节课程设计将具体包括以下教学内容:
- 51单片机的最小系统构成及其功能分析;
-基本I/O口操作,实现LED灯的闪烁与控制;
-定时器/计数器的编程,实现精确延时及脉冲产生;
5、教学内容
-专题讨论:51单片机在工业控制中的应用,如自动化生产线上的传感器数据采集与处理;
-介绍并实践51单片机与各类传感器(如温湿度、光照、红外等)的接口技术;
-深入讲解51单片机的电源管理,探讨低功耗设计方法;
-通过项目案例,学习如何使用51单片机进行数据加密与解密,增强系统安全性;
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告
1. 研究背景
•计算器是人们日常生活和工作中常用的工具之一。
•通过设计简易计算器,可以加深学生对51单片机的理解和应用。
2. 目标和需求
•设计一个基于51单片机的简易计算器,能够进行基本的四则运算和开方运算。
•要求计算器能够显示输入和计算结果。
•要求计算器具备简单的界面和操作。
3. 设计方案
•使用51单片机作为计算器的控制核心。
•通过键盘输入数字和运算符,并显示在液晶屏上。
•根据输入的运算符,进行相应的计算,并将结果显示在液晶屏上。
4. 硬件设计
•使用51单片机作为主控芯片。
•连接液晶屏模块,用于显示输入和计算结果。
•连接键盘模块,用于输入数字和运算符。
5. 软件设计
•使用C语言进行编程。
•设计主程序,包括初始化、输入处理和计算输出等功能。
•设计函数,实现基本的四则运算和开方运算。
6. 实验结果
•成功设计并实现了基于51单片机的简易计算器。
•可以正常进行基本的四则运算和开方运算。
•输入和计算结果能够准确显示在液晶屏上。
7. 总结与展望
•通过设计这个简易计算器,学生对51单片机的理解和应用能力有了提高。
•下一步可以考虑增加更多的功能,如科学计算和数据存储等。
以上是本次基于51单片机简易计算器课程设计的报告。
通过这个实验,学生对51单片机的应用能力得到了提升,进一步增强了对计算器的理解。
在未来的课程设计中,可以进一步拓展功能,提升计算器的实用性和功能性。
基于51单片机的酒精浓度测试仪课设报告
基于51单片机的酒精浓度测试仪课设报告一、项目简介基于51单片机的酒精浓度测试仪是一款实用的检测设备,主要用于检测环境中的酒精浓度。
该测试仪利用气敏传感器来检测空气中的酒精浓度,并通过51单片机进行数据处理和控制。
本报告将详细介绍该测试仪的设计、实现和测试过程。
二、系统设计硬件设计(1)单片机:采用51单片机作为主控制器,负责数据采集、处理和控制。
(2)传感器:选用MQ-3气敏传感器,用于检测空气中的酒精浓度。
该传感器具有灵敏度高、响应速度快、稳定性好的特点。
(3)显示屏:采用LCD显示屏,用于显示酒精浓度、单位等信息。
(4)按键:设置一个按键,用于触发传感器进行酒精浓度检测。
(5)电源:采用USB供电方式,为整个系统提供稳定的电源。
软件设计(1)程序流程:首先进行系统初始化,包括单片机、传感器、显示屏等。
然后进入主循环,等待按键触发,当按键按下时,启动传感器进行酒精浓度检测,并将检测结果显示在显示屏上。
(2)数据处理:对传感器采集的数据进行滤波处理,以减小误差,提高检测精度。
(3)控制算法:根据传感器采集的数据,通过算法计算出酒精浓度值,并进行单位转换。
三、实现过程硬件搭建根据设计要求,将单片机、传感器、显示屏等元件连接起来,构成完整的硬件系统。
软件编程使用Keil软件进行编程,编写程序代码,实现系统功能。
调试与优化对系统进行调试和优化,确保系统工作正常,检测精度符合要求。
四、测试与分析测试环境与设备在实验室环境中进行测试,使用标准酒精溶液作为测试样本。
测试过程将标准酒精溶液分别置于不同浓度水平下,使用本系统进行检测,记录检测结果。
测试结果与分析通过对比标准酒精溶液的实际浓度与本系统的检测结果,分析本系统的检测精度和误差范围。
结果表明,本系统具有较高的检测精度和稳定性,能够满足实际应用需求。
五、结论与展望本报告介绍了基于51单片机的酒精浓度测试仪的设计、实现和测试过程。
通过软硬件结合的方式,实现了对空气中的酒精浓度的快速、准确检测。
51单片机计课程设计
51单片机计课程设计一、课程目标知识目标:1. 理解51单片机的基本组成、工作原理及其在嵌入式系统中的应用。
2. 掌握51单片机的编程语言(C语言),能够阅读和编写简单的程序。
3. 学习51单片机的I/O口编程、定时器/计数器、中断系统等基础应用。
4. 了解51单片机与其他外围设备的通信接口,如串行通信。
技能目标:1. 能够使用51单片机的开发环境,如Keil uVision和Proteus进行程序设计和仿真。
2. 培养学生的动手实践能力,通过实验箱或面包板搭建简单的51单片机应用电路。
3. 培养学生的问题分析和解决能力,通过编程解决实际问题。
4. 学会查阅技术文档和参考资料,提升自主学习能力。
情感态度价值观目标:1. 培养学生对电子制作和编程的兴趣,激发创新意识和探索精神。
2. 强调团队合作和交流分享的重要性,培养学生的团队协作能力。
3. 增强学生的工程意识,认识到科技对于社会发展的重要性。
4. 引导学生形成严谨的科学态度,注重实践操作的准确性和程序的逻辑性。
本课程针对高年级学生,考虑其已有一定电子和编程基础,课程设计注重理论与实践相结合,通过项目驱动的教学方法,使学生在实践中掌握知识,提升技能,同时培养积极的情感态度价值观。
通过本课程的学习,学生将能够独立完成简单的51单片机项目设计,为后续深入学习嵌入式系统打下坚实基础。
二、教学内容1. 51单片机基础知识- 51单片机结构及工作原理- 51单片机引脚功能及内部资源- 编程环境Keil uVision与Proteus使用方法2. 51单片机C语言编程- 数据类型、运算符与表达式- 控制语句(循环、分支)- 函数的定义与调用- 中断处理程序编写3. 51单片机I/O口编程- I/O口输入输出控制- 延时函数编写- 按键与LED控制4. 定时器/计数器- 定时器/计数器工作原理- 定时器/计数器编程方法- 定时器应用案例5. 中断系统- 中断系统原理与分类- 中断系统编程- 中断应用案例6. 串行通信- 串行通信原理- 51单片机串口编程- 串口通信应用案例7. 综合项目设计与实践- 项目需求分析- 硬件电路设计与搭建- 软件程序设计与调试- 项目展示与评价教学内容依据课程目标和学科特点进行安排,注重知识体系的科学性和系统性。
基于51单片机的电子琴课程设计报告书
河南理工大学《单片机应用与仿真训练》设计报告基于单片机的电子琴设计姓名:薛吉星 _____学号: 310808020825 _______专业班级:自动化08-8班指导老师:刘巍所在学院:电气工程与自动化学院2011年7月5日本设计主要研究基于AT89C52单片机的简易电子琴设计。
它是以单片机作为主控核心,设置键盘、蜂鸣器等外围器件;另外还用到一些简单器件如:两位数码管,和NPN型三极管及电阻等。
利用按键实现音符和音调的输入;两位的数码管进行被操作的按键显示;用NPN型三极管8550实现低音频功率放大;最后用蜂鸣器进行播放“送别”。
本设计硬件部分主要由最小系统,按键系统模块、数码管显示模块和蜂鸣器模块组成。
其软件部分主要有主程序模块、定时中断程序、定时计数程序、显示程序。
(1)最小系统:它是单片机应用系统的设计基础。
它包括单片机的选择、时钟系统设计、复位电路设计、简单的I/O口扩展、掉电保护等。
(2)按键系统模块:本设计采用10个按键,其中7个按键用来显示7个音调,其它3个按键可以进行高低中音的切换,并自动播放已存歌曲。
(3)数码管显示模块:SM420562段选端接在单片机的P0口,两个位选端分别接在P2^0和P2^1。
(4)蜂鸣器模块:此电子琴发音电路是通过三极管驱动蜂鸣器发音,经过上拉电阻提高驱动能力。
本次设计首先对单片机设计简易电子琴仔细分析,接着制作硬件电路和编写软件的程序,最后进行软硬件的调试运行。
并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。
利用单片机产生不同频率来获得我们要求的音阶,实现高、中、低共21个音符的发音和显示和音乐播放时的控制显示,并且能自动播放程序中编排的音乐。
系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比高等,具有一定的使用和参考价值。
1.概述 (5)1.1设计背景 (5)1.2设计意义 (5)1.3设计任务 (5)2.系统总体方案及硬件设计 (6)2.1总体设计 (6)2.2单片机选型 (7)2.3单片机的最小工作系统 (7)2.3.1 时钟电路 (7)2.3.2复位电路 (8)2.4原理框图 (8)2.5显示部分设计 (9)2.5.1数码显示方式 (9)2.5.2八位数码管的结构 (9)2.6按键部分设计 (10)2.6.1操作键设计 (10)2.6.2键盘设计 (10)2.6.3去抖动 (11)2.7发音部分设计 (12)3.系统软件设计 (13)3.1系统分析 (13)3.1.1系统软件的组成 (13)3.1.2 系统总体功能流程图 (14)3.2参数计算 (15)3.2.1发音原理 (15)3.2.2 计算举例 (15)3.2.3 计算结果 (15)3.3程序设计 (17)3.3.1 判断音阶(高中低音)子程序 (17)3.3.2 播放子程序(包括自动播放存储音乐和按键发音) (18)4. PROTEUS软件仿真 (20)4.1硬件调试 (20)4.2软件调试 (20)4.3仿真结果(任举一例) (21)4.4结果分析 (21)5. 课程设计体会 (22)参考文献 (23)附1 源程序代码 (24)附2 系统原理图 (33)1.概述1.1设计背景随着电子科学技术的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们带来更多的生活乐趣。
基于51单片机的16键电子琴课程设计报告
单片机原理及系统课程设计:自动化班级:姓名:学号:指导教师:兰州交通大学自动化与电气工程学院2015 年 12 月 30 日基于单片机的16键电子琴一、电子琴设计的目的、要求与设计方法1。
1设计目的现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合.电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。
1。
2设计要求本设计主要是用AT89C52单片机为核心控制元件,设计一个微缩版的电子琴。
单片机与按键构成主控制模块,在主控制模块上设置有9个按键,分别达成不同目标。
本系统主要为了完成电子琴的三大功能:电子琴弹奏和音乐播放及录音.1。
3电子琴设计方法1.3。
1设计工具表1软件简介(1)功能按键触发外部中断,以完成不同曲目的的切换。
(2)设置定时器产生不同频率的方波,I/O口输出,经功放后扬声器发声。
(3)采用4×4矩阵键盘弹奏16个音(低XI到高DO)。
二、电子琴的设计方案及原理22。
1设计总体方案本系统采用AT89C52为主控芯片。
输入电路有16个琴键按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。
1个音乐按键用于播放音乐和切换歌曲,通过按键触发中断,重置定时器初值,于另一个扬声器中发出有效音响。
总设计框图如下图1所示.图1基于单片机的电子琴电路原理框图2。
2发声原理利用AT89C52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs =956,每计数956次时将I/O 反相,就可得到中音DO (523Hz )。
基于51单片机的DS18B20温度检测_设计报告
课程名称:微机原理课程设计题目:温度检测课程设计随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的温度检测仪。
本设计使用简便,功能丰富。
可以实现温度采集,温度报警,重设上下限温度值等功能。
在现代化的工业生产中,需要对周围环境的温度进行检测和控制。
本设计对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过数码管显示的系统。
该系统使用STC89C51单片机,同时运用单线数字温度传感器DS18B20,四位共阴数码管显示,按键控制等模块可实现温度的检测与设置。
课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。
本作品使用四位共阴数码管显示,可以清晰地显示当前的报警温度,一定程度避免使用者使用时出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,实用性很高。
关键字:温度报警器 STC89C51单片机数码管 DS18B20一、课程设计目的和要求 (1)1.1 设计目的 (1)1.2 设计要求 (1)二、总体设计方案 (1)三、硬件设计 (2)3.1 DS18B20传感器 (2)3.2 STC89C51功能介绍 (6)3.3 时钟电路 (8)3.4 复位电路 (8)3.5 LED显示系统电路 (9)3.6 按键控制电路 (11)3.7 蜂鸣器电路 (11)3.8 总体电路设计 (12)四、软件设计 (14)4.1 keil软件 (14)4.2 系统主程序设计 (14)4.3 系统子程序设计 (15)五、仿真与实现 (18)5.1 PROTEUS仿真软件 (18)5.2 STC-ISP程序烧录软件 (19)5.3 使用说明 (20)六、总结 (21)一、课程设计目的和要求1.1 设计目的熟悉典型51单片机,加深对51单片机课程的全面认识和掌握,对51单片机及其接口的应用作进一步的了解,掌握基于51单片机的系统设计的一般流程、方法和技巧,为我们解决工程实际问题打下坚实的基础。
单片机设计报告-基于51单片机的简易计算器设计
现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。
图2-2 MCS-51系列单片机引脚及总线结构
(a)管脚图;(b)引脚功能分类
MCS-51系列单片机的40个引脚中有2个专用于主电源的引脚,2个外接晶体的引脚,4个控制或与其他电源复用的引脚,以及32条输入输出I/O引脚。
2
MCS-51系列单片机的中断系统属于8位单片机中功能较强的1种中断系统,它可以提供5个中断源,每个中断源有两个优先级别可供选择,可实现两级中断服务程序嵌套。此外,所有中断均可有软件设定为允许中断或禁止中断,也就是说,用户可以用关中断指令(或复位)来屏蔽所有的中断请求,也可以中断指令使CPU接受中断请求。MCS-51单片机的中断系统结构示意图如图2-3所示。
MCS-51单片机内带有两个16位定时/计数器T0和T1,两者均可作为定时器或计数器使用。
2.5
MCS-51系列单片机芯片均为40个引脚,HMOS工艺制造的芯片采用双列直插(DIP)方式封装,其引脚示意及功能分类如图2-2所示。CMOS工艺制造的低功耗芯片也有采用方形封装的,但为44个引脚,其中4个引脚是不使用的。
2.3 程序存储器(ROM)
计算机的工作是按照事先编制好的程序命令一条条循序执行的,程序存储器就是用来存放这些已编好的程序和表格常数,它由只读存储器ROM或EPROM组成。计算机为了有序的工作设置了一个专用寄存器——程序计数器PC,用以存放将要执行的指令系统。每取出指令的1个字节后,其内容自行加1,指向下一字节地址,依次使计算机从程序存储器取指令执行,完成某种程序操作。由于MCS-51单片机的程序计数器为16位,因此,可寻址的地址空间为64KB。与此相对应得程序存储器编址从0000H开始,最大可至FFFFH。
基于51单片机的数字秒表课程设计、毕业设计论文
单片机课程设计报告基于51单片机的数字秒表设计专业:通信工程学号:11100640225姓名:罗宏时间:2014-6-26目录一、课程名称 (1)二、设计目的和意义 (1)三、任务要求 (1)四、任务分析、设计方案 (1)五、具体实现过程 (9)六、仿真、实验验证过程及实现结果、现象 (12)七、结论 (14)八、总结与体会 (14)一、课题名称基于51单片的数字秒表设计二、目的和意义1、通过本次课程设计可以灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到电路搭建焊接,再到软件编程及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。
2、本次课程设计还可以通过上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。
3、在这次课程设计中,我们运用到了很多一切所学的知识和一些很有用的软件和工具,如keil4编程软件、Proteus仿真软件、Visio软件、等。
4、通过独立完成一个小的数字秒表系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。
5、掌握51单片机软件编程知识、实现功能、设计方法,及KEIL软件使用方法;6、应用所学模拟电子线路的知识,掌握电路的设计与应用;7、熟悉PROTEUS的设计与仿真;8、STC——ISP的使用方法;9、掌握焊接电子元器件的方法以及查阅元件功能与参数的方法、步骤。
三、设计目标或任务要求1 、设计目标以单片机为核心,设计数字秒表。
通过硬件电路设计,软件设计,电路搭建,作品调试。
最后完成本次课程设计。
2 、设计要求1、计时范围:0~59分59.59秒,整数四位数和小数两位数显示;2、计时精度10毫秒;3、复位按钮,计时器清零,并做好下次及时准备;4、可以对三个对象(A、B)计时,具有启/停控制;5、设开始、停止A、停止B、显示A、显示B、复位按钮。
基于51单片机的音乐盒课程设计开题报告精品
基于51 单片机的音乐盒设计开题报告内容课程设计目的利用单片机,根据它的原理制作音乐盒播放音乐课程设计内容1、以单片机为核心部件组成一个音乐盒2、利用单片机的定时器产生乐谱的各种频率方波,信号进过放大电路后由蜂鸣器发出声音3、定义几个按键,能满足相应的播放、停止控制音乐的播放主要内容有:1、基本原理2、设计方案3、课题实施计划4、问题重点难点基本原理1、一首完整的歌曲往往是由音调和节拍组成音调主要就是有声音的频率决定的节拍,让音乐具有旋律并且可以调节各个音的快慢度2、歌曲的音符怎样在单片机中得以实现,必然成为首先要解决的问题3、对于单片机来说,产生不同频率的脉冲是很容易实现的,利用单片机的定时、计数器来4、产生这样的方波频率信号。
需要弄清楚音乐中音符和对应的频率,以及单片机定时计数的关系5、要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。
利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O 反相,然后重复计时此半周期时间再对I/O 反相,就可在I/O 脚上得到此频率的脉冲。
6、利用AT89C51 的内部定时器使其工作在计数器模式MODE1 下,改变计数值TH0 及TL0 以产生不同频率,这样就可以利用不同频率的组合,加以与拍数对应的延迟,构成音乐1、设计方案图2、音乐播放器的基本硬件电路有六部分组成:单片机、时钟与复位电路、选择按键输入电路、音频发生器、音频放大器和扬声器3、单片机对某一引脚以一定的频率循环置 1 置0,该引脚便产生一定频率的方波,方波通过放大,作用于蜂鸣器,就产生了一定频率的声音。
若改变输出方波的频率,产生的声音随之改变。
通过控制输出方波的时间长短,声音的长短也可以得到控制,因此,根据乐谱,以类似的音及同样的节拍,单片机就可以产生电子音乐。
4、方波的产生由定时器控制。
定时器T0 工作在定时方式1,改变TH0 及TL0 ,产生不同的音频频率。
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告引言:计算器是现代社会中常见的电子设备之一,它能够帮助人们进行各种数学运算,提高计算效率。
本文将介绍基于51单片机的简易计算器的设计过程及实现方法。
一、设计目标本次设计的目标是实现一个简易计算器,能够进行基本的加减乘除运算,并能够显示计算结果。
通过该设计,旨在加深学生对51单片机的理解,培养其实际操作能力。
二、硬件设计1. 电源模块:采用稳压电源模块,提供稳定的电压给单片机及其他电路模块。
2. 单片机模块:采用51单片机,作为计算器的核心控制模块,负责接收按键输入、进行运算和显示结果。
3. 按键模块:设计合适的按键电路,用于输入数字和操作符。
4. 显示模块:采用数码管或液晶显示屏,显示计算结果。
5. 连接线:将各个模块连接起来,确保信号的传输畅通。
三、软件设计1. 初始化:设置单片机的工作模式、端口方向和初始状态。
2. 按键扫描:通过轮询的方式检测按键是否被按下,若有按键按下则进行相应的处理。
3. 输入处理:根据按键的顺序和操作符的位置进行输入的处理,将输入的数字和操作符分别存储在相应的变量中。
4. 运算处理:根据输入的操作符进行相应的运算,得出计算结果。
5. 结果显示:将计算结果通过数码管或液晶显示屏进行显示。
6. 清零处理:在计算结果显示完毕后,对相关的变量进行清零处理,以便进行下一次的计算。
四、功能实现1. 加法运算:通过按下"+"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。
2. 减法运算:通过按下"-"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。
3. 乘法运算:通过按下"*"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。
基于51单片机八路抢答器课程设计
基于51单片机八路抢答器课程设计一、引言在现代教育中,抢答器作为一种教学辅助工具经常被用于进行课堂互动和知识点检测。
本课程设计旨在基于51单片机设计一个八路抢答器,通过硬件电路和软件程序的配合,实现对答题速度的测量和抢答器的控制。
二、实验目的1.熟悉并掌握51单片机的基本原理和编程方法;2.学会使用按键、LED等外设控制电路进行实验设计;3.理解抢答器的工作原理,掌握测量答题速度的方法;4.实际动手设计并制作一个八路抢答器。
三、实验原理3.1 51单片机基本原理51单片机是一种常见的单片机,具有低功耗、低成本和强大的功能特点。
它通过内部的CPU、存储器、I/O口等组成,可以实现各种控制任务。
在本次实验中,我们将使用51单片机来控制八路抢答器的功能。
3.2 抢答器的原理八路抢答器的原理是基于51单片机和按键、LED等外设的配合实现的。
抢答器中的每个按键对应一个LED灯,当某个按键被按下时,对应的LED灯会亮起。
同时,51单片机会记录下按键按下的时间,用于测量答题速度。
抢答器的控制逻辑可以通过编程实现。
四、实验步骤4.1 硬件电路设计1.连接51单片机与按键、LED等外设,确保电路连接正确;2.按照抢答器的八路设计,为每个按键连接一个LED灯;3.确保电路的供电正常,能够正常控制LED灯的亮灭。
4.2 软件程序设计1.编写51单片机的控制程序,实现按键与LED灯的互动;2.程序中需要包括按键检测、LED亮灭控制和答题速度记录等功能;3.调试程序,确保各个功能正常运行;4.将程序下载到51单片机中,进行全面测试。
五、实验结果5.1 硬件电路测试1.针对每个按键依次按下,观察对应的LED灯是否亮起;2.测试按键按下时的按键反馈是否正常;3.检查电路连接是否稳定,无松动情况。
5.2 软件程序测试1.模拟按键按下,观察对应的LED灯是否亮起;2.检查答题速度记录功能是否正常;3.检查程序逻辑是否正确,没有出现死循环等异常情况。
基于51单片机简易计算器课程设计报告(一)
基于51单片机简易计算器课程设计报告(一)基于51单片机简易计算器课程设计报告1. 介绍在本次课程设计中,我设计了一个基于51单片机的简易计算器。
本报告将会详细介绍该计算器的设计思路、功能实现以及课程设计中遇到的问题与解决方法。
2. 设计思路功能需求•支持基本的加、减、乘、除运算•具备数字输入与显示功能•具备清零和等于功能•具备连续计算功能硬件设计本计算器的硬件设计主要包括51单片机、LCD显示模块以及按键输入模块。
其中,51单片机负责控制计算器的逻辑,LCD显示模块用于显示计算结果和用户输入,按键输入模块用于接收用户的输入。
软件设计计算器的软件设计主要分为以下几个部分: - 初始化:初始化51单片机、LCD模块以及按键模块。
- 按键扫描:通过扫描按键模块,获取用户的输入。
- 数字输入与显示:根据用户输入,将数字显示在LCD上。
- 运算逻辑:根据用户输入的运算符和数字,执行相应的计算操作,并将结果显示在LCD上。
3. 功能实现初始化在初始化阶段,我们需要初始化51单片机的GPIO口、LCD模块以及按键模块。
具体的初始化代码如下:// 初始化51单片机的GPIO口// 初始化LCD模块// 初始化按键模块按键扫描为了获取用户的输入,我们需要通过按键模块进行扫描。
具体的按键扫描代码如下:// 扫描按键模块// 如果检测到按键按下,则进行相应的处理数字输入与显示当用户按下数字键时,我们将获取到的数字输入缓存起来,并将其显示在LCD上。
具体的数字输入与显示代码如下:// 获取按键输入的数字// 将数字添加到输入缓存// 将输入缓存显示在LCD上运算逻辑当用户按下运算符键时,我们需要根据输入的数字和运算符执行相应的计算操作,并将结果显示在LCD上。
具体的运算逻辑代码如下:// 获取运算符输入// 根据运算符和输入的数字执行相应的计算操作// 将计算结果显示在LCD上清零和等于功能为了提升用户体验,我们还可以添加清零和等于功能。
基于-51单片机课程设计报告
单片机课程设计课题:基于51单片机的交通灯设计基于51单片机数字温度计设计报告一、设计目的作用本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,,四位共阴极数码管一个,电容电阻若干。
DS18B20支持“一线总线”接口,测量温度范围-55°C~+125°C。
在-10~+85°C范围内,精度为±0.5°C。
18B20的精度较差,为± 2°C 。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。
主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。
测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。
二、设计要求(1).利用DS18B20传感器实时检测温度并显示。
(2).利用数码管实时显示温度。
(3).当温度超过或者低于设定值时蜂鸣器报警,LED闪烁指示。
(4).能够手动设置上限和下限报警温度。
三、设计的具体实现1、系统概述方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
方案设计框图如下:方案二:考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
51单片机的课程设计
51单片机的课程设计一、课程目标知识目标:1. 理解51单片机的硬件结构,掌握其工作原理;2. 学会使用51单片机的开发环境,掌握基本的编程语法和技巧;3. 掌握51单片机中断、定时器、串行通信等模块的应用;4. 了解51单片机在嵌入式系统中的应用,培养对单片机应用场景的认识。
技能目标:1. 能够独立设计简单的51单片机程序,完成基础的控制任务;2. 能够运用51单片机解决实际问题,具备一定的编程调试能力;3. 能够阅读和分析51单片机的相关资料,提高自学能力和技术文献阅读能力。
情感态度价值观目标:1. 培养学生对单片机技术的兴趣,激发学生探索嵌入式领域的热情;2. 培养学生的团队合作意识,提高沟通与协作能力;3. 引导学生关注我国单片机技术的发展,增强学生的民族自豪感;4. 培养学生严谨、细致、负责的学习态度,养成良好的编程习惯。
课程性质:本课程为实践性较强的学科,旨在通过51单片机的学习,让学生掌握基本的单片机原理和编程技能,培养实际操作和解决问题的能力。
学生特点:学生具备一定的电子基础和编程基础,对单片机有一定了解,但实践经验不足。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,以实例教学为主,培养学生动手实践能力。
同时,关注学生的情感态度价值观培养,激发学生的学习兴趣和探究欲望。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 51单片机硬件结构:介绍51单片机的内部结构、引脚功能、工作原理等,结合教材第二章内容进行讲解。
- 微控制器原理- 51单片机引脚功能- 时钟与复位电路2. 开发环境与编程工具:学习51单片机的开发环境搭建,掌握编程工具的使用。
- Keil C51集成开发环境安装与配置- 51单片机程序编写、编译与下载3. 51单片机编程语言:学习单片机C语言编程基础,掌握基本语法和编程技巧。
- C语言基础语法- 特定寄存器的操作与编程4. 中断与定时器:学习中断系统、定时器的工作原理和应用实例。
51单片机课程设计报告
51单片机实做课课程设计报告学院:专业班级:学号:姓名:指导教师:设计时间:目录一、设计任务与要求 (3)1.1、概述 (3)1.2、 STC89C52介绍 (3)1.3、引脚功能说明 (4)二、总原理图及元器件清单 (5)2.1、总原理图: (5)2.2、显示部分 (5)2.3、声音部分 (6)2.4、按键部分 (6)2.5、继电器 (7)三、模块电路分析 (7)3.1、硬件模块 (7)3.2、单片机控制系统及基本电路 (8)3.3、按键控制模块 (9)3.4、LED显示模块 (10)3.5、交通灯显示模块 (10)3.6、串口通信模块 (11)3.7、继电器 (11)四、调试及结论 (12)4.1 单元调试 (12)4.2 整体调试 (13)五、实验结果 (14)5.1、PCB图 (14)5.2、布线图 (14)5.3、封装结果图 (15)六、心得体会 (15)七、参考文献 (16)一、设计任务与要求1.1、概述通过交通灯的课程设计,将理论知识和实际操作结合起来,熟悉STC89C52的工作原理,设计出符合要求的交通灯。
利用按键控制数码管时间的显示,实现计时和倒数、显示、调节的基本功能。
利用汇编语言编写程序,熟悉掌握汇编语言的编写,提高动手和思维能力,知道交通灯是怎样运行的,与现实生活相贴切。
1.2、 STC89C52介绍·与MCS-51 兼容·8K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·256*8位内部RAM·32可编程I/O线·三个定时器/计数器·6个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路1.3、引脚功能说明(1).电源引脚Vcc(40脚):典型值+5V。
基于51单片机的课程设计
摘要 (2)第1章概述 (3)1.1ADC0832调节频率输入实现的意义 (3)第2章频率计实现的理论分析 (3)2.1ADC0832调节频率输出的基本结构和原理 (3)第3章单片机基础与芯片使用 (4)3.1单片机介绍 (4)3.2ADC0832介绍和时序使用 (7)第4章系统方案设计及实现 (11)4.1单片机选取 (11)4.2系统硬件结构图 (13)4.3各模块的实现 (13)4.4软件的实现 (15)4.5功能调试 (24)结束语 (26)参考文献 (27)致谢 (28)“ADC0832控制频率输出”实质上是运用可调电阻反馈电压模拟量输入到ADC0832中输出数字量。
应用数字量填充单片机定时器初值,可产生中断从而实现电平转换,接到示波器上可观察方波的输出,由数码管直观的看出电平变化频率。
设计的关键在于数模转换,这个由ADC0832来实现,所以可以比较容易得到一个可控制的频率计。
本文以单片机的实际应用为背景,介绍了以单片机为核心ADC0832控制频率输出设计的基本结构和基本原理。
关键词:单片机;ADC0832;数模转换Abstract"ADC0832 control frequency output" is actually using the adjustable resistorfeedback analog voltage input to the ADC0832 digital output. Application ofdigital single-chip timer initial filling, can generate an interrupt to realize the conversion level, received the oscilloscope can observe Fang Bo's output, by the digital tube directly see level change frequency. The key lies in the design of digital to analog conversion, this is implemented by ADC0832, so it can be easily obtained a controlled frequency meter.Based on the background of the practical application of SCM, SCM introduced to the basic structure of frequency output control design of the core and basic principle of ADC0832.Keyword: MCU; ADC0832; digital to analog conversion第1章概述1.1 ADC0832调节频率输入实现的意义应用ADC0832和可调电阻,由可调电阻反馈电压模拟量输入到中输出数字量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计课题:基于51单片机的交通灯设计专业:机械设计制造及其自动化学号:指导教师:邵添设计日期:2017/12/18成绩:大学城市科技学院电气学院基于51单片机数字温度计设计报告一、设计目的作用本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,,四位共阴极数码管一个,电容电阻若干。
DS18B20支持“一线总线”接口,测量温度围-55°C~+125°C。
在-10~+85°C围,精度为±0.5°C。
18B20的精度较差,为±2°C 。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。
主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。
测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。
二、设计要求(1).利用DS18B20传感器实时检测温度并显示。
(2).利用数码管实时显示温度。
(3).当温度超过或者低于设定值时蜂鸣器报警,LED闪烁指示。
(4).能够手动设置上限和下限报警温度。
三、设计的具体实现1、系统概述方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
方案设计框图如下:方案二:考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
2、单元电路设计与分析1、硬件设计按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。
数字温度计总体电路结构框图所示:单片机的选择单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
由于器件问题,我们使用了通用的手机5V充电器接口。
复位电路模块单片机系统的复位电路在这里使用的是上电+按钮的复位电路模式,其中电阻R采用的是10KΩ的阻值,电容采用电容值为10uF的电解电容,电路图如下:温度显示模块四位共阴极数码管,能够显示小数。
列扫描用P2.4~P2.7口来实现,列驱动直接51接单片机驱动。
电路图如下:温度传感器模块DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
电路图如下:按键模块按键是用来设置报警的上下限温。
K1是用来进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限调节模式。
在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除按键音,再按一下启动按键音。
在调节上下限温度模式下,K2是实现加1功能,K1是实现减1功能,K3是用来设定上下限温度正负的。
2、软件设计主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等。
主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。
温度测量每1S进行一次。
主流程图如下:读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节。
在读出时须进行CRC 校验,校验有错时不进行温度数据的改写。
流程图如下:温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令。
当采用12位分辨率时,转换时间约为750ms。
在本程序设计中,采用1s显示程序延时法等待转换的完成。
流程图如下:显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。
系统的调试及性能分析:硬件调试,首先检查电感的焊接是否正确,然后可用万用表测试或通电检测。
软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等的编程及调试由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。
本程序采用单片机汇编或C语言编写用Keil C51编译器编程调试。
软件调试到能显示温度值,并且在有温度变化时显示温度能改变,就基本完成。
性能测试可用制作的温度计和已有的成品温度计同时进行测量比较。
由于DS18B20的精度很高,所以误差指标可以限制在0.5℃以。
另外,-55~+125℃的测温围使得该温度计完全适合一般的应用场合,其低电压供电特性可做成用电池供电的手持温度计。
四、总结本次的课程设计使我们进一步巩固了书本上的知识,做到了学以致用。
这是我们第二次自己动手设计的电路,通过系统仿真软件Proteus和编译软件Keil,使我们进一步了解了单片机的设计制作过程,其中最为困难的是软件部分,即编程部分,我们上网找了好多资料,虽然经过自己的修改,但还是有很多功能不能实现,如温度上下限设置。
由于Proteus并不是很熟练,在使用的过程中有很多原件的名称不知道,从而花费了大量的时间在网上查找,今后应该在这方面多多努力。
最后一步的焊接硬件也遇到了不少麻烦。
总结经验的时候我们得出这样的结论,学习应该学以致用,有目的的去学习,如果学了不用等于没学。
其次,要学以致用,理论联系实际,这样才会取得事半功倍的效果。
五、附录附录一:元件清单附录二:完整电路原理图附录三:焊接实物图附录四:源程序/********************************************************************* 程序名; 基于51单片机的温度计* 功能:实时测量温度,超过上下限报警,报警温度可手动调整。
K1是用来* 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限* 调节模式。
在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动* 退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除* 按键音,再按一下启动按键音。
在调节上下限温度模式下,K2是实现加1功能,* K1是实现减1功能,K3是用来设定上下限温度正负的。
* 编程者:明闯* 编程时间:2014/05/30*********************************************************************/#include<reg52.h>#include<intrins.h> //将intrins.h头文件包含到主程序(调用其中的_nop_()空操作函数延时)#define uint unsigned int#define uchar unsigned charuchar max=0x00,min=0x00; //max是上限报警温度,min是下限报警温度bit s=0; //s是调整上下限温度时温度闪烁的标志位,s=0不显示200ms,s=1显示1s左右bit s1=0; //s1标志位用于上下限查看时的显示void display1(uint z); //声明display1()函数(display.h头文件中的函数,ds18b20.h要用应先声明)#include"ds18b20.h"#include"keyscan.h"#include"display.h"/******************************************************//* 主函数//*****************************************************/void main(){beer=1; //关闭蜂鸣器led=1; //关闭LED灯timer1_init(0); //初始化定时器1(未启动定时器1)get_temperature(1); //首次启动DS18B20获取温度(DS18B20上电后自动将EEPROM中的上下限温度复制到TH和TL寄存器)while(1){keyscan();get_temperature(0);display(temp,temp_d*0.625);alarm();}}/********************************************************************* 程序名; DS18B20头文件* 编程者:明闯* 编程时间:2014/5/30* 说明:用到的全局变量是:无符号字符型变量temp(测得的温度整数部分),temp_d* (测得的温度小数部分),标志位f(测量温度的标志位‘0’表示“正温度”‘1’表* 示“负温度”),标志位f_max(上限温度的标志位‘0’表示“正温度”、‘1’表* 示“负温度”),标志位f_min(下限温度的标志位‘0’表示“正温度”、‘1’表* 示“负温度”),标志位w(报警标志位‘1’启动报警‘0’关闭报警)。
*********************************************************************/#ifndef __ds18b20_h__ //定义头文件#define __ds18b20_h__#define uint unsigned int#define uchar unsigned charsbit DQ= P2^3; //DS18B20接口sbit beer=P1^0; //用beer表示P1.0sbit led=P1^1; //用led表示P1.1uchar temp=0; //测量温度的整数部分uchartemp_d=0; //测量温度的小数部分bit f=0; //测量温度的标志位,0’表示“正温度”‘1’表示“负温度”)bit f_max=0; //上限温度的标志位‘0’表示“正温度”‘1’表示“负温度”)bit f_min=0; //下限温度的标志位‘0’表示“正温度”、‘1’表示“负温度”)bit w=0; //报警标志位‘1’启动报警‘0’关闭报警/******************************************************//* 延时子函数//*****************************************************/void ds18b20_delayus(uint t) //延时几μs{while(t--);}void ds18b20_delayms(uint t) //延时1ms左右{uinti,j;for(i=t;i>0;i--)for(j=120;j>0;j--);}/******************************************************//* DS18B20初始化函数//*****************************************************/void ds18b20_init(){uchar c=0;DQ=1;DQ=0; //控制器向DS18B20发低电平脉冲ds18b20_delayus(80); //延时15-80μsDQ=1; //控制器拉高总线,while(DQ); //等待DS18B20拉低总线,在60-240μs之间ds18b20_delayus(150); //延时,等待上拉电阻拉高总线DQ=1; //拉高数据线,准备数据传输;}/******************************************************//* DS18B20字节读函数//*****************************************************/uchar ds18b20_read(){uchari;uchar d=0;DQ = 1; //准备读;for(i=8;i>0;i--){d >>= 1; //低位先发;DQ = 0;_nop_();_nop_();DQ = 1; //必须写1,否则读出来的将是不预期的数据;if(DQ) //在12us处读取数据;d |= 0x80;ds18b20_delayus(10);}return d; //返回读取的值}/******************************************************//* DS18B20字节写函数//*****************************************************/ void ds18b20_write(uchar d){uchari;for(i=8;i>0;i--){DQ=0;DQ=d&0x01;ds18b20_delayus(5);DQ=1;d >>= 1;}}/******************************************************//* 获取温度函数//*****************************************************/void get_temperature(bit flag){uchar a=0,b=0,c=0,d=0;uinti;ds18b20_init();ds18b20_write(0xcc); //向DS18B20发跳过读ROM命令ds18b20_write(0x44); //写启动DS18B20进行温度转换命令,转换结果存入部RAMif(flag==1){ //首次启动DS18B20进行温度转换需要500ms,若转换时间不够就出错,读出的是85度的错误值。