<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > LCD1602幾種調(diào)試方法(NIOSii)

          LCD1602幾種調(diào)試方法(NIOSii)

          作者: 時間:2016-11-28 來源:網(wǎng)絡 收藏
          #include "system.h"

          #include

          本文引用地址:http://www.ex-cimer.com/article/201611/322944.htm

          int main (void)
          {
          FILE *lcd1;

          lcd1 = fopen("/dev/lcd", "w");

          if (lcd1 == NULL)
          printf("lcd not ready...n");
          else
          {
          printf("lcd ready...n");
          fprintf(lcd1, "111111111111111111111n");
          }

          fclose(lcd1);
          printf("can you see something?");

          return 0;
          }

          #include
          #include<altera_avalon_lcd_16207_regs.h>
          #include
          alt_u8 lcd_string1[] = "HELLO";
          alt_u8 lcd_string2[] = "2010";
          void check_busy() //讀液晶的忙標志位并檢測
          {
          alt_u8 status;
          do
          {
          status=IORD_ALTERA_AVALON_LCD_16207_STATUS(LCD_BASE);
          }while(status&0x80);
          }
          void lcd_init() //液晶1602初始化
          {
          IOWR_ALTERA_AVALON_LCD_16207_COMMAND(LCD_BASE, 0x38); //功能設置
          check_busy();
          IOWR_ALTERA_AVALON_LCD_16207_COMMAND(LCD_BASE, 0x01); //清屏
          check_busy();
          IOWR_ALTERA_AVALON_LCD_16207_COMMAND(LCD_BASE, 0x06); //Y地址自動加1模式
          check_busy();
          IOWR_ALTERA_AVALON_LCD_16207_COMMAND(LCD_BASE, 0x0c); //顯示開,不顯示光標
          }

          void lcd_prints(alt_u8 *string) //打印字符串
          {
          while(*string!=)
          {
          check_busy();
          IOWR_ALTERA_AVALON_LCD_16207_DATA(LCD_BASE, *string);
          string++;
          }
          }
          void select_xy(alt_u8 x,alt_u8 y) //選擇屏幕坐標,x=0為第1行,x=1為第2行
          { //y=0~15,分別對應第1列到第16列
          check_busy();
          if(x%2==0)
          {
          IOWR_ALTERA_AVALON_LCD_16207_COMMAND(LCD_BASE, 0x80+y);
          }
          else
          {
          IOWR_ALTERA_AVALON_LCD_16207_COMMAND(LCD_BASE, 0xc0+y);
          }
          }

          int main (void) __attribute__ ((weak, alias ("alt_main"))); //將程序的入口改為alt_main(),可以使
          //很多驅動不會加載,可以大大減小代碼長度
          void alt_main()
          {
          lcd_init();

          select_xy(0,0);
          lcd_prints(lcd_string1);

          select_xy(1,7);
          lcd_prints(lcd_string2);
          }

          ////////////

          #include
          #include "priv/alt_busy_sleep.h"
          #include "system.h"
          #include "altera_avalon_pio_regs.h"
          #include "alt_types.h"
          alt_u8 table[]="i love you";
          alt_u8 table1[]="www.renren.cn";
          void write_com(alt_u8 command)
          {
          IOWR_ALTERA_AVALON_PIO_DIRECTION(LCDDATA_BASE,0xff);

          IOWR_ALTERA_AVALON_PIO_DATA(LCDDATA_BASE,command);

          IOWR_ALTERA_AVALON_PIO_DATA(LCDRS_BASE,0);
          alt_busy_sleep(5000);

          IOWR_ALTERA_AVALON_PIO_DATA(LCDRW_BASE,0);
          alt_busy_sleep(5000);

          IOWR_ALTERA_AVALON_PIO_DATA(LCDE_BASE,0);

          alt_busy_sleep(5000);

          IOWR_ALTERA_AVALON_PIO_DATA(LCDE_BASE,1);
          alt_busy_sleep(5000);

          IOWR_ALTERA_AVALON_PIO_DATA(LCDE_BASE,0);
          alt_busy_sleep(5000);
          }
          void write_date(alt_u8 date)
          {


          IOWR_ALTERA_AVALON_PIO_DIRECTION(LCDDATA_BASE,0xff);
          IOWR_ALTERA_AVALON_PIO_DATA(LCDDATA_BASE,date);
          alt_busy_sleep(5000);

          IOWR_ALTERA_AVALON_PIO_DATA(LCDRS_BASE,1);
          alt_busy_sleep(5000);
          IOWR_ALTERA_AVALON_PIO_DATA(LCDRW_BASE,0);

          alt_busy_sleep(5000);
          IOWR_ALTERA_AVALON_PIO_DATA(LCDE_BASE,0);


          alt_busy_sleep(5000);

          IOWR_ALTERA_AVALON_PIO_DATA(LCDE_BASE,1);

          alt_busy_sleep(5000);

          IOWR_ALTERA_AVALON_PIO_DATA(LCDE_BASE,0);

          alt_busy_sleep(5000);
          }
          void intit()
          {
          write_com(0x38);

          alt_busy_sleep(5000);
          write_com(0x0f);

          alt_busy_sleep(5000);
          write_com(0x06);

          alt_busy_sleep(5000);
          write_com(0x01);
          alt_busy_sleep(5000);
          write_com(0x80+0x02);

          }
          int main()
          {
          alt_u8 i;
          intit();
          for(i=0;i<10;i++)
          {
          write_date(table[i]);;
          alt_busy_sleep(5000);
          }
          write_com(0x80+0x41);
          for(i=0;i<14;i++)
          {
          write_date(table1[i]);;
          alt_busy_sleep(5000);
          }
          while(1);
          return 0;
          }



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();