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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lcd.c

?? 利用C8051F410單片機(jī)驅(qū)動(dòng)串口液晶LCD
?? C
字號(hào):
//20080707
//TO  RED
//T1  UART0
//T2  系統(tǒng)時(shí)基
//T3  AD 



//-----------------------------------------------------------------------------
// Includes
//-----------------------------------------------------------------------------
#include <c8051f410.h>                    // SFR declarations
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <intrins.h>


//-----------------------------------------------------------------------------
// Global CONSTANTS
//-----------------------------------------------------------------------------

#define SYSCLK      24576000             // SYSCLK frequency in Hz
#define BAUDRATE    19200
#define T2_Freq     1000

#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long 

//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F30x
//-----------------------------------------------------------------------------
// Timer2 counter
sfr16  TMR3RLOAD = 0x92;


sbit CS   = P0^0;  // LCD ChipSelect
sbit SID  = P0^1;   // Serial Data
sbit SCLK = P0^2;   //Serial Clock
sbit RST  = P0^3;    //Reset


unsigned char GB,k;

unsigned char code AC_TABLE[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,      //第一行漢字位置
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,      //第二行漢字位置
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,      //第三行漢字位置
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,      //第四行漢字位置
};


 


//-----------------------------------------------------------------------------
// Function PROTOTYPES
//-----------------------------------------------------------------------------
void  SYSCLK_Init(void);
void  PORT_Init(void);

void  Timer2_Init (int counts);
void delay1MS(unsigned char n); 
void delay10US(unsigned char x);
void LCDInit();
void SendData(unsigned char Data);
void SPIWR(unsigned char Wdata,unsigned char RS);
void SendByteLCD(unsigned char WLCDData);
void Put(unsigned char *p);
void SendCMD(unsigned char CMD);
//-----------------------------------------------------------------------------
// MAIN Routine
//-----------------------------------------------------------------------------
void main (void) {

   // disable watchdog timer
   PCA0MD &= ~0x40;                       // WDTE = 0 (clear watchdog timer 
                                          // enable)
   
   SYSCLK_Init();                         // Initialize system clock to 
                                          // 24.576MHz	
   
   PORT_Init();
 
   Timer2_Init (SYSCLK / 12 /T2_Freq);    // Init Timer2 to generate 

   EA = 1;	
   
   LCDInit();

   GB=0x80;   
   
   while (1) 
  {  
   if(GB<=0x84)                            
   {
   SendCMD(0x01);//清除顯示
   SendCMD(GB);
   SendData(0xb0);
   SendData(0xae);
   delay1MS(7);
   SendCMD(GB+1);
   SendData(0xca);
   SendData(0xc7);
   delay1MS(7);
   SendCMD(GB+2);
   SendData(0xca);
   SendData(0xb2);
   delay1MS(7);
   SendCMD(GB+3);
   SendData(0xc3);
   SendData(0xb4);
   SendCMD(GB+4);
   GB++;
   for(k=0;k<=80;k++)delay1MS(50000);

   }

  }
} 

void SYSCLK_Init (void)
{
   int i;                              // delay counter
   
   P1MDIN   = 0xFC;                    // P0.2 P0.3為模擬輸入 

   OSCXCN = 0x67;                      // start external oscillator with
                                       // 24.576MHz crystal

   for (i=0; i < 3000; i++) ;           // XTLVLD blanking interval (>1ms)

 //  while (!(OSCXCN & 0x80)) ;          // Wait for crystal osc. to settle

   CLKSEL = 0x01;                       // select external oscillator as SYSCLK

   OSCICN = 0x00;                      
                                       // source and enable missing clock
                                       // detector
}

