c51单片机串并口转换程序

c51单片机串并口转换程序,第1张

1 系统的组成和工作原理

多功能温度控制系统的结构如图1所示,系统由六部分组成:控制核心部分、温度数据采集部分、加热装置控制部分、液晶显示部分、按键输入部分和报警提示部 分。单片机启动温度采集电路完成温度的一次转换,然后读出转换后的数字量并转化成当前的温度呈现在显示模块中,并将当前的温度与通过按键输入电路设定的保 持恒温度数进行比较,以实现温度的控制。还可以通过按键设置温度的上下限值以实现超温或低温报警提示功能。本系统的设计目标要对温度的控制精度达到 0.1℃。

1.1 报警电路

报警电路采用蜂鸣器作为发声装置,当温度高于设定的上限值或低于下限值,给蜂鸣器送周期为1s,占空比为50%的方波,报警的时间可以持续1分钟或等待按 键解除报警,这由软件控制实现。

1.2 按键电路

采用2×3的小键盘,键盘的识别可以采用两种方法:行扫描法和行反转法。两种方法都要注意消除按键的抖动。文中采用行扫描法并做成子程序,出口参数为按键 的键值。定义键K1设置TH,K2设置TL,K3调高TH或TL,K4调低TH或TL,K5对TH或TL的数值进行确认。

1.3 温度检测电路

温度检测电路采用智能温度传感器DSl8820,它与单片机相连只需要3线,减少了外部的硬件电路。DSl8820主要性能特点如下:

(1)测温的范围为-55~125℃,最大分辨率可以达到0.0625℃;

(2)电源电压范围为3.0~5.5V;

(3)供电模式:寄生供电和外部供电;

(4)封装形式有两种:3脚的TO-92封装和8脚的SOIC封装;

(5)可编程的温度转换分辨率,分辨率为9~12位(包括1位符号位),由配置寄存器决定具体位数,配置寄存器的格式如表1所示。

其中RlR0是用来设定分辨率的,分辨率的定义如表2所示。

由表2可以看出,分辨率设定得越高,温度转换所需要的时间就越长,因此应根据实际应用的需要来选择合适的分辨率。本文中选取12位分辨率,每隔1秒检测一 次温度。12位分辨率的温度数据值格式如下:

当S=0表示测得的温度为正值,当S=l表示测得的温度为负值。

1.3.1 DSl8820的存储器结构

DSl8820的存储器有高速暂存RAM和非易失性电擦写EEPROM。高速暂存RAM的内容从低字节到高字节9个字节依次为:温度LSB、温度MSB、 高温限值字节TH、低温限值字节TL、配置寄存器、保留、保留、保留,最后一个字节是前8个字节的CRC码。EEPROM用来存储TH和TL。

1.3.2 温度数据的处理方法

从DSl8820读出的两个字节的二进制值温度必须先转换成十进制数值,然后才能将其ASCII码送往LCDl602显示。12位的分辨率,温度是以 0.0625步进的,由于两个字节的温度采用补码表示,所以先判断读出温度的最高位是0还是1,即判断是正温还是负温,然后对其求补码转化成正温,之后将 高字节的低4位和低字节的高4位组成一个字节,这个字节的二进制值不断除以10得出的余数即为温度值的个、十、百位值。若读出的温度数值是负数,显示处理 时,在温度数的前面人为显示负号即可。对小数部分的温度只需将低字节的低4位乘以0.0625,然后对乘积取其小数点后的一位数即可。

1.3.3 DSl8820的控制步骤

(1)首先对DSl8820进行复位。由单片机将数据线DQ拉至低电平480-960 μs,然后将DQ拉高15-60 μs,以便单片机检测到DSl8820送来的低电平响应。然后检测DQ,若DQ仍然为高电平,则复位 *** 作失败,可采用循环的方式再次对其进行复位;若DQ 为低电平,则复位 *** 作成功。

(2)DSl8820的ROM *** 作命令。DSl8820复位后,主机可以发器件ROM的 *** 作命令如读ROM[33H]、匹配ROM[55H]、跳过 ROM[0CCH],报警搜索[4EH]等。在单点总线的情况下,可发跳过ROM[0CCH] *** 作命令,以节省时间。另外,文中有报警的功能,温度转换后 还需要发报警搜索命令,该命令会将最近一次测得的温度值T与高速RAM中的TH或TL作比较,若T>TH或T<TL,则该器件内的报警标志位 置位,并对主机发出的报警搜索命令作出响应。

(3)DSl8820的存储器 *** 作命令。如启动温度转换命令[44H],写入命令[4EH](写入该命令后,紧接着要写入报警上限TH,报警下限TL及配 置寄存器字节),读暂存器RAM的内容命令[0BEH](读取将从第一个字节开始一直到第9个字节结束,如仅需要部分字节,主机可以在合适的时刻发复位命 令来终止读取)及复制命令[48H](把暂存器RAM的第2、3、4字节转存到DSl8820的EEROM中)等。

(4)DSl8820的ROM或RAM *** 作的总线读写时序。对于读时序,首先将DQ拉低并延时1-15μs以内(延时时间不能太长),然后将DQ拉高并延 时几个μs后再读取DQ的值,读完一位后需要延时45 μs以上才能读取下一位;对于写时序,先将DQ拉低10-15μs,接着向总线写入数据并延时50μs以上,最后将DQ拉高1μs以上再进行下一位的写 入。

1.4 液晶显示模块

采用的是长沙太阳人电子有限公司生产的SMCl602A。

1.4.1 主要技术参数

芯片的工作电压4.5~5.5V,能显示两行,每行显示16个字符,字符的大小为2.95×4.35mm。

1.4.2 接口信号说明

除电压、背光引脚及8个I/O引脚外,主要的控制引脚还有数据/命令选择RS引脚,该引脚为高电平时表示I/O引脚出现的是数据,该引脚为低电平时表示 I/O引脚出现的是命令;读/写选择引脚及使能引脚E(该引脚为高电平时对SMCl602A的 *** 作才有效)。

1.4.3 指令说明

(1)初始化设置

a.显示模式设置。指令码:00111000b,用于设置16×2显示,5×7点阵。

b.显示开/关及光标设置。二进制指令码:00000DCB中D位用来控制显示开或关,C位用来控制显示光标,B位控制光标是否闪烁。二进制指令 码:000001NS中N位控制读写一个数据后地址指针和光标加或减1,S位控制字符的移动。

c.数据指针设置。指令码:80H+地址码(0-27H,40H-67H)用于设置数据指针。

(2)其他设置。如指令码01H:显示清屏且数据指针清零。

1.4.4 LCDl602的初始化步骤

(1)延时15ms,写指令38H(不检测忙信号);

(2)延时5ms,写指令38H(不检测忙信号),上述过程执行两遍,后面的过程每次写指令、读/写数据之前均需要检测忙信号;

(3)写指令38H:显示模式设置;

(4)写指令08H:关闭显示;

(5)写指令0lH:清屏且数据指针清零;

(6)写指令06H:字符不移动,光标和指针加1;

(7)写指令0FH:显示开,光标闪烁。

1.5 恒温保持控制模块

选用6V固态继电器作为开关器件,通过控制其断与通的时序从而控制加热器件的工作时长,以实现样品的恒温保持功能。

2 系统硬件电路的设计

该系统的主要电路原理图如图2所示。系统中使用USB口提供5V电源的电路;使用RS232串口通过P3.0和P3.1烧写程序的电路;以及使用继电器控 制的恒温保持电路等在原理图中并未画出。

3 系统的软件设计

系统总的流程图如图3所示。系统程序主要有主程序和LCDl602初始化子程序及读写时序子程序、DSl8820复位及读写时序子程序、键盘扫描子程序、 温度数据处理子程序等构成。

4 程序的编辑及调试

编程语言可以采用汇编语言,也可以采用C51语言。本文采用汇编语言,使用Keil C软件新建一个工程,然后新建一个文件输入源程序并保存成.asm格式,并将该源文件添加到刚刚新建的工程,随后编译链接后生成十六进制文件 (.HEX),最后使用烧写软件stc-isp-v3.9l通过RS232串口将十六进制文件烧写进单片机的Flash中运行程序即可。

5 结论

本文设计的多功能温度控制器体积小、功耗低、可靠性高,实验表明,对温度的控制精度达到了0.1℃的设计目标。

电子锁锁定怎么办

电子锁锁定怎么办,指纹锁在现在已经成为了一款非常常见的防盗产品,现在有很多的家庭中都安装了电子锁,当如果没有正确使用电子锁的时候就会导致锁定,电子锁锁定怎么办?

电子锁锁定怎么办1

一、如果是因为指纹多次输入都是错误的,而导致指纹锁被迫锁定了的话。我们可以稍等一会儿,虽然每款指纹锁锁定后解锁的时间都是不一样的,要根据每个品牌自己所设定的程序是多久来决定的。但是一般来说,为了顾及到人们的使用感受,正常的指纹锁大多在锁定以后,都是在十分钟到半个小时之内,就可以打开了。因此我们可以耐心的等待一会儿,再重新试下指纹开锁即可。

二、大家都知道指纹锁里面是需要装电池的,如果一旦指纹锁里面的电池没电了,就会导致指纹锁打不开了。如果这时候我们是在室内的话就比较好解决了,直接更换一块新的电池就可以了。但如果我们是处于室外环境下的话,我们就需要先给指纹锁充上一些电,将它打开了才能再更换电池。因此,我们可以先购买一块9V的电池,然后将这块电池的正极和负极连接起来,就可以做成一个临时的电源。给指纹锁充上一些电之后,指纹锁就可以打开了,打开以后就给它更换上新的电池,以免忘记了下次又打不开了。

三、除了上述所说的临时电源,有一些比较高级的指纹锁是配有安卓接口的。像这种情况下我们就可以使用我们正常给手机充电用的充电宝,来临时给指纹锁充些电。不过这种情况只能针对于指纹锁上配有安卓接口的情况下才是可以使用的,其他情况下都是不可匹配的。

四、如果你现在是身边没有支付宝也买不到9V电池的情况下,想必你身上应该带有机械钥匙吧。一般来说每一把锁都必须配有一把机械钥匙,以防指纹或密码失灵的时候,可以备用。像这个时候,我们就可以拿出机械钥匙开锁即可。

五、如果不是因为电池没电而导致了指纹锁锁定了,那可能就是电路出现了故障。像这种情况下,我们需要拨打售后电话,请专业的人员来维修,千万不可以自己贸然尝试。

电子锁锁定怎么办2

指纹锁在使用过程中,多次输入错误,会造成指纹锁系统自动锁定,这是出于安全问题考虑,为指纹锁安全设置的保护功能,当密码或指纹连续多次输入错误后,指纹锁主板被锁定5分钟,有效的防止了密码被恶意窃取。

不同品牌的指纹锁系统锁定时间是不一样的,您可以拨打指纹锁售后电话问一下,指纹锁的系统锁定时间一般是5分钟左右,5分钟后系统会自动解开,如果实在等不及的话,您还可以用应急钥匙开锁进门后,进行系统重置的。

指纹锁普及原因:

首先,中高端防盗门锁具拥有非常高的安全保护性能,能够保障用户生命财产安全。其次,如今的防盗门锁具都渐渐摆脱了质量笨重,造型单一等缺点,普遍被加入了触屏、密码、指纹、遥控、无线、刷卡等这些高科技、智能化元素,更加彰显了人性化的关怀。

最后,高科技防盗门锁的利润可观,引来不少了企业关注和投资,以抢占业内的一席销售之地。”

防盗门锁具最关键的功能和作用就是防盗。企业为了让使用者享受到锁具最大程度的安全性,着重对内部锁体和锁芯功能进行升级完善。

随着社会各类支柱行业和主导领域需求的日益增加以及消费者要求的不断提高,普通古典的防盗门锁具已经很难被满足和接受。

业内的产品改革升级,质量优化提升已是离弦之箭,高科技、高智能的防盗门锁具也随之应运而生。

各种各样的技术含量丰富,附加值高的防盗门锁具与防盗门被生产企业有机巧妙地融合在了一起,不仅为很大程度上改变了大家之前对防盗门锁具的看法,而且也为参观者呈现了行业革命性的成就。

电子锁锁定怎么办3

指纹锁的系统锁定时间一般是5分钟左右,5分钟后系统会自动解开。

不过,不同品牌的指纹锁系统锁定时间是不一样的。

