1、要求在液晶屏上第一行显示2#池温度。界面设计要求简单清晰明了。3、扩展功能 增加智能检测功能,能够判断系统以下基本故障,并在液晶屏上第二行显示故障类型信息。1)当P1开时间超过2分钟,1#满传感器没有指示则指示故障1;2)当P3开时间超过2分钟,1#空传感器没有指示则指示故障2;3)当加热器开时间超过3分钟,温度没有达到60度则显示故障3;4)当P5开时间超过3分钟,3#空传感器没有指示则指示故障4. 增加并行功能以提高工作效率,即当P3、P4关闭后,即启动P1、P2。4、设计流程1、仔细分析整个工作流程细化成状态找出状态切换条件将状态逐步联系起来绘制状态网络图,如图一2、根据状态网络图和开发
2、板硬件原理图合理的设置状态指示和开关切换状态3、根据上面的状态网络图和硬件设置,绘制程序流程图4、仔细分析流程图编写程序5、进行程序调试,修改6、验证程序,确认设计要求7、设计总结5、设计方案分析说明 设计方案总体框架图总说明:8路LED做状态指示,8路按键引发状态切换,12864液晶显示各种故障提示以及实时显示温度,AD模拟温度,子说明:LED详细状态说明及按键详细说明见下表LED1LED2LED3LED4LED5LED6LED7LED8P1开P2开P3开P4开P5开加热搅拌-KEY1KEY2KEY3KEY4KEY5KEY6KEY7KEY8开始停止1#满1#空2#满2#空3#满3#空注:1、
3、P1P5开都是在其对应的LED亮的情况下,类推,当对应的LED暗的时候就意味着是关的状态;2、LED1LED8对应开发板的D1D8;3、KEY1KEY8对应开发板的K1K8;6、设计软件程序图主状机状态转换图7、体会此次课程设计在历时两个星期之久,通过两个星期多的学习实践,让我们经历了从理论到实践的过程,了解了实际产品开发的标准流程,经历了团队合作的重要过程。使我们对arm构架有了基本的了解,熟悉了arm9中的外部中断,定时器中断,RTC,IO口的配置和使用。本次课设提高我对嵌入式学习的浓厚的兴趣,增加了学好嵌入式的信心,增强了面对学习中克服困难的勇气。同时也总结了一些经验和教训,比如:项目开
4、发经验不足,有时会出现实际的开发脱离先前的设计,遇到难的问题解决起来较慢。需求分析不全面等。因此在以后的学习实践过程中,要认真思考,勇于面对各种困难,全面系统分析一切遇到的问题。同时它也让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓“一份耕耘,一份收获。”没有付出,何谈回报呢?再者,通过本次课程设计,我也学会了如何去分析问题,继而去排除解决问题,这就是一个自我学习的过程。当我们通过课程设计去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。参考文献周立功主编,ARM嵌入式系统基础教程,
5、北京航空航天大学出版社,2008.9嵌入式系统基础与应用,北京科海电子出版社,2009.1附录 程序清单相关头文件在项目压缩文件中均已包含/* 文 件 名:main.c* 功 能:LED显示控制。通过GPIO直接控制4个LED产生流水灯效果* 说 明:将跳线器JP12全部短接,这个警告可忽略,C2892E: signed constant overflow*/#include config.hdef.hLPC2294.hboard.hLCD_YM12864I.h#define uchar unsigned char#define uint unsigned int#define LED1_ON
6、 (IO0CLR = IO0CLR | (12) #define LED1_OFF (IO0SET = IO0SET | (12)#define LED2_ON (IO0CLR = IO0CLR | (14) #define LED2_OFF (IO0SET = IO0SET | (14)#define LED3_ON (IO0CLR = IO0CLR | (15) #define LED3_OFF (IO0SET = IO0SET | (15)#define LED4_ON (IO0CLR = IO0CLR | (16) #define LED4_OFF (IO0SET = IO0SET |
7、 (16)#define LED5_ON (IO0CLR = IO0CLR | (128) #define LED5_OFF (IO0SET = IO0SET | (128)#define LED6_ON (IO0CLR = IO0CLR | (129) /加热器 #define LED6_OFF (IO0SET = IO0SET | (129)#define LED7_ON (IO0CLR = IO0CLR | (130) #define LED7_OFF (IO0SET = IO0SET | (130) /搅拌器#define LED8_ON (IO0CLR = IO0CLR | (131
8、) #define LED8_OFF (IO0SET = IO0SET | (120)&(p1_state != 1) /时间到了,还没有收到满信号则显示故障; Display_GuZhang1(yi); if (readkey=Get_Keystoke() = 3) / 1 池满关闭1 P1_state = 1; if (readkey=Get_Keystoke() = 5) / 池满关闭 p2_state = 1; if (t010) state1 = 2; t3_num = 0; LED6_ON; ; break; case 2:/ Display_AD_Data(wendu); / LED6_ON / 加热开 if (p1_state ! LED1_ON; if (p2_state ! LED2_ON; /开了,池当然不是是空的 if (t1_num= 1)/时间到了,还没有收到满信号则显示故障; Display_GuZhang1(); /故障 if (t3_num(wendu60); /故障3 if (readkey=Get_Keystoke() = 3) /1 池满 关闭1 p1_state = 1; if (readkey=Get_Keystoke() = 5) / 池满关闭 p2_state = 1;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1