亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 1335.c

?? AVR單片機
?? C
字號:

/*
*******************************************************************************
*
*                                 保定建通制造有限責任公司
*
*                  BAODING JIANTONG ELECTRICAL APPLIANCE MANUFACTURING CO.,LTD.
*
*                  http://www.jtdq.com.cn/
*                  email:jtdq@jtdq.com.cn
*
*文件名稱:
*
*包含函數(shù):
*
*函數(shù)說明:
*
*
*
*
*
*
*作者:段勝柱     duanshengzhu@126.com
*
*時間:
***************************************************************************
*/ 

/***********************************************************************
Content: Graphic library for Epson SED-1335 based LCD displays.
Last modified: 15.05.2003
Copyrights: Free to use, free to change, free to delete :-)
Compiler: ImageCraft AVR
Written by: Knut Baardsen @ Baardsen Software, Norway
Updates: http://www.baso.no
***********************************************************************/

/***********************************************************************
This software is provided "as is"; Without warranties either express or
implied, including any warranty regarding merchantability, fitness for 
a particular purpose or noninfringement. 
In no event shall Baardsen Software or its suppliers be liable for any 
special,indirect,incidential or concequential damages resulting from 
the use or inability to use this software.
***********************************************************************/

#include"global.h"



/***********************************************************************
Makes a delay at approximate 2mS at 8MHz
***********************************************************************/
void lcd_delay(unsigned int i)
{
  int x ,y;
  for (x = 0; x < i; x++)
  {
     for (y = 0; y <200; y++)
     asm("WDR");
  }
}


/***********************************************************************
Write specified command to LCD panel.
This is an internal function...
***********************************************************************/
void lcd_write_command(unsigned char command)
{
  LCDDATAPORT = command;
  LCDCTLPORT |= A0;   
  LCDCTLPORT &= ~(WR);
  LCDCTLPORT |= WR;   
}


/***********************************************************************
Write specified data to LCD panel.
This is an internal function...
***********************************************************************/
void lcd_write_data(unsigned char data)
{
  LCDDATAPORT = data;
  LCDCTLPORT &= ~(A0);
  LCDCTLPORT &= ~(WR);
  LCDCTLPORT |= WR;   
}


/***********************************************************************
Read data from LCD panel at position given by lcd_pixel command.
This is an internal function...
***********************************************************************/
unsigned char lcd_read_data(void)
{
  unsigned char data;
  int i;
  LCDDATADDR = 0x00;    
  LCDCTLPORT |= A0;     
  LCDCTLPORT &= ~(RD);  
  data = LCDDATAPIN;    
  data = LCDDATAPIN;    
  data = LCDDATAPIN;    
  LCDCTLPORT |= RD;     
  LCDDATADDR = 0xff;    
  return data;
}