指纹锁在使用过程中,多次输入错误,会造成指纹锁系统自动锁定,这是出于安全问题考虑为指纹锁安全设置的保护功能。

当密码或指纹连续多次输入错误后,指纹锁主板被锁定5分钟,有效的防止了密码被恶意窃取。如果实在等不及,还可以用应急钥匙开锁进门后,进行系统重置。

指纹锁锁芯的要求

所有的指纹锁都要求配备应急钥匙孔,锁芯的安全级别当然也显得非常关键。

假插芯:一般是指一字型锁芯,就是它的锁芯处只有一条像一字的空位,靠锁芯前面的一字杆插进到一字空位那里带动锁体转动。钥匙孔在锁的底部,不通过门,从面板下插入。用钥匙打开的不是锁,而是一个类似于卡槽结构的东西,有的人管这个结构叫”离合器“,多采用A级锁芯。

优点是隐蔽性好而且便宜,缺点就是安防性能低。意思就是当小偷要进门,只要敲掉指纹锁的外面板,然后用一把一字螺丝刀代替一字杆,就可以轻松开锁了。

真插芯:真插芯锁芯一般就是葫芦胆锁芯,该锁芯是嵌入到锁体里的,与外面板脱离,必须用机械钥匙带动锁芯来进行开锁动作。也就是直接用机械钥匙插入开锁,是通过锁体的,采用B级锁芯。

优点是防盗性能好,不易通过钥匙套开,缺点就是成本稍高。介于这点,就算小偷敲开外面板,面对的还是整个锁芯,如果是超B级真插芯锁芯,技术开启也需要270分钟以上。

基本原理

电子锁具,它也是以51系列单片机(AT89051)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收传感器送来的报警信号、发送数据等功能。

单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许 *** 作人员重新输入密码,最多可输入三次;如果三次都不正确,则单片机通过通信线路向智能监控器报警。单片机将每次开锁 *** 作和此时电磁执行器的驱动电流值作为状态信息发送给智能监控器,同时将接收来自传感器接口的报警信息也发送给智能监控器,作为智能化分析的依据。

1、基本原理及硬件组成

智能密码锁的系统由智能监控器和电子锁具组成。二者异地放置,智能监控器供给电子锁具所需的电源并接收其发送的报警信息和状态信息。这里采用了线路复用技术,使电能供给和信息传输共用一根二芯电缆,提高了系统的可靠性、安全性。

11、智能监控器的基本原理及组成框图

智能监控器的组成框图,它由单片机、时钟、键盘、LCD显示器、存贮器、解调器、线路复用及监测、A/D转换、蜂鸣器等单元组成。主要完成与电子锁具之间的通信、智能化分析及通信线路的安全监测等功能。

智能监控器始终处于接收状态,以固定的格式接收电子锁具发来的报警信息和状态信息。对于报警信息,则马上通过LCD显示器及蜂鸣器发出声、光报警;对于状态信息,则存入内存,并与电子锁具在此时刻以前的历史状态进行比较,得出变化趋势,预测未来的状态变化,通过LCD显示器向值班人员提供相应信息,以供决策使用。智能监控器与电子锁具建立通信联系的同时,通过A/D转换器实时地监视流过通信线路的供电电流的变化,有效地防止人为因素造成的破坏,保证了通信线路的畅通。

12、电子锁具基本原理及组成框图

电子锁具的组成框图,它也是以51系列单片机(AT89051)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值、接收传感器送来的报警信号、发送数据等功能。

单片机接收键入的代码,并与存贮在EEPROM中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许 *** 作人员重新输入密码,最多可输入三次;如果三次都不正确,则单片机通过通信线路向智能监控器报警。单片机将每次开锁 *** 作和此时电磁执行器的驱动电流值作为状态信息发送给智能监控器,同时将接收来自传感器接口的报警信息也发送给智能监控器,作为智能化分析的依据。

2、关键技术

为了提高智能密码锁的安全性、可靠性,本文除在器件选择上采取措施(如采用低功耗、宽温度范围的器件)外,在设计中还采用了一些关键技术。

21、线路复用技术

