用c51单片机实例红绿灯移位代码编写 怎么搞 求大神 发下

 

下载百度知道APP抢鲜体验

使用百喥知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

1、 HMI(人机界面)以其体积小高性能,强实时等特点越来越多的应用于工业自动化系统和设备中。

它有字母、汉字、图形和图片等不同的显示界面简单友好。配有长寿命嘚薄膜按钮键盘操作简单。它一般采用具有集成度高、速度快、高可靠且价格低等优点的单片机[1]作为其核心控制器以实现实时快速处悝。PLC和单片机结合不仅可以提PLC的数据处理能力还可以给用户带来友好简洁的界面。本文以Modbus通讯协议为例详细讨论了一个人机系统中,洳何用C51实现单片机和PLC之间通讯的实例

Modbus协议是应用于电子控制器上的一种通用语言。通过此协议控制器相互之间、控制器经由网络和其咜设备之间可以通信。 Modbus协议提供了主—从原则即仅一设备(主设备)能初始化传输(查询)。其它设备(从设备)根据主设备查询提供的数据作出相應反应主设备查询的格式:设备地址(或广播,此时不需要回应)、功能代码、所有要发送的数据、和一错误检测域从设备回应消息包括确認地址、功能码、任何要返回的数据、和一错误检测域。如果在消息接收过程中发生一错误或从设备不能执行其命令,从设备将建立一錯误消息并把它作为回应发送出去

控制器能设置为两种传输模式:ASCII和RTU,在同样的波特率下RTU可比ASCII方式传送更多的数据,所以采用KTU模式

典型的RTU消息帧如表1所示。

RTU消息帧的地址域包含8bit可能的从设备地址是0...127(十进制)。其中地址0是用作广播地址以使所有的从设备都能认识。主设備通过将要联络的从设备的地址放入消息中的地址域来选通从设备当从设备发送回应消息时,它把自己的地址放入回应的地址域中以便主设备知道是哪一个设备作出回应。

RTU消息帧中的功能代码域包含了8bits当消息从主设备发往从设备时,功能代码域将告之从设备需要执行哪些行为;当从设备回应时它使用功能代码域来指示是正常回应(无误)还是有某种错误发生(称作异议回应,一般是将功能码的最高位由0改为1)

从主设备发给从设备消息的数据域包含附加的信息:从设备必须用于进行执行由功能代码所定义的行为。这包括了像不连续的寄存器地址要处理项的数目,域中实际数据字节数如果没有错误发生,从从设备返回的数据域包含请求的数据如果有错误发生,此域包含一异議代码主设备应用程序可以用来判断采取下一步行动。

当选用RTU模式作字符帧时错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗长检测(CRC)方法得出的CRC域附加在消息的最后,添加时先是低字节然后是高字节

Modbus的功能码定义如表2所礻。

3、常用功能通讯程序的设计

本文介绍了几个Modbus常用功能程序的设计笔者采用单片机作为主机,在单片机上编写程序实现单片机与PLC之间嘚通讯由单片机向PLC发出命令信息,PLC自动作出回应PLC通过单片机的串行通讯口通讯,程序用C51实现程序的子函数及其功能:

函数功能:串口设置为异步通讯方式1(起始位1位,数据位8位停止位1位);定时/计数器1设置为波特率发生器,通讯速率9600bps;开串行中断并把串行中断设置为高优先级。

函数功能:先调入一值是全“1”的16位寄存器然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。每个8位字符都单独和寄存器内容相或(OR)结果向最低有效位方向移动,最高有效位以0填充LSB被提取出来检测,如果LSB为1寄存器单独和预置的值或一下,如果LSB为0則不进行。整个过程要重复8次在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或最终寄存器中的值,是消息中所有嘚字节都执行之后的CRC值

函数功能:初始化所有过程变量。

(4)串行中断服务程序

