- UID
- 1029342
- 性别
- 男
|
在本设计中,编写基于Microwindows的应用程序,基本结构为初始化、创建窗口与资源、进入消息循环三部分。主程序中相关部分如下所示:int WINAPI WinMain()
{MwRegisterEditControl(NULL); // 申明不使用控件
wndclass.style= CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
wndclass.lpszClassName = szAppName; // 创建窗口属性的结构体变量
RegisterClass(&wndclass);
hwnd=CreateWindowEx(); //创建窗口
while (1)
{if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)) //消息查询
{TranslateMessage(&msg);DispatchMessage(&msg);} //传递消息至窗口处理程序
ScanKey_function(); //扫描键盘
RxKeyvalue(hedit_Param);
……}}
在调用窗口创建函数CreateWindowEx()后,系统在内存中创建了一个虚拟的窗口,之后调用窗口显示函数ShowWindow()就可将虚拟窗口显示为可视窗口,成为Windows风格的视窗界面。在本设计中,主程序运行时不断调用提取消息函数PeekMessage(),查看消息队列是否收到任务信息,当有信息产生时,就执行对应的消息处理函数。同时,在消息循环里也反复调用键盘缓冲区查询函数RxKeyvalue (),查看是否有键盘输入,以便随时响应。
4. 抗干扰措施
在本设计中,采用低温漂的基准稳压电源为前置放大电路供电,并且在每个元件的电源管脚处加去耦电容。元器件选用高精度、漂移小的精密运算放大器;选用高精度、低温漂的精密电阻;信号线采用双绞线或屏蔽线。印刷板布线时,尽量缩短前置放大电路的信号线,并确保了电路接地、屏蔽良好。
5 结语
本文创新点在于设计和实现了一种基于ARM的微伏信号在线监测系统,以差动放大方式消除外界对测量信号的干扰,利用S3C44B0X微处理器和μClinux操作系统实现液晶屏显示数据、人机交互和故障自动报警功能,为实现微伏信号在线监测提供了一种体积小、功耗低、操作灵活的解决方案。本设计已投入使用,长时间工作稳定。 |
|