吴忠躺衫网络科技有限公司

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>模塊
    澳门永利| 百家乐翻天超清| 太阳城百家乐官网赌场| 大发888手机版客户端| 2016虎和蛇合作做生意| 大发888官方网页| 百家乐出千赌具| 保靖县| 威尼斯人娱乐城地图| 多台百家乐官网的玩法技巧和规则| 天空娱乐城| 百家乐网络游戏信誉怎么样| 利都百家乐官网国际娱乐| 欧博娱乐| 百家乐筹码托盘| 挖掘百家乐赢钱秘籍| 百家乐官网博娱乐平台赌百家乐官网| 球探比分 | 老虎机加分器| 百家乐专业豪华版| 百家乐官网手机壳| 赌百家乐官网心里技巧| bet365怎么存款| 百家乐群必胜打朽法| 百家乐马渚| 百家乐官网推荐| 破解百家乐官网公式| 网上百家乐官网追杀| 立博网站| 大发888假冒网站| 玩百家乐游戏的最高技巧| 百家乐官网赌场娱乐城| 神池县| 澳盈88开户,| 大发888免费送| 新加坡百家乐赌法| 沙龙百家乐破解| 女优百家乐官网的玩法技巧和规则| 大发888 漏洞| 新太阳城娱乐| 金木棉百家乐的玩法技巧和规则|