EDN首页   博客首页

日志档案

发表于 2006-11-15 7:54:18

8

标签: MSP430  液晶  单片机  拼音输入  

我们学校开始新一轮的创新课题征集,大家看看

我们学校开始新一轮的创新课题征集,我提出了这样的一些题目,大家看看

1 时间与环境参数显示系统

研究价值与意义:

   时间与环境参数显示系统”使用大屏幕模式显示标准时间,环境温度,湿度,光照强度等所在环境参数。

标准时间使用GPS授时

环境参数采集使用相应传感器

系统核心使用先进的16位MSP430单片机

研究的价值与意义:

有创新价值,还没有看到这样的东西;

MSP430单片机为针对我校大二学生开设的实验选修课,这个项目使用MSP430单片机为核心,可以让学生在学习之后继续提高以致能课题研究;

是一个比较复杂的系统,学生能得到锻炼;

    LED大屏幕显示,有实用价值。

微功耗复杂电脑密码锁

研究价值与意义:

   复杂电脑密码锁”由MSP430单片机、键盘、液晶显示构成。

系统核心使用先进的16位MSP430单片机,超低功耗

密码可修改

研究的价值与意义:

创新价值,使用MSP430,可以做到功耗小于1uA,对于电池工作的密码锁,为创新所在;

MSP430单片机为针对我校大二学生开设的实验选修课,这个项目使用MSP430单片机为核心,可以让学生在学习之后继续提高以致能课题研究;

是一个比较复杂的系统,学生能得到锻炼;

    密码锁,有实用价值。

嵌入式微电脑记事本

研究价值与意义:

   嵌入式微电脑记事本”使用MSP430微处理器、图形液晶显示器、键盘、存储器、拼音输入法、各种对应的软件等构成

研究的价值与意义:

系统核心使用先进的16位微处理器MSP430

有创新价值,还没有看到这样的东西;

MSP430单片机为针对我校大二学生开设的实验选修课,这个项目使用MSP430单片机为核心,可以让学生在学习之后继续提高以致能课题研究;

是一个比较复杂的系统,学生能得到锻炼;

有实用价值,可以作为随身携带的电子记事本,

手机彩屏应用研究

研究价值与意义:

   手机彩屏应用研究”使用通用微处理器对手机彩屏进行应用。

研究的价值与意义:

系统核心使用先进的16位微处理器MSP430

有创新价值,手机彩屏为非常普通的事物,但是谁能让它随心所欲显示起来呢,此项目将使用通用微处理器MSP430控制彩屏显示;

MSP430单片机为针对我校大二学生开设的实验选修课,这个项目使用MSP430单片机为核心,可以让学生在学习之后继续提高以致能课题研究;

是一个比较复杂的系统,学生能得到锻炼;

有实用价值,可以作为便携设备的有色显示器。

大家看看

这样的题目是否适合本科生做,难?易?

我们学校开设了430课程,我上的,这也是一个前提。

系统分类: 嵌入式   |   用户分类: 无分类   |   来源: 无分类   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1349)    回复(18)  

