LCD1602液晶显示DS1302实时时钟Proteus仿真_第1页
LCD1602液晶显示DS1302实时时钟Proteus仿真_第2页
LCD1602液晶显示DS1302实时时钟Proteus仿真_第3页
LCD1602液晶显示DS1302实时时钟Proteus仿真_第4页
LCD1602液晶显示DS1302实时时钟Proteus仿真_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Proteus仿真图: LCD! Lh/blELI/OSCLKRST:1VCC2VCC1JXTAL1PO.OfADDP0.KAD1P0.2fAD2XTAL2P0.3fAD3PO.4fAC4P0.5fAD5po.erADBRSTP0.7iAD7P2 0/A8P2.1/A9P2.2/A10PSENP2.3/AT1ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1 .DP3.0JRXDPI .1P3.1 iTXDPI .2P3.2JINT0PI .3P3.3JINT1P1.4P3.4.-TDPI .5P3.5JTIPI .BP3.6JWRP1 7F37.iRD仿真程序:#

2、include#include#include#define uint unsigned int#define uchar unsigned char/*LCD*sbit LCDRS=P2A0;/LCD数据/命令选择端sbit LCDRW=P2A1;sbit LCDEN=P2A2;/LCD使能新号端/*DS1302*sbit IO=P1A0;/1302数据线sbit SCLK=P1A1;sbit RST=P1A2;/1302时钟线复位uint num=0;/uchar *week=SUN,*,MON,TUS,WEN,THU,FRI,SAT;uchar Date=Date: 2000-00-00

3、 ;uchar Time=Time: *00:00-00* ;uchar date_time7;/从ds1302读取的当前日期时间/=延时= void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);*向 1302 写数据*void write_ds1302(uchar dat)uchar i;for(i=0;i= 1;/*从 1302 读数据*uchar read_ds1302()uchar i,b=0 x00;for(i=0;i8;i+)b 1= _crol_(uchar)IO,i);SCLK=1;delay(1);SCLK=0;r

4、eturn b/16*10+b%16;*从指定位置读数据*uchar read_data(uchar addr)uchar dat;RST=0;SCLK=0;RST=1;write_ds1302(addr);dat=read_ds1302();SCLK=1;RST=0;return dat;/*读取当前日期时间*void read_date_time()uchar i,addr=0 x81;for(i=0;i7;i+)date_timei=read_data(addr);addr+=2;/与BCD码转换LCD写指令void lcd_write_com(uchar com)LCDRS=0;/RS

5、为0时,写指令,RS为1时,P0=com;delay(5);写数据LCDEN=1;delay(5);LCDEN=0;/LCD写数据void lcd_write_data(uchar dat) LCDRS=1; P0=dat; delay(5); LCDEN=1; delay(5); LCDEN=0; /LCD初始化/LCD显示模式设置/LCD显示开/关及光标设置当写一个字符后地址指针加1,且光标显示清屏void lcd_init() LCDEN=0; lcd_write_com(0 x38); lcd_write_com(0 x0c); lcd_write_com(0 x06);加1 lcd_

6、write_com(0 x01);/设置液晶显示位置void set_lcd_pos(uchar p)lcd_write_com(p | 0 x80);/液晶显示程序void lcd_print(uchar p,uchar *s) set_lcd_pos(p);for(num=0;num16;num+) lcd_write_data(snum);delay(10);/日期时间转换void format_datetime(uchar d,uchar *p)p0=d/10+0;p1=d%10+0;/主程序void main()LCDRW=0;lcd_init();while(1)read_date_time();format_datetime(date_time6,Date+8);/年月日format_datetime(date_time4,Date+11);format_datetime(date_time3,Date+14);/ strcpy(Date+13,weekdate_time5);format_datetime(date_time2,Time+7);时间转换format_date

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论