断电数据保护程序流程图如下图所示:
图3.4 断电数据保护程序流程图
在使用STC89C52RC单片机的EEPROM编写程序时,要特别注意STC系列单片机内部的EEPROM使用内置的FLASH模拟出来的,并不是真正的EEPROM存储器。所以STC系列的EEPROM的字节写功能只能将1变成0,不能将0变成1,只有对扇区进行擦操作才能使内部全部变为1,故在进行写操作前,必须进行擦操作。
3.2 定时器原理
定时器本身是由高八位和低八位的寄存器组成一个十六位的计数器,当定时器开始计数时,随着一个计数脉冲的到来,计数加一 。当计数器全为1时,表示计数值已经达到最大值,再次计数后,计数器溢出产生中断并使计数值清零。
一个计数脉冲的周期相当于一个机器周期,而一个机器周期等于十二个振荡周期。十六位计数器的最大值为2的十六次方相当于65536,最小值可以取0和最大值之间,最大值减去最小值就是计数器的计数值。
这里取最小值为15536,那么计数器的计数值为50000;若单片机采用11.0592MHz的晶振,那么一个计数脉冲的周期约等于0.0000010851s。当计数器
25
从最小值开始计数到计数器溢出产生中断,总共计数时间约等于0.05425s。因为交通信号灯倒计时计数是以秒为单位进行变化的,所以在中断程序中设计,当计数器产生20次中断溢出后,进行中断操作。
当然在对定时器操作之前需要设置定时器的工作模式,定时器的工作模式有四种,四种工作模式如下表所示:
表3.1 定时器四种工作模式
工作模式 方式0 方式1 方式2 方式3 说 明 13位定时/计数器 16位定时/计数器 8位自动重装定时/计数器 T0分成两个独立的8位定时/计数器,T1用于停止计数
3.3 本章小结
本章介绍了系统软件总体设计方案以及各个软件子模块的设计思路。
26
第四章 系统仿真与调试
4.1 系统仿真软件proteus简介
Proteus软件是由英国Labcenter公司推出,利用特有的虚拟仿真技术解决了单片机及外围电路的设计和协同仿真的问题,通俗点说就是在没有单片机实际硬件条件下利用计算机以虚拟仿真技术实现单片机在硬件和软件上的同步仿真调试,给应用单片机的系统设计带来了方便。Proteus软件支持AT89C52、74系列集成电路、多种常用电子元器件、键盘、LED发光二极管、共阴共阳多位数码管等各种器件进行虚拟仿真。
4.2 交通信号灯系统仿真
4.2.1 系统仿真原理图绘制
在proteus仿真软件中绘制原理图的步骤: 第一步:启动proteus isis;
第二步:点击file中的New Design新建一个空白原理图;
第三步:在工具栏下面选择对象选择器,点击P从库中选择系统所需要的元器件,然后将元器件移动到原理图编辑;
第四步:将各个元器件摆在合适的位置后,正确的将各个元器件进行连线; 第五步:确定整个原理图无电气错误后,将用keil uVision 4软件中所写程序生成的后缀为hex文件加入单片机中进行仿真。
27
系统仿真原理图如下图所示:
图4.1 系统仿真原理图
4.2.2 原理图仿真效果
点击菜单栏中debug,选择Execute,proteus软件中的原理图开始仿真。
28
仿真效果如下图所示:
图4.2 proteus仿真效果图
除了车流量检测模块和断电数据保护模块不能被仿真,其他模块都能实现在软件上的硬件和软件仿真调试。
车流量检测模块采用红外检测电路,由于proteus软件中没有与红外检测电路相关的仿真实物,所以在原理图中用按键来模拟红外检测电路。当按键按下后,视为检测到有车辆驶过红绿灯路口。从上图中看出,当按键按下后,对应的车流量数码管显示加一。
断电数据保护模块是利用STC89C52RC单片机内部的EEPROM功能实现的。但是由于proteus软件中只有AT89C52单片机,而AT89C52单片机内部没有EEPROM功能,故不能在仿真中得到验证。所以图中3X3的矩阵按键第三行中的后两个按键并未在软件中使用。
29
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于单片机的十字路口交通信号灯控制-毕业设计论文(7)在线全文阅读。
相关推荐: