久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于51單片機定時器的的電子時鐘+1602液晶

作者:佚名   來源:本站原創   點擊數:  更新時間:2010年09月01日   【字體:

1、可以顯示星期和時間的電子1602液晶電子時鐘
2、但沒有調整時間的子程序,誰會調整時間的子程序,可以完善。
3. 液晶的端口大家可按你自己的電路隨便修改就在程序的上部
4. 此程序在51hei單片機開發板上測試成功全部的代碼及頭文件
   下載地址:http://www.zg4o1577.cn/ziliao/51hei-5/電子時鐘+1602液晶.rar


#include <reg52.h>
#include "51hei.h"
#define uchar unsigned char
sbit RW=P2^7;
sbit RS=P3^5;
sbit E=P3^4;
sbit duan=P2^6;
bit at=0;
//sbit busy_bit=P1^7;
uchar code shen[]={"I love you!!"};
uchar code word[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x20,0x2d,0x00,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07};
uchar code ri[]={0x1f,0x19,0x19,0x1f,0x19,0x19,0x1f,0x00}; //自定義符號 :周日 
uchar code yi[]={0x00,0x00,0x00,0x1f,0x00,0x00,0x00,0x00};/*自定義符號:周一 */ 
uchar code er[]={0x00,0x00,0x0e,0x00,0x1f,0x00,0x00,0x00};/*自定義符號: 周二2*/ 
uchar code san[]={0x00,0x1f,0x00,0x0e,0x00,0x1f,0x00,0x00};/*自定義符號: 周三2*/ 
uchar code si[]={0x00,0x1f,0x1a,0x1a,0x11,0x11,0x00,0x00}; //自定義符號 :周四   
uchar code wu[]={0x00,0x1f,0x08,0x1f,0x09,0x1f,0x00,0x00}; //自定義符號 :周五 
uchar code liu[]={0x08,0x04,0x1f,0x0a,0x11,0x10,0x00,0x00}; //自定義符號 :周五 
uchar dispbuf[10],ri1,h,m,s,counter;

 

void delay()
{
  uchar i;
 for(i=0;i<255;i++);
}

 

/*******寫命令**********/
void lcd_wmc(uchar i)
{

  P0=i;
  RS=0;
  RW=0;
  E=0;
  delay();
  E=1;
}

 

/*******寫數據***********/

void lcd_wmd(uchar i)
{

  P0=i;
  RS=1;
  RW=0;
  E=0;
  delay();
  E=1;
}

 


/*******初始化液晶*******/
void lcd_init()
{
  uchar i;
  lcd_wmc(0x01);
  lcd_wmc(0x38);  //功能設置指令-5    顯示模式設置:16×2顯示,5×7點陣,8位數據接口
  lcd_wmc(0x0c); // 顯示開關控制指令 0x0c--顯示功能開無光標,即光標不閃爍。00x0f--顯示功能開,有光標并閃爍
  lcd_wmc(0x06);   //顯示模式設置:光標右移,字符不移   輸入模式設置指令 -3 
                  
  lcd_wmc(0x82);  // 0xc9 =0x80 | 0x49    設置DDRAM地址指令--8   PPt第8    ox82=0x80|0x02 
  for(i=0;i<12;i++)
  lcd_wmd(shen[i]);    //顯示 I  love you !! 字符串                    
  lcd_wmc(0xc0);
 
}

 

 

/*******更新緩沖區子程序*******/
void newbuf()
{
 dispbuf[0]=s%10;
 dispbuf[1]=s/10;
 dispbuf[3]=m%10;
 dispbuf[4]=m/10;
 dispbuf[6]=h%10;
 dispbuf[7]=h/10;
 dispbuf[9]=ri+13;
}

 

/*******顯示子程序**********/
void disp(uchar dispadd)
{
   uchar tmp;    //定義 一個uchar 變量 
   lcd_wmc(dispadd);     // 調用 寫指令 函數 把DDRAM 地址 指令寫進

  
   tmp=dispbuf[9];    //星期             //以下同理 
   tmp=word[tmp];
   lcd_wmd(tmp);

   tmp=dispbuf[8];
   tmp=word[tmp];     
   lcd_wmd(tmp);

 

   tmp=dispbuf[7];    //第2行 把值賦給 tmp 
   tmp=word[tmp];    //把要顯示的 數 給tmp 
   lcd_wmd(tmp);      //寫數據 函數 把要顯示的數字 顯示在顯示屏上 

   tmp=dispbuf[6];                 //以下同理 
   tmp=word[tmp];
   lcd_wmd(tmp);

   tmp=dispbuf[5];
   tmp=word[tmp];     
   lcd_wmd(tmp);

   tmp=dispbuf[4];
   tmp=word[tmp];
   lcd_wmd(tmp);          //分鐘 

   tmp=dispbuf[3];
   tmp=word[tmp];     
   lcd_wmd(tmp);

   tmp=dispbuf[2];              //顯示 是兩個點 在閃爍 
   tmp=word[tmp];
   lcd_wmd(tmp);

   tmp=dispbuf[1];
   tmp=word[tmp];       //秒 
   lcd_wmd(tmp);

   tmp=dispbuf[0];
   tmp=word[tmp];
   lcd_wmd(tmp); 
}
 

 

/*********************初始化子程序**********************/
void init()
{

  TMOD=0x01;
  TH0=0x4c;
  TL0=0x00;
  EA=1;
  ET0=1;
  TR0=1;
  counter=0;
  h=23;m=59;s=0;
  ri1=6;
  dispbuf[2]=10;
  dispbuf[5]=10;
  dispbuf[8]=12;
}

 

 

 

/***************************主程序************************/

void main(void)
{ guanled();
  guandz();
  init();
  lcd_init();

  while(1)
  {
   if(!at)
 {
     //閃爍
      if(counter<10)        
      {
       dispbuf[2]=10;
       dispbuf[5]=10;
      }
      else
      {            
       dispbuf[2]=11;
       dispbuf[5]=11;
      }
      //更新顯示緩沖區及調用顯示程序
      if(counter==0)
      {
       newbuf();
       disp(0xc4);
       }
      else if(counter==10)
      disp(0xc4);  
    }
   }
}

 

 

 


/*************************定時器0的中斷**********************/
void Time0() interrupt 1 using 2    //再次強調中斷子程序執行時間越短越好
{
  TH0=(65536-46075)/256;
  TL0=(65536-46075)%256;
  counter++;
  if(counter==20)
  {
    s++;
  counter=0;
  if(s==60)
  { 
    m++;
    s=0;
      if(m==60)
    {
      h++;
    m=0;
    if(h==24)
     h=0;
  ri1++;
    if(ri1==7)
       { 
     ri1=0;
    }
         }
       }

  }
}
關閉窗口

相關文章

主站蜘蛛池模板: 欧美精品久久久久 | 国产精品国产精品国产专区不片 | 久久九九影视 | 99pao成人国产永久免费视频 | 免费黄色片在线观看 | 日韩中文字幕一区 | 国产一区二区精品在线观看 | 一区二区三区四区国产精品 | 激情小说综合网 | 亚洲毛片在线观看 | 中文字幕日本一区二区 | 天天天天操| 国产一二区视频 | 成人在线播放网站 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 黄色免费在线观看网址 | 丝袜美腿一区二区三区 | 欧美视频免费 | 91成人在线 | 久久精品99| 一色一黄视频 | 亚洲欧美日韩精品久久亚洲区 | 欧美久久视频 | 99久久久国产精品 | 日韩一二区在线观看 | 国产色网| 午夜影院在线观看视频 | 香蕉久久久 | 亚洲精品二区 | 日本中文字幕日韩精品免费 | 手机av在线| 国产 欧美 日韩 一区 | 99免费视频 | 亚洲最色网站 | 久久久久久国产精品免费免费 | 西西裸体做爰视频 | 亚洲精品国产电影 | 九九色综合 | 国产99免费| 天天综合国产 | 国产精品1 |