那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于51單片機的LCD1602液晶顯示時鐘

電子開發圈 ? 來源:電子開發圈 ? 2023-01-13 09:57 ? 次閱讀

51單片機結構簡單,架構體系完備,學習資料豐富,應用領域廣泛。通過對51單片機的學習,可幫助小白實現快速入門電子設計,理解電路系統工作原理,為高級嵌入式芯片的學習及開發打下堅實基礎。

本篇描述

1、51+Proteus8.10;

2、學習1302時鐘芯片、1602液晶驅動;

仿真設計

采用Proteus作為仿真設計工具。Proteus是一款著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,真正實現了從概念到產品的完整設計。

軟件設計

采用Keil作為軟件設計工具。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(μVision)將這些部分組合在一起。

#include 
#include 
#include 
#define uint unsigned int
#define uchar unsigned char


sbit DS1302_IO = P1^7;
sbit DS1302_SCLK = P1^6;
sbit DS1302_RST = P1^5;
sbit LCD1602_RS = P2^0;
sbit LCD1602_RW = P2^1;
sbit LCD1602_EN = P2^2;


uchar LCD_1[]={"DATE: 00-00-00  "};
uchar LCD_2[]={"TIME: 0000  "};
uchar DateTime[7];


void DelayMS(uint ms)
{
   uchar i;
  while(ms--)
  {
     for(i=0;i<120;i++);
  }
}


uchar Get_A_Byte_FROM_DS1302()
{
   uchar i,b=0x00;
  for(i=0;i<8;i++)
  {
     b |= _crol_((uchar)DS1302_IO,i);
    DS1302_SCLK=1;
    DS1302_SCLK=0;
  }
  return b/16*10+b%16;
}


void Write_A_Byte_TO_DS1302(uchar x)
{
   uchar i;
  for(i=0;i<8;i++)
  {
     DS1302_IO=x&0x01;
    DS1302_SCLK=1;
    DS1302_SCLK=0;
    x>>=1;
  }
}


uchar Read_Data(uchar addr)
{
   uchar dat;
  DS1302_RST = 0;
  DS1302_SCLK=0;
  DS1302_RST=1;
  Write_A_Byte_TO_DS1302(addr);
  dat = Get_A_Byte_FROM_DS1302();
  DS1302_SCLK=1;
  DS1302_RST=0;
  return dat;
}


uchar Read_LCD_State()
{
   uchar state;
  LCD1602_RS=0;
  LCD1602_RW=1;
  LCD1602_EN=1;
  DelayMS(1);
  state=P0;
  LCD1602_EN = 0;
  DelayMS(1);
  return state;
}


void LCD_Busy_Wait()
{
   while((Read_LCD_State()&0x80)==0x80);
  DelayMS(5);
}


void Write_LCD_Data(uchar dat)
{
   LCD_Busy_Wait();
  LCD1602_RS=1;
  LCD1602_RW=0;
  LCD1602_EN=0;
  P0=dat;
  LCD1602_EN=1;
  DelayMS(1);
  LCD1602_EN=0;  
}


void Write_LCD_Command(uchar cmd)
{
   LCD_Busy_Wait();
  LCD1602_RS=0;
  LCD1602_RW=0;
  LCD1602_EN=0;
  P0=cmd;
  LCD1602_EN=1;
  DelayMS(1);
  LCD1602_EN=0;  
}


void Set_LCD_POS(uchar p)
{
   Write_LCD_Command(p|0x80);  
}


void Display_LCD_String(uchar p,uchar *s)
{
   uchar i;
  Set_LCD_POS(p);
  for(i=0;i<16;i++)
  {
    Write_LCD_Data(s[i]);
    DelayMS(1);   
  }
}


void Format_DateTime(uchar d,uchar *a)
{
   a[0]=d/10+'0';
  a[1]=d%10+'0';
}