/***********************************************************************
Initialize the LCD controller. Read the documentation for the 
controller in use. If any other than SED1335 values can be wrong ! 
***********************************************************************/
void lcd_init(void)
{
  int i;
  // Setup LCD Data bus port as output
  LCDDATAPORT  = 0xff;
  LCDDATADDR   = 0xff; 
   
  // Setup LCD control bus port as output
  LCDCTLDDR |= 0xff; 
  LCDCTLPORT = 0xff;
  LCDCTLPORT = LCDCTLPORT&CSEL;

          
  LCDCTLPORT |= WR;           
  LCDCTLPORT |= RD;           
  // Reset the LCD
  LCDCTLPORT |= RST;
  lcd_delay(5);
  LCDCTLPORT &= ~RST;
  for (i=0; i<50; i++) lcd_delay(5);
  LCDCTLPORT |= RST; 
  
 
  // System
  lcd_write_command(0x40); 
  lcd_write_data(0x30);////////////////////////////P1   0  0 B 1 WS M2 M1 M0
  lcd_write_data(0x87);////////////////////////////P2   WF 0 0 0 0    FX(0-7)
  lcd_write_data(0x07);////////////////////////////P3   0  0 0 0     FY(0-F)
  lcd_write_data((LCD_X_SIZE/8)-1); ///////////////P4          C/R
  lcd_write_data(0x42); ///////////////////////////P5          TC/R>cr+4
  lcd_write_data(LCD_Y_SIZE - 1);//////////////////P6          L/F  240-1
  lcd_write_data(LCD_X_SIZE/8);////////////////////P7          APL  40
  lcd_write_data(0x00);//////////////////////////////P8          APH    
  // Scroll
  lcd_write_command(0x44); 
  lcd_write_data(0x00);    
  lcd_write_data(0x00);    
  lcd_write_data(LCD_Y_SIZE);
  lcd_write_data(0x00);      
  lcd_write_data(0x10);      
  lcd_write_data(LCD_Y_SIZE);
  // Horizontal scroll
  lcd_write_command(0x5a);  
  lcd_write_data(0x00);     
  // Overlay
  lcd_write_command(0x5b);  
  lcd_write_data(0x03);    
  // Display On/Off I
  lcd_write_command(0x58);
  lcd_write_data(0x14);     
  // Cursor format
  lcd_write_command(0x5d); 
  lcd_write_data(0x07);    
  lcd_write_data(0x87);    
  // Display On/Off II 
  lcd_write_command(0x59);   
  lcd_write_data(0x14); // 0 0 0 1 0 1 0 0     
  // Curson direction  
  lcd_write_command(0x4c);          
  // CUrsor write  
  lcd_write_command(0x46);
  lcd_write_data(0x00); 
  lcd_write_data(0x00);  
}
/***********************************************************************
Clears the text layer / screen.
***********************************************************************/
void lcd_clear_text(void)
{
  int i;
  lcd_write_command(0x46);
  lcd_write_data(0x00);
  lcd_write_data(0x00);
  lcd_write_command(0x42); 
  for (i=0; i<((LCD_X_SIZE/8)*(LCD_Y_SIZE/8)); i++) lcd_write_data(' ');
  lcd_write_command(0x46); 
  lcd_write_data(0x00);
  lcd_write_data(0x00);
}


/***********************************************************************
Goto specified column and line. 1,1 is the upper left corner.
***********************************************************************/
void lcd_goto(unsigned char column, unsigned char line)
{
  int addr;
  unsigned char lo;
  unsigned char hi;
  column--;
  line--;
  addr = (line * (LCD_X_SIZE/8)) + column;
  lo = (unsigned char) (addr & 0x00ff);
  hi = (unsigned char) ((addr & 0xff00) >> 8);
  lcd_write_command(0x46);
  lcd_write_data(lo);
  lcd_write_data(hi);
}


/***********************************************************************
Write strings to the text layer. Set position with lcd_goto.
Text will wrap if to long to show on one line.
***********************************************************************/
void lcd_write_string(char *ptr)
{
  int i;
  lcd_write_command(0x42);
  while (*ptr != 0x00) lcd_write_data(*ptr++);
}


/***********************************************************************
Show or hide cursor. 0=Hide, 1=Show.
***********************************************************************/
void lcd_show_cursor(unsigned char show)
{
  lcd_write_command(0x59); 
  if (show == 0) lcd_write_data(0x14);
  else lcd_write_data(0x16);
}


/***********************************************************************
Clears the graphic layer / screen.
***********************************************************************/
void lcd_clear_graphics(void)
{
  int i;
  lcd_write_command(0x46);
  lcd_write_data(0x00);
  lcd_write_data(0x10);
  lcd_write_command(0x42); 
  for (i=0; i<((LCD_X_SIZE/8)*LCD_Y_SIZE); i++) lcd_write_data(0x00);
  lcd_write_command(0x46); 
  lcd_write_data(0x00);
  lcd_write_data(0x10);
}


