本论文是一篇软件设计方面有关论文查重,关于单片机通信电源监控器相关硕士学位毕业论文范文。免费优秀的关于软件设计及程序及标志方面论文范文资料,适合软件设计论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
摘 要本文主要阐述MCS51单片机软件和硬件设计的基本思路,根据经验,谈一些经常遇到的问题和对策.
关 键 词单片机;软件设计;硬件设计;时间片;串口通信
中图分类号TP368.1文献标识码A文章编号1674-6708(2013)96-0201-04
0引言
单片机在智能仪表,控制设备,机电一体化和自动化控制系统中的应用愈来愈广,很多仪表设备在升级换代的改造中都将单片机作为首选方案.单片机的优越性能使电路设计更加简单,但软件设计的任务相应的比较繁重.
系统设备中51单片机是在目前比较流行的单片机系统.是性能价格比较高的一种单片机系统.其软硬件设计,都比较成熟,是一种容易掌握的单片机系统.在实际开发中比较容易实现要求的控制功能和控制成本.本人在实际设计中摸索了一些经验和方法,对于系统软件和硬件设计有帮助.
对于大多数单片机的编程设计者,最初的经验多来自阅读其他程序员的软件,在此基础上进行自己的程序设计.
笔者设计的通信电源监控器,使用51单片机,采用MAX191进行模数转换,采用RS232方式通信,采用EDM12816液晶显示器进行信息显示,八位键盘.
该控制器的功能为检测电源系统的输出电压,当电压超过或低于设定值,报警,蜂鸣器鸣叫;输出将被使用继电器切断;通过串口送出按协议编码的报警信息,根据接收到的数据调整参数,控制动作.报警电压的上限和下限可以设定和修改.
1硬件系统设计
系统硬件设计采用了51系统的一般模式.
采用89C55内置20K程序存储空间,省去EPROM,同时大大加强系统程序的保密性.
采用窄DIP封装62256,32KRAM作为系统的数据存储单元,供液晶显示的数据拼装,以及系统相关数据的存储资源.
采用MAX191完成模拟量数字量转换,数据为12位,使用CD4051作为模拟量通道,由译码电路完成通道的切换.
采用EDM12816,16*16点阵8个汉字作为液晶显示器,进行人机交流界面.LED背光源,背光亮度可以调节.
采用MAX813作为看门狗、复位控制电路,电压监视电路,集成度高.
采用DS1302作为时间计时器,为系统提供日期,时间以及31字节数据保存单元,需要使用3.6V电池的数据保存单元.
采用MAX232作为RS232通信的电平转换芯片.MAX232是RS232C收发器,这种收发器由于它的内部有电荷泵电压变换器,可将+5V电源变换成RS-232所需的±10V电压,因而只需用单一的+5V电源就可实现电压的转换,符合RS-232的技术规范.
采用8255作为输出通道和键盘通道控制器.
2软件设计
程序设计的步骤和基本方法.软件设计可以采用C51和PLM、汇编,本系统的软件设计采用汇编语言,主要基于时序控制实现简单,可以借鉴的相关资料丰富.
基于控制的考虑,系统采用时间片和循环相结合的方法进行程序控制.
有关论文范文主题研究: | 关于软件设计的论文范例 | 大学生适用: | 本科毕业论文、硕士论文 |
---|---|---|---|
相关参考文献下载数量: | 22 | 写作解决问题: | 写作技巧 |
毕业论文开题报告: | 论文任务书、论文题目 | 职称论文适用: | 刊物发表、职称评副高 |
所属大学生专业类别: | 写作技巧 | 论文题目推荐度: | 优质选题 |
根据时间片序号的不同置位时间片标志,通过时间片标志控制各个程序按照需要执行.这是一种类似高级语言的编程方式,比较有利于对程序的控制.系统可以根据任务的紧急程度,将紧急程度度最高的任务设置为每次循环都执行的工作方式,而将紧急程度低的任务设置为按相应时间片执行的方式.紧急程度的区分,由程序根据相应的位标志进行.在进行编程时,应当对每个由时间片标志控制的程序运行时间进行计算,确定占用的时间片具体数目,进行恰当的安排调度.
程序设计的主要部分:
1)系统初始化部分,包括资源的分配,单元的预定义.定义详细和完整可以对程序的设计起到事半功倍的效果;
2)主程序循环基于时间片的跳转.充分使用51单片机丰富的位资源,为与每个时间片相对应的程序确定时间片运行标志位,控制程序运行;
3)中断程序的处理,包括定时器0和串口中断.串口中断的优先级高于定时器中断.对定时器中断,和串口中断程序处理进行说明;
4)键盘扫描程序,模数转换程序,时间芯片读写程序,端口处理程序,说明键盘扫描,延时处理;模数转换,以及计算处理,DS1302的读写,8255的读写;
5)相应的数据处理程序,多字节乘法,多字节加减法.多字节加一,多字节减一程序.可以在参考资料上获取,仅需要修改入口和出口参数.在系统中直接调用.
下面分别详细介绍上述程序.
2.1系统初始化部分
首先要把系统使用的外部端口资源确定和分配好.
安排中断向量的跳转,预定义各个寄存器,内存单元,外部存储单元,相应的外部端口具体数值都应确切的设置.为了系统的稳定,系统使用的单元应当赋初始值.使用EQU,ORG,END,BIT,DB,SET等.可以把通用寄存器组的另外三组定义为连续的别名供使用,不用修改PSW中的RS0,RS1.一般仅在中断程序和程序调用中使用,这样可以不用入栈保护的相应的寄存器区,方便使用,节约了堆栈.
方便用户使用和方便记忆,可以采用拼音或英文缩写的方式进行定义.进行复杂的程序设计,作好预定义和赋初值处理会大大降低编程的难度.同时采用浮动方式进行预定义,方便后期修改.编制时应当加入文字说明以利使用和调试阅读.
初始化部分对内存进行刷新,对外部设备如8255进行初始化,在液晶显示屏上显示厂家标志,程序版本号.这里因为使用外部数据存储芯片,设定专门程序对外部数据存储芯片62256进行检测,同时对8255端口赋初值.对系统程序计算和保存数据需要用到的单元,初始化,保证系统数据的可靠性.
在进行初始化时有液晶显示,提示正在进行初始化.对于外部端口的处理应当置于安全的状态.包括继电器的吸合和开关量的设置应不会对人员和设备造成危害.2.2对于主程序循环的考虑
主程序循环的方法,通常采用下面的方法:
1)定时器0中断中,修改控制程序执行的时间片位标志.
根据当前Timeover的数值,判断哪些时间片标志应当被置位,进行置位.在退出中断后,在主程序循环中,根据标志位控制相应的程序的执行.如果控制程序执行的位单元置位,程序相应的执行,执行完毕清除控制程序执行的位标志.在全部标志位扫描完毕,转回循环开始,进行下一次循环.
2)采用纯循环方式
无限制的循环.执行完全部的指令,重新回到循环开始,这样反复循环.
3)事件激活方式
循环等待,检测到由外部状态的变化,相应执行某些操作,进行相应的处理.即在程序中循环检测相关标志位的变化.
本文所设计的程序采用时间片的方法,使用上述三种方法的结合.
电源监控器主程序循环具体如下.
2.2.1键盘处理
判断Keytime标志位,如果被置位,在主程序中,执行键扫描,确定有无键按下.如果有键按下,保存键值,修改相应的标志位.进行多次判断,确定有效,修改标志位执行按键执行程序.在确认键值后,转入相应的表处理程序决定执行哪个模块.若无键按下,顺序执行主循环的下一项程序.
2.2.2液晶显示处理
判断Displaytime标志位,如果被置位,在主程序中,显示状态刷新,执行内存中的数据拼装,确定菜单状态,当前显示第几层菜单(需要一字节),光标位置(需要一字节).某些实时程序,产生的数据,应放在指定单元,直接取用进行内存的更新.
2.2.3模数转换
判断Adtime标志位,如果被置位,在主程序中,开始进行模数转换,调用多字节乘法,转换为要求的数值形式.同某些预设值进行比较,判断是否处于告警状态.
2.2.4时间扫描
判断Gettime标志位,如果被置位,读取DS1302中的时间数据,刷新在内存中的时间单元数据.供显示和数据记录使用.
2.2.5外部端口的扫描
判断8255time标志位,如果被置位,查询8255的B,C口数据,判断外部端口是否发生变化,并做出相应的ã
软件设计方面有关论文范文例文,与单片机通信电源监控器相关论文查重参考文献资料: