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

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

?? main__.c

?? 該設(shè)備是一款基于AVR mega16L單片機的電子書閱讀器
?? C
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************
 *電子書設(shè)計程序
 * File:   'e_record.c'
******************************************************************************/
#include <mega16.h>
#include <delay.h>
#include <flashic.h> 
#include <key.h>
#include <12864.h> 
#define MENU 0
#define TEXT 1
#define ShowCount 3
#define BUFFER_SIZE 255 //336 /* LINE_LENGTH * NUM_ROWS */
#define BAUD    9600            //波特率采用9600bps
#define CRYSTAL 4000000			//系統(tǒng)時鐘4MHz
#define DATA_REGISTER_EMPTY (1<<5)
//計算和定義波特率設(shè)置參數(shù)
#define BAUD_SETTING (unsigned int)((unsigned long)CRYSTAL/(16*(unsigned long)BAUD)-1)
#define BAUD_H (unsigned char)(BAUD_SETTING>>8)
#define BAUD_L (unsigned char)(BAUD_SETTING)
#define buffersize  255  
unsigned char negative_counter=0;  
unsigned char command=' ';
bit   buffer_overflow=0;
bit start_flag=0;
bit download_flag=0; 
bit address_get=1;
unsigned char menuBuffer[16][16]=
{{"1.Text1"}, {"2.Text2"}, {"3.Text3"},   {"4.Text4"},
 {"5.Text5"},{"6.Text6"},   {"7.Text7"},  {"8.Text8"}, 
 {"9.Text9"},{"10.Text10"}, {"11.Text11"},{"12.Text12"},
 {"13.Text13"},{"14.Text14"},{"15.Text15"},{"16.Text16"}
};
//開辟screenBuffer
//專門用來顯示,一個屏幕只能顯示64字節(jié)
unsigned char mode;
unsigned char key;//全局變量用來存放中斷獲取的鍵值
unsigned int currentMemoryPage; 
unsigned char * screenBuffer;
unsigned char Buffer[255];
unsigned char displaypoint,displaystart;
bit EDIT_flag=0;
unsigned char EDIT=0;
int  endOfBuffer;
unsigned char userchoose;
char endOfmenuBuffer;
int startOfBuffer;
int textX,menuX;
int textY,menuY;                                            
void Initialize( void );
void ShowMenu(void);
void check_key(void);
void check_download(void);
void USART_Transmit(unsigned char data);
void  menuBufferTOBuffer(void)
{
    unsigned char *p;                  
    unsigned char i;
    p=&menuBuffer[0][0];
    for (i=0;i< BUFFER_SIZE;i++)
    {
      Buffer[i]=*p;
      p++;
    }
}
void  BufferTOmenuBuffer(void)
{
    unsigned char *p;                  
    unsigned char i,j;
    p=Buffer;
    for (i=0;i<16;i++)
     for (j=0;j<16;j++)
       { 
         menuBuffer[i][j]=*p;
         p++;
       }
}
interrupt [USART_RXC] void usart_rx_isr(void)   // USART接收中斷服務
{
    unsigned char status,data;
    static unsigned char i=0;
    status = UCSRA;
    data=UDR ;   
    if(!start_flag)
    {          
      Buffer[i]=data ;
      if(i++>3)
      {
      i=0;
      start_flag=1;
      }            
    }
    else 
    {    
    Buffer[i]=data;     
    if(i++==buffersize)
    buffer_overflow=1;
    }               
}

void USART_Transmit(unsigned char data)
{
	while (!(UCSRA & DATA_REGISTER_EMPTY));     // 等待發(fā)送寄存器空			                
	UDR = data;                                 // 發(fā)送數(shù)據(jù)			        
}
void main( void )
{  
   unsigned char  buttons     = 0;
   unsigned char  buttons2    = 0;
   int	 i          = 0; 
   Initialize();
   while( 1 )//功能鍵連接端口
   {
      buttons =  PINB  & 0x0F;
      delay_ms(10);
      buttons2 =  PINB  & 0x0F;		
      if( ( buttons == buttons2 ) && ( buttons != 0x0F ) )
      { 
          while( ( PINB  & 0x0F ) != 0x0F ); // wait for button release 
         switch( buttons )
         {
            case 0x0D:              // PB1 is low 0000 1101 UPBUTTON
            {  
              if(EDIT==0)
              {
               if( mode==TEXT )
               {  
                  startOfBuffer=startOfBuffer-64;   //screenBuffer是一個指針                  
                  if(startOfBuffer<0)  
                  {                                                                                     
                    startOfBuffer=192;                                       
                  // clear the buffer 
                    for( i = 0; i < BUFFER_SIZE; i++ )
                      {
                       Buffer[i] = ' ';            //可以限制在一個文件即8個PAGES內(nèi)變動
                      }
                       currentMemoryPage -= 1;
                     if( currentMemoryPage < 0x02 )
                       {
                        currentMemoryPage = 0x02;
                       }
                      ReadMemoryToBuffer(Buffer,BUFFER_SIZE,currentMemoryPage );                  
                  }
                  screenBuffer = &Buffer[startOfBuffer];
                  lcd_clear();                                   
                  endOfBuffer = startOfBuffer+63;
         //screenBuffer保證指向64個元素,開頭是startOfBuffer,結(jié)尾是endOfBuffer                      
                  lcd_write_full(screenBuffer);
                                         
      //如果是編輯狀態(tài),就把光標設(shè)置在最右角,并閃動,泛白顯示
               }
               else //mode==MENU
               {                        
                 // lcd_cursor_flash(0); 
                  userchoose--;
                  if( userchoose ==255 )
                  {
                     userchoose = 15;
                  }
                  ShowMenu();
               } 		
               }                                              
               break;
            }            
            case 0x07:              // PB3 is low  0000 0111 ENTER 
		{
		 lcd_cursor_flash(0);         
		
               if( mode == TEXT)   //閱讀狀態(tài)時,在文本模式中,按ENTER返回菜單
               {   
                  if(EDIT==0)                
                  {
                   mode = MENU; // go back to the menu  
                  ReadMemoryToBuffer( Buffer, BUFFER_SIZE,0 );               
                  BufferTOmenuBuffer();
                  ShowMenu(); 
                  }                         
               }                                                                    
               else // mode == MENU 
               {  //在菜單模式下 按ENTER就直接進入對應文章顯示DISPLAY置位
                                                     
                  //把菜單對用的數(shù)組存入第0 ,1,頁中
                  //估計有16*16個字節(jié)大小,故要0頁才可 
                  mode =TEXT;
                  menuBufferTOBuffer();
                  WriteBufferToMemory( Buffer, BUFFER_SIZE,0 );                  
		switch( userchoose )
                  {
                     case 0:
                        currentMemoryPage = 0x0002; // 0000 0010 
                        break;
                     case 1:
                         currentMemoryPage=0x0041;
                        break;
                     case 2:
                        currentMemoryPage=0x0081;
                        break;
                     case 3:
                         currentMemoryPage=0x00C1;
                        break;
                     case 4:
                        currentMemoryPage=0x00FF;
                        break;
                     case 5:
                         currentMemoryPage=0x013E;
                        break;
                     case 6:
                        currentMemoryPage=0x017D;
                        break;
                     case 7:
                        currentMemoryPage=0x01BC;
                        break;
                     case 8:
                        currentMemoryPage=0x01FB;
                        break;
                     case 9:
                        currentMemoryPage=0x023A;
                        break;
                     case 10:
                        currentMemoryPage=0x0279;
                        break;
                     case 11:
                        currentMemoryPage=0x02B8;
                        break;
		     case 12:
                         currentMemoryPage=0x02F7;
                        break;
		     case 13:
                        currentMemoryPage=0x0336;
                        break;
                     case 14:
                        currentMemoryPage=0x0375;
                        break;
                     case 15:
                        currentMemoryPage=0x03B4;
                        break;                     
                     default:
                        currentMemoryPage = 0;
                        break;
                  }
                  lcd_clear();
                  ReadMemoryToBuffer( Buffer, BUFFER_SIZE,currentMemoryPage );                                   
               /////////////////   
                  startOfBuffer=0;
                  screenBuffer=&Buffer[startOfBuffer];
                  lcd_write_full(screenBuffer);                 
                   endOfBuffer = startOfBuffer+63;                                     
               }
               break;
             }
            case 0x0B:              // PB2 is low  0000 1011 DOWNBUTTON 
            { 
            if(EDIT==0)
            { 
              if( mode==TEXT )
               {  
                  startOfBuffer=startOfBuffer+64;   //screenBuffer是一個指針                  
                  if(startOfBuffer>255)  
                  {                                                                                       
                    startOfBuffer=0;                                       
                  // clear the buffer 
                    for( i = 0; i < BUFFER_SIZE; i++ )
                      {
                       Buffer[i] = ' ';            //可以限制在一個文件即8個PAGES內(nèi)變動
                      }
                       currentMemoryPage += 1;
                     if( currentMemoryPage > 0x1ff )
                       {
                        currentMemoryPage = 0x1ff;
                       }
                      ReadMemoryToBuffer(Buffer,BUFFER_SIZE,currentMemoryPage );                                     
                  }
                  screenBuffer=&Buffer[startOfBuffer];                  
                  lcd_clear();                 
                  lcd_write_full(screenBuffer);
                  endOfBuffer = startOfBuffer+63;
         //screenBuffer保證指向64個元素,開頭是startOfBuffer,結(jié)尾是endOfBuffer                                                                
      //如果是編輯狀態(tài),就把光標設(shè)置在最右角,并閃動,泛白顯示
               }
               else if( mode == MENU ) 
               {  
                  //lcd_cursor_flash(0); 
                  userchoose++;
                  if( userchoose ==16 )
                  {
                     userchoose = 0;
                  }
                  ShowMenu();                 
		}
             }                                              
               break;
            }
            case 0x0E:              // PB0 is low  0000 1110 edit 
            {   
            
                EDIT_flag=~EDIT_flag;
                if(EDIT_flag)
                   {
                   EDIT=1;                 
                   }
                   else 
                   {
                   EDIT=0;                 
                   }
               if (EDIT==0)
               {    
                    //綠燈滅                     
                    PORTD&=~0x20;                    
                    if( mode== MENU )
                    {
                    menuBufferTOBuffer(); 
                    WriteBufferToMemory( Buffer, BUFFER_SIZE,0 );
                     lcd_cursor_flash(0);                    
                    }else 
                    {                                               
                   WriteBufferToMemory( Buffer, BUFFER_SIZE,currentMemoryPage );
                     lcd_cursor_flash(0);
                    } 
               }
               else {
               //綠色燈亮
                    DDRD|=0x20;//PD5控制綠燈
                    PORTD|=0x20; 
                    if(mode==TEXT)
                    {                    
                      lcd_cursor_flash(1);
                       textX=7;
                       textY=3;
                       lcd_set_xy(textX,textY);                   
                    }
                    else if(mode==MENU)
                    {
                     lcd_cursor_flash(1);                       
                       lcd_set_xy(7,menuY);    
                    }                    
                    }               
            break;
            }       
            default:
               // Either no buttons are pressed or mulitple buttons are pressed. 
               break;
         }// end case      
      }//end ( if buttons are presed )       
       check_key ();
       //判斷是否連接電腦,下載程序
       check_download();     
} //end while( 1 ) 

}

void ShowMenu(void)
{
   unsigned char n; 
    
  if ( userchoose%ShowCount==0)
     {
      displaystart = userchoose;
     }
    else if ((userchoose+1)%ShowCount==0)
            displaystart = userchoose-2;
         else if ((userchoose-1)%ShowCount==0)
                  displaystart = userchoose-1;
    lcd_clear();
    displaypoint=displaystart;
  for ( n=0;displaypoint<16 && n< ShowCount; n++)
  {
    lcd_set_xy(1,n+1);
    lcd_write_string(&menuBuffer[displaypoint][0]);
    if (displaypoint==userchoose)
       { 
         menuY=(int)n+1;
         lcd_set_xy(0,n+1);
         lcd_write_stringf("->");
       }
    displaypoint++;
  } 
  lcd_set_xy(3,0);
  lcd_write_stringf("目錄");                
}

void check_download(void)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区在线视频观看| 免费成人在线观看视频| 同产精品九九九| 国产精品一区免费视频| 99国产精品久| 精品精品国产高清一毛片一天堂| 国产欧美一区二区精品仙草咪| 一区二区三区蜜桃| 国产老肥熟一区二区三区| 一本大道久久a久久精二百| 精品盗摄一区二区三区| 一区二区三区日本| 国产传媒日韩欧美成人| 91精品国产日韩91久久久久久| 亚洲欧洲三级电影| 激情综合色综合久久| 欧美日韩成人一区| 亚洲男人的天堂av| www.亚洲免费av| 国产午夜一区二区三区| 青草国产精品久久久久久| 色综合久久久久网| 国产精品午夜免费| 国产精品综合在线视频| 欧美一区二区福利在线| 五月婷婷久久丁香| 91国偷自产一区二区三区观看| 中文字幕va一区二区三区| 九九**精品视频免费播放| 91精品国产综合久久久蜜臀粉嫩| 亚洲精品大片www| 91社区在线播放| 国产精品国模大尺度视频| 国产成a人无v码亚洲福利| 久久夜色精品国产噜噜av| 久久狠狠亚洲综合| 精品国产伦一区二区三区免费 | 精品日韩99亚洲| 日韩av中文字幕一区二区三区| 91久久精品一区二区三| 亚洲人午夜精品天堂一二香蕉| 国产+成+人+亚洲欧洲自线| 久久久精品黄色| 国产成人av电影在线| 国产亚洲成年网址在线观看| 国模一区二区三区白浆| 久久久国产精华| 国产成人av一区| 中文字幕人成不卡一区| 99re成人精品视频| 亚洲自拍另类综合| 欧美精品在线一区二区| 老司机精品视频导航| 精品国产91亚洲一区二区三区婷婷| 久久精品国产成人一区二区三区| 日韩精品资源二区在线| 高清不卡一区二区在线| 日韩美女视频19| 欧美一区二区三区电影| 国产一区二区三区精品欧美日韩一区二区三区 | 最新日韩在线视频| 色综合天天狠狠| 亚洲成人av一区二区三区| 7777精品伊人久久久大香线蕉最新版| 午夜欧美电影在线观看| 精品美女在线观看| 成人v精品蜜桃久久一区| 亚洲欧美日韩国产成人精品影院 | 国产精品福利影院| 欧美体内she精高潮| 美腿丝袜亚洲综合| 欧美激情一区二区三区全黄| 在线亚洲一区二区| 极品少妇xxxx偷拍精品少妇| 亚洲视频综合在线| 777xxx欧美| 97久久精品人人澡人人爽| 天天综合日日夜夜精品| 久久久久久久网| 欧洲生活片亚洲生活在线观看| 免费看欧美女人艹b| 国产精品久久99| 欧美一区二区三区爱爱| 成人午夜私人影院| 日本亚洲电影天堂| 免费人成精品欧美精品| 欧美国产日本韩| 欧美人与z0zoxxxx视频| 成人毛片视频在线观看| 奇米888四色在线精品| 欧美日本在线观看| 色综合久久久久网| 成人美女在线观看| 精品一区二区三区免费播放 | 亚洲三级电影网站| 精品国产免费视频| 欧美日韩五月天| 93久久精品日日躁夜夜躁欧美| 久久精品国产亚洲aⅴ| 亚洲综合图片区| ㊣最新国产の精品bt伙计久久| 精品国产免费一区二区三区香蕉| 精品视频色一区| 一本色道久久综合狠狠躁的推荐| 国产麻豆欧美日韩一区| 男人的天堂亚洲一区| 亚洲一级二级三级在线免费观看| 中文字幕一区二区三区四区| 久久久噜噜噜久久人人看| 欧美一区二区三区免费大片| 欧美三级三级三级| 色先锋aa成人| a在线播放不卡| www.色精品| 成+人+亚洲+综合天堂| 国产福利精品一区| 国产精品1024| 国产福利精品一区二区| 国产999精品久久久久久| 国产一区二区在线影院| 国产一区视频网站| 99久久er热在这里只有精品66| 高清在线成人网| 成a人片亚洲日本久久| 成人激情动漫在线观看| 成人一区二区三区| www.99精品| 91蜜桃免费观看视频| 99久久精品情趣| 一本一道波多野结衣一区二区 | 久久久久久毛片| 国产色爱av资源综合区| 中文字幕av一区二区三区| 国产精品女上位| 樱桃视频在线观看一区| 午夜精品久久久久影视| 日本强好片久久久久久aaa| 美女诱惑一区二区| 国产一区二区不卡在线| 成人精品一区二区三区中文字幕| 不卡高清视频专区| 欧美专区在线观看一区| 欧美一区二区三区在线看| 精品粉嫩超白一线天av| 国产精品久久久久永久免费观看 | 无吗不卡中文字幕| 麻豆精品一区二区综合av| 国产精品99久久久久久久女警| 不卡一区二区在线| 欧美精品aⅴ在线视频| 精品sm在线观看| 亚洲欧洲性图库| 日韩一区精品视频| 国产经典欧美精品| 在线看日韩精品电影| 精品日本一线二线三线不卡| 国产精品女上位| 日韩精品福利网| 成人av集中营| 欧美日韩第一区日日骚| 亚洲欧美日韩综合aⅴ视频| 图片区小说区国产精品视频| 国产一区二区三区久久悠悠色av| 91麻豆蜜桃一区二区三区| 日韩欧美中文字幕一区| 中文字幕日韩av资源站| 麻豆国产一区二区| 日本韩国精品一区二区在线观看| 日韩一区二区三区电影在线观看| 国产精品乱码久久久久久| 日韩1区2区3区| 99久久久国产精品免费蜜臀| 精品日韩一区二区三区| 一区二区三区在线观看欧美| 国产精品综合二区| 欧美伦理电影网| 国产精品黄色在线观看 | 亚洲日本欧美天堂| 另类调教123区| 欧美在线看片a免费观看| 国产三级一区二区三区| 日韩成人精品在线观看| 91捆绑美女网站| 久久麻豆一区二区| 美女任你摸久久| 欧美日韩在线直播| 亚洲欧美欧美一区二区三区| 国产精品一区在线观看乱码| 日韩一二三四区| 丝袜诱惑亚洲看片| 91国模大尺度私拍在线视频| 国产精品乱码妇女bbbb| 国产高清不卡一区| 久久久久久久久久久电影| 蜜桃视频第一区免费观看| 欧美日本韩国一区二区三区视频 | 99久久99久久综合| 中文文精品字幕一区二区| 91美女精品福利| 国产精品伦一区二区三级视频|