久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

AVR 1602液晶字符移動

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年10月29日   【字體:
#include <iom16.h>
#include <intrinsics.h>
#define uchar unsigned char
#define uint unsigned int
 uchar str1[16]="This is a ASCII";
 uchar str2[16]="      Test     ";
#include "1602.h"
void port_init()
{
  PORTA=0xff;
  DDRA=0xff;
  PORTB=0xff;
  DDRB=0xff;
  PORTD=0xff;
  DDRD=0xff;
}
void init()
{
  MCUCR=0x0a;
  GICR=0xc0;
  SREG=0x80;
}
void disline(uchar w)       //字符移動函數
{
  uchar i;
  for(i=0;i<16;i++)
  {
    displayonechar(i,1,w);          //字符顯示在第二行 即字母A--Z
    w++;
    if(w>90)w=65;                   //字符顯示限定范圍A--Z
  
  }
  delay(500);
}
   
void main()
{
  uchar w=65;
  port_init();
  init();
  //1602設備初始化
   delay(15);
writecmd(0x38);
delay(5);
writecmd(0x38);
delay(5);
writecmd(0x38);
writecmd(0x80);
writecmd(0x01);
writecmd(0x06);
writecmd(0x0c);
delay(500);
  //初始化結束
    writecmd(0x01);
    writecmd(0x0c);
    displaychar(0,0,str1);
    delay(1000);
    writecmd(0x01);
    writecmd(0x0c);
    displaychar(0,1,str2);
    delay(1000);
    writecmd(0x01);
    writecmd(0x0c);
  while(1)
  {
  disline(w++);               //字符移動模式
  if(w>90)w=65;
  }
}

//-----------------1602庫函數-----------------------
#define RS PORTB_Bit0
#define RW PORTB_Bit1
#define EN PORTB_Bit2
#define DATA PORTA
#define busy 0x80

void delay(int k)
{
  int i,j;
  for(i=0;i<k;i++)
  {
    for(j=0;j<1140;j++);
  }
}
void wait()
{
  uchar val;
  DATA=0xff;
  RS=0;
  RW=1;
  __no_operation();
  __no_operation();
  EN=1;
  __no_operation();
  __no_operation();
  DDRA=0x00;
  val=PINA;
  while(val&busy)
  {
    val=PINA;
  }
  EN=0;
  DDRA=0xff;
}

void writecmd(uchar cmd)
{
  wait();
  RS=0;
  RW=0;
  __no_operation();
  DATA=cmd;
  __no_operation();
  EN=1;
  __no_operation();
  __no_operation();
  EN=0;
}
void writedata(uchar data)
{
  wait();
  RS=1;
  RW=0;
 __no_operation();
 DATA=data;
 __no_operation();
 EN=1;
 __no_operation();
 __no_operation();
 EN=0;
}
 
void displayonechar(uchar x,uchar y,uchar dda)
{
  y&=0x01;
  x&=0x0f;
  if(y)x|=0x40;
  x|=0x80;
  writecmd(x);
  writedata(dda);
}
 
void displaychar(uchar x,uchar y,uchar *p)
{
  y&=0x01;
  x&=0x0f;
  while(*p!='\0')
  {
    if(x<=0x0f)
    {
      displayonechar(x,y,*p);
      p++;
      x++;
    }
  }
}
 
關閉窗口

相關文章

主站蜘蛛池模板: 国产成人精品一区二区三区在线 | 五月天婷婷久久 | 中文字字幕一区二区三区四区五区 | 久久久久久久一区二区 | 国产一区二区三区www | 亚洲第一天堂无码专区 | 色约约视频 | 成人精品一区二区三区 | 精品免费| 天天欧美 | 久久影音先锋 | 中文字幕成人免费视频 | 精品动漫一区 | 欧日韩在线观看 | 五月免费视频 | 国产一区二区精品 | 欧美日韩精品一区二区三区四区 | 亚洲成人精品影院 | 天堂资源 | 中文字幕久久精品 | 男女羞羞视频网站 | 欧美视频成人 | 免费观看毛片 | 亚洲电影第三页 | 久久久久久国产 | 91麻豆产精品久久久久久夏晴子 | 精品久久一区 | 在线视频日韩 | 91精品国产91久久久久久丝袜 | 久久一二 | 亚洲成人一区 | 午夜精品久久久久久久久久久久 | 日本精品一区二区三区在线观看视频 | 中文字幕一区二区三区精彩视频 | 熟女毛片| 99亚洲国产精品 | 亚洲国产精品99久久久久久久久 | 欧美日韩成人一区二区 | 亚洲欧美一区二区三区国产精品 | 99成人免费视频 | 红桃视频一区二区三区免费 |