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

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

?? clock- lcd1602.c

?? 1602顯示電子時鐘的51代碼。包括C語言和匯編語言兩種語言。
?? 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  K1   = P1^4;
sbit  K2   = P1^5;
sbit  K3   = P1^6;
sbit  K4   = P1^7;
sbit  BEEP = P3^7;          //蜂鳴器

uchar code  cdis1[ ] = {"   WELCOME TO   "};
uchar code  cdis2[ ] = {" WWW.WILLAR.COM "};
uchar code  cdis3[ ] = {"  BEIJING TIME  "};
uchar code  cdis4[ ] = {"TIME:           "};
uchar code  cdis5[ ] = {" RESET REALTIME "};

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

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

bit    settime,updown;
uchar  msec,sec,min=59,hour=23,m,count;

uchar display[] =  {0x00,0x00,0x00,0x00,0x00,0x00};

/*********************************************************
*                                                        *
* 延時函數                                               *
*                                                        *
*********************************************************/
void Delay(uint num)//延時函數
{
  while( --num );
}

/*********************************************************
*                                                        *
* 延時函數                                               *
*                                                        *
*********************************************************/
void delay1(int ms)
{
   unsigned char n;
   while(ms--)
   {
     for(n = 0; n<250; n++)
    {
      _nop_();
      _nop_();
      _nop_();
      _nop_();
    }
   }
}

/**********************************************************
*                                                         *
* 蜂鳴器響一聲                                            *  
*                                                         *                                        
**********************************************************/
void beep()
{
    unsigned char y;
    for (y=0;y<180;y++)
    {
      BEEP=!BEEP;                //BEEP取反
	  Delay(70);
    } 
    BEEP=1;                      //關閉蜂鳴器
    delay1(100);

}

/**********************************************************
*                                                         *
* 檢查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()
{ 
    delay1(15);   
    lcd_wcmd(0x01);      //清除LCD的顯示內容            
    lcd_wcmd(0x38);      //16*2顯示,5*7點陣,8位數據
    delay1(5);
    lcd_wcmd(0x38);         
    delay1(5);
    lcd_wcmd(0x38);         
    delay1(5);

    lcd_wcmd(0x0c);      //開顯示,不顯示光標  
    delay1(5);

    lcd_wcmd(0x01);      //清除LCD的顯示內容
    delay1(5);
}

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

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

/**********************************************************
*                                                         *
* 顯示函數                                                *
*                                                         *
**********************************************************/
void play(uchar input1,input2,input3)
{  
   display[1]=input1/10+0x30;    //秒單位數據處理
   display[0]=input1%10+0x30;

   display[3]=input2/10+0x30;    //分單位數據處理
   display[2]=input2%10+0x30;
   
   display[5]=input3/10+0x30;    //時單位數據處理
   display[4]=input3%10+0x30;

   lcd_pos(0x46);
   lcd_wdat(display[5]);         //顯示時
   lcd_wdat(display[4]);
   lcd_wdat(0x3a);               //顯示':'
  
   lcd_wdat(display[3]);         //顯示分
   lcd_wdat(display[2]);
   lcd_wdat(0x3a);               //顯示':'

   lcd_wdat(display[1]);         //顯示秒
   lcd_wdat(display[0]); 
}

/**********************************************************
*                                                         *
* 時間設定函數                                            *
*                                                         *
**********************************************************/
void  set_time()
{   
  updown=1;
  settime=0;

  if(K1==0)
  {
     beep();
     while(K1==0);
     settime=1;
     lcd_pos(0x00);             //設置顯示位置為第一行
     for(m=0;m<16;m++) 
     lcd_wdat(cdis5[m]);        //顯示字符 
  
   while(settime)
   { 
     TR0=0;
	 if(K2==0)
	 {
	   beep();
	   if(updown)
	   {
	     hour++;
	     if(hour==24)
	     hour=0;
	   }
	   else
	   {
	     hour--;
	     if(hour==0xff)
	     hour=23;	   
	   }
     }

     if(K3==0)
	 {
	   beep();
	   if(updown)
	   {
	     min++;
	     if(min==60)
	     min=0;
	   }
	   else
	   {
	     min--;
	     if(min==0xff)
	     min=59;	   
	   }
     }

	 if(K1==0)
     {
       beep();
       while(K1==0);
       updown=~updown;
     }

     if(K4==0)
     {
       beep();
       while(K4==0);
       settime=0;
	   sec=0;
	   TR0=1;
     }
      
      play(sec,min,hour);
 
   }  // end of while(settime)  
   
    lcd_pos(0x00);             //設置顯示位置為第一行
    for(m=0;m<16;m++)
    lcd_wdat(cdis3[m]);
 
  } // end of if(K1==0)  
}

/*********************************************************
*                                                        *
* 主函數                                                 *
*                                                        *
*********************************************************/
main()
{
   TMOD=0x01; 
   TH0=0x4c; 
   TL0=0x00;        //50ms定時 
   ET0=1;
   EA=1;

   lcd_init();
   
   lcd_pos(0x00);             //設置顯示位置為第一行
   for(m=0;m<16;m++)
   {
     lcd_wdat(cdis1[m]);        //顯示字符 
     delay1(50);
   }
   lcd_pos(0x40);             //設置顯示位置為第二行
   for(m=0;m<16;m++)
   {
    lcd_wdat(cdis2[m]);        //顯示字符
    delay1(50);
   }

   delay1(3000);

   lcd_pos(0x00);             //設置顯示位置為第一行
   for(m=0;m<16;m++) 
   lcd_wdat(cdis3[m]);        //顯示字符 

   lcd_pos(0x40);             //設置顯示位置為第二行
   for(m=0;m<16;m++)
   lcd_wdat(cdis4[m]); 

   TR0=1;

   while(1)
   {   
     play(sec,min,hour);
 	 set_time();
   }
}

/**********************************************************
*                                                         *
* Time0中斷函數                                           *
*                                                         *
**********************************************************/
void Time0(void) interrupt 1 using 0
{
   TH0=0x4c;               //50ms定時
   TL0=0x00;

   msec++;
   if(msec==20)            //50*20=1S
   {
     msec=0;
     sec++;                //秒加1
	 if(sec==60)
	 {
	   sec=0;
 	   min++;              //分加1
 	   if(min==60)
	   {
	     min=0;
		 hour++;           //時加1
		 if(hour==24)
         {
		   hour=0;        //清計時單元
           min=0;
           sec=0;
         }
       }
     }
   }
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人一区二区精品非洲| 欧美一级欧美三级| 91精品中文字幕一区二区三区| 欧美mv日韩mv亚洲| 亚洲一二三四久久| 成人h动漫精品一区二| 欧美岛国在线观看| 亚洲成年人影院| 91热门视频在线观看| 久久午夜电影网| 日韩vs国产vs欧美| 欧美日韩激情一区二区三区| 1024成人网| 播五月开心婷婷综合| 国产亚洲成aⅴ人片在线观看 | 国产一区二区三区国产| 91久久线看在观草草青青| 久久久久88色偷偷免费| 日av在线不卡| 69堂精品视频| 视频一区视频二区中文| 欧日韩精品视频| 美腿丝袜亚洲综合| 欧美精品日韩精品| 亚洲国产成人91porn| 色婷婷久久一区二区三区麻豆| 欧美一区二区三区不卡| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美亚洲日本一区| 亚洲精品v日韩精品| 91小视频免费看| 自拍偷拍国产亚洲| 成人激情开心网| **网站欧美大片在线观看| gogo大胆日本视频一区| 国产精品久久久久久久久搜平片 | 日韩毛片高清在线播放| 丁香婷婷综合五月| 国产精品色婷婷久久58| 国产成人精品亚洲午夜麻豆| 欧美高清一级片在线观看| 懂色一区二区三区免费观看| 国产精品国产三级国产a| www.66久久| 亚洲午夜成aⅴ人片| 欧美日韩国产高清一区二区三区| 日韩不卡一区二区| 久久久久国产成人精品亚洲午夜| 成人动漫一区二区在线| 亚洲摸摸操操av| 7777精品伊人久久久大香线蕉| 麻豆成人免费电影| 国产欧美日韩一区二区三区在线观看| 国产精品66部| 亚洲色图视频网站| 欧美色大人视频| 国产在线乱码一区二区三区| 中文字幕免费在线观看视频一区| 久久亚洲欧美国产精品乐播| 国产成人在线看| 亚洲激情图片一区| 精品99999| 91首页免费视频| 日本大胆欧美人术艺术动态| 欧美精品一区二区三区四区| 99视频在线精品| 日韩在线a电影| 中文字幕欧美一| 日韩欧美在线1卡| 色综合久久六月婷婷中文字幕| 蜜桃视频在线观看一区| 国产精品久久久一本精品| 欧美丰满美乳xxx高潮www| 成人av午夜电影| 午夜不卡av免费| 国产精品久久久久影院色老大| 欧美日韩精品一区二区| 国产成人亚洲精品青草天美| 午夜影院在线观看欧美| 国产欧美va欧美不卡在线| 欧美电影在哪看比较好| 99久久99久久免费精品蜜臀| 免费在线观看视频一区| 亚洲制服欧美中文字幕中文字幕| 久久综合色播五月| 7777女厕盗摄久久久| 91麻豆产精品久久久久久 | 色嗨嗨av一区二区三区| 看国产成人h片视频| 亚洲综合免费观看高清完整版| www国产成人免费观看视频 深夜成人网 | 日韩精品免费视频人成| 国产精品的网站| 欧美国产精品一区二区三区| 欧美成人免费网站| 欧美精品久久一区| 欧美午夜电影网| 99久久夜色精品国产网站| 国产一区二区美女诱惑| 日韩电影在线免费观看| 亚洲综合自拍偷拍| 一区二区三区**美女毛片| 国产精品视频观看| 国产日本一区二区| 亚洲精品一区在线观看| 日韩免费视频一区| 日韩午夜在线影院| 精品国产3级a| 精品久久久久久亚洲综合网| 91精品国产91久久久久久最新毛片| 欧美视频中文字幕| 欧美私人免费视频| 欧美性xxxxx极品少妇| 国产综合成人久久大片91| 亚洲一区二区三区视频在线 | 久久精品久久精品| 亚洲欧美在线aaa| 日韩欧美的一区| 成人黄色a**站在线观看| 中文字幕一区二区不卡| 欧美一区二区三区婷婷月色| 欧美亚洲综合网| 欧美日韩国产一二三| 欧美日韩国产成人在线91| 欧美精品v日韩精品v韩国精品v| 欧美日精品一区视频| 91精品国产高清一区二区三区蜜臀| 在线91免费看| 精品国内片67194| 综合激情网...| 美腿丝袜一区二区三区| 国产乱子伦视频一区二区三区| 成人激情开心网| 久久久久久久综合色一本| 亚洲成人1区2区| **欧美大码日韩| 国产精品国产a| 日韩黄色小视频| 久久精品99国产国产精| 国产亚洲一区字幕| 国产精品久久久久久福利一牛影视| 亚洲色图在线视频| 日韩精品一二区| 国产精品亚洲综合一区在线观看| 99精品视频一区| 欧美日韩国产精品成人| 久久久久久久久久久久电影| 亚洲人成人一区二区在线观看| 亚洲国产美国国产综合一区二区| 久久99精品国产.久久久久久| 国产99久久精品| 欧美一区二区在线播放| 欧美激情在线一区二区| 亚洲电影你懂得| 风间由美一区二区av101| 欧美午夜不卡在线观看免费| 久久久久久电影| 日韩国产在线一| 91香蕉视频污在线| 欧美成人性战久久| 一区二区在线观看免费视频播放| 久久99国产精品免费网站| 色综合咪咪久久| 国产丝袜在线精品| 日韩国产成人精品| 一本到一区二区三区| 久久久亚洲精品石原莉奈| 亚洲不卡一区二区三区| 成人小视频在线| 久久影院午夜论| 天天av天天翘天天综合网色鬼国产| 国产精品99久| 精品欧美一区二区在线观看| 一区二区三区色| 成人午夜视频免费看| 精品精品国产高清a毛片牛牛| 亚洲成人中文在线| 91性感美女视频| 国产日韩欧美制服另类| 捆绑调教一区二区三区| 欧美日高清视频| 亚洲一本大道在线| 在线观看视频一区二区欧美日韩| 日本一区二区三区在线不卡 | 亚洲图片欧美色图| 不卡区在线中文字幕| 欧美国产日产图区| 国产乱国产乱300精品| 精品国偷自产国产一区| 久久福利资源站| 91精品国产丝袜白色高跟鞋| 午夜精品爽啪视频| 欧美久久久久久久久中文字幕| 亚洲一二三区视频在线观看| 91高清在线观看| 亚洲国产精品一区二区久久恐怖片| 在线一区二区三区四区五区| 亚洲欧美综合色| 91免费国产在线| 亚洲一区二区综合|