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

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

?? 16key-b.c

?? 單片機中LED顯示/數碼管顯示/鍵盤控制/蜂鳴器輸出/中斷應用/定時器和計數器/串口通信/鍵控看門狗/數據交換
?? C
字號:
/*******************************************************************/
/*                                                                 */
/* ME500單片機開發系統演示程序 - 矩陣鍵盤鍵值顯示                  */
/*                                                                 */
/* LCD1602顯示                                                     */
/*                                                                 */
/* 版本: V1.0 (2006/11/20)                                        */
/* 作者: gguoqing (Email: gguoqing@willar.com)                    */
/* 網站: www.willar.com(偉納電子)   www.mcusj.com(偉納單片機世界) */
/* 郵箱: support@willar.com                                       */
/*                                                                 */
/*【版權】Copyright(C)偉納電子 www.willar.com  All Rights Reserved */
/*【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!       */
/*                                                                 */
/*******************************************************************/

#include <reg51.h>
#include <intrins.h>
	                
#define uchar unsigned char
#define uint  unsigned int

sbit BEEP = P3^7;          //蜂鳴器驅動線
uchar  dis_buf;            //顯示緩存
uchar  temp;
uchar  key;                //鍵順序嗎

void beep();               //蜂鳴器
void delay0(uchar x);      //x*0.14MS

sbit LCD_RS = P2^0;             
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;

uchar code  cdis1[ ] = {"   KEY NUMBER   "};
uchar code  cdis2[ ] = {"  KEY-CODE:   H "};

#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};

/*************************************************************/
/*                                                           */
/* 延時子程序                                                */
/*                                                           */
/*************************************************************/

void  delay(uchar x)
{ uchar j;
    while((x--)!=0)
    { for(j=0;j<125;j++)
         {;}
    }
}

/*************************************************************/
/*                                                           */
/*檢查LCD忙狀態                                              */
/*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數據  */
/*                                                           */
/*************************************************************/ 
bit lcd_busy()
 {                          
    bit result;
    LCD_RS = 0;
    LCD_RW = 1;
    LCD_EN = 1;
    delayNOP();
    result = (bit)(P0&0x80);
    LCD_EN = 0;
    return(result); 
 }

/*******************************************************************/
/*                                                                 */
/*寫指令數據到LCD                                                  */
/*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。                             */
/*                                                                 */
/*******************************************************************/
void lcd_wcmd(uchar cmd)

{                          
   while(lcd_busy());
    LCD_RS = 0;
    LCD_RW = 0;
    LCD_EN = 0;
    _nop_();
    _nop_(); 
    P0 = cmd;
    delayNOP();
    LCD_EN = 1;
    delayNOP();
    LCD_EN = 0;  
}

/*******************************************************************/
/*                                                                 */
/*寫顯示數據到LCD                                                  */
/*RS=H,RW=L,E=高脈沖,D0-D7=數據。                               */
/*                                                                 */
/*******************************************************************/
void lcd_wdat(uchar dat)
{                          
   while(lcd_busy());
    LCD_RS = 1;
    LCD_RW = 0;
    LCD_EN = 0;
    P0 = dat;
    delayNOP();
    LCD_EN = 1;
    delayNOP();
    LCD_EN = 0; 
}

/*************************************************************/
/*                                                           */
/*  LCD初始化設定                                            */
/*                                                           */
/*************************************************************/
void lcd_init()
{ 
    delay(15);                   
    lcd_wcmd(0x38);      //16*2顯示,5*7點陣,8位數據
    delay(5);
    lcd_wcmd(0x38);         
    delay(5);
    lcd_wcmd(0x38);         
    delay(5);

    lcd_wcmd(0x0c);      //顯示開,關光標
    delay(5);
    lcd_wcmd(0x06);      //移動光標
    delay(5);
    lcd_wcmd(0x01);      //清除LCD的顯示內容
    delay(5);
}

/*************************************************************/
/*                                                           */
/*  設定顯示位置                                             */
/*                                                           */
/*************************************************************/

void lcd_pos(uchar pos)
{                          
  lcd_wcmd(pos | 0x80);  //數據指針=80+地址變量
}

/*************************************************************/
/*                                                           */
/* 鍵掃描子程序                                              */
/*                                                           */
/*************************************************************/
 void  keyscan(void)
 { 
    P1=0x0F;                 //低四位輸入  
    delay(1);
	temp=P1;                 //讀P1口 
    temp=temp&0x0F;
    temp=~(temp|0xF0);
    if(temp==1)
        key=0;
    else if(temp==2)
        key=1;
    else if(temp==4)
        key=2;
    else if(temp==8)
        key=3;
    else
        key=16;
        
    P1=0xF0;                //高四位輸入
    delay(1);
	temp=P1;                //讀P1口       
    temp=temp&0xF0;
    temp=~((temp>>4)|0xF0);
    if(temp==1)
        key=key+0;
    else if(temp==2)
        key=key+4;
    else if(temp==4)
        key=key+8;
    else if(temp==8)
        key=key+12;
    else
        key=16;
    	
     dis_buf = key;	             //鍵值入顯示緩存
     dis_buf = dis_buf & 0x0f;
 
	 if(dis_buf>9)               //轉換為ASCII碼
      dis_buf = dis_buf+0x37;
     else
	  dis_buf = dis_buf+0x30;
 }

/*************************************************************/
/*                                                           */
/*判斷鍵是否按下                                             */
/*                                                           */
/*************************************************************/
 void  keydown(void)
 {  
  	P1=0xF0;
	if(P1!=0xF0)
	{
	  keyscan();
	  beep();
    }
 }

/*************************************************************/
/*                                                           */
/* 蜂鳴器響一聲                                              */
/*                                                           */
/*************************************************************/
void beep()
{
  unsigned char i;
  for (i=0;i<180;i++)
   {
   delay0(6);
   BEEP=!BEEP;       //BEEP取反
   } 
   BEEP=1;           //關閉蜂鳴器
   delay(250);       //延時     
}

/*************************************************************/
/*                                                           */
/* 延時 x*0.14ms                                             */
/*                                                           */
/*************************************************************/