void Init_LCD()
{
   Write_LCD_Command(0x38);
  DelayMS(1);  
  Write_LCD_Command(0x01);
  DelayMS(1);  
  Write_LCD_Command(0x06);
  DelayMS(1);  
  Write_LCD_Command(0x0c);
  DelayMS(1);  
}


void GetTime()
{
   uchar i,addr = 0x81;
  for(i=0;i<7;i++)
  {
     DateTime[i]=Read_Data(addr);addr+=2;
  }
}


void main()
{
   Init_LCD();
  while(1)
  {
     GetTime();


    Format_DateTime(DateTime[6],LCD_1+6);
    Format_DateTime(DateTime[4],LCD_1+9);
    Format_DateTime(DateTime[3],LCD_1+12);
    Format_DateTime(DateTime[2],LCD_2+6);
    Format_DateTime(DateTime[1],LCD_2+9);
    Format_DateTime(DateTime[0],LCD_2+12);


    Display_LCD_String(0x00,LCD_1);
    Display_LCD_String(0x40,LCD_2);
  }
}

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6043

    文章

    44622

    瀏覽量

    638523
  • 液晶顯示
    +關注

    關注

    6

    文章

    588

    瀏覽量

    40402
  • 51單片機
    +關注

    關注

    274

    文章

    5705

    瀏覽量

    124294
  • LCD1602
    +關注

    關注

    14

    文章

    607

    瀏覽量

    52710
  • 顯示時鐘
    +關注

    關注

    0

    文章

    5

    瀏覽量

    1653

原文標題:5044-LCD1602液晶顯示時鐘

