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

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

?? mspf2ocm128c.c

?? 基于MSP430單片機的菜單級無限通信程序
?? C
字號:
/**********************
//2008年9月3日,需要重新檢查兩個延時函數
命令:       
參照廠家給的程序
**************************/
#include "msp430x22x2.h"
#include "mspf2ocm128c.h"

uchar read_gt_data_32[32];

/***********************************************************************/

ulong get_chn16x16_addr_of_gt(uchar msb,uchar lsb)
{
	ulong addr=0x00000000;
	if(msb>=0xa1 && msb<=0xab && lsb>=0xa1)
		addr=(((ulong)msb-0xa1)*94+((ulong)lsb-0xa1))*32;
	else if(msb>=0xb0 && msb<=0xf7 && lsb>=0xa1)
		addr=(((ulong)msb-0xb0)*94+((ulong)lsb-0xa1))*32+0x69c0;
	return addr;
}

ulong get_eng8x16_addr_of_gt(uchar ASCIICode)
{
	ulong addr=0x0003b7c0;
	if(ASCIICode>=0x20 && ASCIICode<=0x7e)
	{
		if(ASCIICode>=0x60)
			addr=((ulong)ASCIICode-0x20+1)*16+addr;
		else
			addr=((ulong)ASCIICode-0x20)*16+addr;
	}
	return addr;
}

ulong get_eng8x8_addr_of_gt(uchar ASCIICode)
{
	ulong addr=0x0003bfc0;
	if(ASCIICode>=0x20 && ASCIICode<=0x7f)
		addr=((ulong)ASCIICode-0x20)*8+addr;
	return addr;
}

void send_byte_to_gt(uchar outdata)
{
	GT_DIR |= GT_SI + GT_SCLK;
	uchar i;
	for(i=0;i<8;i++)
	{
		GT_OUT &= ~GT_SCLK;
		if((outdata&0x80)==0x80)
			GT_OUT |= GT_SI;
		else
			GT_OUT &= ~GT_SI;
		GT_OUT |= GT_SCLK;
		outdata=outdata<<1;
	}
	//送完數據必須將時鐘拉高,因為發送完地址后在下降沿接收數據,如果時鐘不為高,在置高時會發送一個數據過去,導致出錯
}

uchar get_byte_from_gt(void)
{
	uchar i,indata=0x00;
	GT_DIR |= GT_SCLK;
	GT_DIR &= ~GT_SO;
	for(i=0;i<8;i++)
	{
		indata=indata<<1;
		GT_OUT &= ~GT_SCLK;
		if(GT_IN & GT_SO)
			indata=indata|0x01;
		GT_OUT |= GT_SCLK;
	}
	return indata;
}

void highspeed_readdata_from_gt(ulong addr,uchar byte_number)
{
	uchar i;
	GT_DIR |= GT_CS;
	GT_OUT &= ~GT_CS;
	GT_OUT &= ~GT_CS;
	GT_OUT &= ~GT_CS;
	send_byte_to_gt(0x0b);
	send_byte_to_gt(addr>>16);
	send_byte_to_gt(addr>>8);
	send_byte_to_gt(addr);
	send_byte_to_gt(0xff);
	for(i=0;i<byte_number;i++)
		read_gt_data_32[i]=get_byte_from_gt();
	GT_OUT |= GT_CS;
}
/***********************************************************************/

void delay_nus(uint n)  //delay time
{
  while(n--)_NOP();
}

/*毫秒級延時*/
void delay_n_ms(uint n)
{
	int i;
	for(i=0;i<n;i++)
		delay_nus(140);
}

//..........串口寫..........
void serial_write(uchar lcm_cmd_or_data)
{
  uchar i;
  OCM128_DIR |= OCM128_SCLK + OCM128_CS + OCM128_CDA;
  OCM128_OUT |= OCM128_SCLK;
  OCM128_OUT &= ~OCM128_CS;  //片使能
  for(i=0;i<8;i++)
  {
    if((lcm_cmd_or_data&0x80)==0x80)
	  OCM128_OUT |= OCM128_CDA;
    else
	  OCM128_OUT &= ~OCM128_CDA;
	OCM128_OUT &= ~OCM128_SCLK;		//注意時序
	OCM128_OUT |= OCM128_SCLK;		//注意時序
    lcm_cmd_or_data = lcm_cmd_or_data<<1;
  }
  OCM128_OUT |= OCM128_CS;//片禁能
  delay_n_ms(1); 
}

//..........寫命令..........
void send_cmd(uchar lcm_cmd)
{
  OCM128_DIR |= OCM128_AO;
  OCM128_OUT &= ~ OCM128_AO;
  serial_write(lcm_cmd);
}
//..........寫數據到DDRAM..........
void send_data(uchar lcm_data)
{
  OCM128_DIR |= OCM128_AO;
  OCM128_OUT |= OCM128_AO;
  serial_write(lcm_data);
}

/*寫頁地址*/
void set_page_address(unsigned char dat)
{
	send_cmd(dat|0xb0);   //Page Address Set:bit3--bit0:Page address 0--8
}

/*寫列地址 topped at 83H*/
void set_column_address(unsigned char dat)
{
	send_cmd((dat>>4)|0x10);  //送列地址高四位
	send_cmd(dat&0x0f);       //送列地址低四位
}

/*初始化*/
void lcd_initial(void) 
{
	OCM128_DIR |= OCM128_RST;
	OCM128_OUT |= OCM128_RST;
	delay_n_ms(1);
	OCM128_OUT &= ~OCM128_RST;
	delay_n_ms(5);
        OCM128_OUT |= OCM128_RST;
	delay_n_ms(5);
	/*send_cmd(0xa0);
	send_cmd(0xc8);		//bit3:select COM output direction 0=normal 1=reverse 如:normal:com0--com63 ;reverse:com63--com0
	send_cmd(0xa2);		//lcd bias set:bit0 = 1:1/7 bias ;bit1 = 1: 1/9bias
	send_cmd(0x2c);		//d2:1=select internal power supply operating mode
	send_cmd(0x2e);		//Power Controller Set 
	send_cmd(0x2f);		//Power Controller Set
	send_cmd(0x25);		//voltage Regulator internal Resistor Ratio Set
	send_cmd(0x81);		//The Electronic Volume Mode Set
	send_cmd(0x18);		//Column Address Set :bit4 = 1: High bits;bit4 = 0: low bits;
	send_cmd(0xaf);		//Display ON/OFF :bit0=0:Off;bit0=1:On;
	send_cmd(0xe0);		//Column address increment :at write:+1;at read: 0
	send_cmd(0x40);		//set the display RAM start line address*/
         //////////////////////////////////////////////////////////////////////////
        send_cmd(0xdc);
        send_cmd(0xc8);
        send_cmd(0xa2);
        send_cmd(0xc8);
        send_cmd(0x2c);
        send_cmd(0x2e);
        send_cmd(0x2f);//
        send_cmd(0x25);//
        send_cmd(0xf8);//
        send_cmd(0x01);//
        send_cmd(0x81);//
        send_cmd(0x20);//
	send_cmd(0xaf);  //
	send_cmd(0xe0);  //
	send_cmd(0x40);  //
         //////////////////////////////////////////////////////////////////

	GT_DIR |= GT_CS + GT_SCLK;
	GT_OUT &= ~GT_CS;
	GT_OUT &= ~GT_SCLK;
	GT_OUT |= GT_CS;
	GT_OUT |= GT_SCLK;
}

//..........顯示中文.............
void disp_chinese(uchar  *chn,uchar page_addr,uchar clm_addr,uchar x_number,uchar y_number,uchar white)
{
  uchar i,j,k;
  for(i=0;i<y_number;i++)
  {
    for(j=0;j<x_number;j++)
    {
      highspeed_readdata_from_gt(get_chn16x16_addr_of_gt(*(chn+i*x_number*2+j*2),*(chn+i*x_number*2+j*2+1)),32);
      
      set_page_address(page_addr+i*2);
      set_column_address(clm_addr+j*16);
	  if (white == 0)
	  {
		for(k=0;k<16;k++)
		{
      		send_data(read_gt_data_32[k*2]);
		}      
                set_page_address(page_addr+i*2+1);
                set_column_address(clm_addr+j*16);
                for(k=0;k<16;k++)
                {
      	          send_data(read_gt_data_32[k*2+1]);
                }
	  }
	  else if(white == 1)
	  {
		for(k=0;k<16;k++)
		{
      		send_data(~read_gt_data_32[k*2]);//這樣寫對不
		} 
                set_page_address(page_addr+i*2+1);
                set_column_address(clm_addr+j*16);
                for(k=0;k<16;k++)
                {
      	          send_data(~read_gt_data_32[k*2+1]);
                 }
	  }      
   
    }
  }
}

//..........顯示8x16點陣字符.............
void disp_8x16character(uchar *eng,uchar page_addr,uchar clm_addr,uchar x_number,uchar y_number,uchar white)    // y_number 和x_number的為實際數減1
{
  uchar i,j,k;
  for(i=0;i<=y_number;i++)
  {
    for(j=0;j<=x_number;j++)
    {
      highspeed_readdata_from_gt(get_eng8x16_addr_of_gt(*(eng+i*x_number+j)),16);
      
      set_page_address(page_addr+i*2);
      set_column_address(clm_addr+j*8);
      if(white ==0)
      {
	for(k=0;k<8;k++)
	{
      	send_data(read_gt_data_32[k*2]);
	}      
        set_page_address(page_addr+i*2+1);
        set_column_address(clm_addr+j*8);
        for(k=0;k<8;k++)
        {
      	  send_data(read_gt_data_32[k*2+1]);
        }
      }
      else if(white == 1)
      {
        for(k=0;k<8;k++)
	{
      	send_data(~read_gt_data_32[k*2]);
	}      
        set_page_address(page_addr+i*2+1);
        set_column_address(clm_addr+j*8);
        for(k=0;k<8;k++)
        {
      	  send_data(~read_gt_data_32[k*2+1]);
        }
      }
    }
  }
}

//..........顯示8x8點陣字符.............
void disp_8x8character(uchar *eng,uchar page_addr,uchar clm_addr,uchar x_number,uchar y_number)
{
  uchar i,j,k;
  for(i=0;i<y_number;i++)
  {
    for(j=0;j<x_number;j++)
    {
      highspeed_readdata_from_gt(get_eng8x8_addr_of_gt(*(eng+i*x_number+j)),8);
      set_page_address(page_addr+i);
      set_column_address(clm_addr+j*8);
      for(k=0;k<8;k++)
      {
      	send_data(read_gt_data_32[k]);
      }
    }
  }
}

void disp_8x8character1(uchar *eng,uchar page_addr,uchar clm_addr)
{
  uchar k;
  set_page_address(page_addr);
  set_column_address(clm_addr);
  for(k=0;k<8;k++)
  {
     	send_data(read_gt_data_32[k]);
   }
}

//..........顯示點陣..........
void disp_lattice(uchar lcm_data1,uchar lcm_data2)
{
  uchar i,j;
  for(i=0;i<8;i++)
  {
    set_page_address(i);
    set_column_address(0x00);
    for(j=0;j<64;j++)
    {
      send_data(lcm_data1);
      send_data(lcm_data2);
    }
  }
}