//-----------------------------------------------------------------------------
// PORT_Init
//-----------------------------------------------------------------------------
//
// Configure the Crossbar and GPIO ports. 
// P0.6 - LED (push-pull)
//
void PORT_Init (void)
{


//----------------------------------------------------------------
// CROSSBAR REGISTER CONFIGURATION
//
// NOTE: The crossbar register should be configured before any  
// of the digital peripherals are enabled. The pinout of the 
// device is dependent on the crossbar configuration so caution 
// must be exercised when modifying the contents of the XBR0, 
// XBR1 registers. For detailed information on 
// Crossbar Decoder Configuration, refer to Application Note 
// AN001, "Configuring the Port I/O Crossbar Decoder". 
//----------------------------------------------------------------

// Configure the XBRn Registers

	XBR0 = 0x01;	// Crossbar Register 1
	XBR1 = 0x40;	// Crossbar Register 2
// Select Pin I/0

// NOTE: Some peripheral I/O pins can function as either inputs or 
// outputs, depending on the configuration of the peripheral. By default,
// the configuration utility will configure these I/O pins as push-pull 
// outputs.
                      // Port configuration (1 = Push Pull Output)
    P0MDOUT = 0x0F; // Output configuration for P0 
    P1MDOUT = 0x00; // Output configuration for P1 
    P2MDOUT = 0x00; // Output configuration for P2 


    P0MDIN = 0xFF;  // Input configuration for P0
    P1MDIN = 0xF8;  // Input configuration for P1
    P2MDIN = 0xFF;  // Input configuration for P1



    P0SKIP = 0x00;  //  Port 0 Crossbar Skip Register
    P1SKIP = 0x00;  //  Port 1 Crossbar Skip Register
    P2SKIP = 0x00;  //  Port 1 Crossbar Skip Register


	
}


//-----------------------------------------------------------------------------
// Timer2_Init
//-----------------------------------------------------------------------------
//
// Configure Timer2 to 16-bit auto-reload and generate an interrupt at 
// interval specified by <counts> using SYSCLK/48 as its time base.
//
void Timer2_Init (int counts)
{
   
   TMR2CN  = 0x00;                        // Stop Timer2; Clear TF2;
                                          // use SYSCLK/12 as timebase
   CKCON  &= 0xDF;   //1100 1111          // Timer2 clocked based on T2XCLK;

   TMR2RL  = -counts;                     // Init reload values
   TMR2    = 0xffff;                      // set to reload immediately
   ET2     = 1;                           // enable Timer2 interrupts
   TR2     = 1;                           // start Timer2
}


//-----------------------------------------------------------------------------
// Interrupt Service Routines
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// Timer2_ISR
//-----------------------------------------------------------------------------
// 20ms
//
void Timer2_ISR (void) interrupt 5
{
   static unsigned int T2times=0;           

   TF2H = 0;                                // clear Timer2 interrupt flag

   T2times++;
   //-----------------------------------
   switch(T2times)
   {
	case 500:
	T2times=0;
	break;
   }       
}

void delay1MS(unsigned char x)   //1ms
{
 uchar k,j;
   x=x<<1;
 for(k=0;k<x;k++)
  for(j=0;j<255;j++)_nop_();
}

void delay10US(unsigned char x)
{
   unsigned char k;
   x=x*10;
 for(k=0;k<x;k++);
 
}

//=============================
void SendByteLCD(unsigned char WLCDData)
{
unsigned char i;
CS=1;
for(i=0;i<8;i++)
{
 if((WLCDData<<i)&0x80)SID=1;
 else SID=0;
 SCLK=0; 
 SCLK=1; 
}
}


void SPIWR(unsigned char Wdata,unsigned char CS)
 {
   SendByteLCD(0xf8+(CS<<1));
   SendByteLCD(Wdata&0xf0);
   SendByteLCD((Wdata<<4)&0xf0);

 }
void SendCMD(unsigned char CMD)
{
CS=1;
SPIWR(CMD,0);
//delay10US(100);//8155來模擬串行通信,所以,加上8155的延時(shí),
delay1MS(7);
}


void SendData(unsigned char Data)
{

SPIWR(Data,1);

}