投一票您将和博主都有获奖机会!

  • xuhuang

    2007-3-15 16:59:12

    魏老师
        你好!
        时钟问题解决了,下一步我想做一个用MSP430控制的彩显,彩屏用触摸屏,包括按键、显示、时钟、最好能包括AD转换的显示屏。
        上回在华龙二楼看到您做的彩显,很漂亮,也很羡慕,但您做的好像只有协议里的内容,没有自己添加内容吧?
         希望您能给一点建议!
         PS:您在本部有办公室或实验室吗?

  • Teacheryang

    2006-11-26 21:10:21

    我也是老师,类似的工作,我表示赞同,如果真是每个学生都做的话,你们学生水平不错啊!羡慕啊!祝你成功!

  • wei

    2007-1-19 17:31:04

    谢谢各位朋友得光顾

    我得目的就是交朋友啊

     

  • 2006-12-23 16:02:07

    羡慕魏老师的学生阿!有这样的好老师。不过感觉大二的学生来搞,这样的题目恐怕有点难。

    魏老师是否找研究生啊?

  • wei

    2006-12-22 18:43:14

    其实很简单的!

    我的目的不是要学生做多么高深的东西

    使用的材料有:

    单片机、液晶屏、键盘、存储器

    这些跟我学过单片机的学生陡可以做的

    下面的事情就是要综合应用!

    我的主要目的是要让敢做这样的学生有一个比较完整的电子(单片机)设计过程而已

    希望同行、同学、其他老师多提意见

  • yao0718

    2006-12-29 9:53:03

    我在爱思看到过魏兄做的板子,想交个朋友,交流下设计方面的心得体会,我的QQ:29171383

  • cocappjj

    2006-11-20 13:40:39

    呵呵,好学生。真不错,我帮您推广一下吧

  • wei

    2006-11-21 22:18:58

    提提意见啊

  • p

    2006-11-24 13:02:09

    感觉不错

  • 小寒

    2006-12-2 11:58:18

    制作这些东西,成本会不会很高?

    另外,嵌入式微电脑记事本,如果能做出记事本,那应该还能在上面做出许多应用,比如万年历什么的。有了硬件,只要开发软件就可以了……

  • lalama

    2006-11-28 12:11:54

    技术指标不详细,你说呢?lalama

  • xuhuang

    2007-3-8 11:13:22

          魏老师,你好,我是南航三院的研究生,最近一直在做MSP430的板子,找资料时发现您的书和胡大可的书占了大半,前不久才知道鼎鼎有名的魏小龙竟是我自己学校的,真是三生有幸,希望能得到您得指导。
        我的MSP430主要实现按键,显示,DS1305时钟,以及AD转换功能,现在已经完成按键和显示,但是在DS1305时钟上除了点问题,一直无法实现。我把程序列出来,希望您能给与点拨,呵呵!
       您说现在已经开了这门选修课,能不能告诉我时间地点?还有你的办公室位置在哪儿,有机会向当面请教一下!不胜感激
        下面是DS1305的初始化,main函数以及中断子程序,
    void InitDS(void)                            //初始化
    {  int w=0;
      int DS1305[4]={0x8F,0x05,0x01,0xA5};
      int DS1305a[5]={0x87,0xff,0xff,0xff,0xff};
        P5OUT |= 0x10;                           //连DS1305
        while((UTCTL1&0x01)==0);               
       for(w=0;w<=3;w++)
         {
        TXBUF1=DS1305[w];                        //
        while((U1IFG & UTXIFG1) != UTXIFG1);     //等待发送中断标志UTXIFG1
         }
          while((UTCTL1&0x01)==0);              
          delay(20);
          P5OUT &= 0xEF;                         //断DS1305
          delay(20);
         
          P5OUT |= 0x10;                         //连DS1305
       for(w=0;w<=4;w++)
         {
          TXBUF1=DS1305a[w];
        while((U1IFG & UTXIFG1) != UTXIFG1);   
         }
        while((UTCTL1&0x01)==0);                 //UTXBUF和发送移位寄存器为空时置位 也在SWRST置位时置位
          delay(20);
          P5OUT &= 0xEF;                         //断DS1305
          delay(20);
         
          Timer[2]=RXBUF1;                       //
          P5OUT |=0x10;                          //连DS1305
          TXBUF1=0x02;                           //
          while((UTCTL1&0x01)==0);               //UTXBUF和发送移位寄存器为空时置位 也在SWRST置位时置位
          TXBUF1=0x02;                          
          Timer[3]=RXBUF1;                      
         while((U1IFG & URXIFG1) != URXIFG1);    //等待接收中断标志URXIFG1
        Timer[3]=RXBUF1;  
          P5OUT &= 0xEF;                         //断DS1305
        if ((Timer[3]&0x40)!=0)                  //0100。0000
        {    P5OUT |=0x10;                       //连DS1305
            TXBUF1=0x82;                        
        while((UTCTL1&0x01)==0);                
        TXBUF1=(Timer[3]&0xBF);                
        while((UTCTL1&0x01)==0);                
          delay(20);
          P5OUT &= 0xEF;                         //断DS1305
          delay(20);
        }
    }

    // unsigned char TimerW[7]={0x80,0x81,0x82,0x83,0x84,0x85,0x86}; DS1305写代码 年月日时分控制寄存器地址
    void WDS(void)                        //写数据
    { int w=0;
      P5OUT |= 0x10;                      //使能DS1305EN
      TXBUF1=TimerW[w];                   //写DS1305EN代码 赋寄存器地址
           while((UTCTL1&0x01)==0);       //UTXBUF和发送移位寄存器为空时置位 也在SWRST置位时置位
           for(w=0;w<=6;w++)              //写时间
         { 
            TXBUF1=Timechg[w];
            while((UTCTL1&0x01)==0);       //UTXBUF和发送移位寄存器为空时置位 也在SWRST置位时置位
         }
         delay(20);
      P5OUT &= 0xEF;                       //禁止DS1305EN
        
    }


    //TimerR[9]={0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00};//DS1305读代码 随意给一个值来发送

    void ReadDS(void)
    { int w=0;
      P5OUT=0x10;                                 //连DS1305
       TXBUF1=TimerR[w];
      for(w=1;w<=8;w++)
       {
         while((UTCTL1&0x01)==0);                //UTXBUF和发送移位寄存器为空时置位 也在SWRST置位时置位
         TXBUF1=TimerR[w];                       //随意发送数据,触发时钟
         while((U1IFG & URXIFG1) != URXIFG1);    //等待接收中断标志URXIFG1
         Timer[w-1]=RXBUF1;                      //分别得到8个数据,使用Timer[7]Timer[6]Timer[5]Timer[3]Timer[2]五个数分别表示年月日时分
       }
          P5OUT &= 0xEF;                         //断DS1305
          delay(20);
    }

  • xuhuang

    2007-3-8 11:15:45


    void main(void)
    {
        WDTCTL=WDTPW+WDTHOLD;              //关闭看门狗
        BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL
        BCSCTL2 = SELM1 + SELS;
        P1SEL=0x00;
        P1DIR=0x00;                        //P1口输入
        P2DIR=0xFF;                        //P2口输出
     
        InitSPI();                         //初始化SPI
    // 
       CCTL0 = CCIE;                      //CCR0 interrupt enabled
       InitLCD();                         //初始化LCD
        CleLCD();                          //显示清零
        LCDdisplay(0,0,0);                 //显示“南京航空航天大学”
        CCR0 = 100;
        TACTL = TASSEL_2 + ID_1 + MC_1;    //SMCLK, UP mode ,1/2f
        InitDS();                          //DS1305初始化
        ReadDS();                          //读数据
        P6SEL = 0xff;
        P6DIR = 0;
        P1IES = 0x40 ;  // 1-0 INTERRUPT
        P1IFG = 0x0;
        P1IE = 0x40;
    //    InitEE(); 
         _EINT();    
    }

  • xuhuang

    2007-3-8 11:17:18


    #pragma vector=PORT1_VECTOR
    __interrupt void P1_INT (void)
    {
       P1IFG = 0x0;                             //给中断标志复 
       WDS();                                //DS1305写控制              
       ReadDS();                                //读入年月日时
       LCDdisplay(1,0,0);                       //显示时间,会一秒秒的变化
        
    }


  • xuhuang

    2007-3-8 11:22:37

    在执行void InitDS(void) 时,
    执行到while((UTCTL1&0x01)==0);
    和到 while((U1IFG & UTXIFG1) != UTXIFG1);  
    一直在死循环里面,出不出来,
    想请教老师,不是已经定义了中断程序了吗,而且在中断程序中定义了中断复位,为什么一直以上两个语句还是死循环呢

  • xuhuang

    2007-3-8 11:23:22

    如能解答,那就太感激啦!

  • wei

    2007-3-12 10:46:20

    当然能解答问题了

    不过要看缘分了

    如果我没有看到你的问题

    或者我没有用过你的芯片

    只能指导性的

  • wei

    2007-3-12 10:47:47

    时钟可以写段软件时钟