显示器是系统的输出设备,用于反馈系统的运行状态,并给用户以直观信息,用户可以 根据提示进行相应的操作。本控制系统采用 LCD 显示屏,没有驱动电路,需要设计驱动电路与之配合使用。设计中所选的液晶显示屏是 SHARP 公司的 5.7 寸显示屏 LQ057Q3DC12I,其供电要求是 3.0V~3.6V,需将芯片接上 3.3V 的电压。

3 、控制系统软件设计

3.1 键盘输入程序

键盘输入模块的工作任务包括键盘扫描、键盘驱动和键盘处理。键盘扫描获得按键的扫描码,键盘驱动接收扫描码并对其进行处理,将处理后的数据送至应用程序,应用程序获得键值信息后对信息进行处理,实现按键功能。

键盘采用循环扫描方式,按照设定的扫描频率对键盘输入进行检测。系统创建一个扫 描任务,当检测到合法按键之后就将该按键扫描码写入消息发送给其他任务,通知系统某键被按下,被按键的扫描码通常放置在一个缓冲区内,直到该应用程序准备处理一个按键为止。键盘驱动由 VxWorks 操作系统的一个可选组件——多媒体库 WindML 提供[4],包括下 层驱动和上层驱动。下层驱动负责驱动设备控制器并向上层驱动传送设备的原始数据,它是作为 I/O 驱动来实现的,被设置在系统内核。上层驱动接收来自下层驱动的设备原始数据,并进行解释处理,将其打包成一个输入事件信息,然后将该信息发送至驱动接口。应用程序通过驱动获得键盘的状态之后,根据从缓冲区读出的键值,按照键盘的预定义对各控制模块的组态信息进行设置,以执行相应的功能。

3.2 图形显示程序

进行图形界面(GUI)的设计同样需要加载多媒体库 WindML,WindML 支持多线程和多任务,但图形的资源是一定的,为了防止多线程之间产生资源冲突,需要使用互斥信号量锁定资源。在使用一组绘图函数前,用 uglBatchStart(gc)通过互斥信号量锁定图形上下文, 图形设备及缓冲,并隐藏光标。绘图操作完成后,再用 uglBatchEnd(gc)释放被锁定的资源, 以被其他的绘图函数使用。以下根据 WindML 的编程流程,以绘制直线为例给出一个绘图 操作的程序:

{

UGL_GC_ID gc;

。..。..

uglInitialize(); // 初始化

。..。..

uglColorAlloc(devId, &colorTable[GREEN].rgbColor, UGL_NULL,

&colorTable[GREEN].uglColor, 1); // 配置颜色

。..。..

gc= uglGcCreate(devId); // 创建图形上下文

。..。..

uglBatchStart(gc); // 锁定图形资源

uglForegroundColorSet(gc, colorTable[WHITE].uglColor); // 设置前景色 uglBackgroundColorSet(gc, colorTable[RED].uglColor); // 设置背景色 uglLineWidethSet(gc, 9); // 设定线宽

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查