void delay0(uchar x)    
{
 unsigned char i;
  while(x--)
 {
  for (i = 0; i<13; i++) {}
 }
}
/*************************************************************/
/*                                                           */
/* 主程序                                                    */
/*                                                           */
/*************************************************************/ 
    main()
 {
    uchar m;
    P0=0xFF;                    //置P0口
    P2=0xFF;                    //置P2口  
    delay(10);                  //延時
    lcd_init();                 //初始化LCD             
        
    lcd_pos(0);                 //設置顯示位置為第一行
    for(m=0;m<16;m++)
    lcd_wdat(cdis1[m]);

    lcd_pos(0x40);              //設置顯示位置為第二行
     
    for(m=0;m<16;m++)
    lcd_wdat(cdis2[m]);
    dis_buf = 0x2d;             //顯示字符"-"

    while(1)
    { 
       keydown();
	   lcd_pos(0x4c);             
       lcd_wdat(dis_buf);        //第一位數顯示   
    }
  }   

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕不卡的av| 2021中文字幕一区亚洲| 欧美96一区二区免费视频| 337p粉嫩大胆噜噜噜噜噜91av | 国产黑丝在线一区二区三区| 亚洲免费成人av| 日韩欧美国产系列| 色综合久久综合网欧美综合网| 日韩av一区二区三区四区| 中文av字幕一区| 制服丝袜激情欧洲亚洲| 99re亚洲国产精品| 六月丁香婷婷久久| 亚洲第四色夜色| 中文字幕一区二区不卡| 精品国产乱码久久| 欧美日韩视频专区在线播放| 成人av在线网| 狠狠色伊人亚洲综合成人| 五月婷婷激情综合| 国产精品网站在线| 精品国产一区二区国模嫣然| 在线视频你懂得一区二区三区| 国产91精品在线观看| 免费日韩伦理电影| 亚洲成人在线网站| 一区二区三区在线影院| 亚洲国产精品ⅴa在线观看| 欧美电影免费观看高清完整版| 欧美日韩亚洲综合一区二区三区| 99久久伊人网影院| 成人免费黄色大片| 国产一区二区福利| 麻豆精品一二三| 亚洲3atv精品一区二区三区| 一区二区三区蜜桃| 一区二区三区在线免费| 国产精品久久久久婷婷二区次| 精品电影一区二区三区 | 欧美一区二区三区白人| 欧美日韩一区二区三区在线看 | 日韩综合一区二区| 午夜久久久久久电影| 一区二区国产盗摄色噜噜| 亚洲欧美日本韩国| 亚洲欧美日韩在线| 亚洲精品视频免费观看| 1000部国产精品成人观看| 国产精品欧美精品| 国产精品丝袜一区| 日韩毛片视频在线看| 中文字幕一区二区三区蜜月| 亚洲视频精选在线| 亚洲免费观看高清完整| 亚洲韩国一区二区三区| 一级做a爱片久久| 亚洲一区二区三区小说| 亚洲福利一二三区| 亚洲.国产.中文慕字在线| 午夜精品福利一区二区三区av| 亚州成人在线电影| 免费高清成人在线| 精品午夜久久福利影院| 国产一区二区三区国产| 成人午夜视频在线| av午夜一区麻豆| 欧洲国产伦久久久久久久| 欧美绝品在线观看成人午夜影视| 在线综合视频播放| 久久久久久久综合色一本| 亚洲国产岛国毛片在线| 亚洲女人****多毛耸耸8| 亚洲综合在线观看视频| 美女视频第一区二区三区免费观看网站| 麻豆精品视频在线| 国v精品久久久网| 色综合久久久久综合体| 678五月天丁香亚洲综合网| 欧美成人猛片aaaaaaa| 2021国产精品久久精品| 国产精品国产三级国产a| 亚洲麻豆国产自偷在线| 日韩av在线播放中文字幕| 国产精品影音先锋| 在线亚洲免费视频| 日韩欧美一级二级| 国产欧美va欧美不卡在线| 一区二区三区免费在线观看| 蜜臀av性久久久久蜜臀aⅴ| 国产精品888| 欧美少妇bbb| 国产目拍亚洲精品99久久精品| 亚洲一级不卡视频| 国产老肥熟一区二区三区| 91麻豆精品秘密| 久久综合色一综合色88| 亚洲女与黑人做爰| 国产一区二区三区国产| 欧洲一区二区三区在线| 精品国产99国产精品| 亚洲一区在线观看网站| 黑人巨大精品欧美一区| 在线视频亚洲一区| 久久久99久久精品欧美| 亚洲一区二区三区四区在线观看 | 亚洲欧美电影一区二区| 精品亚洲成a人在线观看| 欧美日韩综合在线| 国产精品天天摸av网| 蜜臀久久久久久久| 欧美视频一区二区三区四区| 国产精品传媒在线| 青青草视频一区| 日本韩国视频一区二区| 国产喷白浆一区二区三区| 日韩成人一级片| 在线视频中文字幕一区二区| 中文字幕乱码亚洲精品一区| 美女脱光内衣内裤视频久久网站 | 亚洲精品福利视频网站| 国产成人免费视频网站| 精品久久久久久久久久久院品网| 亚洲一区二区三区四区五区黄| 国产成人av资源| 精品久久久久久久久久久久包黑料 | 在线观看av一区| 综合欧美亚洲日本| 懂色av一区二区三区免费看| 精品国产乱码久久久久久图片| 五月婷婷久久综合| 日本久久一区二区| 17c精品麻豆一区二区免费| 国产在线观看免费一区| 日韩精品一区二区三区在线观看| 亚洲精品亚洲人成人网| www.在线成人| 国产精品久久久久久久久免费桃花| 国产一区二区三区在线观看免费视频| 制服丝袜亚洲精品中文字幕| 亚洲v中文字幕| 欧美四级电影网| 一区二区久久久久久| 91久久香蕉国产日韩欧美9色| 亚洲欧美激情插| 在线观看一区二区视频| 亚洲一区成人在线| 欧美高清精品3d| 久久99日本精品| 国产亚洲污的网站| 成人av免费在线| 亚洲欧美偷拍三级| 在线国产亚洲欧美| 日韩成人免费电影| 日韩免费观看2025年上映的电影| 免费在线观看视频一区| 日韩视频一区二区三区在线播放| 免费观看在线色综合| 久久综合色8888| 国产精品白丝jk黑袜喷水| 国产精品久久久久永久免费观看| 91亚洲精品久久久蜜桃| 伊人性伊人情综合网| 欧美日韩小视频| 麻豆成人91精品二区三区| 26uuu欧美| 成人av动漫网站| 亚洲一区欧美一区| 日韩欧美美女一区二区三区| 韩国视频一区二区| 国产精品免费视频观看| 91精品福利视频| 蜜臀av一级做a爰片久久| 久久综合国产精品| 99久久久久久| 日本亚洲一区二区| 国产拍揄自揄精品视频麻豆| 91极品美女在线| 毛片一区二区三区| 中文在线资源观看网站视频免费不卡 | 91丨porny丨国产入口| 亚洲午夜私人影院| 久久综合五月天婷婷伊人| av日韩在线网站| 日韩国产高清影视| 国产精品五月天| 欧美片网站yy| 不卡的av在线| 日韩国产精品久久| 中文字幕中文乱码欧美一区二区| 欧美日韩久久不卡| 成人av资源网站| 日本人妖一区二区| 亚洲人亚洲人成电影网站色| 日韩一本二本av| 91网站在线观看视频| 麻豆一区二区三区| 亚洲靠逼com| 国产午夜精品理论片a级大结局| 欧美午夜精品一区二区三区| 国产精品99久|