久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
protues仿真DS1302+LCD1602顯示實驗
[打印本頁]
作者:
回來哥啦
時間:
2019-10-15 11:30
標題:
protues仿真DS1302+LCD1602顯示實驗
萌新小白,第一次發(fā)帖,望見諒!這是我以前做的一個實驗,用protues仿真,DS1302讀取時間,LCD1602顯示出讀取的時間。
附件帶源文件和仿真工程。
實驗效果圖:
1571110130(1).jpg
(36.23 KB, 下載次數(shù): 38)
下載附件
LCD顯示DS1302的時間
2019-10-15 11:27 上傳
單片機源程序如下:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define WRITE_SECOND 0x80
#define WRITE_MINUTE 0x82
#define WRITE_HOUR 0x84
#define READ_SECOND 0x81
#define READ_MINUTE 0x83
#define READ_HOUR 0x85
#define WRITE_PROTECT 0x8E
sbit IO=P1^0;
sbit SCLK=P1^1;
sbit RST=P1^2;
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_E=P2^2;
uchar DATE[]={"DATE:2000-00-00"};
uchar TIME[]={"TIME:00:00:00 "};
uchar date_time[7];
void delay_ms(uint x)
{
uint i,j;
for(i=x;i>0;i--)
{
for(j=112;j>0;j--);
}
}
void write_ds1302(uchar date)//寫入地址或者數(shù)據(jù)(控制字)
{
uint i;
SCLK=0;//開始準備傳輸
for(i=0;i<8;i++)
{
IO=date&0x01;//讀取每一位的值
SCLK=1;
delay_ms(2);
SCLK=0;
date>>=1;//右移一位
}
}
uchar read_ds1302()//讀取數(shù)據(jù)
{
uint i;
uchar date=0x00;
for(i=0;i<8;i++)
{
date>>=1;
if(IO==1)//如果讀取出來的值是1,則將數(shù)據(jù)定為1,不是就定為0
date|=0x80;
SCLK=1;
delay_ms(2);
SCLK=0;
}
return date/16*10+date%16;//16進制轉(zhuǎn)換成10進制
}
void write_time(uchar addr,uchar date)//寫入你要修改的時間值
{
RST=0;//初始化CE線,復(fù)位
SCLK=0;//時鐘總線清零
RST=1;//CE置1,傳輸開始
write_ds1302(addr);//傳入你要寫入的時間(時間或者日歷地址)
write_ds1302(date);//寫入你要修改的時間值
SCLK=1;//時間線拉高
RST=0;//寫入結(jié)束
}
uchar read_time(uchar addr)//讀取你需要的時間值
{
uchar dat;
RST=0;//初始化CE線,復(fù)位
SCLK=0;//時鐘總線清零
RST=1;//CE置1,傳輸開始
write_ds1302(addr);//傳入你要讀取的時間地址
dat=read_ds1302();//讀取時間值
SCLK=1;//時間線拉高
RST=0;//讀取結(jié)束
return dat;
}
void LCD_write_commd(uchar com)//寫入命令,如顯示地址或者是寫入CGRAM,此次代碼沒有這個功能
{
LCD_RS=0;//寫命令
LCD_RW=0;
P0=com;
delay_ms(2);
LCD_E=1;
delay_ms(2);
LCD_E=0;
}
void LCD_write_date(uchar dat)//寫入數(shù)據(jù),這次是寫入字符碼,顯示在液晶屏上
{
LCD_RS=1;//寫數(shù)據(jù)
LCD_RW=0;
P0=dat;
delay_ms(2);
LCD_E=1;
delay_ms(2);
LCD_E=0;
}
void init_LCD1602()//初始化
{
LCD_write_commd(0x38);
delay_ms(2);
LCD_write_commd(0x0c);
delay_ms(2);
LCD_write_commd(0x06);
delay_ms(2);
LCD_write_commd(0x01);
delay_ms(2);
}
void set_lcd_pos(uchar p)//設(shè)置顯示位置
{
LCD_write_commd(p|0x80);
}
void LCD_print(uchar p,uchar *s)//顯示
{
uint i;
set_lcd_pos(p);
for(i=0;i<16;i++)
{
LCD_write_date(s[i]);
delay_ms(10);
}
}
void Get_time()//讀取時間
{
uchar i,addr=0x81;
for(i=0;i<7;i++)
{
date_time[i]=read_time(addr);
addr+=2;
}
}
void Format_Datetime(uchar d,uchar *a)//將日期和時間值轉(zhuǎn)換成數(shù)字字符
{
a[0]=d/10+'0';
a[1]=d%10+'0';
}
void init_DS1302()//DS1302初始化
{
write_time(WRITE_PROTECT,0x00);
write_time(WRITE_SECOND,0x56);
write_time(WRITE_MINUTE,0x34);
write_time(WRITE_HOUR,0x12);
write_time(WRITE_PROTECT,0x80);
}
void main()
{
//init_DS1302();
init_LCD1602();//初始化液晶屏
while(1)
{
Get_time();
Format_Datetime(date_time[6],DATE+7);
Format_Datetime(date_time[4],DATE+10);
Format_Datetime(date_time[3],DATE+13);
Format_Datetime(date_time[2],TIME+5);
Format_Datetime(date_time[1],TIME+8);
Format_Datetime(date_time[0],TIME+11);
LCD_print(0x00,DATE);
LCD_print(0x40,TIME);
}
}
復(fù)制代碼
所有資料51hei提供下載:
DS1302 LCD1602顯示.rar
(64.47 KB, 下載次數(shù): 92)
2019-10-15 11:29 上傳
點擊文件名下載附件
源文件和仿真工程
下載積分: 黑幣 -5
作者:
8imi8
時間:
2019-10-20 11:58
感謝分享
作者:
露西亞想沙
時間:
2019-12-21 19:10
十分感謝
作者:
qq1306575750
時間:
2019-12-24 17:04
感謝大佬分享,最近實訓需要參考。
作者:
swustlx86
時間:
2020-5-12 01:42
感謝分享
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久久久久久香蕉
|
就操在线
|
黄色三级毛片
|
中文字幕日韩欧美一区二区三区
|
毛片在线看看
|
91欧美
|
久久精品欧美一区二区三区不卡
|
亚洲精品久久久久久一区二区
|
日韩av啪啪网站大全免费观看
|
欧美成人精品欧美一级
|
国内自拍偷拍一区
|
日韩不卡三区
|
精品欧美一区二区三区久久久
|
一区二区三区四区不卡
|
秋霞电影一区二区三区
|
91视频官网
|
亚洲欧美日本国产
|
粉嫩av
|
啪啪毛片
|
亚洲一区二区国产
|
国产视频久久久
|
日日日操
|
亚州综合在线
|
一区免费视频
|
欧美八区
|
久久久五月天
|
亚洲香蕉在线视频
|
青青草华人在线视频
|
亚洲精品一区国产精品
|
亚洲九九色
|
欧美一级毛片在线播放
|
欧美一区二区三区,视频
|
羞羞视频网站
|
一级a性色生活片久久毛片波多野
|
日韩三级免费观看
|
国产精品久久久久久久久久了
|
久久一级免费视频
|
懂色av一区二区三区在线播放
|
免费欧美
|
久久黄色精品视频
|
中文字幕 欧美 日韩
|