文章出處:【微信號:電子開發圈,微信公眾號:電子開發圈】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    LCD1602液晶顯示模塊

    LCD1602內部寫入需要顯示的內容。RS=0時,選擇命令寄存區,即向LCD1602內部寫入需要顯示內容的顯示位置。R/W引腳:E引腳:D0
    發表于 07-20 06:48

    51單片機驅動 LCD1602液晶顯示系統

    51單片機驅動 LCD1602液晶顯示系統,51單片機驅動
    發表于 07-21 07:35

    lcd1602單片機連接圖,基于51單片機lcd1602液晶顯示屏連接電路圖

     LCD1602是一種工業字符型液晶,能夠同時顯示16x02即32個字符。LCD1602液晶顯示原理 L
    發表于 10-20 11:33 ?14.1w次閱讀

    使用51單片機控制LCD1602液晶顯示屏的程序資料免費下載

    本文檔的主要內容詳細介紹的是使用51單片機控制LCD1602液晶顯示屏的程序資料免費下載。
    發表于 01-08 08:00 ?33次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>控制<b class='flag-5'>LCD1602</b><b class='flag-5'>液晶顯示</b>屏的程序資料免費下載

    使用51單片機實現LCD1602液晶顯示實驗的程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現LCD1602液晶顯示實驗的程序免費下載。
    發表于 09-18 17:20 ?16次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>實現<b class='flag-5'>LCD1602</b><b class='flag-5'>液晶顯示</b>實驗的程序免費下載

    LCD1602的引腳說明和使用51單片機控制1602液晶顯示的代碼免費下載

    本文檔的主要內容詳細介紹的是LCD1602的引腳說明和使用51單片機控制1602液晶顯示的代碼免費下載。
    發表于 07-31 17:35 ?9次下載
    <b class='flag-5'>LCD1602</b>的引腳說明和使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>控制<b class='flag-5'>1602</b><b class='flag-5'>液晶顯示</b>的代碼免費下載

    使用51單片機驅動LCD1602液晶顯示的程序和電路圖免費下載

    本文檔的主要內容詳細介紹的是使用51單片機驅動LCD1602液晶顯示的程序和電路圖免費下載。
    發表于 07-10 17:40 ?11次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>驅動<b class='flag-5'>LCD1602</b><b class='flag-5'>液晶顯示</b>的程序和電路圖免費下載

    使用51單片機設計液晶顯示LCD1602顯示的計算器程序免費下載

    本文的主要內容是使用51單片機設計液晶顯示LCD1602顯示的計算器程序免費下載。
    發表于 06-26 17:43 ?20次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>設計<b class='flag-5'>液晶顯示</b>屏<b class='flag-5'>LCD1602</b><b class='flag-5'>顯示</b>的計算器程序免費下載

    使用51單片機進行LCD1602液晶顯示的控制代碼程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機進行LCD1602液晶顯示的控制代碼程序免費下載。
    發表于 06-11 17:47 ?8次下載
    使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>進行<b class='flag-5'>LCD1602</b><b class='flag-5'>液晶顯示</b>的控制代碼程序免費下載

    使用單片機實現LCD1602液晶顯示的DS12887實時時鐘的C語言程序

    本文檔的主要內容詳細介紹的是使用單片機實現LCD1602液晶顯示的DS12887實時時鐘的C語言程序免費下載.
    發表于 03-26 11:40 ?26次下載

    基于51單片機LCD1602顯示proteus實驗

    基于51單片機LCD1602顯示proteus實驗
    發表于 04-30 10:14 ?38次下載

    基于AT89C51單片機的電子鐘設計(LCD1602液晶顯示

    **基于51單片機的電子鐘設計(LCD1602液晶顯示)設計要求:設計一個用LCD1602液晶顯示
    發表于 11-04 14:51 ?35次下載
    基于AT89C<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的電子鐘設計(<b class='flag-5'>LCD1602</b><b class='flag-5'>液晶顯示</b>)

    51單片機驅動LCD1602顯示原理及例程

    51單片機驅動LCD1602顯示原理及例程1.LCD1602A介紹2.LCD1602A中文手冊
    發表于 11-10 19:51 ?149次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>驅動<b class='flag-5'>LCD1602</b><b class='flag-5'>顯示</b>原理及例程

    基于51單片機智能溫控風扇LCD1602液晶顯示紅外遙控設計

    基于51單片機智能溫控風扇LCD1602液晶顯示紅外遙控設計
    發表于 11-13 10:51 ?41次下載
    基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>智能溫控風扇<b class='flag-5'>LCD1602</b><b class='flag-5'>液晶顯示</b>紅外遙控設計

    51單片機怎么顯示當前時間_(記錄)51單片機——LCD1602液晶顯示模塊

    51單片機怎么顯示當前時間_(記錄)51單片機——LCD1602
    發表于 11-16 15:06 ?29次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>怎么<b class='flag-5'>顯示</b>當前時間_(記錄)<b class='flag-5'>51</b><b class='flag-5'>單片機</b>——<b class='flag-5'>LCD1602</b><b class='flag-5'>液晶顯示</b>模塊
    百家乐官网破解仪| 棋牌游戏开发公司| 黄金城| 赢家百家乐官网的玩法技巧和规则 | 足球.百家乐官网投注网出租| 百家乐与21点| 百家乐官网庄河闲的赌法| 百家乐官网技巧赚钱| 威尼斯人娱乐城真人百家乐| 百家乐官网新送彩金| 德州扑克的规则| 百家乐怎么对冲打| 乐九百家乐官网现金网| 百家乐棋牌游戏源码| 百家乐官网六合彩3535| 来博娱乐| 菲利宾百家乐现场| 属蛇做生意坐向| 网上百家乐官网投注法| 乐享百家乐的玩法技巧和规则| 百家乐官网视频软件| 威尼斯人娱乐城信誉好不好| 蓝盾百家乐官网的玩法技巧和规则 | 百家乐凯时娱乐平台| 百家乐官网网页qq| 葫芦岛市| 大发888金皇冠娱乐城| 网上百家乐看牌器| 百家乐官网桌手机套| bet365 备用| 联合百家乐的玩法技巧和规则| 太阳城百家乐注册平台| 百家乐官网保单机作弊| 百家乐官网概率统计| 百家乐官网真钱路怎么看| 千亿娱乐城注册| 大发888真人网| 百家乐赌博娱乐城大全| 百家乐怎么会赢| 网上的百家乐官网是真是假| 龙口市|