软件设计方面有关论文范文例文,与单片机通信电源监控器相关论文查重
本论文是一篇软件设计方面有关论文查重,关于单片机通信电源监控器相关硕士学位毕业论文范文。免费优秀的关于软件设计及程序及标志方面论文范文资料,适合软件设计论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
88;理.2.2.6串口接收到的数据处理
判断Seriestime标志位,如果被置位,当串口接收到完整的一帧数据,修改接收串口接收完成标志,启动接收数据处理程序,修改数据.
2.2.7对于一些重要的,需要每周期都执行的实时程序可以在主程序中集中调用进行处理
2.3系统的中断设定
系统使用两个中断源
第一,定时器0中断,最重要的,用以确定时间片,控制程序运行.
第二,串口中断(串口,使用定时器1作为波特率发生器.)
2.3.1定时器中断功能
定时器0设定每个时间片为5ms,共20(保存在Timeover单元中)个时间片100ms,为一次大循环.每次定时器0中断,Timeover计数值减一,当此值为零时,程序重新赋初值.
根据计数器值,修改相应得标志,是主程序循环执行各个程序段.
1)断Timeover为1,进行键盘扫描.置位Keytime标志位.
2)判断Timeover为4,8,12,16,20,进行模数转换,置位Adtime标志位.由主程序循环进行程序调用.可以根据需要为安排某个程序多次执行.如在一个大循环中,安排模数转换4次以上执行,保证每100ms,有一次或多次有效的模数转换.
3)判断Timeover为6,进行显示刷新,置位Displaytime的位标志.
4)判断Timeover为2,读取DS1302时间,则置为位Gettime的标志位.
5)判断Timeover为3,进行端口数据的读取,8255端口的检测,则置为位8255time的标志位.
2.3.2串口中断功能
串口通信是单片机系统的重要资源,不仅提高系统的功能,而且方便系统调试.为了保证接收数据的完整和实时,串口通信的接收采用中断方式.并且在内部存储器中开辟缓冲区保留数据.同时为了保障通信的实时、有效和完整,使用超时检测的功能和校验功能.
串口中断处理程序,将接收到的数据放到通讯缓冲区中,设有接收指针,确定已接收位,应接收的长度.在程序中,可以判断通信是否完成,未完成应当继续接收.如完成接收应当转入相应的处理程序.根据通信协议,当判断通信完成接收到全部字节.可以置位标志位,转入相应的校验处理.
通过校验后,修改相应的串口接收成功Serrecok位标志,由主程序循环中的相应程序调用进行处理.如果校验未通过,放弃本次接收的数据,转入相应的超时处理程序,释放占用的资源.也可以进行CRC校验,用另
软件设计方面有关论文范文例文
在串口中断程序中,在指定区域设置接收缓冲区,使用mov@R0,a方式保存数据.Sertimov为接收超时标志.Checksum为校验和字节,即所接收到的数据的累加和,限定到一字节内.
程序说明:
串口通信(接收使用中断)(中断源设定中串口中断优先).
判断Sersynok串口同步标志是否被置位,如果置位是正在接收状态.如是,继续判断是否收完.未接收完,接收数据保存在内存单元中,退出中断.
检测接收超Sertimov标志时,未超时退出,否则,恢复全部初始状态,送出错信息.
本系统中,通信需要考虑的寄存器和内存单元问题1)使用一部分芯片内内存单元作为缓冲区,应有确定的首址,因为系统协议最长为8字节,应当有8字节长度的数据缓冲区,设置在内存38H-3FH单元;
2)设置正在进行通信的标志位,为Sersynok,只有完成接收同步头后才置位;
3)设置已经接收的串口通信数据字节数,保存在R0中;
4)超时计数单元Sercount,应当可以维持1s时间的计数,超过1s可以视为通信超时,有一字节.通信超时时间一般应当是最大接收数据所用时间的2~3倍或更长.本系统中,使用的波特率较低,协议长度为8字节,加上同步头和校验字节,一共10字节,超时计数器,应当可以维持1s时间的计数,超过1s可以视为通信超时.因为系统定时器中断时间设计为5MS,故超时Sercount字节设为200,即1s,也就是Sercount字节和Sertimov标志位(超时标志位).
串口程序编制的一些考虑:
串口接收程序设计采用接收1个A作为有效同步的开始,建立正在接收标志,其后面是命令和数据,接收一字节,存储在自38H单元开始的8字节数据存储区内.
在全部接收完毕,对于数据进行累加和校验.只有通过累加和校验,才能置位Serrecok成功接收标志.在主程序执行中,执行串口接受数据处理程序,根据相应的散转程序进行解释和修改内存单元的字节和位单元,调用处理程序,完成串口数据处理.
在退出串口中断处理程序之前不要开放串口中断,以避免再次中断.应在出栈所有寄存器之后再开放串口中断,执行中断返回,有深刻的教训.
在定时器中断中,程序根据Sersynok标志判断是否在接收数据状态中,不是,略过.如果处在接收数据状态,则对Sercount超时计数器进行减一操作.当计数值为0时,转入超时处理.正常通信结束后,清除Sersynok正在接收标志,使在定时器中断0中不再进行通信超时计数值的处理.
入栈保护应当配对使用POP和PUSH,否则一定出错.同时没有必要保护的寄存器区不必保护,以免占用过多的存储空间.主程序中应当保留足够的堆栈空间,此外要限制调用的深度,不要超过三层.以避免发生不可预见的堆栈溢出.
2.4键盘扫描程序,模数转换程序,时间芯片读写程序,端口处理程序,显示程序
2.4.1键盘扫描程序
键盘处理比较简单,一般是进行扫描,获取键值,延时,滤除干扰,等待释放,确认按键有效,最后转入键处理程序.
系统软件设计中,键盘接收处理程序,进行三种判断,检测有键按下,按键释放,按键按下有效次数.
程序中要求对按键进行20次循环以上的有效计数,对应大约10ms,才确认为有效键,不使用简单的延时等待.在检测到有按键按下时,键扫描程序执行完本次循环,不清除时间片标志,直到此次按键被判为有效或放弃之后才清键扫描时间片标志.也就是当系统检测到有键按下时,键扫描程序不再按时间片运行,而按20次主程序循环来进行.当按键有效按下达到20次修改标志,表明KEY_OK,按键被有效检出.此后,只要检出KEY_OFF键释放标志有效,即可转入键盘处理程序.键有效按下,程序进行异或比较,确定按下的键是同一个键,避免干扰.
设有NEW_KEY,OLD_KEY两个单元保存最近的两次按键键值.读取8255的A端口,根据读取到的数值判断是否有按键按下.如果有键下,读取键值,保存在Newkeys单元中,将原来的键值保存在Oldkeys单元中.在以后的扫描程序中,判断按键是否达到了要求的按键按下次数.如果按键按下达到要求的保持时间,仅判断按键是否释放,检测到键盘释放,修改成功检测到按键标志.对于未达到规定的按键时间的按键放弃处理.
如果有效按键释放,修改标志,使主程序运行键处理程序.系统程序在主程序循环中根据当前处于哪种处理界面中,在键处理程序中可以修改相应的参数,调用相应的处理程序进行处理,修改相应的显示内容,进行按键处理.
2.4.2模数转换模数转换程序程序,A/D转换算法
模数转换的关键是滤除干扰和数值转换.
MAX191数摸转换芯片,是十二位数模转换.该芯片可以使用单电源方式和双电源方式.基准为4096mv.封装为窄24DIP.启动数模转换芯片,等待芯片的忙闲标志.在忙闲标志为低时,读取转换数值.高四位,低八位,可以放在内存单元中读取的转换值用二进制表示,进行计算,即使用多字节乘法,乘相应的系数.结果保存在内存单元,计算完毕转换为BCD码,确定小数点位.
模数转换程序应当使用数字滤波技术,去除干扰数据.本文采用四次取样,滤除最大值,最小值的,另外两个数据平均的方法作为一次有效数据的处理方法.为保证显示数据的不跳动本软件采用16次数据滑动方式,每次取样的有效数据冲消掉16次取样数据中最早的一个.然后使用平均数据的方
软件设计方面有关论文范文例文,与单片机通信电源监控器相关论文查重参考文献资料: