如何實現DS1302實時時鐘表顯示在1602LCD液晶

2021-01-11 電子產品世界

1602LCD液晶裡顯示實時時間: 首先在DS1302實時時鐘晶片裡寫入一個時間, 然後在這個晶片裡讀取這個時間,並顯示在液晶裡。現在終於實現了...

#include

#include

sbit SCLK=P3^6;

sbit SDA=P3^4;

sbit RST = P3^5;

//unsigned char code Write_Address[]={0x80,0x82,0x84};

unsigned char code Read_Address[]={0x85,0x83,0x81};

unsigned char Time_Table[3];

void Write_Byte(unsigned char Data)//寫一個字節: 地址或數據

{

unsigned char i;

for(i=0; i<8; i++)

{

SCLK=0;

SDA=Data&0x01;

Data=Data>>1;

SCLK=1;

}

}

void Write_RTC(unsigned char Address, unsigned char Data)

{

RST=0;

_nop_();

SCLK=0;

_nop_();

RST=1;

Write_Byte(Address);

Write_Byte(Data);

RST=0;

}

unsigned char Read_Byte() //讀一個字節: 數據

{

unsigned char Data=0;

unsigned char i;

for(i=0; i<8; i++)

{

if(SDA==1)

{

Data=Data|0x80;

}

SCLK=0;

Data=Data>>1;

_nop_();

SCLK=1;

}

return Data;

}

unsigned char Read_RTC(unsigned char Address) //

{

unsigned char Data=0;

unsigned char Data1,Data2;

RST=0;

_nop_();

SCLK=0;

_nop_();

RST=1;

Write_Byte(Address);

Data=Read_Byte();

RST=0;

Data1=Data/16;

Data2=Data%16;

Data=Data2+Data1*10;

return Data;

}

void Init_RTC() //初始化實時 時鐘表RTC

{

Write_RTC(0x8e, 0x00);

Write_RTC(0x80, 0x56);

Write_RTC(0x82, 0x48);

Write_RTC(0x84, 0x12);

Write_RTC(0x8e, 0x80)

}

void DisplayTime() //把時間顯示1602液晶

{

unsigned char i;

InitLCD();

Write_Command(0x80+0x03);

for(i=0; i<3; i++)

{

Time_Table[i]=Read_RTC(Read_Address[i]);

Write_Data(0x30+Time_Table[i]/10);

Write_Data(0x30+Time_Table[i]%10);

if(i!=2)

Write_Data(:);

}

}

void main()

{

Init_RTC();

DisplayTime();

while(1);

}

其實,寫這個程序,也是比較簡單的, 比在24C02 晶片裡讀寫容易了。因為在24C02讀寫裡,是使用I2C總線傳輸數據的,關鍵要把握好時序讀寫,至今仍然未解決這個24C02晶片的讀寫,也不知道是,晶片出問題,還是自己程序的時序出問題。


相關焦點

  • LCD1602液晶顯示DS1302實時時鐘Proteus仿真
    uintnum=0;//uchar week[]={"SUN","***","MON","TUS","WEN","THU","FRI","SAT"};ucharDate[]={"Date:2000-00-00"};ucharTime[]={"Time:*00:00-00*"};uchardate_time[7]; //從ds1302
  • lcd1602隻亮不顯示_lcd1602簡單顯示程序
    lcd1602隻亮不顯示_lcd1602簡單顯示程序 網絡整理 發表於 2020-04-23 09:13:10   lcd1602隻亮不顯示
  • DS1302時鐘模塊的使用
    ds1302.h庫文件已經上傳,有需要的自行下載。注意ds1302.h要與zhy.h配合使用。接下來我詳細講解一下,ds1302.h庫文件的使用方法。由於之前已經寫過一些關於DS1302的資料,所以本章的重點放在如何使用DS1302上面。電子萬年曆設計採用的是LCD1602作為顯示模塊,所以在運行程序時,先要對LCD1602和DS1302進行初始化設置,同時要將顯示界面設置好。
  • lcd1602接線圖_lcd1602與單片機連接圖
    lcd1602液晶屏在很懂工業產品上都有應用,LCD1602能夠能夠同時顯示32個字符,價格便宜,編程簡單而且穩定可靠。lcd1602液晶屏是一種圖形點陣顯示器,顯示原理簡單易懂,都是液晶屏內部的液晶材料變化而顯示不同的字符,因為液晶是具有流動特性的物質,所以只需外加很微小的力量即可使液晶分子運動,以最常見普遍的向列型液晶為例,液晶分子可輕易的借著電場作用使得液晶分子轉向,由於液晶的光軸與其分子軸相當一致,故可藉此產生光學效果,而當加於液晶的電場移除消失時,液晶將借著其本身的彈性及黏性,液晶分子將十分迅速的回撤消來未加電場前的狀態
  • Arduino 課時七:控制LCD1602液晶顯示屏
    一.硬體準備:LCD1602液晶顯示屏1塊,LCD通用I2C轉接板,杜邦線若干LCD1602液晶顯示屏是經典的工業字符型液晶屏
  • lcd1602中文資料分享:lcd1602接線圖_lcd1602與單片機連接圖
    lcd1602液晶屏是一種圖形點陣顯示器,顯示原理簡單易懂,都是液晶屏內部的液晶材料變化而顯示不同的字符,因為液晶是具有流動特性的物質,所以只需外加很微小的力量即可使液晶分子運動,以最常見普遍的向列型液晶為例,液晶分子可輕易的借著電場作用使得液晶分子轉向,由於液晶的光軸與其分子軸相當一致,故可藉此產生光學效果,而當加於液晶的電場移除消失時,液晶將借著其本身的彈性及黏性,液晶分子將十分迅速的回撤消來未加電場前的狀態
  • ds1302帶鬧鐘功能的單片機控制的時鐘程序
    埠自己修改一下 用的1602液晶顯示#include#include#define uchar unsigned char#define uint unsigned intsbit wela=P2^7;sbit nz=P2^3;//鬧鐘sbit lcdrs=P3^5;sbit lcdwr=P3^6;sbit lcden
  • ATMEGA16四線驅動LCD顯示時間-DS1302
    #include 本文引用地址:http://www.eepw.com.cn/article/201611/320229.htm#define uchar unsigned char#define uint unsigned int//定義LCD1602的埠應用#define
  • 全方位解析LCD1602特性及單片機顯示應用
    1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。
  • PS2鍵盤接口設計之二(實現了從鍵盤輸入並顯示在LCD液晶屏上)
    > 在熟悉了PS2鍵盤接口設計之後,我想大家都希望將輸入的數據在顯示屏中實時的顯示出來或者看看我們到底輸入的是什麼樣的東西,基於這個原因,結合Spartan-3E開發板上的資源,我利用了液晶1602將輸入的字符顯示出來。
  • Arduino基礎入門篇32—LCD1602驅動庫的使用
    LCD1602顯示本篇介紹液晶驅動庫「LiquidCrystal」,通過庫來驅動LCD1602刷新顯示秒數。1.
  • 1602LCD液晶數字電子鐘 時鐘表 C語言
    1602LCD液晶數字電子鐘 基本設計思路:1. 1602LCD顯示: 第一行: 年, 月, 日 2012-01-22 第二行: 時, 分, 秒 23:59:002. Key4 選擇調整時間: 秒, 分, 時, 日, 月, 年 Key5 調時: 遞增 同時啟動蜂鳴器 Key6 調時: 遞減 同時啟動蜂鳴器花了2天半的時間,終於按照自己的設計思路來實現了 時鐘表, 在這兩天多的時間, 感覺最難的就是,當發生錯誤的時候,不知道如何進行調試,差錯,因為有些錯誤無法進行調試
  • 用ds1302製作一個精密的電子時鐘
    =0;lcdrw=0;lcdrs=0;delay(1);lcde=1;delay(1);P0=com;delay(1);lcde=0;}voidwrite_data(uchar dat)//寫數據子函數{lcde=0;lcdrw=0;lcdrs=1;delay(1);lcde=1;delay(1);P0=
  • 51單片機玩轉物聯網基礎篇06-LCD1602液晶顯示器
    前言本節我們開始學習LCD1602,LCD1602是字符型液晶顯示屏,在實際項目中應用非常廣泛,學完本節就可以逐步開發一些好玩的應用了。一、基礎知識1.LCD1602簡介LCD1602是字符型液晶顯示模塊,專門用於顯示字母、數字、符號等點陣式LCD,顧名思義,LCD1602一共可以顯示兩行,每一行能夠顯示16個字符數據,採用5V供電,具有低功耗、長壽麵、搞可靠性等特性,實物圖如下:
  • 關於lcd1602使用中的一些問題
    lcd1602是在做畢業設計中使用最多的一款顯示憑,主要優勢就是便宜。而且經典。在買51單片機開發板時,一般都會給配發一塊!
  • LCD 1602 穩定顯示
    1LCD 1602簡介筆記整理LCD1602可顯示兩行,每行16個字符,不能顯示漢字。16腳的LCD 1602帶背光,14腳的不帶背光。輸出是使LCD顯示的內容。在編寫程序時,可以先設置LCD顯示內容的格式(初始化LCD),然後再對LCD進行讀寫操作。這些過程由LCD跟單片機相連的I/O埠來完成。3LCD 1602的操作時序查看LCD 1602手冊,以LCD寫操作時序為例記錄在對LCD操作的過程中需要注意到的延遲語句的編寫,否則可能導致對LCD的操作失敗。
  • 單片機驅動DS1302時間DS18B20溫度12864液晶顯示完整程序設計
    程序說明:這是一個用51單片機驅動DS1302時間模塊+DS18B20溫度傳感器模塊+12864液晶顯示完整程序設計實例,有四個鍵盤KEY0 到KEY3,key0是修改時間的 首先是秒到分到時到年到月到日到星期 key1是加1 key2是減一 在修改時間狀態再按一下key3的時候就出去並修改時間日期,在平時狀態按著key3再按著key2 就會打開lcd 的燈 單單是只按key3那就是把燈關了
  • 51單片機對LCD1602液晶的驅動設計
    51單片機——LCD1602 1、1602液晶讀寫時序 (1)、讀狀態 RS=L,R/W=H,E=H。4)、寫數據 RS=H,R/W=L,D0~D7=數據,E=高脈衝 2、液晶顯示驅動文件
  • LCD1602液晶屏幕顯示介紹
    下面是protues仿真電路,屏幕中第二行能看清吧,後面再說怎麼顯示的,第一行是我自定義的漢字「確認」和「取消」的「取」(左右寫反了),發現1602顯示漢字也就自己弄著玩玩,派不上大場合,而且如果一個漢字佔兩個字符的話(就像下圖顯示的),最多只能自定義4個漢字。
  • 一個51單片機實現數字時鐘(1602顯示)
    用單片機實現數字時鐘,關於時間顯示,是用的1602液晶,C51單片機,然後再加一個定時器,每到一秒就動態的更新一下液晶的時間顯示