欢迎来到学术参考网

C语言嵌入式天线控制系统的设计

发布时间:2015-09-07 09:04

摘 要:C语言是一种“高级的低级语言”,既有低级语言的强大功能,又像高级语言易懂易用,因而,成为嵌入式系统开发的最佳选择。将C语言嵌入式系统应用到天线控制系统中具有其独特优势。

关键词:C语言;嵌入式;天线控制系统;设计

一、嵌入式系统
  什么叫嵌人式系统?嵌人式系统就是以应用为中心,以计算机技术为基础,软硬件可裁减,适合应用系统对功能、可靠性、成本、体积和功耗要求的专用的计算机系统。
    在嵌入式系统中,计算机系统一般作为智能控制部件嵌人到整个应用系统中,是整个系统的控制中心,主要用于对系统的信息处理部件和用户交互界面加以控制。在这种情况下,用户并不知道<或者不需要知道)嵌人的计算机的存在,系统控制软件一般被固化在嵌人式计算机中,嵌入式计算机一般不需要(或不能)被用户重新编程,通过特殊的输人、输出设备与系统进行交互。
  任何嵌人式系统都包括硬件和软件两个方面。硬件包括微处理器、存储器、uo端口和图形控制器等。软件包括操作系统软件和应用软件,应用软件控制着嵌人式系统的运作和行为,而操作系统则为应用程序提供必要的底层支持,它一般是通过提供应用编程接口(API)来实现的。但在嵌人式系统开发中它们的区别又不是绝对明显的,有时嵌人式系统的开发者可能要做操作系统和应用编程两方面的工作。
二、C语言嵌入式系统在天线控制系统设计中应用的意义
  考虑到天线控制系统对恶劣的工作环境和对体积、成本、功耗等各方面的要求,实际应用中多采用嵌入式系统。不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比, C语言是一种“高级的低级语言”,既有低级语言的强大功能,又像高级语言易懂易用,因而,成为嵌入式系统开发的最佳选择。
三、C语言嵌入式天线控制系统人机接口设计
    以天线控制系统为例,采用8279通用可编程键盘/显示接口芯片,来完成键盘输入和显示控制功能。其中键盘部分提供扫描工作方式,其消抖及控制流程如图1。

  天线控制系统人机界面采用多级菜单嵌套的形式,完成对各项参数的设置或查询,通过“向上”、“向下”、“回退”、“确认”4个键来实现对菜单的选择。具体功能:“向上/下”键:在本层菜单的项目中向上/下移动,进行选择;“回退”键:取消本层的菜单设置,返回上层菜
单;“确认”键:确认本层的菜单设置,进入下级菜单.程序设计中根据需求,首先建立一个结构,并定义一个结构变量

KbdStruc:tTypedef struct

{

ucharKeyStateIndex; /*当前状态索引号* /

ucharKe·nState; /*按下“向下”键时转向的状态索引号* /

ucharKeyUpState; /*按下“向上”键时转向的状态索引号* /

ucharKeyCrState; /*按下“回车”键时转向的状态索引号* /

ucharKeyBackState; /*按下“退回”键时转向的状态索引号* /

void (* CurrentOperate()); /*当前状态应该执行的功能操作

* /

}

KbdStruct;

  该结构中共有6个结构元素,分别是5个字符型和1个指针变量。5个字符型变量分别为当前及各个按键的索引号,也就是操作的状态号,最后1个指针变量指向需执行函数。作为嵌入式系统的重要组成部分,显示接口必不可少。LED和LCD显示器分别以其价格低廉、发光强度强和低压微功耗、信息量大、无辐射,而在嵌入式系统领域得到广泛应用。特别是图形点阵式液晶可显示用户自定义的任意符号和图形,并可卷动显示,被广泛应用于实时检测和显示的仪器仪表中。把LCD作为字符型终端时,一个关键点是定义好光标:static unsigned CurrentLine,CurrentColumn这里CurrentLine和CurrentColumn分别定义了光标的横坐标和纵坐标(坐标原点在左上角),定义好光标后,每次向屏幕输出字符时,总是从光标处开始;这样就保证了输出的有序性和连贯性。向屏幕输出字符串的基本函数是Printf,其原型如下:void Printf (const char* fmt,…)这是一个可变参数函数,功能上与printf标准库函数完全相似。为了实现可变参数的处理,要使用stdarg. h中定义一些宏。Printf分析每个格式字符,并对各转义字符(如n, ,t b, r, v等)进行相应处理。在屏幕的合适位置打印格式化后的字符串。Printf还调用一个滚屏函数ScreenScroll,当光标位于末行时,让屏幕向上滚动若干行。

上一篇:浅析C语言程序设计教学中问题的探讨

下一篇:开源软件开发中的需求工程