基于单片机的可编程逻辑控制设计说明

上传人:公**** 文档编号:483178833 上传时间:2023-04-01 格式:DOC 页数:30 大小:4.77MB
返回 下载 相关 举报
基于单片机的可编程逻辑控制设计说明_第1页
第1页 / 共30页
基于单片机的可编程逻辑控制设计说明_第2页
第2页 / 共30页
基于单片机的可编程逻辑控制设计说明_第3页
第3页 / 共30页
基于单片机的可编程逻辑控制设计说明_第4页
第4页 / 共30页
基于单片机的可编程逻辑控制设计说明_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《基于单片机的可编程逻辑控制设计说明》由会员分享,可在线阅读,更多相关《基于单片机的可编程逻辑控制设计说明(30页珍藏版)》请在金锄头文库上搜索。

1、1、需求分析21.1项目概述21.2本设计的需求与意义31.3本设计的前景和特色42本实训的概要设计52.1硬件电路52.2软件的使用与程序的编写72.2.1上位机对梯形图的录入72.2.2通信模块程序的编写82.2.3下位机梯形图解释器程序的编写122.2.4整体系统框架的搭建,以及LCD显示与按键程序的编写163、详细设计173.1程序完成对uC/OS-II操作系统的移植183.2.1OS_CPU.H的编写193.2.2OS_CPU_C.C的编写193.2.3OS_CPU_A.ASM203.2在系统中创建各模块并在主函数中添加各摸块任务。213.3在系统中编写key.c和display.c

2、文件程序224、调试过程285、实训总结及感想305.1本次实训体会:305.2 实训总结31 2、LCD显示与按键程序的编写为了将单片机的运行状态表示出来,在系统中添加了key.c和display.c文件,通过调试板上的液晶屏及添加相应的驱动程序,当GPIOF的按键被按下时,在屏上对应的显示出相应的状态,分为三种:运行态,停止态和故障态。使设备的运行态一目了然,同时也完善了工程项目的品质。3、详细设计作者在实训中承担完成系统框架的搭建,并移植uC/OS-II操作系统,以及完成对按键和显示两个模块程序的编写。C/OS实时嵌入式操作系统的结构 硬件层硬件驱动BSP实时操作系统内核RTOSFS文件

3、系统、图形界面、系统管 理接口应用层APP应用层各任务调用关系及参数传递3.1程序完成对uC/OS-II操作系统的移植uC/OS-II的代码大概分为3类,这3类分别为与处理器相关代码、uC/OS-II的配置代码和与处理器无关的代码。根据不同的处理器,我们需要修改的代码文件为OS_CPU.H 、OS_CPU_A.ASM 和OS_CPU_C.C,而在应用程序中使用uC/OS-II时,需要用户提供的是应用软件和uC/OS-II的配置部分。3.2.1OS_CPU.H的编写OS_CPU.H包括了用# define 语句定义的、与处理器相关的常数、宏以及类型,栈增长方向定义,关中断和开中断定义,系统软中断

4、的定义等等。系统核与移植过程是无关的,用户只需要在应用系统开发过程中,通过配置OCS_CFG.H文件来对核进行裁剪,只使用应用系统需要的功能,使系统最小最优化。例如STM32的堆栈是从上往下递减的,所以要将常数变量OS_STK_GROWTH定义为1,即 #define OS_STK_GROWTH 13.2.2OS_CPU_C.C的编写UC/OS中共定义了6个函数在该文件中.但是最重要的是OSTaskStkInit.其他都是对系统核的扩展时用的.OSTaskStkInit是在用户建立任务时系统部自己调用的,对用户任务的堆栈进行初始化.使建立好的进入就绪态任务的堆栈与系统发生中断并且将环境变量保存

5、完毕时的栈结构一致.这样就可以用中断返回指令使就绪的任务运行起来.uC/OS-II的移植例要求用户编写10个简单的C函数:OSTaskStkInit;OSTaskCreateHook;OSTaskDelHook;OSTaskSwHook;OSTaskIdleHook;OSTaskStatHook;OSTaskTickHook;OSInitHookBegin;OSInitHookEnd;OSTCBInitHook;3.2.3OS_CPU_A.ASM这部分需要对处理器的寄存器进行操作。包括四个子函数:OSStartHighRdy,OSCtxSw,OSIntCtxSw,OSTickISR.OSSta

