单片机综合设计报告

合集下载

单片机综合应用实训报告

单片机综合应用实训报告

一、实训背景与目的随着科技的不断发展,单片机作为嵌入式系统中的核心部件,其在各个领域的应用日益广泛。

为了提高学生的实践能力,培养其动手操作和问题解决能力,本次实训以单片机为平台,通过综合应用实训,使学生深入了解单片机的工作原理,掌握单片机的编程技巧,并能将其应用于实际项目中。

二、实训内容与步骤本次实训内容主要包括以下几个方面:1. 单片机基础原理- 了解单片机的结构、工作原理及常用接口。

- 学习51单片机的指令系统、寄存器及中断系统。

2. 单片机编程- 掌握Keil uVision软件的使用,进行C51语言编程。

- 学习编写简单的单片机程序,如LED流水灯、按键控制等。

3. 单片机硬件电路- 学习绘制电路原理图,了解电路元器件的选用和焊接工艺。

- 实践搭建单片机最小系统,并进行调试。

4. 单片机综合应用- 设计并实现一个基于单片机的交通灯控制系统。

- 设计并实现一个基于单片机的数字时钟显示系统。

三、实训过程与结果1. 单片机基础原理学习- 通过阅读教材、查阅资料,了解单片机的基本知识。

- 在实验室进行实验,验证单片机的基本功能。

2. 单片机编程实践- 使用Keil uVision软件,编写LED流水灯程序,实现LED灯的闪烁效果。

- 编写按键控制程序,实现按键的读取和响应。

3. 单片机硬件电路搭建- 使用Protel软件绘制电路原理图,确定元器件型号和数量。

- 搭建单片机最小系统,包括电源电路、晶振电路、复位电路等。

- 使用焊接工具进行元器件焊接,并进行调试。

4. 单片机综合应用实现- 设计并实现交通灯控制系统,实现红黄绿灯的定时切换和倒计时功能。

- 设计并实现数字时钟显示系统,实现时分秒的显示和调整。

四、实训总结与收获通过本次实训,我收获颇丰:1. 加深了对单片机原理的理解- 通过理论学习、实验操作和项目实践,我对单片机的结构、工作原理和编程方法有了更深入的了解。

2. 提高了编程能力- 通过编写LED流水灯、按键控制等程序,我掌握了C51语言编程技巧,提高了编程能力。

单片机实训报告【三篇】

单片机实训报告【三篇】

【导语】实训报告是展⽰⾃⾝实训收获成长的重要报告。

以下是⽆忧考整理的单⽚机实训报告,欢迎阅读!更多相关⽂章请关注⽆忧考报告频道!单⽚机实训报告篇⼀ 通过为期⼀周的单⽚机实训,是我们对这门课有了许多新的了解,弥补了在课堂上学习的不⾜。

相信这对我们以后的学习和⼯作都会有很⼤的帮助。

我们⼀定要在最短的时间⾥对这些不⾜加以改正! ⾸先,在这次试训中我被单⽚机强⼤的功能所震撼,以前在课堂上完全没有能理解可编程单⽚机的优越性。

这次通过实体仿真软件等辅助软件的共同效果,是这次试训有了鲜明的活⼒。

换是我们认识到这次试训不仅仅是⼀个软件的应⽤,更多的是使我们认识到学习到很多在课堂上⽆法得到的东西。

特别是protues软件的功能是我们了解了当今开发系统的新⽅向,简直太不可思议啦! 单⽚机作为⼀种最简单的软件,与我们的⽇常⽣活息息相关,了解⼀些单⽚机程序的简单录⼊是⾮常必要的。

如:LED显⽰器、键盘和显⽰器的应⽤和原理。

在被刺实训中我们每个⼈通过⼀个⼋位流⽔灯的制作,使我们深深地体会到了单⽚机在现实⽣活中的⼩⼩应⽤,既增强了我们的好奇⼼,⼜巩固了我们的理论知识。

更让我们体会到了单⽚机⼿动的开始平台的完善与成熟。

只要你有想法,单⽚机就有可能让他成为现实。

这⾥我学习完protues软件后的第⼀感觉是,虽然这软件⼯作不稳定,但是会有相当不错的效果出来。

这对我以后的⼯作⼀定会有帮助的。

在这次试训中不仅只对单⽚机编程有了新的认识,还对整个单⽚机的开发平台都有了⼀厅的了解,这是⼀笔不错的收获。

通过这⼏天的试训,使我的感触很深,真实“条条⼤路通罗马”,要达到⽬的,不同的⼈就有不同的⽅法。

只要你的⽅法不错!五花⼋门都可以,⽽且是各有特⾊。

⾛出来的结果都有各⾃的独到之处。

在编程中“简”字贯穿于整个程序设计中,越简单越好,毕竟单⽚机留给⽤户的资源是有限的,所以我们要充分利⽤这些资源,达到更好的效果,这些是我们在以后的学习⽣活中应值得注意的地⽅。

单片机 课程设计报告(完成版)

单片机  课程设计报告(完成版)

单片机课程设计报告
题目:音乐门铃
院系:电气信息工程系专业:通信工程
组长:吴楠学号: 20100606019
组员 1 :刘静静学号: 20100606017
组员 2 :张琳娜学号: 20100606018
组员 3 :李元学号: 20100606020
组员 4 :黄智鑫学号: 20100606049
组员 5 :学号:
组员 6 :学号:
指导教师:李宁
2011年01月06日
电气信息工程系课程设计总结报告
PCB原理图
电气信息工程系
单片机课程设计元器件清单指导教师:李宁课题名称:音乐门铃
参考文献:
[1]徐爱钧.单片机原理实用教程[M].北京:电子工业出版社,2009:267-285.
[2]刘焕平.单片机原理及应用[M].北京:北京邮电大学出版社,2008:246-260.
[3]刘南平.单片机实训与开发教程[M].北京:科学出版社,2008:199-209.
[4]吴金戌.8051单片机实践与应用[M].北京:清华大学出版社,2002:242-253.
[5]刘海成.单片机及应用系统设计原理与实践[M].北京:北京航空航天大学出版社,2009:273-281.
[6]杨振江.单片机应用于实践指导[M].西安:西安电子科技大学出版社,2010:378-380.。

单片机的设计报告

单片机的设计报告

单片机的设计报告一、设计概述本设计报告主要围绕单片机的设计和实现展开。

单片机的应用广泛,具有集成度高、体积小、可靠性高、功耗低等优点,被广泛应用于智能控制、数据采集、通信、家电等领域。

本报告将详细介绍单片机设计的全过程,包括需求分析、硬件平台选择、软件平台搭建、系统设计、算法与实现、测试与验证、优化与改进等方面。

二、需求分析在单片机设计之前,需要进行详细的需求分析。

根据实际应用需求,确定单片机需要实现的功能,如输入输出控制、数据采集、通信等。

同时,需要考虑单片机的性能指标,如处理速度、存储容量、功耗等。

通过需求分析,为后续的硬件和软件设计提供依据。

三、硬件平台在硬件平台方面,需要根据需求分析选择合适的单片机型号。

单片机的选型需要考虑其性能、功能、开发环境等因素。

在硬件设计过程中,还需要根据单片机的引脚配置和资源情况,设计合适的电路板,以满足实际应用需求。

四、软件平台在软件平台方面,需要选择合适的开发工具和编程语言。

常用的单片机开发工具包括Keil、IAR等,这些工具提供了丰富的库函数和调试手段,方便开发者进行程序的编写和调试。

在编程语言方面,常用的有C语言和汇编语言,需要根据实际情况选择合适的编程语言。

五、系统设计在系统设计方面,需要根据实际需求和硬件平台,设计合适的系统架构。

