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

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

?? lcd.c

?? 基于MEGA16的LCD128x64(ks0108)顯示程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*--------------------------------------------------*/
/*             AVR-ARM開發網論壇                    */
/*           http://www.avrarm.com                  */
/*            AVR生成代碼測試程序                   */
/*--------------------------------------------------*/
/*     程序由AVR輔助開發工具V2.0.0自動生成          */
/*     AVR系統的處理器為:   ATMega16               */
/*     AVR系統的晶振頻率:   8.0000 Mhz             */
/*--------------------------------------------------*/

#include <iom16v.h>
#include <macros.h>
#include "lcd.h"
#include "delay.h"

unsigned char CurOffset,CurRow,CurPage,CurCol;


void LCD_BUSY(unsigned char lr) //判斷忙標志
{
   unsigned char status;
   asm("cli");
   if(lr==RIGHT)
   {
      CLEAR_LCD_CS2; //cs2=0
      SET_LCD_CS1;   //cs1=1
   }
   else
   {
      SET_LCD_CS2;   //cs2=1
      CLEAR_LCD_CS1; //cs1=0
   }
   SET_LCD_CMD;
   LCD_DIR_PORT = 0x00;
   LCD_OP_PORT = 0xff;
   SET_LCD_READ;
   SET_LCD_E;
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");
   while((LCD_IP_PORT) & LCD_STATUS_BUSY)
   {
      CLEAR_LCD_E;
      asm("nop");
      asm("nop");
      asm("nop");
      asm("nop");
      SET_LCD_E;
      asm("nop");
      asm("nop");
      asm("nop");
      asm("nop");
   }
   CLEAR_LCD_E;
   SET_LCD_WRITE;
   LCD_OP_PORT = 0xff;
   asm("sei");
}

void write_LCD(unsigned char lr,unsigned char cd,unsigned char data) /*寫入指令或數據*/
{	
   CLI();
   LCD_BUSY(lr);
   if(cd==CMD)
      SET_LCD_CMD;
   else
      SET_LCD_DATA;
   SET_LCD_WRITE;
   SET_LCD_E;
   LCD_DIR_PORT = 0xff;
   LCD_OP_PORT = data;
   delay_nus(4);
   CLEAR_LCD_E;
   LCD_OP_PORT = 0xff;
   SEI();
}
unsigned char read_LCD(unsigned char lr)	  /*  讀顯示數據 */
{
   unsigned char data;
   
   asm("cli");
   LCD_BUSY(lr);
   SET_LCD_DATA;
   LCD_DIR_PORT = 0x00;
   LCD_OP_PORT = 0xff;
   SET_LCD_READ;
   SET_LCD_E;
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");
   data=LCD_IP_PORT;
   CLEAR_LCD_E;
   SET_LCD_WRITE;
   
   LCD_BUSY(lr);
   SET_LCD_DATA;
   LCD_DIR_PORT = 0x00;
   LCD_OP_PORT = 0xff;
   SET_LCD_READ;
   SET_LCD_E;
   asm("nop");
   asm("nop");
   asm("nop");
   asm("nop");
   data=LCD_IP_PORT;
   CLEAR_LCD_E;
   SET_LCD_WRITE;

   asm("sei");
   return data;
}

void set_start_line_L(unsigned char line) /*設置顯示起始行*/ //0-63
{
   write_LCD(LEFT,CMD,0xc0|line);
}

void set_start_line_R(unsigned char line) /*設置顯示起始行*/ //0-63
{
   write_LCD(RIGHT,CMD,0xc0|line);
}

void set_page_L(unsigned char page)	/*設置X地址 設置頁*/  //0-7
{
   write_LCD(LEFT,CMD,0xb8|page);
}
void set_page_R(unsigned char page)	/*設置X地址 設置頁*/ //0-7
{
   write_LCD(RIGHT,CMD,0xb8|page);
}

