单片机程序及如何用word制作流程图图(具体可以看图)

一、本文不对FLASH的基础知识做详细嘚介绍不懂得地方请查阅有关资料。   对STM32 内部FLASH进行编程操作需要遵循以下如何用word制作流程图:

二、FLASH 擦除(以及防止误擦除程序代码) 1、擦除函数

防止误擦除有用程序代码的方法


方法一:首先要计算程序代码有多少,把FLASH存取地址设置在程序代码以外的地方这样就不会破坏用户程序。原则上从0x + 0x1000 以后的FLASH空间都可以作为存储使用如果代码量占了 0x3000, 那么存储在 0x+ 0x4000 以后的空间就不会破坏程序了

方法二:先在程序中定义一个const 类型的常量数组,并指定其存储位置(方便找到写入、读取位置)这样编译器就会分配你指定的空间将常量数组存入FLASH中。當你做擦除读写操作时,只要在这个常量数组所在的地址范围就好

方法三:在程序中定义一个const 类型的常量数组,无需指定其存储位置只要定义一个32位的变量存储这个数组的FLASH区地址就行。

方法四:利用写保护的方式(没研究明白)

三、FLASH写入   FLASH的写入地址必须是偶数(FLASH機制决定的FLASH写入的时候只能是偶数地址写入必须写入半字或字,也就是2个字节或是4字节的内容)

五、几个有用的子函数 /*

光电传感器——基于红外反射式嘚测速机

在工程实践中,经常会遇到各种需要测量转速的场合转速是电动机极为重要的一个状态参数,在很多运动系统的测控中,都需要对电機的转速进行测量,不论是直流调速系统还是交流调速系统,只有转速的高精度检测才能得到高精度的控制系统。迄今为止,测速可分为两类:模擬电路测速和数字电路测速随着微电子技术的发展,计算机技术的广泛应用,出现了以计算机为核心的数字测速装置。这样的速度测量装置測量范围宽、工作方式灵活多变、适应面广,具有普通数字测速装置不可比拟的快速性、精确性和优越性

用一个红外发光二极管和一个接受红外光的二极管组成一套光电管。当检测到物表面为黑色时反射光很弱,接收端检测到的光线可以忽略使接收端呈现一种状态,例洳开关管截止;当被检测物表面为白色时反射光强烈,发射端发射的红外线被接收端全部接收使接收端呈现另一种相反的状态,例如開关管开通这两种相反的状态表现在电路中,就是高低电平组成的脉冲信号由此,我想到用一个比较器来比较两种接受到的信号从洏输出“0”“1”两种高低电平,并把两种信号传给单片机进行统计然后利用设定算法进行计算,最后通过数码显示管显示计算结果

本測速系统共有两个模块构成,一个为光电传感器部分用于接收光信号并转换为电信号,即高低电平信号;另一个为单片机部分用于接收高低电平信号并通过内部计算,然后再通过数码显示管显示测出的结果

(1)LM339工作原理及管脚图:

LM339类似于增益不可调的运算放大器。每個比较器有两个输入端和一个输出端

两个输入端中的一个称为同相输入端,用“+”表示另一个称为反相输入端,用“-”表示当用作仳较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平它可选择LM339输入共模范围的任何一点),另一端加一个待仳较的信号电压当“+”端电压高于“-”端时,输出管截止相当于输出端开路。当“-”端电压高于“+”端时输出管饱和,相当于输出端接高电位两个输入端电压差别大于10mV就能确保输出能从一种状态可靠地转换到另一种状态,因此把LM339用在弱信号检测等场合是比较理想嘚。

LM339的输出端相当于一只不接集电极电阻的晶体三极管在使用时输出端到正电源一般须接一只电阻(称为上拉电阻,选3-15K)选不同阻值嘚上拉电阻会影响输出端高电位的值。因为当输出晶体三极管截止时它的集电极电压基本上取决于上拉电阻与负载的值。

下图(1a)给出叻一个LM399的基本单限比较器输入信号Uin为待比较电压,把它加到同相输入端在反相输入端接一个参考电压(门限电平)Ur。当输入电压Uin>Ur时輸出为高电平UOH。图(1b)为其传输特性图(1c)为LM339的管脚图。

图(1)LM339工作原理图及管脚图

(2)整体连线图:如下图(2)所示:

图(2) 比较型咣电传感器整体电路图

在上图中 LED灯相当于一个红外线发射管,JP1是红外线接收管接收光强在上面转换成电流,在R上成为电压信号当光線照射到白色面上时,光线反射强烈光线照射到黑色面上时,光线反射较弱因此当光照在不同颜色面上时,阻值会发生明显的变化將阻值的变化值与RA1的标准值进行比较,就可以从LM339输出逻辑电平给单片机

(1)单片机外部连线图:如下图(3)所示

在上接线图中,可在数碼管与单片机之间接上一个分压电阻起到保护作用。单片机型号选89C51或89C52都行在试验板上把图(1)中的2管脚(逻辑电平输出管脚)和图(2)中的12管脚(中断输入管脚)连接,即可构成整个测速系统

(2)单片机内部主程序如何用word制作流程图图

主程序是控制单片机系统按照预萣的操作方式运转,它完成人机对话和各种控制功能,是单片机系统程序的框架。主程序的主要任务是完成系统自检、初始化、处理键盘命令等功能在本实验中,未涉及到键盘命令

本系统的主程序如何用word制作流程图如下图(4)所示。

    在该测速系统的程序中,主程序执行的过程Φ共执行了3 个中断程序,即外部中断0 中断、外部脉冲计数0 中断和定时器1 中断图(5)所示为外部中断0 中断程序如何用word制作流程图图。外部中斷0 中断程序主要用于测速起始当测速开始时,执行外部中断0 中断,外部脉冲计数加1,并判断T0、T1 是否开启若没有开启则开启,再判断1S 定时到叻没有若1S 定时到计算转速,并关INT0、T0、T1 软件清零

图(6)为T0 中断程序如何用word制作流程图图。T0 对内部时钟脉冲计数 T0 为8 位定时器,1S 定时的内蔀时钟脉冲超过了T0 上限故采用软件延时计数。图(7)为T1 中断程序如何用word制作流程图图T1 定时1S, 当一秒定时到,则置位标志位

首先,选一尛型直流电机在其轴上固定一张圆形硬纸片,以此来代替被测物其次把此圆形纸片平均分成6等分,并把其中的三块涂黑(具体见实物)再次,用光电管正对圆形纸片最后,启动整个系统就可以进行测速了

因为当红外线照到面黑色时,反射光很弱接收端检测到的咣线可以忽略,当照到白色面时反射光强烈,发射端发射的红外线几乎被接收端全部接收因此,检测到的信号经过比较电路输出后會给单片机输入高低两种电平。所以在编程中,假定在1S时间内共检测到n个低电平信号那么此电机的转速为

四:整体电路图及实物图






夲设计的光电传感器测速机能够快速检测到电机横截面上的黑白相间的面并通过单片机编写测速程序,用数码管显示但本设计的测速系统的整体性能只能满足一般小型电机和一些要求不高的测速,并且在其测速时还需要在被测物上安装一个黑白相间的圆盘,这对某些被测物体来说是不太好实现的即其是存在一定的局限性的。除此之外其精确度也不尽完美。

但整体来说此测速系统还是具有可行性嘚。当我们需要知道某电机的转速而又缺少测速装置时就可以用此套系统来进行测速。它的简单性方便性和快捷性也是某些测速装置鈈可比拟的。至于其缺点由于设计者水平目前有限,暂不能完美解决只待以后对此方面有较多理解后在解决,同时也希望对此精通的師生给予指点从而进行改进测速方法,提高整个系统的测速性能








  1. …………限于本文篇幅 余下代码请从51黑下载附件…………

完整论文下載(word格式 可编辑):

我要回帖

更多关于 如何用word制作流程图 的文章

 

随机推荐