系统架构需要考虑单片机的资源分配、数据处理流程、通信协议等方面。

同时,还需要设计合适的系统流程图和数据结构,以确保程序的正确性和可维护性。

六、算法与实现在算法与实现方面,需要根据实际需求和系统设计,选择合适的算法并进行实现。

在算法实现过程中,需要考虑单片机的性能和资源限制,以确保算法的可行性和可靠性。

同时,还需要对算法进行优化和改进,以提高系统的整体性能和稳定性。

七、测试与验证在测试与验证方面,需要搭建合适的测试平台对单片机进行测试和验证。

测试内容包括功能测试、性能测试、稳定性测试等。

在测试过程中,需要记录详细的测试数据并进行结果分析,以确保单片机满足实际应用需求。

单片机设计报告

单片机设计报告

单片机设计报告一、引言。

单片机是一种集成了微处理器、存储器、定时器、串行通信接口等功能于一体的微型计算机系统,广泛应用于各种电子设备中。

本报告旨在介绍单片机设计的基本原理、流程和应用,以及对单片机设计过程中的一些关键问题进行探讨。

二、单片机设计流程。

1. 确定需求,首先,需要明确单片机设计的具体需求,包括功能、性能、成本等方面的要求。

2. 硬件设计,根据需求,进行单片机硬件电路设计,包括选择合适的单片机型号、外围电路设计、PCB布局等。

3. 软件设计,编写单片机软件程序,包括程序框架设计、算法实现、调试等。

4. 联调测试,将硬件和软件进行联调测试,确保单片机系统的稳定性和可靠性。

5. 产品验证,对设计的单片机系统进行全面验证,包括功能验证、性能验证、可靠性验证等。

三、单片机设计关键问题探讨。

1. 单片机选型,在单片机设计过程中,选择合适的单片机型号是至关重要的一步,需要综合考虑性能、功耗、成本等因素。

2. 外围电路设计,外围电路设计直接影响到单片机系统的稳定性和可靠性,需要合理布局和精心设计。

3. 软件算法优化,在单片机设计过程中,软件算法的优化能够提高系统的性能和效率,需要不断优化和改进。

4. 系统集成测试,单片机系统集成测试是确保系统功能完整性和稳定性的关键环节,需要充分测试和验证。

四、单片机设计应用案例。

以智能家居控制系统为例,介绍单片机设计在实际应用中的具体案例。

智能家居控制系统利用单片机实现对家居设备的远程控制和监控,包括灯光控制、空调控制、安防监控等功能,极大地提高了家居生活的舒适性和便利性。

五、结论。

本报告介绍了单片机设计的基本流程、关键问题探讨和应用案例,通过对单片机设计的深入了解,可以更好地应用于实际工程中,提高单片机系统的设计和开发能力。

六、参考文献。

[1] 《单片机原理与应用》,XXX,XXX出版社,200X年。

[2] 《嵌入式系统设计与开发》,XXX,XXX出版社,200X年。

单片机计数器设计报告综述

单片机计数器设计报告综述

单片机计数器设计报告综述
单片机计数器设计是嵌入式系统开发中的基础技能之一,主要用于对外部事件或计时器计数进行监测和处理,实现系统对时间的精确控制。

本报告综述了单片机计数器设计中的基本理论和实践知识,包括计数器的基本概念、计数器类型、计数器的工作原理和应用场景,以及单片机计数器设计的步骤和注意事项等方面。

首先,本报告解释了计数器的基本概念,即在特定计时条件下,将输入脉冲信号转化为二进制计数输出的电子电路。

根据计数器的工作原理和计数方式不同,计数器可以分为同步计数器和异步计数器两种类型,其中同步计数器是在时钟脉冲的作用下实现的,异步计数器则是在输入脉冲的作用下实现的。

接下来,本报告介绍了计数器的工作原理和应用场景。

计数器通常由触发器、门电路和时钟信号等组成,主要用于对外部事件或计时器的计数和监测。

计数器应用广泛,包括在智能家居、数字化电子产品、测量仪器、工控系统等领域中的计数、计时、计量以及控制等方面。

在单片机计数器设计方面,本报告详细介绍了单片机计数器设计的步骤和注意事项。

其中,单片机计数器设计的步骤主要包括:选定计数器类型、确定输入脉冲频率和计数器的计数范围、编写计数器配置程序、进行计数器测试和调试等。

在单片机计数器设计过程中,需要考虑输入脉冲的稳定性、计数器的精度和稳定性、时钟信号的选择、输入电平和电压规范等因素,以确保计数器的可靠性和稳定性。

综上所述,单片机计数器设计对于嵌入式系统开发至关重要,需要深入理解计数器的基本概念、类型、工作原理和应用场景,同时掌握单片机计数器设计的步骤和注意事项,以提高嵌入式系统的计数和控制能力。

单片机实训报告范文精选5篇

单片机实训报告范文精选5篇实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?小编精选了一些关于实训报告的优秀范例,一起来看看吧。

单片机课程设计心得体会在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。

通过在单片机小组里的学习我简单总结了几点心得和体会:第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。

凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。

可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。

第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。

比如:小灯得点亮就没有用到中断可以先不用看。

这样可以避免知识过多记不住的麻烦。

对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。

第三:程序不要只是看别人得,一定要自己写过才是自己的。

开始不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。

明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。

当你自己能写出来的时候说明你真懂了。

第四:一定要学会程序调试的方法。

有时候把程序写完了然后运行时不能实现理想的现象。

这时有人就晕了不知该怎么办,然后就去问别人。

当别人找出问题出在哪里时就会恍然大悟。

其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。

自己一定要掌握解决问的方法和思路。

第五:在学习初期看别人的代码,学习别人的思路这个很有用。

通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。

也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。

单片机课程设计报告

单片机课程设计实验报告设计题目:基于单片机的多功能综合应用系统的设计专业:电子信息工程班级:姓名:指导老师:目录第一章设计说明1.1 设计目的 (3)1.2 设计内容及要求 (3)第二章硬件电路仿真实现2.1 硬件结构分析 (5)2.2基本功能仿真电图 (6)2.3扩展功能仿真电路图 (10)2.4 实物电路图 (15)第三章软件设计实现3.1软件程序内容 (16)3.2模块分析 (16)3.3 程序流程图 (17)第四章系统测试4.1 软件调试 (19)4.2硬件调试 (19)第五章心得体会 (20)第六章参考文献 (21)附录 (21)第一章设计说明1.1 设计目的单片机在许多领域使用十分广泛,如智能仪器仪表、实时工控、通讯设备、导航系统、家用电器等。

各科任老师们经常说“学好单片机,工作就不成问题了。

”可见学好单片意义之重大。

单片机作为一门基础学科,既是对前期学习C语言的综合运用,也是理论与实践相结合的一大体现。

本次课程设计通过基础部分,拓展功能以及整体电路的实现能很好地锻炼我们的动手及编程能力。

1.2 设计内容及要求内容:1.设计并实现具有复位功能的单片机小系统。

2.利用单片机进行灯光的场景开关控制、循环点亮控制、花样变化控制及速度变化控制(如:左右循环、扩散收缩式移动、流星雨、舞台灯光综合效果、名曲名句跟随显示等。

至少应做两项:前两项选一并有速度变化控制功能,后三项选一或自创特色花样)。

3. 炫彩音乐显示(依据3秒以上某名曲名句,模拟高、中、低音三分频,彩色LED随音频变化而起伏显示的效果,进一步地,LED 亮度跟随音乐响度闪烁)。

4.利用单片机进行灯光的色彩连续变化效果控制。

5.利用单片机进行灯光的三色联动定时控制(以交通灯为例)。

(说明:3、4中二选一,1、2、5必选)6. 配合2至5项中功能,实现液晶屏输出功能或状态信息。

7. 以调节5或4项中的时间为例实现基于4X4键盘的输入功能。

单片机原理及应用课程设计报告

培养实践能力和创新思维
课程设计为学生提供了一个实践平台,学生可以在实践中锻炼动手能力,培养解决实际问题的能力,同时通过创新思 维,设计出具有特色的单片机应用系统。
促进理论与实践相结合
单片机原理及应用课程设计将理论知识与实践操作相结合,使学生能够更好地理解单片机的实际应用场 景,加深对理论知识的理解。
时间安排
共计8周,每周5天, 每天8小时。
04
单片机应用实践
单片机外围电路设计
电源电路
为单片机提供稳定的电源,确 保单片机正常工作。
时钟电路
为单片机提供稳定的时钟信号 ,保证程序正常运行。
复位电路
在单片机出现异常时,能够实 现自动复位或手动复位。
输入输出接口
实现单片机与外部设备的通信 和控制。
单片机程序编写与调试
单片机的编程语言和开发环境
单片机的编程语言主要有汇编语言和C语言。汇编语言是一种低级语言,直接控制硬件操作,但编程 难度较大;C语言是一种高级语言,具有可读性强、易于编程和维护等优点。
单片机的开发环境是指用于编写、编译、调试和烧录程序的软件环境。常用的单片机开发环境有Keil 、IAR、SDCC等。这些开发环境都支持汇编语言和C语言编程,提供了丰富的库函数和调试工具,方 便开发者进行单片机应用开发。
• 解决方案
检查数码管的位选信号和段选信号是否正确连接。
对未来学习和实践的建议与展望
深入学习
进一步研究单片机的内部结构和工作原理,掌握 更多高级功能和应用。
实践应用
将所学知识应用到实际项目中,提高解决实际问 题的能力。
持续学习
关注单片机技术的最新发展动态,保持学习的持 续性。
THANKS
感谢观看

毕业设计单片机

毕业设计单片机毕业设计是大学生们在完成学业的最后一关,也是他们走向社会的一次全面考验。

在现代科技发展迅猛的时代背景下,单片机作为一种重要的嵌入式系统,已经被广泛应用于各个领域。

因此,选择单片机作为毕业设计的主题,既能够锻炼学生的动手能力,又能够培养其创新意识和解决问题的能力。

一、选题背景1. 单片机的应用前景单片机是一种集成电路,具有微型计算机的功能。

它小巧而成本低廉,广泛应用于家电、汽车、通信、医疗等领域。

随着科技的不断进步,单片机在未来的应用前景更加广阔。

2. 系统设计的需求现代的工业生产中,对系统设计有着更高的要求,需要设计师能够熟练掌握单片机的原理、应用和调试方法。

因此,毕业设计选择单片机作为主题,对学生的能力培养有着重要的意义。

二、设计目标本毕业设计的目标是设计并实现一个基于单片机的智能家居控制系统。

通过该系统,可以实现对室内照明、温度、湿度和安防等环境的智能控制和监测。

三、设计内容1. 硬件设计(1)选择合适的单片机型号,并进行外围电路的设计和焊接。

(2)设计传感器电路,包括温湿度传感器、照明传感器和红外传感器等。

(3)设计模块电路,包括继电器模块、报警模块和无线通信模块等。

2. 软件设计(1)学习并掌握单片机的编程语言和开发环境。

(2)设计控制算法和逻辑,实现智能家居系统的各项功能。

(3)编写程序并下载到单片机中,进行调试和测试。

3. 系统调试和优化(1)对硬件电路进行检测,确保各个模块正常工作。

(2)针对软件程序进行调试和优化,保证系统的稳定性和可靠性。

(3)对系统进行整合测试,修复存在的问题,确保系统的功能完备。