智能监控器和电子锁具异地放置,智能监控器供给电子锁具所需的电源并接收其发送的报警信息和状态信息。如果采用通信线路和供电线路分开的方式,势必要增加电缆芯数,安全隐患增加。本文采用了线路复用技术,仅用一根二芯电缆,实现了供电和信息的传输。原理图如图3所示。

在发送端,电子锁具通过脉冲变压器T将调制好的数据信号升压后发送出去;在接收端,脉冲变压器T将接收到的数据信号降压后送解调器,以减少载波信号在传输过程中的损耗。为了减少通信和供电之间的相互干扰,对扼流圈L、耦合电容C的选择要综合考虑。

设载波频率fo=400kHz,为了保证绝大部分信号能量传输到接收端,取L=337μHC1=0047μF。

22、电流监视技术

为了防止通信线路的人为破坏和电磁执行器因某种原因造成流过电磁线圈的电流过大而烧毁线圈,本文在智能密码锁设计中采用电流监视技术。电流监视器采用MAXIM公司生产的电流/电压转换芯片MAX471。该芯片能将被测电流I转化成对地输出电压U,且有测量范围大、精度高、输出电压U和被测电流I成正比等特点。电流监视器输出电压送A/D转换器,单片机通过读取A/D转换结果,获知线路中电流的变化情况,通过分析及时发现异常,发出报警信号。原理电路如图4所示。

23、数据通讯与预处理技术

智能监控器接收锁具发来的状态信息(其中包括锁具的开启、关闭、第一次密码错、第二次密码错、第三次密码错等)、流过电磁执行器线圈的电流值,并读取该时刻通讯线路的供电电流值,三者结合起来构成一个数据块,其中 *** 作状态占1个字节,供电电流占2个字节,线圈电流占2个字节。智能监控器在与电子锁具通信过程中,始终处于接收状态。为了提高通信可靠性,本文在通信协议中采用重复发送的方式,电子锁具对每一组数据重复发送5次,智能监控器接收到这组数据后,采用大数译码定律纠错,保证了数据接收的准确性。另外为了节约内存需对接收到的数据采用预处理技术,即每接收到一个数据后,首先将该数据与设定的门限值比较,如果大于门限值,则发出超限报警;如果小于门限值,则将该数据与当日接收到的同类数据比较,保留较大者。这样每天存储的数据为同类数据中的最大值,其流程图如图所示。

24、智能化分析

智能化分析与预测技术就是以每次接收到的数据块为依据,与此前同类数据的记录值作比较,分析该 *** 作引起电流变化的大小及趋势,及时发现存在问题,并报告管理人员,从而提高了整个系统的可靠性。

3、系统软件设计

智能密码锁软件采用51系列单片机汇编语言对智能监控器和电子锁具分别编程。智能监控器软件包括键盘扫描和LCD显示程序、蜂鸣器驱动程序、时钟修改和读取程序、数据通信与预处理程序、智能化分析程序及线路监测程序等模块。电子锁具软件包括键盘扫描与译码程序、LCD显示程序、通信程序、电磁执行器驱动及检测程序、传感器接口程序等模块。软件设计过程中采用模块化设计方法,便于程序的阅读、调试和改进。

智能密码锁充分利用了51系统单片机软、硬件资源,引入了智能化分析功能,提高了系统的可靠性和安全性。通过在某型号保险柜安装使用,受到用户的欢迎。另外,智能密码锁在软、硬件方面稍加改动,便可构成智能化的分布式监控网络,实现某一范围内的集中式监控管理,在金融、保险、军事重地及其它安全防范领域具有广泛的应用前景。

呵呵 兄弟可以参考某些部分 呵呵

自己做的课程设计 还没有做完 完了发给你参考参考

题 目:单片机控制步进电机系统

摘 要

很多工业控制设备对位移和角度的控制精度要求较高, 一般电机很难实现, 而步进电机可精确实现所设定的角度和转数。本设计主要是运用51 单片机控制六线4 相步进电机系统, 由单片机产生驱动脉冲信号, 控制步进电机以一定的转速向某一方向产生一定的转动角度。同时能够利用单片机实现电机的正、反转及速度控制,并能在数码管上显示出相应的速度。

本文中给出了该系统设计的硬件电路,软件设计,人机交互等。并对各个功能模块进行了详细的说明。主要内容包括以下几个方面:

单片机控制步进电机的一般原理。