void set_col_addr_L(unsigned char col) /*設置Y地址*/ //0-63
{
   write_LCD(LEFT,CMD,0x40|col);
}

void set_col_addr_R(unsigned char col) /*設置Y地址*/ //0-63
{
   write_LCD(RIGHT,CMD,0x40|col);
}

void LCD_Init(void) /*初始化函數*/
{
   LCD_DIR_PORT = 0xff;
   LCD_OP_PORT = 0xff;
   LCD_EN_DDR    |=  LCD_EN_BIT;
   LCD_DI_DDR    |=  LCD_DI_BIT;
   LCD_CS1_DDR   |=  LCD_CS1_BIT;
   LCD_CS2_DDR   |=  LCD_CS2_BIT;
   LCD_RW_DDR    |=  LCD_RW_BIT;
   LCD_RW_PORT   &= ~LCD_RW_BIT;
   set_start_line_L(0);             /*顯示起始行為0*/
   set_start_line_R(0);             /*顯示起始行為0*/
   write_LCD(LEFT,CMD,DISPLAY_ON);  /*  開顯示  */
   write_LCD(RIGHT,CMD,DISPLAY_ON); /*  開顯示  */
}

void LCD_clr(void)                  /*清屏函數*/
{
   unsigned char pages,i;
   for(pages=0;pages<8;pages++)
   {
      set_page_L(pages);            /* X 頁地址 */
      set_page_R(pages);            /* X 頁地址 */
      for(i=0;i<64;i++)
      {
         set_col_addr_L(i);//Y
         set_col_addr_R(i);//Y
         write_LCD(LEFT,DATA,0x0);
         write_LCD(RIGHT,DATA,0x0);
      }
   }
}

//ASCII 字模寬度及高度
#define ASC_CHR_WIDTH	8
#define ASC_CHR_HEIGHT	12

typedef struct typFNT_ASC16	/* 漢字字模顯示數據結構 */
{
   char Index[1];
   char Msk[16];
};
struct typFNT_ASC16 const ASC_16[] = {	/* 顯示為8*16  Curier 10 常規*/
   "1",0x00,0x00,0x08,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x07,0x04,0x04,0x00,
   "2",0x00,0x00,0x08,0x04,0x84,0x44,0x38,0x00,0x00,0x00,0x06,0x05,0x04,0x04,0x04,0x00,
   "3",0x00,0x00,0x08,0x04,0x44,0x44,0xB8,0x00,0x00,0x00,0x02,0x04,0x04,0x04,0x03,0x00,
   "4",0x00,0x00,0x80,0x60,0x18,0xFC,0x00,0x00,0x00,0x00,0x01,0x01,0x05,0x07,0x05,0x00,
   "5",0x00,0x00,0x7C,0x44,0x44,0x44,0x84,0x00,0x00,0x00,0x02,0x04,0x04,0x04,0x03,0x00,
   "6",0x00,0x00,0xF0,0x48,0x44,0x44,0x80,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x00,
   "7",0x00,0x00,0x0C,0x04,0x84,0x64,0x1C,0x00,0x00,0x00,0x00,0x06,0x01,0x00,0x00,0x00,
   "8",0x00,0x00,0xB8,0x44,0x44,0x44,0xB8,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x00,
   "9",0x00,0x00,0x38,0x44,0x44,0x44,0xF8,0x00,0x00,0x00,0x00,0x04,0x04,0x02,0x01,0x00,
   "0",0x00,0x00,0xF8,0x04,0x04,0x04,0xF8,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x03,0x00,
   ".",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
   ",",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x00,0x00,0x00,
   ":",0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
   ";",0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x00,0x00,0x00,
   "-",0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   "_",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
   "A",0x00,0x00,0x80,0x64,0x1C,0x60,0x80,0x00,0x00,0x04,0x07,0x05,0x01,0x05,0x07,0x04,
   "B",0x00,0x04,0xFC,0x44,0x44,0x44,0x44,0xB8,0x00,0x04,0x07,0x04,0x04,0x04,0x04,0x03,
   "C",0x00,0xF0,0x08,0x04,0x04,0x04,0x04,0x08,0x00,0x01,0x02,0x04,0x04,0x04,0x04,0x02,
   "D",0x00,0x04,0xFC,0x04,0x04,0x04,0x08,0xF0,0x00,0x04,0x07,0x04,0x04,0x04,0x02,0x01,
   "E",0x00,0x04,0xFC,0x44,0x44,0xE4,0x04,0x0C,0x00,0x04,0x07,0x04,0x04,0x04,0x04,0x06,
   "F",0x00,0x04,0xFC,0x44,0x44,0xE4,0x04,0x0C,0x00,0x04,0x07,0x04,0x04,0x00,0x00,0x00,
   " ",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   "=",0x00,0x00,0xA0,0xA0,0xA0,0xA0,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   "(",0x00,0x00,0x00,0xE0,0x18,0x04,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x10,0x00,0x00,
   ")",0x00,0x00,0x00,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x00,0x10,0x0C,0x03,0x00,0x00,
   "V",0x00,0x04,0x3C,0xC4,0x00,0xC4,0x3C,0x04,0x00,0x00,0x00,0x01,0x06,0x01,0x00,0x00,
   "m",0x00,0x20,0xE0,0x20,0xC0,0x20,0xC0,0x00,0x00,0x04,0x07,0x00,0x07,0x00,0x07,0x04,
   "H",0x00,0x04,0xFC,0x44,0x40,0x44,0xFC,0x04,0x00,0x04,0x07,0x04,0x00,0x04,0x07,0x04,
   "*",0x90,0x90,0x60,0xFC,0x60,0x90,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,
};

