查看: 3012|回复: 8

mega256RFR2新建一个12864工程,下载了没反应

[复制链接]
  • TA的每日心情

    2016-3-28 21:00
  • 签到天数: 117 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-10-16 20:56:03 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 w_shuai 于 2013-10-16 20:58 编辑

    #include "12864.h"
    #include <asf.h>
    #include "math.h"
    /*************************************************
        文件名称:main.c
        功能描述:系统上电后,12864液晶显示
        编写人:wangshuai        
        创建日期:2013-8-07
    **************************************************/


    /************宏定义***********************************************/
    #define  SID    IOPORT_CREATE_PIN(PORTE, 2)     //RW
    #define  SCLK   IOPORT_CREATE_PIN(PORTE, 3)        //E


    uchar dis0[]={"角度:      "};
    uchar dis1[]={"t1:   "};
    uchar dis2[]={"t2:   "};




        int abs(int temp)      
      {                                
          return temp > 0 ? temp:-temp ;
      }
      /**************************************************************************************
        函数名称:   void lcd_wbyte(uchar i_data)
        函数功能:   底层向lcd写1个字节
        入口参数:   传送的数据
        出口参数:   无
        返回值:     无
        其他:         
    **************************************************************************************/
    void lcd_wbyte(uchar i_data)
    {
       uchar i;
       for(i=0;i<8;i++)
       {
         if(i_data&0x80)
           //gpio_configure_pin(SID, 1);
               ioport_set_pin_level(SID,1);
         else
          // gpio_configure_pin(SID, 0);
               ioport_set_pin_level(SID,0);
         //  gpio_configure_pin(SCLK, 0);
              ioport_set_pin_level(SCLK,0);
           delay_us(1);
          // gpio_configure_pin(SCLK, 1);
               ioport_set_pin_level(SCLK,1);
           i_data<<=1;
       }
       delay_us(5);
    }
    /**************************************************************************************
        函数名称:   void lcd_data(uchar data,uchar cmd)
        函数功能:   向lcd写命令或数据 cmd=0时写命令 cmd=1时写数据
        入口参数:   命令数据
        出口参数:   无
        返回值:     无
        其他:         
    **************************************************************************************/
    void lcd_data(uchar data,uchar cmd)
    {
       uchar i_data;
       if(cmd==0)
       i_data=0xf8;
       else
       i_data=0xfa;
      // gpio_configure_pin(SCLK, 0);
        ioport_set_pin_level(SCLK,0);
       lcd_wbyte(i_data);
       i_data=data;
       i_data&=0xf0;
       lcd_wbyte(i_data);
       i_data=data;
       i_data<<=4;
       i_data&=0xf0;
       lcd_wbyte(i_data);   
    }


    /**************************************************************************************
        函数名称:   void lcd_init()
        函数功能:   lcd初始化
        入口参数:   无
        出口参数:   无
        返回值:     无
        其他:         
    **************************************************************************************/
    void lcd_init(void)
    {
      lcd_data(0x30,0);        //基本功能设置
      delay_ms(4);
      lcd_data(0x02,0);       //清DDRM
      delay_ms(4);
      lcd_data(0x0c,0);       //开显示,不显示光标
      delay_ms(4);
      lcd_data(0x01,0);       //清屏
      delay_ms(4);         
    }
    /**************************************************************************************
        函数名称:   void lcd_pos(uchar x,uchar y)
        函数功能:   lcd显示位置
        入口参数:   x,y
        出口参数:   无
        返回值:     无
        其他:         
    **************************************************************************************/
    void lcd_pos(uchar x,uchar y)
    {
    switch(x)
      {
        case 0:  
         lcd_data(0x80+y,0);   break;
        case 1:  
          lcd_data(0x90+y,0);  break;
        case 2:  
          lcd_data(0x88+y,0);  break;
        case 3:  
          lcd_data(0x98+y,0);  break;  
       }
    }
    /*************************************************************************************
        函数名称:void Lcd_DisplayString(uchar x,uchar y,uchar string)
        函数功能:   写入一个字符
        入口参数:   x,y,string
        出口参数:   无
        返回值:     无
        其他:         
    *************************************************************************************/
    void Lcd_DisplayOneChar(uchar x,uchar y,uchar string)
    {
            lcd_pos( x, y);
              lcd_data(string,1);
    }
    /*************************************************************************************
        函数名称:void Lcd_DisplayString(uchar x,uchar y,uchar *string)
        函数功能:   写入一个字符串
        入口参数:   x,y,*string
        出口参数:   无
        返回值:     无
        其他:         
    *************************************************************************************/
    void Lcd_DisplayString(uchar x,uchar y,uchar *string)
    {
              uchar i;
              lcd_pos( x, y);
        for(i=0;string!='\0';i++)
        lcd_data(string,1);        
    }
    /*************************************************************************************
        函数名称:void Lcd_DisplayString(uchar x,uchar y,uchar num)
        函数功能:   显示四位数值(占空比或者转速)
        入口参数:   x行,y列,num占空比或者转速
        出口参数:   无
        返回值:     无
        其他:         
    *************************************************************************************/
    void Lcd_DisplayNUM_float(uchar x,uchar y,long int num)
    {            
         uchar wan,qian,bai,shi,ge;
      
         wan=num/10000;
         qian=num%10000/1000;
         bai=num%1000/100;
         shi=num%100/10;
         ge=num%10;
         lcd_pos(x,y);
         lcd_data(wan+0x30,1);
         lcd_data(qian+0x30,1);
         lcd_data(bai+0x30,1);
         lcd_data(0x2e,1);
         lcd_data(shi+0x30,1);
         lcd_data(ge+0x30,1);
    }
    /*************************************************************************************
        函数名称:void Lcd_DisplayString(uchar x,uchar y,uchar num)
        函数功能:   显示三位数值(占空比或者转速)
        入口参数:   x行,y列,num占空比或者转速
        出口参数:   无
        返回值:     无
        其他:         
    *************************************************************************************/
    void Lcd_DisplayNUM(uchar x,uchar y,uchar num)
    {            
         uchar bai,shi,ge;
         bai=num/100;
         shi=num%100/10;
         ge=num%10;
         lcd_pos(x,y);
         lcd_data(bai+0x30,1);
               lcd_data(shi+0x30,1);
                lcd_data(ge+0x30,1);
    }
    /*************************************************************************************
        函数名称:void Lcd_DisplayString(uchar x,uchar y,uchar num)
        函数功能:   显示三位数值(占空比或者转速)
        入口参数:   x行,y列,num占空比或者转速
        出口参数:   无
        返回值:     无
        其他:         
    *************************************************************************************/
    void Lcd_DisplayintNUMy(uchar x,uchar y,int num)
    {            
         uchar shi,ge,num1;
         num1=(uchar)(abs(num)/4);
         shi=num1/10;
             ge=num1%10;
             lcd_pos(x,y);
         if(num>=0)
           lcd_data('+',1);
         else
           lcd_data('-',1);
               lcd_data(shi+0x30,1);
                lcd_data(ge+0x30,1);
    }
    void Lcd_DisplayintNUMy3(uchar x,uchar y,int num)
    {            
         uchar bai,shi,ge,num1;
         num1=(uchar)(abs(num));
         bai=num1/100;
         shi=num1%100/10;
               ge=num1%10;
               lcd_pos(x,y);
         if(num>=0)
           lcd_data('+',1);
         else
           lcd_data('-',1);
         lcd_data(bai+0x30,1);
               lcd_data(shi+0x30,1);
                lcd_data(ge+0x30,1);
    }
    /**************************************************************************************
        函数名称:   void lcd_clear(void)
        函数功能:   将LCD中RAM清空,屏幕显示为空
        入口参数:   无
        出口参数:   无
        返回值:     无
        其他:         
    **************************************************************************************/
    void lcd_clear(void)
    {
        uchar x,y;
        for(x=0;x<4;x++)
        {
           for(y=0;y<8;y++)
           {
             lcd_pos(x,y);
             lcd_data(0,0);
           }
        }
    }
    /*****************************************************************************/
    void xianshi(void)
    {
    ioport_set_pin_dir(SID, IOPORT_DIR_OUTPUT);
    ioport_set_pin_dir(SID, IOPORT_DIR_OUTPUT);
      lcd_init();
      delay_ms(15);
      Lcd_DisplayString(0,0,&dis0[0]);
      Lcd_DisplayString(1,0,&dis1[0]);
      Lcd_DisplayString(2,0,&dis2[0]);
    }   


    主函数

    #include <asf.h>
    #include "12864.h"
    int main (void)
    {
            board_init();
        sysclk_init();
            
            //gpio_toggle_pin(LED0_GPIO);
            xianshi();
            delay_ms(500);
            gpio_configure_pin(LED0_GPIO, 1);
            delay_ms(100);
            while (1)
            {
            
            
            }
            // Insert application code here, after the board has been initialized.
    }

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2013-10-12 09:59
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-10-16 21:17:10 | 显示全部楼层
    楼主请问能不能给个下载过程的说明呢?如何下载程序到板子上啊?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-3-28 21:00
  • 签到天数: 117 天

    连续签到: 1 天

    [LV.6]常住居民II

     楼主| 发表于 2013-10-16 21:19:59 | 显示全部楼层
    jass2008 发表于 2013-10-16 21:17
    楼主请问能不能给个下载过程的说明呢?如何下载程序到板子上啊?

    打开,编译,然后就下载了啊,
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-10-12 09:59
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-10-16 21:30:54 | 显示全部楼层
    w_shuai 发表于 2013-10-16 21:19
    打开,编译,然后就下载了啊,

    编译我知道 下载是点击哪里啊?串口之类的不需要设置吗?我这个板子是MEGA-1284p Xplained的,好像是通过串口来下载的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-3-28 21:00
  • 签到天数: 117 天

    连续签到: 1 天

    [LV.6]常住居民II

     楼主| 发表于 2013-10-16 21:46:58 | 显示全部楼层
    jass2008 发表于 2013-10-16 21:30
    编译我知道 下载是点击哪里啊?串口之类的不需要设置吗?我这个板子是MEGA-1284p Xplai ...

    我的是mega256RFR2不需要设置串口的,点下面这个按钮就行了
    QQ图片20131016214533.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-10-12 09:59
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-10-16 22:25:38 | 显示全部楼层
    w_shuai 发表于 2013-10-16 21:46
    我的是mega256RFR2不需要设置串口的,点下面这个按钮就行了

    我的不可以啊!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-3-28 21:00
  • 签到天数: 117 天

    连续签到: 1 天

    [LV.6]常住居民II

     楼主| 发表于 2013-10-16 22:34:29 | 显示全部楼层
    jass2008 发表于 2013-10-16 22:25
    我的不可以啊!

    你找找和你一样板子的那个申请者看看问问哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-2 16:03
  • 签到天数: 271 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-10-26 00:19:53 | 显示全部楼层
    你可以看看我写有关12864程序,希望对你有帮助。

    https://www.cirmall.com/bbs/thread-19879-1-1.html
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-3-28 21:00
  • 签到天数: 117 天

    连续签到: 1 天

    [LV.6]常住居民II

     楼主| 发表于 2013-10-26 12:10:53 | 显示全部楼层
    昱枫 发表于 2013-10-26 00:19
    你可以看看我写有关12864程序,希望对你有帮助。

    https://www.cirmall.com/bbs/thread-19879-1-1.html ...

    不一样哦,不知道什么问题,程序运行不过去
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 23:29 , Processed in 0.200738 second(s), 32 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.