电机驱动及控制的实现。

控制系统整体设计以及模块划分说明。

原理图。

代码。

关键词:单片机;步进电机;系统;驱动

Abstract

Many Industrial control equipment have a highly requirement in displacement and angle with control accuracy, the most motor can't carry out but the step motor can carry out the displacement and angle that you enactmented in accuracy This design mainly used SCM to control step motor systemThe step motor is formed six lines and four phasicThrough SCM generate the drive pulse signalControl stepper motor through a certain speed in a direction to get a certain degree of rotation angle

At the same time, It can use SCM to realization of the motor is , reverse and speed control and showed the speed in the digital tube

In this paper, given the design of the system hardware circuit,software design, human-computer interaction and so onand it given the details description of each functional modulethe main contents include the following:

(1) The general principles of signal_chip controlling step motor

(2) The realization of motor driving and controlling

(3) Control system overall design and description module division

(4) Schematic Diagram

(5) Code

Key Words:SCM; stepper motor; system; drive

目录

引言 4

1 单片机控制步进电机的一般原理 4

11 步进电机 4

111 步进电机介绍 4

112 步进电机分类 5

113 技术指标 5

114 步进电机工作原理 5

12 单片机 7

2 步进电机驱动实现 8

21简介 8

22驱动选择 8

3 系统硬件设计 9

3 1 单片机控制电机 9

32 键盘 9

33 显示部分 10

程序流程图 11

总结 12

致 谢 13

参考文献 13

附录 13

C代码 13

引言

目前,在工业控制生产以及仪器上应用十分广泛。通常都要对一些机械部件平移和转动,对移动的位移和角度控制要求较高,一般的电机很难实现对位置和角度的精确控制,在一些智能化要求较高的场合,用模拟芯片控制器及信号发生器来控制有一定局限性。而用单片机控制步进电机可以改善性能,步进电机能实现精确的角度和转数,具有良好的步进特性,最适合数字控制。在工控设备中得到了广泛的应用。而单片机具有芯片体积小,兼容性强,低电压地,低功耗等特点,使单片机成为驱动步进电机的最佳空盒子单元。所以单片机控制步进电机系统控制精度高,运行稳定,得以广泛运用。

1 单片机控制步进电机的一般原理

11 步进电机

111 步进电机介绍

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机、交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。

112 步进电机分类

永磁式(PM)。一般为二相,转矩和体积都很小,步距角一般为75或15°

反应式(VR)。一般为三相,实现大转矩输出,步距角为15°。

混合式(HB)。兼具永磁式和反应式的优点,分二相和五相,二相步距角为18°五相步距角为072°。

113 技术指标

静态指标

相数

步距角

拍数

定位转矩

保持转矩

步进电机动态指标

步距角精度

失步

失调角

最大空载启动频率

最大空载运行频率

运行频距特性

电机共振点

114 步进电机工作原理

分析(步进电机展开图)

以反应式步进电机为例,其典型结构图如图1所示。这是一个四相步进电机,当相控制绕组接通脉冲电流时,在磁拉力作用下使相的定、转子对齐,相邻的B 相和D 相的定、转子小齿错开。若换成B 相通电,则磁拉力使B 相定、转子小齿对齐(转过) ,而与B 相相邻的C 相和A 相的定、转子小齿又错开,即步进电机转过一个步距角。若按A →B →C →D →A ⋯规律循环顺序通电,则步进电机按一定方向转动。若改变通电顺序为A →D →C →B →A ,则电机反向转动。这种控制方式称为四相单四拍。若按AB →BC →CD →DA →AB或A →AB →B →BC →C →CD →D →DA →A 顺序通电则称为四相双拍或四相单、双八拍。无论采用哪种控制方式,在一个通电循环内,步进电机的转角恒为一个齿距角。所以,可以通过改步进电机通电循环次序来改变转动方向,可以通过改变通电频率来改变其角频率。运用单片机的输出功能,通过编程实现输出四个信号分别给步进电机的四相A、B、C、D ,并通过输出时信号的循环次序,来设定步进电机的转动方向及输出信号的频率以便设定步进电机的转动频率。

图1 反应式步进电机结构图

实现原理

