淮阴工学院毕业设计说明书(论文)
第 6 页 共 45 页
率为0.0196(VREF=0.0196V),D为转化的数字量,再通过V=[(R1+R2)/R2]*(D/255)*5(V)可以求得模拟电压,最后通过数码管就可将所测得电量显示出来。
用TLC549串口芯片的话,先选中该芯片,将该芯片的CS脚为低电平,在进行读取数据时,将CLK先拉高再拉低,在CLK下降沿的时候,将数据移出,这样不断的循环8次。
电压转换程序的流程图如图3-2所示。
返回 图3-2 电压转换程序的流程图
调用电量显示程序 否 是否有8次? 是 数据处理 CLK置0 CLK置1 对模拟电压进行采样 CS置0选中芯片 开始 将数据通过DOUT送入单片机 3.4 里程测量程序
采用外部中断0服务程序对行驶圈数进行计数,该计数值为十六进制数。由图3-3可知,60H~62H单元存放圈数,轮子每转一圈,即产生一次外部中断,计数值加1。
淮阴工学院毕业设计说明书(论文)
第 7 页 共 45 页
每计数一次后,对里程数据进行一次存储操作。根据计数器计出脉冲数,用脉冲数除以电动车行驶0.1公里所要转的圈数,就可以算出电动车的里程数。把这个里程数与存储器原来的里程数相加即可得到目前的总里程数。总里程数的显示是设定出现在电动车开动,单片机开机经过初始化后显示出来,这样以来用户可以清楚的知道自己的车子已经运行了多少公里了。
累加器恢复 开外中断1 溢出进位61H、62H 计数没溢出,转INTEX0OUT 清A 车轮圈数加1 状态字堆栈保护 累加器堆栈保护 状态字恢复
中断返回 图3-3里程测量流程图 3.5 速度测量程序
采用外部中断1控制定时器T1的启动和停止。当外部中断1输入为0时,定时器T1停止,当外部中断1输入为1时,定时器T1启动。外部中断1的输入信号是将轮子圈数的计数脉冲经二分频后形成。这样每次定时器T1的计数时间为轮子转一圈所用的时间。由图3-4可知,68H~6BH单元存放轮子转一圈的时间。定时器计出每转一圈的时间,用电动车车轮的周长除以转一圈所用的时间就得出电动车的速度。
淮阴工学院毕业设计说明书(论文)
清A
计时单元置0
堆栈恢复 清溢出标志 将时间计数值移入暂存单元68H–6BH 溢出时,计时单元赋#0FFH 关外中断1 堆栈保护 第 8 页 共 45 页
溢出标志为0转INTEX11,将时间计数值放入暂存单元68H–6BH
返回 图3-4 速度测量流程图
3.6 里程显示子程序
当显示里程时,如图3-5所示,先关闭速度指示灯,开里程指示灯,再将轮子的圈数转换为公里数,然后在数码管中显示公里数,最后子程序返回。
子程序返回 图3-5 里程显示程序流程图
显示公里数 将圈数转换成公里数 关闭速度指示灯,开启里程指示灯 淮阴工学院毕业设计说明书(论文)
3.7 速度显示子程序
第 9 页 共 45 页
当要显示速度时,如图3-6所示,首先进行关里程指示灯,开启速度指示灯,接着调用速度转换子程序,然后与设定速度比较,超速报警,最后调用显示子程序在数码管中显示出来。
关闭里程指示灯,开启速度指示灯 调每圈时间转换为速度子程序 是否超速? N Y 报警 关报警器 显示速度 子程序返回
图3-6 速度显示程序的流程图
4 软件调试
4.1 Keil的概述
Keil C51是Keil公司针对80C51系列单芯片,在Windows平台上开发出的一套工具软件,透过Keil uVision2的IDE(整合发展环境),提供80C51汇编语言与C51语言的编辑、编译/连结、除错/模拟测试,并具备完善的项目管理系统(Project),以及系统文件说明等功能[20]。
Keil uVision2的功能结构说明如下:
淮阴工学院毕业设计说明书(论文)
结等建构项目的功能。
第 10 页 共 45 页
(1)Keil uVision2 IDE提供项目管理的整合作业环境,拥有编译、组译、连
(2)提供各种厂牌型号80C51核心兼容单芯片系统的开发使用。
(3)C51提供ANSI C程序语言编译器(ANSI C Compiler);A51提供8051汇编程序组译器(Macro Assembler)。
(4)在程序的连结时,提供ANSI 标准链接库、LIB51链接库管理员与RTX51实时操作系统。
(5)Keil uVision2 Debugger:有强大的除错工具和平行仿真系统。可执行单步执行,芯片内部缓存器、内存、输出入界面的实时监看功能[19~20]。 4.1.2 Keil的使用
Keil uVision2使用简介如下:
(1)点击Keil uVision2→Project→New Project可新建一个工程,点击“保存”按钮后,选择对应的单片机型号。本设计采用AT89C52,所以选择Atmel的AT89C52,点击“确定”按钮。
(2)点击Keil uVision2→File→New可新建一个工程文件。点击Keil uVision2→File→Save可保存新建的工程文件。如果采用C语言编程,工程文件的名称后缀为.c,如果采用汇编语言编程,工程文件的名称后缀为.asm。本设计采用汇编语言,工程文件保存到keil目录里,工程文件名为che.asm,然后点击保存。
(3)在Source Group 1上右键单击Add Files to Group ‘Source Group 1’为工程添加相应的工程文件。在弹出的对话框中选中工程文件,再点击‘Add’按钮,然后点击‘Close’按钮即可将工程文件添加到工程当中。
(4)在工程文件中写入单片机程序,点击保存按钮保存文件。然后点击Keil uVision2→Project→Build tartget可编译修改过的源文件。点击Keil uVision2→Project→Rebuild tartget可重新编译所有的源文件。
(5)如果程序出现错误,在Output Window窗口会有错误和警告提示,修改并重新编译程序内容,直到Output Window窗口出现“0 Error(s),0 Warning(s)”。如图4-1所示。