四、预期成果1. 功能实现本毕业设计旨在实现智能家居控制系统的基本功能,包括室内照明控制、温湿度监测、安防报警等。

同时,在设计中充分考虑扩展性和灵活性,以方便后续的功能扩展和升级。

2. 设计报告学生需要撰写一份详细的毕业设计报告,全面介绍设计思路、软硬件设计框架、实施过程和结果分析等内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机原理与应用实验实验报告温度采集上下限报警二、实验内容及要求利用DS18B20进行温度采集、将采集到的数据送给51单片机,并用51单片机通过CI2总线将采集到数据整数部分的8位温度值转换成十进制数送给ZLG7290B显示。

当温度值低于设定的上限温度值或者下限温度值时候,ZLG7290B显示的数值要闪烁。

三、设计方案①温度采集部分利用DS18B20采集,并通过芯片的编程对于操作顺序、流程,特别是对时序中的延时有着严格的要求,整个程序的重点在于GET_TEM子程序,所以认真分析程序的过程对于编程尤为重要。

②显示部分从DS18B20采集到整数温度值为二进制数值,考虑到DS18B20采集温度范围-55℃~+125℃,因此需要将得到的数值转化为BCD码存放在三个内存单元中。

而后进行查表,将待显示的三个数字转换为ZLG7290B能够对应显示的字形码。

最后送显示。

③温度值上下限报警在主程序中加入判断语句,程序段如下:CJNE A,#31,LL1 ;T≠31,转向LL1AJMP NSS ;T=31,转向不闪烁,闪烁LL1:JNC LL2;C=0,表明T>315CJNE A,#25,LL2;T≠2,转向LL2AJMP NSS ;T=25,转向不闪烁LL2:JC SS ;C=1,表明T<25,闪烁AJMP NSSSS: MOV 48H,#70H;置ZLG7290闪烁控制字MOV 49H,#07H SJMP NEXTNSS:MOV 48H,#70HMOV 49H,#00H;置ZLG7290闪烁控制字NEXT:MOV R7,#02HMOV R2,#07HMOV R0,#48HMOV R3,#WSLALCALL WRNBYT ;调子程序判断温度范围之后,通过对ZLG7290B送闪烁控制字方式,控制其是否闪烁。

①在DP-51PROC 实验仪上只需连接三条引线(SDA 、SCL 和/RST )分别与单片机的P1口连接即可,TLC549的电源、上拉电阻均已在实验仪上接好。

为了保证所有的C I 2实验程序中的子程序都具有通用性,就要保证C I 2外围器件的信号线采用完全一致的定义。

另外,为了保证ZLG7290B 芯片的正常工作,还应当将其悬空的/RST 引脚与单片机的一条口线相连接,通过程序的初始化部分先对ZLG72900B 进行一次复位操作,确保该芯片的正常工作。

②使用一条单线将DS18B20的DQ 线与单片机的P3.3连接,B4区内部连接已接好。