#define ASC_HZ_WIDTH	12
//#define ASC_HZ_HEIGHT	12

typedef struct typFNT_GB16	/*12*16 漢字字模顯示數據結構 */
{
   char Index[2];
   char Msk[24];
};
struct typFNT_GB16 const GB_16[] = {	/* 宋體 9 顯示為12*16 */
   "液",0x19,0xE2,0x14,0x42,0xF2,0x2E,0x72,0x8F,0xAA,0x7A,0x02,0x00,0x01,0x07,0x00,0x00,0x07,0x04,0x04,0x02,0x01,0x02,0x04,0x00,
   "晶",0x00,0xC0,0x40,0x5F,0xD5,0x15,0xD5,0x55,0x5F,0x40,0xC0,0x00,0x00,0x07,0x05,0x05,0x07,0x00,0x07,0x05,0x05,0x05,0x07,0x00,
   "顯",0x00,0x40,0x9F,0x15,0xD5,0x15,0xD5,0x15,0x1F,0xC0,0x00,0x00,0x04,0x04,0x05,0x04,0x07,0x04,0x07,0x06,0x05,0x04,0x04,0x00,
   "示",0x10,0x12,0x92,0x52,0x12,0xF2,0x12,0x12,0x53,0x92,0x10,0x00,0x02,0x01,0x00,0x04,0x04,0x07,0x00,0x00,0x00,0x00,0x03,0x00,
   "的",0xFC,0x44,0x46,0x45,0xFC,0x10,0x2C,0xC7,0x04,0x04,0xFC,0x00,0x07,0x02,0x02,0x02,0x07,0x00,0x00,0x04,0x04,0x04,0x03,0x00,
   "第",0x04,0xEA,0xAB,0xAE,0xAA,0xFC,0xAA,0xAB,0xAE,0xBA,0x82,0x00,0x04,0x04,0x02,0x01,0x00,0x07,0x00,0x02,0x02,0x02,0x01,0x00,
   "一",0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   "行",0x48,0x24,0xF3,0x08,0x09,0x09,0x09,0x09,0xF9,0x09,0x08,0x00,0x00,0x00,0x07,0x00,0x00,0x04,0x04,0x04,0x07,0x00,0x00,0x00,
   "二",0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
   "三",0x00,0x02,0x22,0x22,0x22,0x22,0x22,0x22,0x23,0x02,0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x06,0x04,0x00,
   "四",0x00,0xFF,0x81,0x41,0x3F,0x01,0x01,0xFF,0x81,0x81,0xFF,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x07,0x00,
   "五",0x00,0x11,0x11,0x91,0x7F,0x11,0x11,0x11,0xF1,0x01,0x00,0x00,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x00,
};