void LCDInit()
{

RST=0;
delay1MS(100);
RST=1;

     SendCMD(0x01);//清除顯示
     SendCMD(0x30);//功能設(shè)置,一次送8位數(shù)據(jù),基本指令集
     //delay1MS(8);
	 SendCMD(0x0C);//0000,1100  整體顯示,游標(biāo)off,游標(biāo)位置off
    // delay1MS(8);
	 SendCMD(0x01);//0000,0001 清DDRAM
    // delay1MS(8);
	 SendCMD(0x02);//0000,0010 DDRAM地址歸位
    // delay1MS(8);
	 SendCMD(0x80);//1000,0000 設(shè)定DDRAM 7位地址000,0000到地址計(jì)數(shù)器AC//     
    // delay1MS(8);
	 SendCMD(0x04);//點(diǎn)設(shè)定,顯示字符/光標(biāo)從左到右移位,DDRAM地址加 一//   
     //delay1MS(8);
	 //SendCMD(0x1f);//顯示設(shè)定,開顯示,顯示光標(biāo),當(dāng)前顯示位反白閃動(dòng)
     delay1MS(8);

}

void Put(unsigned char *p)

{
    unsigned char xx,yy; 

  for(yy=0;yy<32;yy++)
 for(xx=0;xx<8;xx++)
 {
 SendCMD(0x80+yy);   //y 按位
 SendCMD(0x80+xx);//x 按16位
 SendData(*p);
 p++;
 SendData(*p);
 p++;
 }


 for(yy=0;yy<32;yy++)
 for(xx=8;xx<16;xx++)
 {
 SendCMD(0x80+yy);   //y 按位
 SendCMD(0x80+xx);//x 按16位
 SendData(*p);
 p++;
 SendData(*p);
 p++;
 }
 
 


}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合久色| 成人动漫一区二区| 国产性做久久久久久| 成人免费毛片片v| 亚洲三级在线播放| 欧美一区二区国产| 成人亚洲精品久久久久软件| 一区二区久久久久久| 日韩你懂的在线播放| 久久99精品久久久久久国产越南 | 不卡的av电影在线观看| 亚洲国产另类av| 久久嫩草精品久久久久| 91精品办公室少妇高潮对白| 经典三级视频一区| 亚洲欧美日韩国产综合在线 | 在线免费一区三区| 免费观看30秒视频久久| 亚洲欧美怡红院| 精品久久久三级丝袜| 在线视频亚洲一区| 国产真实乱对白精彩久久| 一区二区在线观看av| 2020国产精品| 欧美人妇做爰xxxⅹ性高电影| 国产传媒久久文化传媒| 亚洲成人午夜电影| 久久亚洲免费视频| 欧美日韩夫妻久久| 91农村精品一区二区在线| 国内精品写真在线观看| 亚洲第一福利视频在线| 亚洲欧洲av在线| 久久综合久久鬼色| 欧美电影一区二区| 欧美综合一区二区三区| 成人91在线观看| 国产制服丝袜一区| 丝瓜av网站精品一区二区| 综合中文字幕亚洲| 欧美激情一区三区| 欧美精品电影在线播放| 成人av在线播放网站| 国产一区二三区| 视频一区二区三区在线| 国产精品久久三区| 精品国产亚洲一区二区三区在线观看| 欧美理论电影在线| 精品视频在线看| 欧美影视一区二区三区| 在线亚洲一区二区| 91一区在线观看| 成人午夜免费av| 成人一区二区视频| 国产成人精品影视| 国产福利91精品| 国产精品夜夜爽| 久久福利资源站| 国产一区二区在线观看免费| 久久99久久99| 久久国产精品一区二区| 香蕉成人伊视频在线观看| 亚洲成av人片在线| 亚洲电影在线播放| 午夜精品福利视频网站| 日韩精品一级中文字幕精品视频免费观看 | 免费在线观看日韩欧美| 亚洲女人的天堂| 一区二区三区四区在线播放| 亚洲天堂网中文字| 亚洲一级二级在线| 首页国产欧美久久| 日韩av一级片| 狠狠色狠狠色综合| 丁香亚洲综合激情啪啪综合| 99热99精品| 日本乱人伦aⅴ精品| 欧美日韩美少妇| 日韩一级免费观看| 91精品国产麻豆国产自产在线 | 亚洲精品在线网站| 国产午夜亚洲精品羞羞网站| 最近中文字幕一区二区三区| 亚洲另类春色校园小说| 亚洲精品视频免费看| 亚洲国产成人av| 国产精品影视网| 91网址在线看| 色婷婷综合五月| 欧美一区二区日韩| 91精品国产欧美日韩| 精品国产三级a在线观看| 国产精品全国免费观看高清| 亚洲六月丁香色婷婷综合久久 | 日本大胆欧美人术艺术动态| 激情欧美一区二区| 国产老妇另类xxxxx| 成人97人人超碰人人99| 91精品国产综合久久香蕉麻豆| 精品成人免费观看| 亚洲人吸女人奶水| 美女一区二区在线观看| 99久久99精品久久久久久 | 国产午夜精品一区二区三区嫩草 | 91麻豆精品国产91久久久使用方法 | 日韩免费观看高清完整版| 26uuu色噜噜精品一区| 自拍偷拍欧美激情| 亚洲欧美色图小说| 五月婷婷综合网| 成人午夜伦理影院| 在线观看91av| 日韩理论片网站| 国产在线国偷精品免费看| 欧美在线三级电影| 欧美国产成人精品| 日韩电影在线一区二区三区| 丰满少妇久久久久久久| 91精品国产综合久久蜜臀 | 国产精品欧美综合在线| 天堂成人国产精品一区| 99视频在线精品| 国产亚洲精久久久久久| 视频在线观看一区二区三区| www.日本不卡| 久久久国产精品麻豆| 婷婷久久综合九色国产成人| 91浏览器在线视频| 精品成人私密视频| 蜜芽一区二区三区| 一本色道久久综合亚洲91| 国产欧美视频一区二区| 美女视频一区在线观看| 欧美四级电影网| 亚洲欧美另类久久久精品2019| 国产成人精品网址| 精品国产免费人成电影在线观看四季| 亚洲午夜一区二区三区| 91免费视频观看| 亚洲天堂av老司机| 成人免费三级在线| 久久久国际精品| 国产呦精品一区二区三区网站| 欧美一区二区三区在线电影 | 久久er精品视频| 欧美二区三区91| 午夜精品久久久久久久99樱桃| 一本大道久久a久久综合婷婷| 精品少妇一区二区三区免费观看| 亚洲大片精品永久免费| 一本色道**综合亚洲精品蜜桃冫| 最新热久久免费视频| www.久久精品| 国产精品二区一区二区aⅴ污介绍| 国产91综合一区在线观看| 久久免费午夜影院| 91一区二区三区在线观看| 亚洲午夜羞羞片| 日韩欧美一区中文| 丁香激情综合国产| 亚洲免费观看高清完整版在线 | 国产综合成人久久大片91| 国产视频在线观看一区二区三区| 9人人澡人人爽人人精品| 亚洲一级片在线观看| 精品美女一区二区| 99久久99久久综合| 青青草伊人久久| 久久精品在线免费观看| 色综合激情五月| 麻豆成人综合网| 国产精品不卡视频| 欧美一区二区免费观在线| 国产91丝袜在线播放九色| 亚洲午夜精品17c| 国产亚洲欧美日韩在线一区| 欧美三级一区二区| 国产一区二区三区黄视频| 一区二区三区高清| 久久色中文字幕| 一本大道久久a久久精品综合| 另类小说视频一区二区| 亚洲人成亚洲人成在线观看图片 | 欧美日韩一区三区| 国产传媒欧美日韩成人| 丝袜美腿成人在线| 中文字幕日韩精品一区| 日韩欧美电影一二三| 99久久99久久精品免费观看| 精品在线播放免费| 亚洲成人午夜电影| 亚洲天堂av一区| 久久色中文字幕| 欧美一级二级在线观看| 91视频在线看| 国产成人午夜视频| 久99久精品视频免费观看| 亚洲自拍偷拍麻豆| 中文字幕一区二区在线播放| 久久综合资源网|