P1.0 P1.1 P1.7 P3.3实验连接图上拉电阻5K*2MCS-51SDASCL /RSTZLG7290B 8位数码管(共阴极)VDDC I 2总线 DS18B20VDDVDD4.7KDDGNDDQDQB4123五、实验程序流程图主程序 从DS18B20中读出数据(GET_TEMPER )主程序流程图转向闪烁转换读出的温度数据 (TEMPER_COV ) 存放在A 中写闪烁控制字 A>31?A<25?转向不闪烁 YYNN调DISP_7290显示延时DISP_7290 将A 中数据通过使用DIV 指令编程,转换成BCD 码 存放在40H~42HDISP_7290流程图对变量查表并送入 源数据块显示 缓冲区建立变量缓冲区 调DELAY 子程序调WRNBYT 写入数据到ZLG7290B 显示缓冲区 RET六、实验程序ORGTEMPER_L EQU 36H ;存放读出温度低位数据TEMPER_H EQU 35H ;存放读出温度高位数据TEMPER EQU 34H ;存放转换后的8位温度值TEMPER_NUM EQU 60H ;缓冲单元FLAG1 BIT 00HDQ BIT P3.3 ;一线总线控制端口SDA BIT P1.0SCL BIT P1.1WSLA EQU 070HRSLA EQU 071HORG 8000HLJMP MAINORG 8100HMAIN: ;MOV SP,#70HCLR P1.7 ;7290复位LCALL DELAYSETB P1.7LP1: LCALL GET_TEMPER ;从DS18B20读出温度数据LCALL TEMPER_COV ;转换读出的温度数据并保存MOV A,TEMPER;****************************************** *****;上下限报警CJNE A,#31,LL1 ;T≠31,转向LL1AJMP NSS ;T=31,转向不闪烁,闪烁LL1:JNC LL2 ;C=0,表明T>31CJNE A,#25,LL2 ;T≠25,转向LL2AJMP NSS ;T=25,转向不闪烁LL2:JC SS ;C=1,表明T<25,闪烁AJMP NSSSS: MOV 48H,#70H ;置ZLG7290闪烁控制字 MOV 49H,#07HSJMP NEXTNSS:MOV 48H,#70HMOV 49H,#00H ;置ZLG7290闪烁控制字NEXT:MOV R7,#02HMOV R2,#07HMOV R0,#48HMOV R3,#WSLALCALL WRNBYT ;调子程序;****************************************** *****LCALL DISP_7290SJMP LP1LED_SEG: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4HDB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH;****************************************** *****DISP_7290:TOBCD: MOV B,#100DIV ABMOV 42H,AMOV A,#10XCH A,BDIV ABMOV 41H,AMOV 40H,BMOV DPTR,#LED_SEG ;开始对变量查表CLR AMOV R7,#03HMOV R0,#20HMOV R1,#40HLO: MOV A,@R1MOVC A,@A+DPTR ;查表得对应的字型码MOV @R0,A ;送显示缓冲区INC R1INC R0DJNZ R7,LOMOV R7,#03H ;设定数据个数MOV R0,#20H ;设定源数据块首地址MOV R2,#10H ;设定外围器件内部寄存器首址MOV R3,#WSLA ;设定外围器件地址(写)LCALL WRNBYT ;调显示子程序LCALL DELAY ;使显示稳定RET;****************************************** *****GET_TEMPER: ;读出转换后的温度值SETB DQ ;定时入口BCD: LCALL INIT_1820JB FLAG1,S22LJMP BCD ; 若DS18B20不存在则返回S22: LCALL DELAY1MOV A,#0CCH ; 跳过ROM匹配 0CCHLCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820LCALL DELAYCBA: LCALL INIT_1820JB FLAG1,ABCLJMP CBAABC: LCALL DELAY1MOV A,#0CCH ; 跳过ROM匹配LCALL WRITE_1820MOV A,#0BEH ; 发出读温度命令LCALL WRITE_1820LCALL READ_18200 ;READ_1820RETWRITE_1820: ;写DS18B20的程序MOV R2,#8CLR CWR1: CLR DQMOV R3,#6 ;延时24usDJNZ R3,$RRC AMOV DQ,CMOV R3,#23 ;延时60usDJNZ R3,$SETB DQ ;一个写周期至少要维持60us以上NOP ;离下一个写周期至少要有1us间隔DJNZ R2,WR1SETB DQRETREAD_18200: ; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据MOV R4,#2 ; 将温度高位和低位从DS18B20中读出MOV R1,#36H ; 低位存入36H(TEMPER_L),高位存入35H(TEMPER_H)RE00:MOV R2,#8RE01:CLR CSETB DQNOPCLR DQ ;DQ;DQ=0 15US内NOP ;18B20送数,主控器NOP ;必须完成DQ的采样SETB DQ ;主控器释放DQMOV R3,#2DJNZ R3,$ ;延时10usMOV C,DQ ;取dq数据位MOV R3,#23 ;延时60usDJNZ R3,$RRC ADJNZ R2,RE01MOV @R1,ADEC R1DJNZ R4,RE00RETTEMPER_COV: ; 将读出的数据进行转换MOV A,#0F0HANL A,TEMPER_L ; 舍去小数点后的四位SWAP AMOV TEMPER_NUM,AMOV A,TEMPER_LJNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值INC TEMPER_NUMTEMPER_COV1:MOV A,TEMPER_HANL A,#07HSWAP AADD A,TEMPER_NUMMOV TEMPER_NUM,A ; 保存变换后的温度数据MOV TEMPER,TEMPER_NUMRETINIT_1820: ; DS18B20初始化程序SETB DQNOPCLR DQMOV R0,#80HTSR1: DJNZ R0,TSR1 ;延时 300usSETB DQMOV R0,#25H ;96USTSR2: DJNZ R0,TSR2JNB DQ,TSR3LJMP TSR4 ; 延时TSR3: SETB FLAG1 ; 置标志位, LJMP TSR5 ; DS1820存在TSR4: CLR FLAG1 ; 清标志位, LJMP TSR7 ; DS1820不存在TSR5: MOV R0,#06BH ; 延时200US TSR6: DJNZ R0,TSR6TSR7: SETB DQRETDELAY1: MOV R7,#20H ;80us延时DJNZ R7,$RETDELAY: PUSH 00HPUSH 01HMOV R0,#00LP: MOV R1,#00HDJNZ R1,$DJNZ R0,LPPOP 01HPOP 00HRET ;通用的I2C通讯子程序(多字节写操作);入口参数R7字节数,R0:源数据块首地址;R0原数据块首地址;R2从器件内部子地址;R3:外围器件地址(写);WRBYT、STOP、CACK、STA;****************************************** *****WRNBYT: PUSH PSWPUSH ACCWRADD: MOV A,R3 ;取外围器件地地址(包含r/w=0)LCALL STA ;发送起始信号SLCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,WRADD ;如果应MOV A,R2LCALL WRBYT ;发送内部寄存器首地址LCALL CACK ;检测外围器件的应答信号JB F0,WRADD ;如果应答不正确返回重来WRDA: MOV A,@R0LCALL WRBYT ;发送外围地址LCALL CACK ;检测外围器件的应答信号JB F0,WRADD ;如果应答不正确返回重来INC R0DJNZ R7,WRDALCALL STOPPOP ACCPOP PSWRET;****************************************** *****; 启动信号子程序S;****************************************** *****STA: SETB SDA ;启动信号SSETB SCLNOP ;产生4.7US延时NOPNOPNOPNOPCLR SDANOP ;产生4.7US延时NOPNOPNOPNOPCLR SCLRET;****************************************** *****; 发送一个字节子程序WRBYT;****************************************** *****WRBYT: PUSH 06HMOV R6,#08H ;发送一个字节子程序WLP: RLC A ;(入口参数A) MOV SDA,CSETB SCLNOP ;产生4.7US延时NOPNOPNOPNOPCLR SCLDJNZ R6,WLPPOP 06HRET;***********************************************; 应答检测子程序CACK;****************************************** *****CACK: SETB SDA ;应答位检测子程序SETB SCLCLR F0MOV C,SDA ;采样SDAJNC CEND ;应答正确时转CENDSETB F0 ;应答错误时F0置一CEND: CLR SCLRET;****************************************** *****; 停止信号子程序P;****************************************** *****STOP: CLR SDA ;停止信号PSETB SCLNOP ;产生4.7US延时NOPNOPNOPNOPSETB SDANOP ;产生4.7US延时NOPNOPNOPNOPRETEND七、实验现象可以在ZLG7290B控制的8个LED的后三个数码管上显示出了当前DS18B20采集到的温度值。

相关文档
最新文档