//..........顯示圖形..........
void disp_graphics(uchar *gph)
{
  uchar i,j;
  for(i=0;i<8;i++)
  {
    set_page_address(i);
    set_column_address(0x00);
    for(j=0;j<128;j++)
    {
      send_data(*(gph+i*128+j));
    }
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
老汉av免费一区二区三区| 在线欧美小视频| 欧美日韩一区视频| 欧美精品一区二区三区高清aⅴ| 中文字幕永久在线不卡| 久久99精品久久久久| 欧美少妇一区二区| 国产精品麻豆网站| 国产精品一区免费在线观看| 欧美日韩国产一级| 一区二区三区在线观看国产| 成人手机电影网| 国产网红主播福利一区二区| 麻豆免费精品视频| 这里只有精品电影| 亚洲国产精品视频| 日本精品一级二级| 亚洲乱码国产乱码精品精的特点 | 亚洲夂夂婷婷色拍ww47| 成人av小说网| 国产精品日韩成人| 国产99久久久国产精品免费看| 精品日本一线二线三线不卡| 青椒成人免费视频| 日韩三级电影网址| 日韩不卡免费视频| 91精品婷婷国产综合久久| 亚洲大片精品永久免费| 欧美色视频在线| 日本中文一区二区三区| 91精品国产91久久久久久一区二区| 伊人夜夜躁av伊人久久| 在线国产电影不卡| 石原莉奈在线亚洲三区| 日韩亚洲欧美综合| 极品销魂美女一区二区三区| 欧美精品一区二区三区一线天视频| 久久99久久精品| 国产免费成人在线视频| 99精品欧美一区| 亚洲国产中文字幕在线视频综合| 91久久人澡人人添人人爽欧美| 一区二区三区精品在线| 欧美日韩精品系列| 九九国产精品视频| 中文字幕精品一区二区三区精品| 成人福利电影精品一区二区在线观看| 国产精品国产精品国产专区不片| 91在线国内视频| 午夜天堂影视香蕉久久| 日韩精品一区二区三区在线播放| 国产999精品久久| 亚洲女同女同女同女同女同69| 欧美怡红院视频| 美女视频一区二区| 中文字幕av一区二区三区高 | 亚洲小少妇裸体bbw| 日韩亚洲欧美一区二区三区| 国产精品一区不卡| 一区二区高清免费观看影视大全| 欧美一区中文字幕| 成人精品鲁一区一区二区| 一区二区激情视频| 久久蜜桃av一区精品变态类天堂 | 色一区在线观看| 日本美女一区二区三区视频| 国产欧美一区二区精品性色 | 麻豆免费精品视频| 国产精品久久久久久亚洲伦| 91精品国产欧美日韩| 国产成人免费视频一区| 亚洲国产一二三| 国产精品天美传媒沈樵| 欧美久久免费观看| av不卡免费电影| 精品一区二区三区视频| 亚洲国产cao| 中文久久乱码一区二区| 欧美电影免费观看高清完整版在线 | 国产乱淫av一区二区三区| 亚洲线精品一区二区三区八戒| 久久久一区二区三区| 7777精品伊人久久久大香线蕉的| 成人免费黄色大片| 国内精品久久久久影院色| 一区二区三区精品| 综合色天天鬼久久鬼色| 精品国产第一区二区三区观看体验| 欧美性一区二区| 99re视频精品| 成人av在线看| 国产69精品久久777的优势| 极品瑜伽女神91| 老司机午夜精品| 蜜桃视频第一区免费观看| 亚洲成国产人片在线观看| 一区二区三区欧美亚洲| 亚洲素人一区二区| 国产精品不卡在线观看| 欧美激情艳妇裸体舞| 久久精品免费在线观看| 精品久久久久久久久久久久久久久久久| 欧美性猛交xxxx乱大交退制版| 色婷婷av一区二区三区gif| av毛片久久久久**hd| 成人app软件下载大全免费| 成人毛片视频在线观看| 成人网男人的天堂| 成人h精品动漫一区二区三区| 国产精品资源网| 国产成人精品免费| 国产大片一区二区| 成人h版在线观看| 91丨porny丨中文| 91视频免费观看| 色94色欧美sute亚洲13| 欧美日韩亚洲不卡| 欧美高清视频在线高清观看mv色露露十八 | 欧美日韩一区视频| 3751色影院一区二区三区| 欧美精品一卡二卡| 精品久久久久99| 久久精品夜色噜噜亚洲aⅴ| 国产清纯白嫩初高生在线观看91| 欧美激情中文不卡| 亚洲美女少妇撒尿| 日本成人在线不卡视频| 国产一区二区三区不卡在线观看 | 51精品视频一区二区三区| 在线播放/欧美激情| 精品久久久久久久久久久久久久久 | 成人av在线一区二区| 色婷婷精品大在线视频| 欧美日韩国产在线观看| 久久综合中文字幕| 国产精品看片你懂得| 午夜精品久久久久久久久久| 蜜桃av噜噜一区二区三区小说| 国产精品综合网| 日本韩国精品一区二区在线观看| 欧美日韩久久一区| 久久免费偷拍视频| 亚洲午夜在线视频| 国产精品99久久久久久似苏梦涵| 91丨九色porny丨蝌蚪| 6080国产精品一区二区| 中文乱码免费一区二区| 午夜精品福利一区二区蜜股av| 国产在线精品一区在线观看麻豆| 99久久精品国产精品久久| 欧美一区二区免费视频| 最新国产の精品合集bt伙计| 日韩av一级电影| 91玉足脚交白嫩脚丫在线播放| 日韩欧美国产综合| 伊人性伊人情综合网| 国内精品伊人久久久久av影院 | 成人免费福利片| 日韩欧美卡一卡二| 亚洲精品中文在线影院| 国产一区二区三区av电影| 欧美四级电影网| 国产精品美女久久久久久2018| 奇米精品一区二区三区在线观看| 国产精品亚洲一区二区三区妖精| 精品视频一区二区三区免费| 国产欧美日韩亚州综合| 免费观看成人鲁鲁鲁鲁鲁视频| jlzzjlzz亚洲女人18| 亚洲精品一区二区三区影院 | 亚洲va韩国va欧美va精品 | 国产精品一区免费在线观看| 欧美日韩一区在线观看| 中文字幕在线不卡视频| 国产电影精品久久禁18| 欧美一级理论片| 亚洲国产精品一区二区尤物区| 91亚洲精品乱码久久久久久蜜桃| 国产亚洲福利社区一区| 蓝色福利精品导航| 欧美一区二区免费视频| 日日摸夜夜添夜夜添亚洲女人| 一本到三区不卡视频| 亚洲视频免费在线| 成人av在线播放网站| 日本一区二区三区在线不卡| 激情六月婷婷久久| 欧美一区二区视频在线观看| 午夜视频一区二区三区| 在线成人高清不卡| 亚洲.国产.中文慕字在线| 精品视频123区在线观看| 亚洲精品高清在线| 欧美最猛黑人xxxxx猛交| 亚洲欧美中日韩| 色av综合在线| 亚洲国产精品久久艾草纯爱| 在线观看亚洲专区| 首页国产欧美久久| 日韩一区二区高清|