6、rtHighRdy由多任务系统启动函数OSStart中调用.完成的功能是:设置系统运行标志位OSRunning=TRUE;将就绪表中最高优先级任务的栈指针Load到SP中,并强制中断返回.使就绪的最高优先级任务调整至运行态一样,使得整个系统得以运转. OSCtxSw在任务级任务切换函数中调用的.任务级切换是通过SWI或者TRAP人为制造的中断来实现的.ISR的向量地址必须指向OSCtxSw.这一中断完成的功能:保存任务的环境变量,将当前SP存入任务TCB中,载入就绪最高优先级任务的SP,恢复就绪最高优先级任务的环境变量,中断返回.这样就完成了任务级的切换. OSIntCtxSw在退出中断服务函

7、数OSIntExit中调用,实现中断级任务切换.由于是在中断里调用,所以处理器的寄存器入栈工作已经做完,就不用作这部分工作了.具体完成的任务:调整栈指针,保存当前任务SP,载入就绪最高优先级任务的SP,恢复就绪最高优先级任务的环境变量,中断返回.这样就完成了中断级任务切换. OSTickISR系统时钟节拍中断服务函数,这是一个周期性中断,为核提供时钟节拍.频率越高系统负荷越重.其周期的大小决定了核所能给应用系统提供的最小时间间隔服务.一般只限于ms级,对于要求更加苛刻的任务需要用户自己建立中断来解决.该函数具体容:保存寄存器,调用OSIntEnter,调用OSTimeTick,调用OSIntE

8、xit,恢复寄存器,中断返回.uC/OS-II的移植实例要求用户编写4个简单的汇编语言函数:OSStartHighRdy;OSCtxSW;OSIntCtxSw;OSTickISR;3.2在系统中创建各模块并在主函数中添加各摸块任务。主函数中依次完成:定义全局变量;声明个任务函数.初始化uCOS-II,此函数中建立了空闲任务和统计任务,建立开始TaskStart任务,控制权交给uC/OS-II核,开始运行多任务。实现对STM32的初始化,并建立多个任务,包括建立各任务的堆栈,以及设置优先级。 创建各功能任务void TaskExplainer解释器任务void TaskCom 通信任务void

9、TaskKey 按键任务void TaskDisp 显示任务在系统框架中添加各任务的源文件Display.c 、key.c 、LCD驱动文件lcd24.c程序框架如下图:3.3在系统中编写key.c和display.c文件程序编程思想:在key.c文件中,按键按下时,通过IF语句的判断,实现对状态位state的设定。流程图如下:在display.c文件中,通过IF语句对状态位state的判断,在液晶屏上实现显示的功能,流程图如下:Key.c中按键与状态位的设置程序:void KeyBoardScanifGPIO_ReadInputDataBit=0State.Run=1;ifGPIO_Read

10、InputDataBit=0State.Stop=1;ifGPIO_ReadInputDataBit=0State.Wrong=1; 通过状态位state的设定,在显示display中实现显示功能:void DispStateifLCD_PutString,LCD_PutString, LCD_PutString,LCD_PutString, LCD_PutString, LCD_PutString,LCD_PutString;State.Run=0;if LCD_PutString, LCD_PutString, LCD_PutString,LCD_PutString, LCD_PutStr

11、ing,LCD_PutString,LCD_PutString; State.Stop=0;if LCD_PutString,LCD_PutString, LCD_PutString,LCD_PutString, LCD_PutString,LCD_PutString,LCD_PutString; State.Wrong=0;在LCD上显示效果如下截图:运行状态停止状态故障状态4、调试过程虚拟串行驱动程序是一个可在计算机下操作的程序,此驱动程序会创造数个虚拟的串行埠。 由一般程序看来,这些虚拟的串行端口跟实体的串行端口相同,唯一不同于传统传输的地方是在于程序所送出的信息是透过TCP/IP局域网

12、络送至虚拟串行端口,之后由EM100再将所收到的信息传达至串行设备。 当串行设备要回传信息时,要先将信息传至EM100,而后再藉由局域网络将信息传回至位于计算机端的虚拟串行驱动程序,当虚拟串行驱动程序收到信息后,又会将其传回给程序,就如同传统串行线。Commix为工业控制设计的串口设备调试工具,已被许多同行使用,主要特点: 1、能根据设备的通讯协议,方便地生成多种冗余校验如Modbus,并加上结束符,适用于大多数串口通讯的工业设备; 2、能够混合输入16进制数、10进制数、ASCII字符,这种功能通过转义符实现; 3、支持串口1255,支持各种虚拟串口,可以自定义任意通讯参数组合,随时改变参数而不用关闭串口,支持不常用的波特率等; 4、可以测出设备的响应间隔; 5、通讯数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号