基于MSP430G2211实现的家用窗帘自动开关控制器(朱晓香) - 图文(4)

2019-03-22 16:26

unsigned char PushKey; PushKey=P1IFG&(BIT4+BIT6); __delay_cycles(5000); if(PushKey&BIT6) {

Key1_OnClick(); }

if(PushKey&BIT4) {

Key2_OnClick(); } } 按键处理:

void Key1_OnClick()

{

switch(status) {

case Close_Stop : break; case Open_Stop : break;

case Normal :P1OUT&=~(BIT2+BIT3);status=Open_Stop; break; case Innormal :break; } }

void Key2_OnClick()

{

switch(status) {

case Close_Stop: break; case Open_Stop : break; case Normal: break;

14

case Innormal : P1OUT&=~(BIT2+BIT3);status=Close_Stop; break; } }

第三节 软件程序的调试方法

建议分功能模块调试,要特别注意switch语句的书写规范。

(1)调试比较器模块是否正常,如果觉得程序没问题但还是出不来效果,可能是单片机的比较器端口坏了,这事应该重新下载一个简单的程序检测一下,以下是TI公司提供的一个程序范例:

#include void main (void) {

WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= 0x01; // P1.0 output

CACTL1 = CARSEL + CAREF0 + CAON; // 0.25 Vcc = -comp, on CACTL2 = P2CA4; // P1.1/CA1 = +comp while (1) // Test comparator_A output {

if ((CAOUT & CACTL2))

P1OUT |= 0x01; // if CAOUT set, set P1.0 else P1OUT &= ~0x01; // else reset } }

(2)调试按键中断是否正常,建议两个按键分开调试,调试一个时另一个屏蔽,如果按键按下没出现效果,可能是按键中断没进去,也可能是按键处理函数的问题,应在中断和处理函数处设置断点查出问题。

15

第四章 总结与思考

(1)假如窗帘在处于打开状态时断电了,等加电后且光照度低于参考值时,窗帘无法自动关闭,因为该方案在初试化时,默认窗帘是关闭的,可以采用给单片机强制加上高于参考值的光照度,这时就工作正常了,大家可以自己从软件商来解决该问题(比如FLASH)。 (2)该方案将模拟比较器输出CAOUT位为“置1”或是“清零”的判断放在了主循环中,实际上由于光照度不会突变没有必要一直去判断CAOUT位的值,这样会造成能耗较大,可以编写能耗更低的程序来实现此功能。

(3)该方案一上电就开始工作,大家可以增加手动和自动功能的控制,只有在某一按键被按下时,系统才处于自动工作状态。

(4)由于窗帘所处的状态可能不止该方案所列出的四种状态,即电机正转,电机反转,窗帘处于打开,窗帘处于关闭,大家可以根据自己的要求增加状态,进一步扩展功能。

16


基于MSP430G2211实现的家用窗帘自动开关控制器(朱晓香) - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:民主党派入会申请样本

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: