LCD1602液晶顯示DS1302實時時鐘Proteus仿真

2021-01-11 電子產品世界
Proteus仿真圖:

本文引用地址:http://www.eepw.com.cn/article/201611/316089.htm

仿真程序:

#include

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

//*******LCD*******

sbitLCDRS=P2^0; //LCD數據/命令選擇端

sbitLCDRW=P2^1;

sbitLCDEN=P2^2; //LCD使能新號端

//******DS1302******

sbitIO=P1^0; //1302數據線

sbitSCLK=P1^1; //1302時鐘線

sbitRST=P1^2; //復位

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讀取的當前日期時間

//=======延時=======

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

//********向1302寫數據*********

voidwrite_ds1302(uchardat)

{

uchari;

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

{

IO=dat&0x01; //保持最後一位為1,讀狀態

SCLK=1;

delay(1);

SCLK=0;

dat>>=1;

}

}

//*********從1302讀數據*********

ucharread_ds1302()

{

uchari,b=0x00;

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

{

b|=_crol_((uchar)IO,i);

SCLK=1;

delay(1);

SCLK=0;

}

returnb/16*10+b%16; //與BCD碼轉換

}

//*********從指定位置讀數據********

ucharread_data(ucharaddr)

{

uchardat;

RST=0;

SCLK=0;

RST=1;

write_ds1302(addr);

dat=read_ds1302();

SCLK=1;

RST=0;

returndat;

}

//*********讀取當前日期時間*********

voidread_date_time()

{

uchari,addr=0x81;

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

{

date_time[i]=read_data(addr);

addr+=2;

}

}

//LCD寫指令

voidlcd_write_com(ucharcom)

{

LCDRS=0; //RS為0時,寫指令,RS為1時,寫數據

P0=com;

delay(5);

LCDEN=1;

delay(5);

LCDEN=0;

}

//LCD寫數據

voidlcd_write_data(uchardat)

{

LCDRS=1;

P0=dat;

delay(5);

LCDEN=1;

delay(5);

LCDEN=0;

}

//--LCD初始化--

voidlcd_init()

{

LCDEN=0;

lcd_write_com(0x38); //LCD顯示模式設置

lcd_write_com(0x0c); //LCD顯示開/關及光標設置

lcd_write_com(0x06); //當寫一個字符後地址指針加1,且光標加1

lcd_write_com(0x01); //顯示清屏

}

//----設置液晶顯示位置-

voidset_lcd_pos(ucharp)

{

lcd_write_com(p|0x80);

}

//----液晶顯示程序

voidlcd_print(ucharp,uchar*s)

{

set_lcd_pos(p);

for(num=0;num<16;num++)

{

lcd_write_data(s[num]);

delay(10);

}

}

//日期時間轉換-

voidformat_datetime(uchard,uchar*p)

{

p[0]=d/10+0;

p[1]=d%10+0;

}

//----主程序

voidmain()

{

LCDRW=0;

lcd_init();

while(1)

{

read_date_time();

format_datetime(date_time[6],Date+8); //年月日

format_datetime(date_time[4],Date+11);

format_datetime(date_time[3],Date+14);

// strcpy(Date+13,week[date_time[5]]);

format_datetime(date_time[2],Time+7); //時間轉換

format_datetime(date_time[1],Time+10);

format_datetime(date_time[0],Time+13);

lcd_print(0x00,Date);

lcd_print(0x40,Time);

}

}

相關焦點

  • lcd1602隻亮不顯示_lcd1602簡單顯示程序
    lcd1602隻亮不顯示_lcd1602簡單顯示程序 網絡整理 發表於 2020-04-23 09:13:10   lcd1602隻亮不顯示
  • 如何實現DS1302實時時鐘表顯示在1602LCD液晶
    在1602LCD液晶裡顯示實時時間: 首先在DS1302實時時鐘晶片裡寫入一個時間, 然後在這個晶片裡讀取這個時間,並顯示在液晶裡。現在終於實現了...
  • DS1302時鐘模塊的使用
    ds1302.h庫文件已經上傳,有需要的自行下載。注意ds1302.h要與zhy.h配合使用。接下來我詳細講解一下,ds1302.h庫文件的使用方法。電子萬年曆設計採用的是LCD1602作為顯示模塊,所以在運行程序時,先要對LCD1602和DS1302進行初始化設置,同時要將顯示界面設置好。
  • 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
  • 用ds1302製作一個精密的電子時鐘
    題目:用ds1302製作一個精密的電子時鐘感想:我看視頻的時候講的是DS12CR887這塊晶片,兩塊畢竟是不一樣的,所以,我只是看了他講怎樣看時序,之後的就沒再看了。我就拿著自己下載列印的DS1302數據手冊,研習,研習,再研習。還查了書上的,網上的,源程序。
  • ATMEGA16四線驅動LCD顯示時間-DS1302
    #include 本文引用地址:http://www.eepw.com.cn/article/201611/320229.htm#define uchar unsigned char#define uint unsigned int//定義LCD1602的埠應用#define
  • 學習電路仿真:基於proteus電路仿真軟體的步進電機仿真
    本文中,將基於proteus電路仿真軟體的步進電機仿真,一起來了解下吧。步進電機廣泛應用在生產實踐的各個領域。它最大的應用是在數控工具機的製造中,因為步進電機不需要A/D轉換,能夠直接將數字脈衝信號轉化成為角位移,所以被認為是理想的數控工具機的執行元件。
  • Arduino入門筆記:利用1602、1302實現時鐘和定時器
    限時乾貨下載:關注我們「單片機」,回復「教程」獲取單片機電子書,回復「仿真」獲取Proteus仿真資料。
  • Arduino 課時七:控制LCD1602液晶顯示屏
    一.硬體準備:LCD1602液晶顯示屏1塊,LCD通用I2C轉接板,杜邦線若干LCD1602液晶顯示屏是經典的工業字符型液晶屏
  • 關於lcd1602使用中的一些問題
    lcd1602是在做畢業設計中使用最多的一款顯示憑,主要優勢就是便宜。而且經典。在買51單片機開發板時,一般都會給配發一塊!
  • lcd1602接線圖_lcd1602與單片機連接圖
    lcd1602液晶屏在很懂工業產品上都有應用,LCD1602能夠能夠同時顯示32個字符,價格便宜,編程簡單而且穩定可靠。lcd1602液晶屏是一種圖形點陣顯示器,顯示原理簡單易懂,都是液晶屏內部的液晶材料變化而顯示不同的字符,因為液晶是具有流動特性的物質,所以只需外加很微小的力量即可使液晶分子運動,以最常見普遍的向列型液晶為例,液晶分子可輕易的借著電場作用使得液晶分子轉向,由於液晶的光軸與其分子軸相當一致,故可藉此產生光學效果,而當加於液晶的電場移除消失時,液晶將借著其本身的彈性及黏性,液晶分子將十分迅速的回撤消來未加電場前的狀態
  • 全方位解析LCD1602特性及單片機顯示應用
    1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。
  • PS2鍵盤接口設計之二(實現了從鍵盤輸入並顯示在LCD液晶屏上)
    > 在熟悉了PS2鍵盤接口設計之後,我想大家都希望將輸入的數據在顯示屏中實時的顯示出來或者看看我們到底輸入的是什麼樣的東西,基於這個原因,結合Spartan-3E開發板上的資源,我利用了液晶1602將輸入的字符顯示出來。
  • 青海省lcd顯示模塊選哪家_顯之研流行時尚
    LCD液晶顯示較大的優勢可以顯示更多的文字還有圖像,而且文字可以顯示多行。除了這一點外,顯示設備是選擇了液晶顯示模塊,還有一些優勢主要表現在如下幾個方面:專業、誠信、品質、專注、服務。字符型LCM專用於顯示字母、數字及符號,其電極圖形是由若干個5x5x11等點陣組成的字符塊集。玻璃LCD技術的最新發展是透過將兩片LCD彼此堆棧,形成雙單元LCD,以提高LCD對比度。
  • Arduino 通過 I2C 驅動 LCD1602 液晶屏
    LCD 1602 液晶屏模塊的使用,之前在「Arduino用超聲波模塊+LCD1602測距並顯示」一文中有詳細介紹。
  • LCD1602液晶屏幕顯示介紹
    下面是protues仿真電路,屏幕中第二行能看清吧,後面再說怎麼顯示的,第一行是我自定義的漢字「確認」和「取消」的「取」(左右寫反了),發現1602顯示漢字也就自己弄著玩玩,派不上大場合,而且如果一個漢字佔兩個字符的話(就像下圖顯示的),最多只能自定義4個漢字。
  • NodeMCU ESP8266連接DS3231實時時鐘(RTC)的方法
    我們將使用DS3231實時時鐘(RTC)模塊跟蹤正確的時間和日期,在OLED顯示屏上進行顯示,並使用ESP8266作為微控制器。也可以使用DS1307代替DS3231。DS3231 RTC具有內置的鬧鐘功能以及溫度傳感器,其解析度為0.25,精度為±3°C,這使該項目更加容易實現。
  • 51單片機+帶字庫液晶12864+DS1302數字時鐘C源程序
    本文引用地址:http://www.eepw.com.cn/article/201612/325258.htm適用於開發板:51單片機(AT89S52)+帶字庫液晶12864(ST7920)+DS1302(實時時鐘)實現功能:簡單,數字時鐘
  • SPI時鐘晶片DS1302的應用
    DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為