/***********************************************************************
Write pixel data to the display at specified position.
Set show to 1 to draw pixel, set to 0 to hide pixel.
***********************************************************************/
void lcd_pixel(int x, int y, unsigned char show)
{
  unsigned int Address;
  unsigned char Offset;
  unsigned char low;
  unsigned char high;
  unsigned char byte;
  x--;
  y--;
  Address = (y * (LCD_X_SIZE/8)) + (x / 8);
  Offset = x - ((x / 8) * 8);
  low = (unsigned char) (Address & 0x00ff);
  high = (unsigned char) (((Address & 0xff00) >> 8) + 0x10);
  lcd_write_command(0x46);   
  lcd_write_data(low);       
  lcd_write_data(high);      
  lcd_write_command(0x43);   
  byte = lcd_read_data();    
  if (show != 0) byte |= (0x80 >> Offset);
  else byte &= (~(0x80 >> Offset));
  lcd_write_command(0x46); 
  lcd_write_data(low);    
  lcd_write_data(high);   
  lcd_write_command(0x42);
  lcd_write_data(byte); 
}


/***********************************************************************
Draws a rectangle from x1,y1 to x2,y2.
Set show to 1 to draw pixel, set to 0 to hide pixel.
***********************************************************************/
void lcd_rectangle(int x1, int y1, int x2, int y2, unsigned char show)
{
  int i;
  for (i=x1; i<=x2; i++) lcd_pixel(i,y1,show);
  for (i=x1; i<=x2; i++) lcd_pixel(i,y2,show); 
  for (i=y1; i<=y2; i++) lcd_pixel(x1,i,show);
  for (i=y1; i<=y2; i++) lcd_pixel(x2,i,show);
}


/***********************************************************************
Draws a line from x,y at given degree from inner_radius to outer_radius.
Set show to 1 to draw pixel, set to 0 to hide pixel.
***********************************************************************/
void lcd_degree_line(int x, int y, int degree, int inner_radius, int outer_radius, unsigned char show)
{
  int fx,fy,tx,ty;
  fx = x + fround(inner_radius * sin(degree * 3.14 / 180));
  fy = y - fround(inner_radius * cos(degree * 3.14 / 180));
  tx = x + fround(outer_radius * sin(degree * 3.14 / 180));
  ty = y - fround(outer_radius * cos(degree * 3.14 / 180));
  lcd_line(fx,fy,tx,ty,show);
}


/***********************************************************************
Draws a circle with center at x,y with given radius.
Set show to 1 to draw pixel, set to 0 to hide pixel.
***********************************************************************/
void lcd_circle(int x, int y, int radius, unsigned char show)
{
  int xc = 0;
  int yc = radius;
  int p = 3 - (radius<<1);
  while (xc <= yc)  
  {
    lcd_pixel(x + xc, y + yc, show);
    lcd_pixel(x + xc, y - yc, show);
    lcd_pixel(x - xc, y + yc, show);
    lcd_pixel(x - xc, y - yc, show);
    lcd_pixel(x + yc, y + xc, show);
    lcd_pixel(x + yc, y - xc, show);
    lcd_pixel(x - yc, y + xc, show);
    lcd_pixel(x - yc, y - xc, show);
    if (p < 0)
      p += (xc++ << 2) + 6;
    else
      p += ((xc++ - yc--)<<2) + 10;
  }
}


/***********************************************************************
Draws a line from x1,y1 go x2,y2. Line can be drawn in any direction.
Set show to 1 to draw pixel, set to 0 to hide pixel.
***********************************************************************/
void lcd_line(int x1, int y1, int x2, int y2, unsigned char show) 
{
  int dy = y2 - y1;
  int dx = x2 - x1;
  int stepx, stepy, fraction;
  if (dy < 0) 
  {
    dy = -dy;
    stepy = -1;
  }
  else 
  {
    stepy = 1;
  }
  if (dx < 0)
  {
    dx = -dx;
    stepx = -1;
  }
  else
  {
    stepx = 1;
  }
  dy <<= 1;
  dx <<= 1;
  lcd_pixel(x1,y1,show);
  if (dx > dy)
  {
    fraction = dy - (dx >> 1); 
    while (x1 != x2)
    {
      if (fraction >= 0)
      {
        y1 += stepy;
        fraction -= dx;
      }
      x1 += stepx;
      fraction += dy;  
      lcd_pixel(x1,y1,show);
    }
  }
  else
  {
    fraction = dx - (dy >> 1);
    while (y1 != y2)
    {
      if (fraction >= 0)
      {
        x1 += stepx;
        fraction -= dy;
      }
      y1 += stepy;
      fraction += dx;
      lcd_pixel(x1,y1,show);
    }
  }
}