采用单片机产生A、B、C、D 的四相信号,当采用单片机进行控制时,需要在单片机和步进电机中间设隔离电路以使强弱电分离。由于步进电机的驱动电流相对较大,可增设放大电路来提供步进电机的工作电流。系统电路由五部分组成,即单片机、隔离、放大、电源及步进电机。

12 单片机

功能特性描述

AT89S52是一种低功耗、高性能CMOS8位微控制器,

具有8K 在系统可编程Flash 存储器。使用Atmel 公

司高密度非易失性存储器技术制造,与工业80C51

产品指令和引脚完全兼容。片上Flash允许程序存储

器在系统可编程,亦适于常规编程器。在单芯片上,

拥有灵巧的8 位CPU 和在系统可编程Flash,使得

AT89S52为众多嵌入式控制应用系统提供高灵活、超

有效的解决方案。AT89S52具有以下标准功能:8k字

节Flash,256字节RAM,32 位I/O 口线,看门狗定时

器,2 个数据指针,三个16 位定时器/计数器,一个6

向量2级中断结构,全双工串行口,片内晶振及时钟电

路。另外,AT89S52 可降至0Hz 静态逻辑 *** 作,支持

2种软件可选择节电模式。空闲模式下,CPU停止工作,

允许RAM、定时器/计数器、串口、中断继续工作。掉

电保护方式下,RAM内容被保存,振荡器被冻结,单

片机一切工作停止,直到下一个中断或硬件复位为止。

2 步进电机驱动实现

21简介

步进电机在单单仅给予电压时,电机是不会动作的,必须由脉冲产生器提供位置(脉波数)、速度的脉冲信号指令,以及驱动器驱动电流流过电机内部线圈、依顺序切换激磁相序的方式才能够让电机运 转。所以欲使步进电机动作的必要系统组成有:

(1)脉冲产生器:给予角度(位置移动量)、动作速度及运转方向之脉冲信号的电机驱动指令。

(2)步进驱动器:依控制器所投入的脉冲信号指令,提供电流来驱动步进电机动作。

(3)步进电机:提供转矩动力输出来带动负载。所以步进电机系统构成简单,不需要速度感应器、位置传感器, 即能依照脉冲产生器所输入的脉冲来做到速度及位置的控制。

22驱动选择

步进电机可以选用专用的电机驱动模块,也可以自己构建驱动电路。一般有以下几种选择:

专用驱动模块,如L298,FT5754等,这类驱动接口简单,这类可以驱动步进电机,直流电机等。

达林顿驱动器ULN2803,这个芯片可以一次驱动八线步进电机。

自己构建,通过三极管,74als04,等系列元件构成。但这样系统可靠性会降低,会另外给系统带来误差。

3 系统硬件设计

1 单片机控制电机

如图3

说明:

这个部分为单片机控制步进电机部分,80s52单片机通过达林顿驱动器ULN2803来驱动步进电机,80s52的P10-P14发送控制信号给驱动器,然后驱动器的四根线把信号传递给电机,使电机实现正反转等。电机部分接12V直流电源。

32 键盘

如图4

说明:

本系统中采用了四个按键,分别与80s52的四个引脚相连,分别为LCDEN,RS,WR,RD;分别实现的功能是电机加速,减速,正反转。键盘一旦按下则表示向单片机发送了有效信号,单片机就相应的进行调节。对于键盘的键按下的时候分为几个步骤,当键盘按下的时候,接通电路,键盘扫描检测低电平,但检测到低电平之后不能够判断键是否被按下,因为抖动可能引起这个变化,所有大概延时5~10ms之后再进行检测。如果再次检测到低电平之后说明键被按下。这个过程就是所说的消除抖动。

33 显示部分

如图5

说明:

对于显示部分,因为这个系统只是显示转速,所以采用了LED共阳极数码管。

并且用了74HC573锁存器,74HC573锁存器输出电流大,接口电路简单。本系统采用了两个74HC573锁存器,分别为段选和位选。段选为数码管的显示数字,位选为选中相应的数码管。

程序流程图

总结

