




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 DS1302实时时钟 时钟芯片DS1302的工作原理:DS1302在每次进行读、写程序前都必须初始化,先把 SCLK端置“ 0”接着把RST 端置“ 1”最后才给予SCLK脉冲;读/写时序如下图所示。为 DS1302的控制字,此控制 字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读 /写时RAM=1,对时间进行读/写时,CK=0 o位1至位5指操作单元的地址。位0是读/写 操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最 低位开始输入/输出的。表6为DS1302的日历、时间寄存器内容:“CH是时钟暂停标志位, 当该位为1时,
2、时钟振荡器停止,DS1302处于低功耗状态;当该位为 0时,时钟开始运 行。“WP是写保护位,在任何的对时钟和 RAM的写操作之前,WP必须为0。当“WP为 1时,写保护位防止对任一寄存器的写操作。DS1302的控制字节DS1302的控制字如表-1所示。控制字节的高有效位(位 7)必须是逻辑1,如果它为 0,贝U不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取 RAM数据;位5至位1指示操作单元的地址;最低有效位(位 0)如为0表示要进行写操 作,为1表示进行读操作,控制字节总是从最低位开始输出(3)数据输入输出(I/O)在控制指令字输入后的下一个 SCLK时钟的
3、上升沿时,数据被写入 DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个 SCLK脉冲的下降沿读 出DS1302的数据,读出数据时从低位0位到高位7。如下图1所示I/OA0A1A2A3A4DOD1D2单字节演RESTI/O01 D2图1 DS1302读/写时序图单字节写DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器和日历、时钟相关,存放的数据位为BCD 码形式,其日历、时间寄存器及其控制字见表-2。表-2 DS1302的日历、时间寄存器写寄 存器读寄 存器Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit080H81HCH10秒秒82H
4、83H 10分分84H85H12/24010时时AM /PM86H87H0r 010日日88H89H00010月月8AH8BH00000星期8CH8DH :10年年8EH8FHWP0 00000 0外,DS1302还有年份寄存器、控制寄存此器、充电寄存器、时钟突发寄存器及和 RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302和RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个
5、字节,命令控制字为FEH(写)、FFH(读)。2方案论证和设计2.1控制器部分方案设计硬件控制电路主要用了 AT89C52芯片处理器、1602LCD显示器、DS1302实时时钟、DB18B20温度传感器。根据各自芯片的功能互相连接成电子万年历的控制电路。软件控制程序主要有主控程序、电子万年历的时间控制程序、时间显示及温度显示程序等组成。设 计框图如图2.1所示1602液晶显示2.2显示部分的方案论证方案一:采用8段数码管 方案二:液晶显示方式。所以,最后选择液晶显示方案。显示电路图如图2.2所示图2.2液晶显示电路2.3实时时钟电路设计图2.3是DS1302和单片机的连接,其中Vcc1为后备电
6、源,Vcc2为主电源。在主电 源关闭的情况下,也能保持时钟的连续运行。 DS1302由Vcc1或Vcc2两者中的较大者供 电。当 Vcc2 大于 Vcc1+0.2V 时,Vcc2 给 DS1302 供电。当 Vcc2 小于 Vcc1 时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768KHZ晶振。U28 O575VCC1VCC2XIRSTSCLKI/OX2DS1302口緞i 3PR.衬肿B.BTPDJ7JibK rUJVAD B网3口 EM电VIEDaL EA超.如2PZ13 PZjtf/il-F3W1IFpinrralay.他&:PJ.WXkj bi u rn13a33FII
7、TI i号 UTif USP3SWPP1TFM町,d,n r , | ,au sf. 小时O -图2.5键盘电路设计2.6总体电路图3软件设计流程3.1系统总流程图系统总体流程图如图3.1所示,系统流程图设计分析如下:首系统初始化,系统运行, 当有设置键按下时进入时间修改模式,无按键按下时读取时间温度等数据送入显示器显 示。在时间修改模式下设置时间完成后再将时间送入显示器显示。图3.1系统流程图3.2温度程序流程图温度读取程序流程图如图3.2所示。流程图分析:开始进入初始化 DS18B20,就是通 过主机拉低单线产生复位脉冲然后释放总线,如果有应答就发起ROM命令,当成功执行操作命令后,就使用
8、温度转换,当温度转换完成后又初始化 DS18B20是否有应答脉冲,若 有就发起读暂存器和CRC命令,同时读出第一第二字节即温度数据。开始图3.2温度读取程序流程图3.3 DS1302时钟程序流程图时钟流程图如图3.3所示,流程图分析:DS1302开始计时时,首先进行初始化,当有 中断信号时,读取时钟芯片的时间数据送入液晶显示。这时若有设置键按下,进行时间修 改,完成后将时间数据送入1302芯片,若没有按键按下,直接送入EPROM中,送入液晶 显示。图3.3时钟程序流程图DS1302时钟部分子程序void write_byte(uchar dat) 写一个字节ACC=dat;RST=1;for(
9、a=8;a0;a-)IO=ACC0;SCLK=0; /产生上升沿写入数据,从低位写入SCLK=1;ACC=ACC1;uchar read_byte()/渎一个字节RST=1;for(a=8;a0;a-)ACC7=IO;SCLK=1; /产生下降沿输出数据,先输出低位,保存到ACC中SCLK=0;ACC=ACC1;return (ACC);void write_1302(uchar add,uchar dat)/向 1302 芯片写函数,指定写入地址,数据RST=0;SCLK=0;RST=1;write_byte(add);write_byte(dat);SCLK=1;RST=0;uchar r
10、ead_1302(uchar add)从 1302读数据函数,指定读取数据来源地址uchar temp;RST=0;SCLK=0;RST=1;write_byte(add);temp=read_byte();SCLK=1;RST=O;return(temp);uchar BCD_Decimal(uchar bcd)/BCD码转十进制函数,输入 BCD,返回十进制uchar Decimal;Decimal=bcd4;return(Decimal=Decimal*10+(bcd&=OxOF);void ds1302_init() /1302 芯片初始化子函数(2012-06-18,12:00:00
11、,week7)RST=0;SCLK=0;write_1302(0x8e,0x00); 允许写,禁止写保护write_1302(0x80,0x00); /向DS1302内写秒寄存器80H写入初始秒数据00 write_1302(0x82,0x00);向DS1302内写分寄存器82H写入初始分数据00 write_1302(0x84,0x12);向DS1302内写小时寄存器84H写入初始小时数据12 write_1302(0x8a,0x07);向DS1302内写周寄存器8aH写入初始周数据 4 write_1302(0x86,0x17);向DS1302内写日期寄存器86H写入初始日期数据18 wr
12、ite_1302(0x88,0x06);向DS1302内写月份寄存器88H写入初始月份数据 06 write_1302(0x8c,0x12);向DS1302内写年份寄存器 8cH写入初始年份数据12 write_1302(0x8e,0x80); 打开写保护3.4 LCD显示程序流程图显示流程图如图3.4所示,流程图分析如下:首先对1602显示屏进行初始化(初始化 大约持续10ms),然后检查忙信号,若BF=0,则获得显示RAM地址,写入相应的数据显 示。若BF=1,则代表模块正在进行内部操作,不接受任何外部指令和数据,直到BF=0为图3.4 LCD显示程序流程图4万年历的仿真和调试结果上电后的
13、显示秒调节2012-06-17 SUN12:00: IQ 27BC功能按键,自上而下功能依次为调节按键、加按键、减按键5心得体会本次设计是我们遇到过的较大的设计,所以遇到的问题也比较的多,尤其是以前没有 接触过如此复杂的硬件电路以及软件编程,在软、硬件设计和调试中遇到了不少的困难, 在同学的帮助才逐一克服了难题,学习到了不少的专业知识。在整个设计过程之前,我已经在网上找了相关方面的资料,万事开始难,一开始不知 道从哪里下手。后来慢慢学会分析系统,将系统模块化,各个模块可以在软件或者硬件上 实现。在确保各个模块的硬件电路和和之相搭配的程序能够正常工作后在把它们组成一个 系统。在今后的日子里,我会
14、进一步加强自己的动手能力,丰富自己的知识面。参考文献1李朝青单片机原理及接口技术M,北京:北京航天航空大学出版社,20052李广弟.单片机基础M,北京:北京航空航天大学出版社,20003万光毅.单片机实验和实践教程M,北京:北京航空航天大学出版社,20034唐亚平、李移伦.单片机原理实训和学习指导M,长沙:中南大学出版社,2006刘军.单片机原理和接口技术M,华东理工大学出版社,20066谢自美.电子线路设计、实验、测试M,武汉:华中理工大学出版社,2000附件万年历源程序#in clude#i ncludeDS18B20_3.H#defi ne uint un sig ned int#def
15、i ne uchar un sig ned charuchar a,miao,shi,fe n,ri,yue ,nian, week,flag,key1 n,temp;/flag用于读取头文件中的温度值,和显示温度值#define yh 0x80 /LCD 第一行的初始位置,因为LCD1602字符地址首位 D7恒定为1( 100000000=80)#defi ne er 0x80+0x40 /LCD 第二行初始位置(因为第二行第一个字符位置地址是0x40)II液晶屏的和C51之间的引脚连接定义(显示数据线接C51的P0 口)sbit rs=P2A6; /寄存器选择sbit en=卩2人7; /
16、下降沿使能sbit rw=P2A5; /读写信号线/DS1302时钟芯片和 C51之间的引脚连接定义sbit IO=P3A4; 数据线sbit SCLK=P3A6;sbit RST=P3A5;sbit ACC0=ACCA0;sbit ACC7=ACCA7;ACC累加器=AACC.0=E0H/校时按键和C51的引脚连接定义sbit key仁卩2人0;/设置键sbit key2=P2A1; / 加键sbit key3=P2A2; / 减键sbit buzzer=P1A5;蜂鸣器,端口低电平响uchar code tab1=20-; / 年显示的固定字符uchar code tab2=:;/时间显示
17、的固定字符/延时函数,后面经常调用void delay(uint xms)延时函数,有参函数uint x,y;for(x=xms;x0;x-)for(y=120;y0;y-);void write_1602com(uchar com)/* 液晶写入指令函数 *rs=O;数据/指令选择置为指令rw=0; /读写选择置为写P0=com;送入数据delay(1);en=1;/拉高使能端,为制造有效的下降沿做准备delay(1);en=0;/en由高变低,产生下降沿,液晶执行命令void write_1602dat(uchar dat)/* 液晶写入数据函数 *rs=1;/数据/指令选择置为数据rw=
18、0; /读写选择置为写PO=dat;送入数据delay(1);en=1; en置高电平,为制造下降沿做准备delay(1);en=0; en由高变低,产生下降沿,液晶执行命令void lcdnit()/* 液晶初始化函数 *write_1602com(0x38);设置液晶工作模式,意思: 16*2行显示,5*7点阵,8位数据write_1602com(0x0c);开显示不显示光标write_1602com(0x06);整屏不移动,光标自动右移write_1602com(0x01); 清显示write_1602com(yh+1);日历显示固定符号从第一行第1个位置之后开始显示for(a=0;a1
19、4;a+)write_1602dat(tab1a);向液晶屏写日历显示的固定符号部分/delay(3);write_1602com(er+2);/时间显示固定符号写入位置,从第2个位置后开始显示for(a=0;a0;a_)IO=ACCO;SCLK=O; /产生上升沿写入数据,从低位写入SCLK=1;ACC=ACC1;uchar read_byte() 读一个字节RST=1;for(a=8;a0;a_)ACC7=IO;SCLK=1; /产生下降沿输出数据,先输出低位,保存到ACC中SCLK=0;ACC=ACC1;return (ACC);void write_1302(uchar add,uch
20、ar dat)/向1302芯片写函数,指定写入地址,数据RST=0;SCLK=0;RST=1;write_byte(add);write_byte(dat);SCLK=1;RST=0;uchar read_1302(uchar add)/从1302读数据函数,指定读取数据来源地址uchar temp;RST=0;SCLK=0;RST=1;write_byte(add);temp=read_byte();SCLK=1;RST=0;return(temp);uchar BCD_Decimal(uchar bcd)/BCD 码转十进制函数,输入 BCD,返回十进制uchar Decimal;Deci
21、mal=bcd4;return(Decimal=Decimal*10+(bcd &=OxOF);void ds1302_init() 1302 芯片初始化子函数(2012-06-18,12:00:00,week7)RST=0;SCLK=0;write_1302(0x8e,0x00); / 允许写,禁止写保护write_1302(0x80,0x00); /向DS1302内写秒寄存器 80H写入初始秒数据 00 write_1302(0x82,0x00);向DS1302内写分寄存器 82H写入初始分数据 00 write_1302(0x84,0x12);向DS1302内写小时寄存器 84H写入初始
22、小时数据12write_1302(0x8a,0x07);向DS1302内写周寄存器 8aH写入初始周数据 4 write_1302(0x86,0x17);向DS1302内写日期寄存器 86H写入初始日期数据 18 write_1302(0x88,0x06);向DS1302内写月份寄存器 88H写入初始月份数据 06 write_1302(0x8c,0x12);向DS1302内写年份寄存器 8cH写入初始年份数据 12 write_1302(0x8e,0x80); / 打开写保护/温度显示子函数void write_temp(uchar add,uchar dat)/向LCD写温度数据,并指定显
23、示位置uchar gw,sw;gw=dat%10;取得个位数字sw=dat/10;取得十位数字write_1602com(er+add);/er 是头文件规定的值0x80+0x40write_1602dat(0x30+sw); 数字 +30 得到该数字的 LCD1602 显示码write_1602dat(0x30+gw); 数字 +30 得到该数字的 LCD1602 显示码write_1602dat(0xdf);/显示温度的小圆圈符号,0xdf是液晶屏字符库的该符号地址码write_1602dat(0x43); /显示C符号,0x43是液晶屏字符库里大写C的地址码/时分秒显示子函数void w
24、rite_sfm(uchar add,uchar dat)/向LCD写时分秒,有显示位置加、现示数据,两个参数uchar gw,sw;gw=dat%10;/取得个位数字sw=dat/10;/取得十位数字write_1602com(er+add);/er 是头文件规定的值0x80+0x40write_1602dat(0x30+sw); 数字 +30 得到该数字的 LCD1602 显示码 write_1602dat(0x30+gw); 数字 +30 得到该数字的 LCD1602 显示码 /年月日显示子函数void write_nyr(uchar add,uchar dat)/向LCD写年月日,有显
25、示位置加数、显示数据,两个参数 uchar gw,sw;gw=dat%10;/取得个位数字sw=dat/10;取得十位数字write_1602com(yh+add);设定显示位置为第一个位置+addwrite_1602dat(0x30+sw); 数字 +30 得到该数字的 LCD1602 显示码 write_1602dat(0x30+gw); 数字 +30 得到该数字的 LCD1602 显示码 void write_week(uchar week)/ 写星期函数write_1602com(yh+0x0c);星期字符的显示位置 switch(week) case 1:write_1602dat(
26、M); 星期数为 1 时,显示 write_1602dat(O);write_1602dat(N);break;case 2:write_1602dat(T); 星期数据为 2 时显示 write_1602dat(U);write_1602dat(E);break;case 3:write_1602dat(W); 星期数据为 3 时显示 write_1602dat(E);write_1602dat(D);break;case 4:write_1602dat(T); 星期数据为 4 是显示 write_1602dat(H);write_1602dat(U);break;case 5:write_
27、1602dat(F); 星期数据为 5 时显示 write_1602dat(R);write_1602dat(T);break;case 6:write_1602dat(S); 星期数据为 6 时显示 write_1602dat(T);write_1602dat(A);break;case 7:write_1602dat(S); 星期数据为 7 时显示 write_1602dat(U);write_1602dat(N);break;/*键盘扫描有关函数 *void keysca n()if(key1=O)key1为功能键(设置键) delay(9);延时,用于消抖动if(key1=0)延时后再
28、次确认按键按下buzzer=O;蜂鸣器短响一次delay(20);buzzer=1;while(!key1);keyln+;if(key1 n=9)8个功能循环keyl n=1;设置按键共有秒、分、时、星期、日、月、年、返回, switch(key1 n)case 1: TRO=O;关闭定时器/TR1=0;write_1602com(er+0x09);设置按键按动一次,秒位置显示光标 write_1602com(0x0f);设置光标为闪烁 temp=(miao)/10*16+(miao)%10; 秒数据写入 DS1302 write_1302(0x8e,0x00);write_1302(0x8
29、0,0x80|temp);/miao write_1302(0x8e,0x80);break;case 2: write_1602com(er+6);/ 按 2 次 fen 位置显示光标 write_1602com(0x0f);break;case 3: write_1602com(er+3);/ 按动 3 次,shi write_1602com(0x0f);break;case 4: write_1602com(yh+0x0e); 按动 4 次,week write_1602com(0x0f);break;case 5: write_1602com(yh+0x0a); 按动 5 次,ri w
30、rite_1602com(0x0f);break;case 6: write_1602com(yh+0x07); 按动 6 次,yue write_1602com(0x0f);break;case 7: write_1602com(yh+0x04); 按动 7 次,nian write_1602com(0x0f);break;case 8:write_1602com(0x0c);按动到第8次,设置光标不闪烁 TR0=1;/打开定时器temp=(miao)/10*16+(miao)%10; write_1302(0x8e,0x00); write_1302(0x80,0x00|temp);/mi
31、ao 数据写入 DS1302write_1302(0x8e,0x80);break;/加键 key2if(key1 n!=0)/当keyl按下以下。再按以下键才有效(按键次数不等于零)if(key2=0)/ 上调键delay(10);if(key2=0)buzzer=0;蜂鸣器短响一次delay(20);buzzer=1;while(!key2);switch(key1 n)case 1:miao+;设置键按动1次,调秒if(miao=60)miao=0;/秒超过59,再加1,就归零write_sfm(0x08,miao);/令LCD在正确位置显示”加设定好的秒数temp=(miao)/10*
32、16+(miao)%10; 十进制转换成 DS1302 要求的 BCD 码write_1302(0x8e,0x00); / 允许写,禁止写保护write_1302(0x80,temp); /向DS1302内写秒寄存器 80H写入调整后的秒数据BCD码write_1302(0x8e,0x80); / 打开写保护write_1602com(er+0x09);/因为设置液晶的模式是写入数据后,光标自动右移,所以要指定返回/write_1602com(0x0b);break;case 2:fe n+;if(fen=60)fen=0;write_sfm(0x05,fen);令LCD在正确位置显示”加设定
33、好的分数据temp=(fen)/10*16+(fen)%10; 十进制转换成 DS1302 要求的 DCB 码write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x82,temp);向DS1302内写分寄存器 82H写入调整后的分数据BCD码write_1302(0x8e,0x80); 打开写保护write_1602com(er+6);/因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位 置break;case 3:shi+;if(shi=24)shi=0;write_sfm(2,shi);/令LCD在正确的位置显示”加设定好的小时数据temp
34、=(shi)/10*16+(shi)%10; 十进制转换成 DS1302 要求的 DCB 码write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x84,temp);向DS1302内写小时寄存器 84H写入调整后的小时数据BCD码write_1302(0x8e,0x80); 打开写保护write_1602com(er+3);因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位break;case 4:week+;if(week=8)week=1;write_1602com(yh+0x0C);指定加后的周数据显示位置write_week(week);指定
35、周数据显示内容 temp=(week)/10*16+(week)%10; 十进制转换成 DS1302 要求的 DCB 码 write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x8a,temp);向DS1302内写周寄存器 8aH写入调整后的周数据BCD码write_1302(0x8e,0x80); 打开写保护write_1602com(yh+0x0e);因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回 位break;case 5:ri+;if(ri=32)ri=1;write_nyr(9,ri);令LCD在正确的位置显示加设定好的日期数据temp=
36、(ri)/10*16+(ri)%10;/ 十进制转换成 DS1302 要求的 DCB 码 write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x86,temp);向DS1302内写日期寄存器 86H写入调整后的日期数据BCD码write_1302(0x8e,0x80); 打开写保护write_1602com(yh+10);因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位break;case 6:yue+;if(yue=13)yue=1;write_nyr(6,yue);令LCD在正确的位置显示力设定好的月份数据temp=(yue)/10*16+(
37、yue)%10; 十进制转换成 DS1302 要求的 DCB 码 write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x88,temp);向DS1302内写月份寄存器 88H写入调整后的月份数据BCD码write_1302(0x8e,0x80); 打开写保护write_1602com(yh+7);因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位break;case 7:nian+;if(nian=100)nian=0;write_nyr(3,nian);/令LCD在正确的位置显示”力设定好的年份数据temp=(nian)/10*16+(nian)
38、%10; 十进制转换成 DS1302 要求的 DCB 码 write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x8c,temp);向DS1302内写年份寄存器 8cH写入调整后的年份数据BCD码 write_1302(0x8e,0x80); 打开写保护write_1602com(yh+4);因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; 减键key3,各句功能参照加键注释if(key3=0)delay(10);调延时,消抖动if(key3=0)buzzer=O;蜂鸣器短响一次delay(20);buzzer=1;while(!ke
39、y3);switch(key1 n)case 1:miao-;if(miao=-1)miao=59;秒数据减到-1时自动变成59write_sfm(0x08,miao);在LCD的正确位置显示改变后新的秒数 temp=(miao)/10*16+(miao)%10; 十进制转换成 DS1302 要求的 DCB 码 write_1302(0x8e,0x00); / 允许写,禁止写保护write_1302(0x80,temp); /向DS1302内写秒寄存器 80H写入调整后的秒数据BCD码write_1302(0x8e,0x80); / 打开写保护write_1602com(er+0x09);因为
40、设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的write_1602com(0x0b);break;case 2:fe n-;if(fen=_1)fen=59;write_sfm(5,fe n);temp=(fen)/10*16+(fen)%10; 十进制转换成 DS1302 要求的 DCB 码 write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x82,temp);向DS1302内写分寄存器 82H写入调整后的分数据BCD码write_1302(0x8e,0x80); 打开写保护write_1602com(er+6);/因为设置液晶的模式是写入数
41、据后,指针自动加一,在这里是写回原来的位 置break;case 3:shi-;if(shi=-1)shi=23;write_sfm(2,shi);temp=(shi)/10*16+(shi)%10; 十进制转换成 DS1302 要求的 DCB 码write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x84,temp);向DS1302内写小时寄存器 84H写入调整后的小时数据BCD码write_1302(0x8e,0x80); 打开写保护write_1602com(er+3);因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位break;case 4
42、:week-;if(week=O)week=7;write_1602com(yh+0x0C);指定加后的周数据显示位置write_week(week);/指定周数据显示内容 temp=(week)/10*16+(week)%10;/ 十进制转换成 DS1302 要求的 DCB 码 write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x8a,temp);向DS1302内写周寄存器 8aH写入调整后的周数据BCD码write_1302(0x8e,0x80); 打开写保护write_1602com(yh+0x0e);因为设置液晶的模式是写入数据后,指针自动加一,所以
43、需要光标回 位break;case 5:ri-;if(ri=0)ri=31;write_ nyr(9,ri);temp=(ri)/10*16+(ri)%10;/ 十进制转换成 DS1302 要求的 DCB 码write_1302(0x8e,0x00);允许写,禁止写保护write_1302(0x86,temp);向DS1302内写日期寄存器 86H写入调整后的日期数据BCD码write_1302(0x8e,0x80); 打开写保护write_1602com(yh+10);因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位break;case 6:yue-;if(yue=0)yue=12;write _n yr(6,yue);temp=(yue)/10*16+(yue)%10; 十进制转换成 DS1302 要求的 DCB 码 write_1302(0x8e,0x00);允许写,禁止写保护
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省宁波市东方中学2026届化学九上期中质量跟踪监视模拟试题含解析
- 2026届山东省济宁市泗水县化学九上期中监测模拟试题含解析
- 2026届辽宁省沈阳市化学九上期中质量跟踪监视模拟试题含解析
- 浙江省诸暨市荣怀小学2024-2025学年二年级上学期期末考试英语试题答案
- 四川省德阳地区2026届化学九上期中质量检测模拟试题含解析
- 广东省阳江市江城区阳江市第三中学2025-2026学年高二上学期开学生物试题
- 代理记账服务内容及流程
- 2026届安徽省合肥市庐江县化学九上期中学业水平测试试题含解析
- 2026届山西省运城市万荣县九年级英语第一学期期末复习检测试题含解析
- (2025年)国家职业技能鉴定考评员考试题库(+答案)
- 历年学宪法讲宪法知识竞赛题(含答案)真题题库及参考答案(基础题)
- 装配式建筑装饰装修技术 课件 模块七 集成卫浴
- 人体解剖学(江西中医药大学)智慧树知到期末考试答案章节答案2024年江西中医药大学
- 2024-2030年中国移动DR产业发展动态及未来趋势预测报告
- 高中物理必修三第九章《静电场及其应用》测试题(有答案解析)
- 运梁车司机安全培训试题
- 市政道路工程竣工验收报告
- 机械制图(第2版)高职全套教学课件
- 钬激光前列腺剜除术培训课件
- 智慧养老服务平台建设投标方案(技术方案)
- 电梯维保服务投标方案
评论
0/150
提交评论