/***********************************************************************
Happy end :-)
***********************************************************************/


/*
*******************************************************************************
*
*函數(shù)名稱:void lcd_chinesechar(int x, int y,unsigned char *code1 ,
                     unsigned char width,unsigned char length,unsigned char lcd_fanxian) 
*
*功能: 在指定位置顯示一個width*length的漢字
*
*變量說明:
*
*
*
*
*
*
*作者:段勝柱
*
*時間:
***************************************************************************
*/





void lcd_chinesechar(int x, int y,unsigned char const  *code1 ,
                     unsigned char width,unsigned char length,unsigned char lcd_fanxian) 
{
    unsigned char i,k;
	int Address;

	unsigned char low,high;	
	x--;
	y--;
	Address = (y * (LCD_X_SIZE/8)) + (x / 8);
	low = (unsigned char) (Address & 0x00ff);
    high = (unsigned char) (((Address & 0xff00) >> 8));
    lcd_write_command(0x4f);
    
    for(k=0;k<width;k++)
    {
	
        lcd_write_command(0x46);
        lcd_write_data(low + k*length);
        lcd_write_data(high);
        lcd_write_command(0x42);
        
        for(i=0;i<length;i++)
        {
            if(lcd_fanxian == 1)
            {                
               lcd_write_data(~code1[i * width + k]);lcd_delay(20000);
            }
            else
            {
                
                lcd_write_data(code1[i * width + k]);
				lcd_delay(2000);
            }
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美丝袜丝交足nylons| 国产精品视频一二| 91精品国产综合久久福利软件 | 老汉av免费一区二区三区| 夜夜亚洲天天久久| 一区二区免费在线| 亚洲一卡二卡三卡四卡五卡| 一区二区三区欧美激情| 一区二区三区四区中文字幕| 一区二区视频在线| 一区二区欧美国产| 日韩av中文字幕一区二区 | 欧美在线观看视频一区二区| 一本高清dvd不卡在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 99re这里只有精品视频首页| 一本到三区不卡视频| 欧美综合一区二区三区| 欧美一区二区三区四区视频| 欧美成人三级电影在线| 国产无一区二区| 一区在线观看视频| 午夜激情一区二区| 蜜臀av性久久久久av蜜臀妖精| 开心九九激情九九欧美日韩精美视频电影| 美女网站色91| 成人av在线影院| 欧美性大战xxxxx久久久| 日韩精品最新网址| 欧美激情中文不卡| 亚洲尤物视频在线| 精品在线免费观看| av亚洲精华国产精华| 在线国产电影不卡| 精品女同一区二区| 亚洲日韩欧美一区二区在线| 日本欧美一区二区| 国产成人精品免费在线| 欧美无人高清视频在线观看| 日韩欧美国产一区在线观看| 国产精品高清亚洲| 婷婷亚洲久悠悠色悠在线播放| 国产精品一区二区在线看| 99精品在线观看视频| 欧美一级专区免费大片| 欧美国产一区二区| 亚洲老司机在线| 国产综合久久久久久久久久久久| 91麻豆福利精品推荐| 91.麻豆视频| 中文字幕不卡三区| 香蕉成人啪国产精品视频综合网| 国产美女在线精品| 欧美色精品在线视频| 久久精品一区蜜桃臀影院| 亚洲小说欧美激情另类| 国产 欧美在线| 7777精品伊人久久久大香线蕉经典版下载 | 日本乱人伦aⅴ精品| 日韩一级片在线观看| 亚洲乱码国产乱码精品精小说| 久久精品99国产精品日本| 91黄色在线观看| 久久久国产精品午夜一区ai换脸| 亚洲福利一区二区| 99re66热这里只有精品3直播| 日韩精品一区二区三区中文精品| 一区二区三区中文在线观看| 国产激情一区二区三区四区| 4438x成人网最大色成网站| 国产精品久久久久久户外露出| 美国毛片一区二区三区| 欧美三级电影一区| 日韩久久一区二区| 成人精品免费视频| 2021久久国产精品不只是精品| 午夜精品在线看| 欧美中文字幕一二三区视频| 国产精品久久久久永久免费观看 | 亚洲成人av一区二区| 91在线丨porny丨国产| 久久久久成人黄色影片| 日本成人在线不卡视频| 欧美日韩在线观看一区二区 | 亚洲一区二区精品3399| yourporn久久国产精品| 国产日韩精品久久久| 蜜桃传媒麻豆第一区在线观看| 欧美高清精品3d| 亚洲一区二区三区国产| 欧美视频三区在线播放| 夜夜嗨av一区二区三区中文字幕 | 99久久综合狠狠综合久久| 国产亚洲欧美在线| 国产久卡久卡久卡久卡视频精品| 日韩视频123| 麻豆精品国产91久久久久久| 日韩美女视频一区二区在线观看| 奇米精品一区二区三区四区 | 日韩女同互慰一区二区| 日韩精品久久久久久| 欧美一级久久久| 久久精品免费看| 精品久久久久久久久久久久久久久 | 亚洲天堂免费在线观看视频| 成人久久18免费网站麻豆| 中文字幕中文字幕在线一区| 成人精品鲁一区一区二区| 一区精品在线播放| 色婷婷精品大在线视频| 一区二区三区日本| 欧美日韩午夜影院| 免费的成人av| 久久夜色精品一区| 成人福利视频网站| 亚洲黄色在线视频| 欧美日本在线视频| 免费观看成人av| 国产亚洲欧洲997久久综合 | 欧美探花视频资源| 亚洲大片免费看| 日韩午夜精品电影| 韩国女主播一区| 国产精品欧美精品| www.欧美日韩国产在线| 亚洲国产你懂的| 日韩免费一区二区三区在线播放| 国产主播一区二区| 国产精品网站在线观看| 在线视频一区二区三区| 日本美女一区二区三区| 欧美激情综合五月色丁香小说| 色一区在线观看| 婷婷丁香激情综合| 久久久久国产一区二区三区四区| 91美女片黄在线观看| 日韩精品视频网站| 欧美极品美女视频| 欧美日本精品一区二区三区| 狠狠色狠狠色综合| 欧美视频在线一区二区三区| 国产一区二区伦理片| 国产黄色91视频| 国产精品一区二区久久精品爱涩 | 亚洲视频资源在线| 99久久精品情趣| 性感美女极品91精品| 欧美乱妇15p| 亚洲一区在线观看视频| 久久爱www久久做| 欧美优质美女网站| 欧美一区二区三区的| 国产精品久久久久久久久图文区| 91视频一区二区三区| 中国av一区二区三区| 久久成人免费网站| 99精品黄色片免费大全| 6080国产精品一区二区| 色婷婷久久综合| 日韩欧美二区三区| 91精品国产欧美一区二区18| 久久久久久久久蜜桃| 一区二区三区四区不卡在线| 日本va欧美va精品| 成人午夜视频福利| 日韩限制级电影在线观看| 亚洲一区二区三区四区在线免费观看| 亚洲国产综合色| 国产一二精品视频| 亚洲男人天堂av网| 成人av影院在线| 国产精品女主播在线观看| 国产suv精品一区二区6| 精品99一区二区三区| 激情五月激情综合网| 一区二区三区**美女毛片| 国产视频一区在线观看| 欧美久久久久久蜜桃| 99视频一区二区| 国产成人免费视频精品含羞草妖精 | 久久精品99国产精品日本| 亚洲精品欧美激情| 国产午夜久久久久| 亚洲精品一区二区三区影院| 日韩一区二区三区四区 | 欧美一级搡bbbb搡bbbb| 亚洲国产成人精品视频| 久久久久久久久一| 色哟哟亚洲精品| 一区二区三区在线看| 日韩视频中午一区| 久久不见久久见免费视频1| 欧美一区午夜视频在线观看| 蜜桃久久av一区| 精品福利av导航| 成人激情av网| 亚洲视频电影在线| 欧美一区二区福利视频| 国产一区二区三区免费观看 | 三级影片在线观看欧美日韩一区二区|