unsigned char GetPage(void) /*得到當前頁*/
{
   return CurPage;
}

unsigned char GetCol(void) /*得到當前列*/
{
   return CurCol;
}

void SetPageCol(unsigned char upage, unsigned char ucol) /* 設置液晶的頁和列 */
{
   CurPage = upage;
   CurCol = ucol;
   if(ucol<64)
   {
      set_page_L(upage);
      set_col_addr_L(ucol);
   }
   else
   {
      set_page_R(upage);
      set_col_addr_R(ucol-64);
   }
}

/* 設置當前顯示的頁和列 */
void SetRowCol(unsigned char urow, unsigned char ucol) 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费一区二区| 国产精品理伦片| 91精彩视频在线| 不卡视频一二三四| 成人高清视频免费观看| 国产乱妇无码大片在线观看| 极品美女销魂一区二区三区| 北条麻妃一区二区三区| 成人午夜电影久久影院| 国产寡妇亲子伦一区二区| 国产又黄又大久久| 国产激情一区二区三区桃花岛亚洲| 国产自产高清不卡| 狠狠色伊人亚洲综合成人| 国产传媒一区在线| 不卡高清视频专区| 色综合激情五月| 欧美精品久久久久久久久老牛影院 | 国产精品国产馆在线真实露脸| 久久先锋影音av鲁色资源网| 久久精品亚洲乱码伦伦中文| 国产精品国产精品国产专区不片| 最新国产成人在线观看| 亚洲影院久久精品| 国产伦精品一区二区三区在线观看 | 一区二区三区在线免费观看| 性做久久久久久免费观看欧美| 日本中文字幕一区二区视频| 韩国一区二区在线观看| 99国产精品久久久久久久久久 | 日韩av电影免费观看高清完整版 | 91精品在线麻豆| 精品国产伦理网| 日韩毛片一二三区| 奇米在线7777在线精品| 国产suv一区二区三区88区| 91精彩视频在线观看| 欧美精品一区二区三区很污很色的 | 99在线精品视频| 777奇米四色成人影色区| 国产亚洲综合色| 亚洲自拍欧美精品| 国产高清久久久| 欧美三级一区二区| 中文字幕av一区二区三区免费看| 夜夜操天天操亚洲| 国产美女一区二区三区| 欧美亚洲国产一卡| 国产午夜精品一区二区三区嫩草| 亚洲国产精品精华液网站| 成人午夜在线免费| 欧美一区二区三区在| 亚洲视频每日更新| 国产suv一区二区三区88区| 欧美一区二区久久久| 一区二区三区不卡视频| 国产+成+人+亚洲欧洲自线| 日韩一区国产二区欧美三区| 亚洲精品久久久蜜桃| 国产精品99久久久久久久vr| 日韩免费福利电影在线观看| 亚洲福利视频三区| 色天使久久综合网天天| 国产精品每日更新| 国产中文一区二区三区| 日韩一区二区三区在线观看| 亚洲成av人综合在线观看| 色综合色狠狠综合色| 中文字幕的久久| 高清国产一区二区三区| 国产日韩精品久久久| 极品少妇xxxx偷拍精品少妇| 日韩一区二区电影| 免费观看在线色综合| 91精品国产综合久久久久久漫画| 一区二区三区四区视频精品免费 | 国产精品77777竹菊影视小说| 日韩小视频在线观看专区| 五月天国产精品| 欧美久久久一区| 日韩电影在线免费观看| 欧美精品一二三区| 日韩电影在线看| 日韩美女一区二区三区| 久久 天天综合| 久久久久九九视频| 成人福利视频在线| 亚洲三级在线看| 欧洲中文字幕精品| 日韩不卡一区二区| 久久综合久久99| 成人综合婷婷国产精品久久蜜臀| 国产精品女主播av| 色综合色综合色综合色综合色综合 | 六月丁香婷婷久久| 久久久久久久久久久久久久久99 | 欧美日本一道本| 亚洲国产乱码最新视频| 在线综合亚洲欧美在线视频| 久久99久久久欧美国产| 欧美经典一区二区| 91麻豆免费观看| 日韩精品五月天| 久久毛片高清国产| a级高清视频欧美日韩| 亚洲国产欧美日韩另类综合| 欧美成人video| 成人网在线播放| 午夜不卡在线视频| 久久久久久久综合狠狠综合| 一本大道久久a久久精二百| 日产欧产美韩系列久久99| 国产亚洲综合在线| 欧美日韩国产成人在线91| 国产美女一区二区| 亚洲18色成人| 综合色中文字幕| 日韩视频中午一区| 成人激情av网| 精品在线观看免费| 亚洲激情五月婷婷| 欧美国产国产综合| 日韩精品一区二区三区三区免费| 成人黄色软件下载| 美脚の诱脚舐め脚责91| 亚洲欧洲精品天堂一级| 精品免费国产一区二区三区四区| 91麻豆精东视频| 国产福利一区在线观看| 婷婷亚洲久悠悠色悠在线播放| 国产精品电影一区二区三区| 欧美草草影院在线视频| 欧美日本国产一区| 99精品久久免费看蜜臀剧情介绍 | 中文av一区二区| 日韩一区二区三区在线观看| 欧洲视频一区二区| 91一区一区三区| 国产成人在线看| 精品亚洲成a人| 日韩高清一级片| 亚洲成人免费视| 亚洲人123区| 综合电影一区二区三区| 久久综合视频网| 日韩午夜av电影| 欧美一区二区三区电影| 精品视频全国免费看| 欧美亚洲另类激情小说| 欧美性一级生活| 在线国产亚洲欧美| 91福利国产精品| 欧美中文字幕一区二区三区| 91丨porny丨在线| 色综合久久综合网97色综合| 成人av资源下载| av亚洲精华国产精华精| 成人小视频免费在线观看| 成人免费视频caoporn| 丁香六月综合激情| 成人的网站免费观看| 99re在线视频这里只有精品| 91免费版pro下载短视频| 色偷偷久久一区二区三区| 色婷婷综合视频在线观看| 欧美羞羞免费网站| 欧美妇女性影城| 欧美成人video| 日本一区二区三区四区在线视频| 国产精品免费视频一区| 亚洲欧美另类久久久精品2019| 一区二区三区中文字幕电影 | 日韩精品一区二区三区在线播放| 欧美一区二区免费| 久久精品视频一区| 最新不卡av在线| 亚洲国产精品久久一线不卡| 视频一区二区三区中文字幕| 久久精品国产99久久6| 国产精品资源网站| 色综合网色综合| 欧美一区二区三区思思人| 日韩美女视频一区二区| 亚洲午夜免费视频| 久色婷婷小香蕉久久| 成人免费毛片a| 欧美剧在线免费观看网站 | 成人aa视频在线观看| 欧美性受极品xxxx喷水| 精品噜噜噜噜久久久久久久久试看| 国产精品美女视频| 天堂成人免费av电影一区| 国产麻豆一精品一av一免费 | 亚洲欧美中日韩| 日本在线不卡视频一二三区| 成人免费av网站| 欧美电影免费观看高清完整版在线| 中文一区二区在线观看| 日本色综合中文字幕| a美女胸又www黄视频久久|