欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于DS12C887和LCD1602的單片機數字時鐘仿真和源程序
[打印本頁]
作者:
51hei學習技術中
時間:
2016-10-23 19:43
標題:
基于DS12C887和LCD1602的單片機數字時鐘仿真和源程序
分享一個基于DS12C887和LCD1602顯示的數字時鐘,下面是仿真原理圖:
0.png
(27.17 KB, 下載次數: 67)
下載附件
2016-10-23 19:40 上傳
單片機源程序如下:
#include <AT89X52.h>
#define DSbus P0
#define LCDbus P1
//定義DS12C887和LCD的控制線
sbit DS_CS = P2^7; //引腳13,片選信號輸入,低電平有效。
sbit DS_AS = P2^4; //引腳14,地址選通輸入。
sbit DS_RW = P2^5; //引腳15,讀/寫輸入。
sbit DS_DS = P2^6; //引腳17,數據選通或讀輸入。
sbit LCD_RS=P2^0;
sbit LCD_EN=P2^2;
//時間變量定義
unsigned char Counter;
unsigned char Hour,Min,Sec,Year,Month,Date,Week;
/*DS12CR887驅動程序---------------------------------------------------------------------------*/
//往DS12CR887寫數據函數
void DS12887write(unsigned char add,unsigned char Date)
{
DS_CS=0;
DS_DS=1;
DS_RW=1;
DS_AS=1;
DSbus=add;
DS_AS=0;
DS_RW=0;
DSbus=Date;
DS_RW=1;
DS_AS=1;
DS_CS=1;
}
//讀取DS12CR887數據函數
unsigned char DS12887read(unsigned char add)
{
unsigned char z;
DS_CS=0;
DS_RW=1;
DS_DS=1;
DS_AS=1;
DSbus=add;
DS_AS=0;
DS_DS=0;
DSbus=0xff;
z=DSbus;
DS_DS=1;
DS_AS=1;
DS_CS=1;
return z;
}
//DS12CR887初始化函數
void DS12887LCDinit()
{
DS_AS=0; DS_DS=0; DS_RW=0;
DS12887write(0x0a,0x20);//DS12CR887寄存器A功能設置,開啟時鐘振蕩器
DS12887write(0x0b,0x06);//寄存器B功能設置,不開啟鬧鐘中斷使能,數據模式為二進制,24小時模式。
//DS12887write(4,0x8);DS12887write(2,0x00);DS12887write(0,0x00); //給DS12CR887的時分秒賦值,開機后顯示8:00:00
}
void Delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void LCDwritecom(unsigned char com)
{
LCD_RS=0;
LCDbus=com;
Delay(5);
LCD_EN=1;
Delay(5);
LCD_EN=0;
}
void LCDwritecomdata(unsigned char dat)
{
LCD_RS=1;
LCDbus=dat;
Delay(5);
LCD_EN=1;
Delay(5);
LCD_EN=0;
}
void LCDinit()
{
LCD_EN=0;
LCDwritecom(0x38);
LCDwritecom(0x0c);
LCDwritecom(0x06);
LCDwritecom(0x01);
LCDwritecom(0x80);
}
void Timedisplay(void)
{
//LCDwritecom(1);
LCDwritecom(0x80);
//往液晶屏填寫"小時"數據-----------------------------------------------
Hour=DS12887read(4); //讀取DS12CR887的小時數據
if((Hour/10)==0)LCDwritecomdata(0);
else LCDwritecomdata(Hour/10+0x30);//小時十位
LCDwritecomdata(Hour%10+0x30); //小時個位
LCDwritecomdata(':'); //時鐘分隔符":"
//往液晶屏填寫"分鐘"數據-----------------------------------------------
Min=DS12887read(2); //讀取DS12CR887的分數據
LCDwritecomdata(Min/10+0x30);
LCDwritecomdata(Min%10+0x30);
LCDwritecomdata(':'); //時鐘分隔符":"
//往液晶屏填寫"秒"數據-------------------------------------------------
Sec=DS12887read(0); //讀取DS12CR887的秒數據
LCDwritecomdata(Sec/10+0x30);
LCDwritecomdata(Sec%10+0x30);
Delay(100);
}
void Datedisplay(void)
{
//LCDwritecom(1);
LCDwritecom(0xc0);
//往液晶屏填寫"年"數據-----------------------------------------------
LCDwritecomdata('2');
LCDwritecomdata('0');
Year=DS12887read(9); //讀取DS12CR887的年數據
LCDwritecomdata(Year/10+0x30);//年十位
LCDwritecomdata(Year%10+0x30); //年個位
LCDwritecomdata('/'); //時鐘分隔符":"
//往液晶屏填寫"月"數據-----------------------------------------------
Month=DS12887read(8); //讀取DS12CR887的月數據
LCDwritecomdata(Month/10+0x30);
LCDwritecomdata(Month%10+0x30);
LCDwritecomdata('/'); //時鐘分隔符":"
//往液晶屏填寫"日"數據-------------------------------------------------
Date=DS12887read(7); //讀取DS12CR887的日數據
LCDwritecomdata(Date/10+0x30);
LCDwritecomdata(Date%10+0x30);
//往液晶屏填寫"星期"數據-------------------------------------------------
Week=DS12887read(6); //讀取DS12CR887的日數據
LCDwritecomdata(0);
LCDwritecomdata(Week-1+0x30);
Delay(100);
}
void main()
{
// unsigned char i;
LCDinit();
DS12887LCDinit();
DS12887write(0x0a,0x00); //開始調時,DS12CR887關閉時鐘振蕩器
DS12887write(0,55); //秒
DS12887write(2,59);
DS12887write(4,23);
DS12887write(6,5); //星期
DS12887write(7,22); //日
DS12887write(8,9); //
DS12887write(9,12); //
//display_Date();
while(1)
{
Timedisplay();
Datedisplay();
Delay(100);
}
}
復制代碼
0.png
(74.09 KB, 下載次數: 55)
下載附件
2016-10-23 19:41 上傳
仿真工程文件和完整源碼下載:
數字時鐘.rar
(53.08 KB, 下載次數: 210)
2016-10-23 19:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
滴~電子小白
時間:
2016-10-24 08:59
感謝管理員分享
作者:
11111r
時間:
2017-6-26 19:40
能不能發我郵箱
1364368033@qq.com
作者:
蝴蝶里
時間:
2019-1-23 16:24
不錯 學習
作者:
huaaaa
時間:
2019-5-3 17:39
怎么調時間呢?
作者:
chenhongran
時間:
2020-4-16 13:51
感謝管理員分享111
作者:
叫什么好呢1號
時間:
2020-4-16 18:14
有沒有設計好的小實物出售的
作者:
lllllljjjjjkkkk
時間:
2022-10-25 11:17
有沒有pcb
作者:
wifingtta
時間:
2023-3-21 19:58
用過,可以運行,可以通過程序改變時間,但無法跟隨系統時間來走時。還沒研究什么 問題
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1