通过本次的课程论文,让我真实的感受到一个完整的系统设计过程。这次的的论文从开始的整体布局,排版,到内容中的系统设计直到最后完成。每个流程下来,都带给了我很多的新东西,特别在设计完系统之后做硬件部分中,先是用protel99se画图,好多图在库中找不到,找不到就自己画,然后封装,封装的时候还要用游标卡纸对买来的元件进行精确的测量,然后才能在封装的过程中保证精度。最后做完图之后还要布线,布线完成后再发到厂家去做。事实上这个过程我用买好的空板做的,因为元件不多。所以就买了相应的元件直接再PCB板上焊接好的。在焊接的过程中也会感受到很多东西,因为很多需要注意的。不过这个过程多多尝试就会有进步的。焊接完后就是代码调试阶段。最后就完成了这个小型系统的设计。

致 谢

在此,感谢我的老师以及周围的同学。本次的论文得益于同学们的帮助。最后还要感谢我的父母,是他们一直在背后支持着我。

谨以此文献给他们!

参考文献

[1] 张永枫,王静霞,杨宏利 单片机应用实训教程 西安电子科技大学出版社,2005

[2] 郭天祥 51单片机C语言教程 电子工业出版社 2008

附录

C代码

单片机控制步进电机

实现功能:

定时器中断:定时时间设置为30秒,首先给的初值每次中断为5ms,经过20次中断为1秒,半分钟三十秒则要中断600次,所有到达六百次后就把计数n中的值读取到数码管中显示出来。

键盘检测:进行速度控制的时候按下相应的键则会对应的进行速度调节。

数码管显示:

驱动部分:

#include <reg52h>

#define uchar unsigned char

sbit dula=P2^6;

sbit wela=P2^7;

sbit jia_key=P3^6;

sbit jian_key=P3^7;

sbit zf_key=P3^5;

sbit stop_key=P3^4;

bit flag=0;

uchar num1,n;

uchar num=0,show_num=2,maichong=4,table_begin=0;

uchar code table1[]={0x01,0x02,0x04,0x08,0x08,0x02,0x01};

uchar code table[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

// 延时部分

void delay(uchar i)

{

uchar j,k;

for(j=i;j>0;j--)

for(k=110;k>0;k--);

}

// 显示部分

void display()

{

dula=0;

P0=table[show_num];

dula=1;

dula=0;

wela=0;

P0=0xfe;

wela=1;

wela=0;

delay(5);

P0=table[0];

dula=1;

dula=0;

P0=0xfd;

wela=1;

wela=0;

delay(5);

}

// 键盘检测部分

void key()

{

if(jia_key==0)

{

delay(5);

if(jia_key==0)

{

num++;

if(num==4)

num=3;

while(jia_key==0)

}

}

if(jian_key==0)

{

delay(5);

if(jian_key==0)

{

if(num!=0)

num--;

else

num==0;

while(jian_key==0);

}

}

if(zf_key==0)

{

delay(5);

if(zf_key==0)

{

flag=~flag;

while(zf_key==0);

}

}

if(stop_key==0)

{

delay(4);

if(stop_key==0)

{

show_num=0;

maichong=0;

}

while(stop_key==0)

}

}

// 键盘检测结果

void dispose()

{

switch(num)

{

case 0:

maichong=5;

break;

case 1:

maichong=4;

break;

case 2:

maichong=3;

break;

case 3:

maichong=2;

break;

}

if(flag==0)

{

table_begin=0;

}

else

table_begin=4;

}

// 数码管驱动部分

void qudong()

{

uchar i,j;

for(j=0+table_begin;j<4+table_begin;j++)

{

P1=table[j];

for(i=0;i<maichong;i++)

{

dispaly();

}

}

}

// 主函数部分

void main()

{

while(1)

{ init();

key();

dispose();

qudong();

n++;

}

}

// 定时器中断初始化

void init()

{

TMOD=0x01;

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

EA=1; // 开总中断

ET0=1;// 开定时器0中断

TR0=1;// 启动定时器0

}

// 定时器中断调用

void T0_time() intterrupt 1 // T0中断

{

TH0=(65536-45872)/256;

TL0=(65536-45872)%256;

num1++;

if(num1==600)

{

show_num=n;

num1=0;

n=0;

}

}

以上就是关于c51单片机串并口转换程序全部的内容,包括:c51单片机串并口转换程序、电子锁锁定怎么办、用单片机对步进电机进行控制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10043796.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存