面向对象技术在单片机系统设计中的应用
统所允许的最大任务数),删除优先级最小的任务(优先级的级数从0~MAX_TASK-1共有MAX_TASK个,所以不存在优先级相同的任务,其中优先级级数为0的优先级最高),然后针对 INT0的请求设置消息标志(修改消息队列),并判断它的优先级与当前任务优先级的高低,以决定是否继续当前任务。消息驱动的实现如图2所示:
图2 消息驱动的实现示意图
2.4 系统设计我们将单片机系统类对象化,即组合成了一个通用板,提供了如下资源:64K的RAM和64K的ROM存储器、4K的flash存储器、A/D转换芯片 AD574A和ADC0809的接口、D/A转换芯片DAC0832的接口、一个16键的键盘接口、8个外部中断接口、256个I/O口、一个4行16字的字符型液晶显示器接口、一个320×240点阵式液晶显示器接口和一个RS-232串行通讯口。原理框图如图3所示:
图3 系统原理框图2.5 监控程序设计
当外部设备象单片机对象发送信号时,监控程序必须对键盘操作进行解释,然后调用相应的功能模块,完成预定的任务,并通过显示等方式给出执行的结果。
系统投入运行的最初时刻,应对系统进行自检和初始化。开机自检在系统初始化之前执行,如果自检无误,则对系统进行正常初始化,通常包括硬件初始化和软件初始化两个方面。硬件初始化工作是对系统中的各种硬件资源设定明确的初始状态,如对各种可编程芯片进行编程、对各I/O端口设定初始状态和为单片机的硬件资源分配任务等。软件初始化包括对中断的安排、对堆栈的安排、状态变量的初始化、各种软件标志的初始化、系统时钟的初始化和各种变量存储单元的初始化等。除自检和初始化之外,监控程序的任务还有:处理键盘命令、处理接口命令、处理条件触发、及时启动输出和显示功能等。
一般来说,监控程序的基本结构分为两部分:一部分为初始化部分;另一部分为监控循环实体。本系统把监控实体放在了定时中断子程序中,分析如下:(1)定时中断发生后,首先进行例行操作,即保护现场、重装定时器、调整系统时钟和执行定时作业等;(2)键盘查询和外围设备的信号输入:通过访问键盘获得有效的键盘操作信息或接受到外围设备的有效信号,根据实际情况分别处理;(3)刷新显示:单片机执行了一些功能模块,系统的状态和某些参数即发生了变化,本模块则将这些变化从显示屏上反映过来。(4)中断返回:恢复现场,返回主程序。
把监控实体放在了定时中断子程序中,当主程序在完成自检和初始化之后没有监控任务,便有了进入睡眠状态的条件,这样有利于节电和抗干扰。其流程图如图3所示。
图4 监控实体流程图3、结束语
本系统的设计采用了面向对象的分析技术,为同一类型的外部设备提供了统一的硬件和软件接口,可作为单片机系统的通用平台。在使用本系统时,用户可以根据需要选择加载某些模块对象(如A/D模块对象)和相应的驱动,并可以通过该系统自带的编程环境来编写自己的程序,大大并且缩短了单片机系统设计的时间,提高了单片机系统设计的效率。
参考文献
[1] 陈维兴.C++面向对象程序设计教程 [M].北京:清华大学出版社,2000 .
[2] 周航慈.单片机应用程序设计技术 [M].北京:北京航空航天大学出版社,2002 .
- 基于FPGA的DSP设计方法(08-26)
- 电力电子装置控制系统的DSP设计方案(04-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)