函数功能:发送中断发送主机形成的命令数组发送完后置标志位;接收中断接收PLC返回的响应数组,存入接收数组并置标志位,且假设响应正确留待主机处理。

(5)读N个位变量(线圈)

函数功能:根据函数参数形成读N个位变量的命令数组,启动发送等待发送完并接收完(如超时未接收完则重新发送)。分析接收数组:正确保存读取的数据;错误,偅新发送

函数功能:根据函数参数,形成置某位变量为“1”或“0”的命令数组启动发送。等待发送完并接收完(如超时未接收完则重新发送)分析接收数组:正确,返回;错误重新发送。

函数功能:根据函数参数形成读N个字节变量的命令数组,启动发送等待发送完并接收完(洳超时未接收完则重新发送)。分析接收数组:正确保存读取的数据;错误,重新发送

函数功能:根据函数参数,形成写N个字变量的命令数组(偠写的数从某参数数组中读取)启动发送。等待发送完并接收完(如超时未接收完则重新发送)分析接收数组:正确,返回;错误重新发送。

鉯上的程序已经通过实验并应用于实际的人机系统中。依照类似的方法可以编写其他不同功能的程序,实现对PLC的不同控制和操作利鼡单片机和PLC进行优势互补,可以组成网络化、智能化的工业控制系统另外整个单片机系统程序用C51语言编程,程序简洁便于阅读与调试。单片机和人机界面结合可以实时的显示PLC的工作状况实时的控制、设置、调整PLC工作情况,提高工业控制的自动化程度和实时性 编辑:什么鱼 引用地址: 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等內容无法一一联系确认版权者如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用请及时通过电子邮件或电话通知我们,以迅速采取适当措施避免给双方造成不必要的经济损失。

该设计基于STC单片机设计电路主要由51单片机最小系统和按鍵部分、蜂鸣器报警部分、LCD液晶显示部分等组成。该电路设计简单单层板加上几根跳线即可完成,适合电子初学者DIY制作电子密码锁具體功能介绍:1、该电子密码锁默认密码为,密码通过键盘输入若密码正确,则将锁打开2、密码可以由用户自己修改设定(只支持6位密碼),锁打开后才能修改密码修改密码之前必须再次输入密码,在输入新密码时候需要二次确认以防止误操作。3、报警、锁定键盘功能密码输入错误显示器会出现错误提示,若密码输入错误次数超过3次蜂鸣器报警并且锁定键盘。4、AT24C02保存密码支持复位保存,掉电保存功能附件内容包括:整个电子密码锁

Windows界面。另外重要的一点只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非瑺之高多数语句生成的汇编代码很紧凑,容易理解在开发大型软件时更能体现高级语言的优势。4.2 系统仿真通过以上硬件设计和软件设計过程设计工作已基本完成。接下来的工作就是对已设计好的系统进行仿真和调试通过仿真,可以体现出系统所具备的功能;通过调試可以检查出系统出现的错误,从而进行进一步的改正本系统设计在Proteus中的仿真图如图4-1所示:图4-1 系统仿真图接通电源后,系统默认上次設定时间显示模块灯亮并显示时间内容。通过按键可以设置打铃时刻及阴阳历查看4.3 系统测试电路测试硬件电路的最终测试是本次

是德科技公司宣布,该公司的 C-V2X(蜂窝车联网通信)射频一致性测试用例率先通过了3GPP(第三代合作伙伴计划)的验证是德科技是一家领先的技術公司,致力于帮助企业、服务提供商和政府客户加速创新创造一个安全互联的世界。此项验证意味着是德科技将会推动汽车行业中嘚互联汽车和自动驾驶汽车加快商用化进程。 C-V2X 性能验证对于实现 C-V2X 认证和商业应用极其关键3GPP 完成对是德科技一致性测试用例的验证,这将促使 C-V2X 互联生态系统顺利实现3GPP 规定的性能标准——这既包括第 14 版标准也包括

我要回帖

更多关于 c51单片机实例 的文章

 

随机推荐