基于单片机的protues仿真毕业论文(7)

2020-06-18 20:45

基于单片机的多温度检测系统的设计与protues仿真

第四章 软件设计

4.1软件开发工具的选择

要使单片机系统按照人的意图办事,需设法让人与计算机对话,并听从人的指挥。程序设计语言是实现人机交换信息的最基本工具,可分为机器语言、汇编语言和高级语言。

机器语言用二进制编码表示每一条指令,是计算机能直接识别和执行的语言。用机器语言编写的程序成为机器语言程序或者指令程序(机器码程序)。因为机器只能识别和执行这种机器码程序,所以又称它为目标程序。用机器语言编写程序不易记忆、不易查错、不易修改。

为了克服机器语言的上述缺点,可采用有一定含义的符号,即指令助记符来表示,一般都采用某些有关的英文单词的缩写。这样就出现了另一种程序语言—汇编语言。

汇编语言是用助记符、符号和数字等来表示指令的程序语言,容易理解和记忆,它与机器语言指令是一一对应的。汇编语言不像高级语言(如BASIC)那样通用型强,而是属于某种计算机所独有,与计算机的内部硬件结构密切相关。用汇编语言编写的程序称为汇编语言程序。

以上两种语言都是低级语言。尽管汇编语言有不少优点,但它仍存在着机器语言的某些缺陷:与CPU的硬件结构密切相关,不同的CPU其汇编语言是不同的。这使得汇编语言程序不能移植,使用不便;其次,要使用汇编语言进行程序设计必须了解所使用CPU硬件的结构与性能,对程序设计人员有较高的要求。为此,又出现了对单片机进行编程的高级语言,如PL\\M,C等。

KEIL C51是美国KEIL Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

KEIL C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KEIL C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容

易理解。在开发大型软件时更能体现高级语言的优势。

经以上分析综合得知,本课题采用C语言进行编程。

4.2系统软件设计的一般原则

在单片机应用开发中代码使用效率、单片机的抗干扰性以及软件可靠性是实际工程设计的重点。

单片机应用软件系统设计包括功能模块划分、程序流程确立、模块接口设计以及程序代码编写。我们依据系统的功能要求,将整体软件系统分割成若干个独立的程序模块。这些程序模块可以是几条语句的集合、功能函数或程序文件。随后,根据个程序模块的实现功能写出流程,一般需要写出具体的实现功能描述。程序代码通常采用汇编语言或高级语言(C语言)编写。 本课题采用C语言编程,在此必须注意以下问题: (1)提高程序代码效率

必须熟悉当前使用的C语言编译器,试验每条C语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道代码效率。 (2)减少程序错误

我们在编写程序时,要注重考虑如下方面。

[1]物理参数 [2]资源参数 [3]应用参数 [4]过程参数 (3)单片机的抗干扰性

防止干扰最有效的方法是去除干扰源、隔离干扰路径。单片机干扰最常见的现象就是复位,导致程序运行异常。设计系统是一般需要添加一个“看门狗”监控模块,在系统出现不可逆转的干扰时,监控模块将重启系统,并从断点处继续执行。

(4)系统的可靠性

[1]要测试单片机软件功能的完善性。 [2]上电、掉电测试。 [3]系统耗损测试。

基于单片机的多温度检测系统的设计与protues仿真

4.3系统软件设计的一般步骤

系统进行软件设计时,先要对本课题硬件有一个熟练的掌握,知道系统的组成,数据的传输,信号是如何被控制的,以及信号的显示。然后进行软件设计时,先搞清楚各个部分的子程序及他们的流程图,然后进行C语言编程,最后将它们系统的编程

4.4软件实现

系统软件设计主要包括系统程序和流程图,根据整个系统的要求,完成温度的测量与控制必须经过以下几个步骤:单片机接受传感器的温度信号,并通过LCD液晶显示器显示出来,单片机扫描按键,接受控制信号,并将温度上下限设定值显示出来,若温度不在范围内则发出报警。 4.4.1系统主程序流程图

首先要对系统的各个模块初始化,先执行测温子程序,获取外界的温度值送

单片机进行处理,调用相应的显示子程序,对获取的温度显示。然后单片机对按键所连接的引脚进行巡回检测,若果为低电平,说明有键被按下,执行相应的按键功能,对温度上下限的设定值进行调整并显示在LCD液晶显示器。若检测到返回键为低电平,则回到原来的测温状态,此时的报警上下限的设定值已经修改,系统根据此设定值和主程序,判断是否需要调用报警子程序和蜂鸣器响起子程序。

开始 系统初始化 测温子程序 温度显示子程序 显示调整温度 是 温度上下限设定键是否按下? 是 显示温度上下限温度上下限调整键是否按下? 否 返回键? 是 否 报警子程序 蜂鸣器响起子程序

图4.1 系统主程序流程图

4.4.2传感器程序设计 (1)DSl8B20编程简介

每一片单总线芯片内部都有一个全球惟一的64 位编码,在多路测温时就是通过匹配每个芯片的ROM编码(ID),来搜寻该路的温度。DS18B20有9个可擦写的内部寄存器,称为便笺式RAM。所有的串行通讯,读写每一个bit位数据都必须严

基于单片机的多温度检测系统的设计与protues仿真

格遵守器件的时序逻辑来编程,同时还必须遵守总线命令序列,对单总线的DS18B20芯片来说,访问每个器件都要遵守下列命令序列:

首先是初始化;其次执行ROM 命令;最后就是执行功能命令(R0M命令和功能命令后面以表格形式给出)。

如果出现序列混乱,则单总线器件不会响应主机。当然,搜索ROM 命令和报警搜索命令,在执行两者中任何一条命令之后,要返回初始化。

基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机设备,且准备就绪。

每次访问任何单总线器件,必须严格遵守这个命令序列;如果出现序列混乱,则单总线器件不会响应主机。但是这个准则对于搜索ROM命令和报警搜索命令例外,在执行两者中任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。在 主 机 发出ROM命令,以访问某个指定的DS18B20,接着就可以发出DS18 B20支持的某个功能命令。这些命令允许主机写人或读出DS18 B20暂存器,启动温度转换以及判断从机的供电方式。 (2)软件实现

前面提及单总线器件的ROM命令,在主机检测到应答脉冲后,就可以发出ROM命令。这些命令与各个从机设备的唯一64位ROM代码相关。允许主机在单总线上连接多个从机设备时,指定操作某个从机设备。这些命令还允许主机能够检测到总线上有多少个从机设备,以及其设备类型或者有没有设备处于报警状态。从机设备可能支持5种ROM命令(实际情况与具体型号有关),每种命令长度为8位。主机在发出功能命令之前,必须发送合适的ROM命令。 ① 搜索ROM[F0h]

当系统初始上电时,主机必须找出总线上所有从机设备的ROM代码,这样主机就能够判断出从机的数目和类型。主机通过重复执行搜索ROM循环(搜索ROM命令跟随着位数据交换)以找出总线上所有的从机设备。如果总线只有一个从机设备,则可以采用读ROM命令来替代搜索ROM命令。在每次执行完搜索ROM循环后,主机必须返回至命令序列的第一步(初始化)。 ② 读ROM[33h](仅适合于单节点)


基于单片机的protues仿真毕业论文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:腹透中心工作手册

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: