




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于51单片机的万年历摘 要本篇论文主要介绍了运用单片机实现电子万年历的设计,其中51单片机作为对系统的主要控制器,由DS1302完成对时钟电路的显示和DS18B20对温度的检测。设计主要由时钟电路模块、稳压电路模块、液晶显示模块、温度测试模块组成。实现了年、月、日、星期、温度显示,及闹钟报警的功能。这个设计具有体积小,简单方便,功能齐全,精度高等特点。关键词51单片机;时钟芯片;温度显示;闹钟设置AbstractThis paper mainly introduces the realization of electronic calendar application of the design of SCM,51 MCU as the main controller of the system, DS1302 completed by the clock circuit display and temperature test DS18B20。Designed for use mainly by the clock circuit module, voltage regulator circuit module, liquid crystal display module, temperature measurement modules。Achieved a year, month, day, week, temperature display, and alarm clock function。This design is small, simple and convenient, complete functions and high accuracy。Key words51 MCU;Clock chip;Temperature display;Alarm clock settings目 录1. 引言错误!未定义书签。1.1 选题背景错误!未定义书签。1.2 单片机的发展历程12. 设计方案思路23万年历的硬件设计原理23.1 硬件系统设计框架23.2 单片机主控制模块33.3 时钟电路模块33.4 稳压源电路模块43.5 液晶显示模块43.6 温度测试模块54、软件设计54.1 程序设计流程图54.2 时间设定模块设计64.3 温度设定模块设计74.4 闹钟设定模块设计85、 万年历的制作和调试95.1 布线的原则95.2 焊接调试95.3万年历硬件调试105.4 系统软件的调试106、 结论12参考文献13谢辞141.引言单片机经过几十年的发展,已经广泛应用于生活中的各个领域。例如导弹的导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理等各个方面。电子万年历就是运用了单片机实现时钟的功能,在日常生活中主要有方便人们生活和装饰等作用。万年历原本就具有良好的开放性和发挥性,可以根据不同的需求设计多种多样功能的万年历,以去满足人们日常生活。万年历基本设计要求简单轻巧,功能齐全等。现在对于电子万年历的设计大多运用51单片机。主要是因为51单片机种类齐全、结构体系完整、指令系统功能完善、性能优越、具有较高可靠性和高性价比等特点。1.1选题背景随着人们的生活水平提高,生活节奏的加快,对时间的要求越来越高,为了方便人们能随时知道时间,万年历的需求也日益增长。至二十一世纪的今天,万年历经过第三次革命:第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历)。1.2单片机的发展历程单片机是单片微型计算机的简称,也就是把微处理器(CPU)、一定容量的程序存储器(ROM)和数据存储器(RAM)、输入/输出接口(I/O)、时钟及其他一些计算机外围电路,通过总线连接在一起并集成在一个芯片上构成的微型计算机系统。单片机经过几十年的发展,在功能、体积、功耗、价格等个个股方面已经达到非常优异的水平。在未来的发展中,单片机将趋向实现高性能化、存储器大容量化、接口多样化、集成化、低功耗化等特点。2.设计方案思路方案一:万年历的单片机芯片选用AT89S52作主控制芯片,显示模块采用LCD1602,温度检测模块采用DS18B20温度传感器,时钟芯片选用DS1302芯片,稳压源电路主要采用三端集成电路7805,经过稳压电路,可以提供单片机正常工作电压5V。方案二:万年历的单片机芯片选用89C51作主控制芯片,显示模块采用LED数码管,温度检测模块采用DS18B20温度传感器,时钟芯片选用DS1302芯片,稳压源电路主要采用三端集成电路7805,经过稳压电路,可以提供单片机正常工作电压5V。 本次设计选择方案一,主要是因为AT89S52具有89C51的功能,片内ROM全都采用Flash ROM,能以超低电压工作,具有在线编程可擦除技术。DS18B20温度传感器,它具有耐磨耐碰、体积小、使用方便、封装形式多样的优点。DS1302芯片具有高性能、低功耗、可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V,满足设计所需。3. 万年历的硬件设计原理3.1硬件系统设计框架DS18B20温度检测复位键稳压电路闹钟按键AT89S52单片机LCD显示DS1302时钟芯片图3-1 硬件系统设计框架3.2单片机主控制模块AT89S52单片机为40引脚双列直插芯片,有4个I/0口P0、P1、P2、P3,每条I/0口能独立的做输出和输入。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。图3-2AT89S52引脚示意图3.3时钟电路模块DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。 图3-3 DS1302引脚示意图 3.4稳压电路模块三端稳压集成电路7805是一个输出正5V直流电压的稳压电源电路。稳压电路采用7805,输入端和输出端分别接滤波电容,在输入端接一个二极管,可防止正负极电源接反。图3-47805引脚示意图 3.5液晶显示模块LCD1602液晶显示屏有16个引脚,通过D0D7的8位数据端传输数据和指令。图3-5LCD1602引脚示意图表3-5 LCD1602引脚功能管脚1Vss一般接地管脚2Vdd接电源(+5V)管脚3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高管脚4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器管脚5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。管脚6EE(或EN)端为使能(enable)端,下降沿使能。管脚7DB0底4位三态、 双向数据总线 0位管脚8DB1底4位三态、 双向数据总线 1位管脚9DB2底4位三态、 双向数据总线 2位管脚10DB3底4位三态、 双向数据总线 3位管脚11DB4高4位三态、 双向数据总线 4位管脚12DB5高4位三态、 双向数据总线 5位管脚13DB6高4位三态、 双向数据总线 6位管脚14DB7高4位三态、 双向数据总线 7位管脚15BLA背光电源正极管脚16BLK背光 电源负极3.6温度测试模块DS18B20温度传感器具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。测温范围 55125,固有测温分辨率0.5,工作电源为 35V。图3-6DS18B20引脚示意图4.软件设计4.1程序设计流程图万年历的程序主要包括:延时程序、键盘输入程序(加减时按键程序、闹钟加减按键程序)、温度显示模块程序、时钟显示模程序、液晶数据显示程序等。开始初始化LCD、1302、18B20允许LCD显示?读取温度、时间LCD显示LCD关闭YESNO扫描按键时间设定闹钟设定图4-1程序流程设计图4.2时间设定模块设计DS1302可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能。设计时不需要加电容,只需加一个32.768HZ晶振就可以了。开始DS1302初始化从DS1302中读出数据,放入RAM调用显示子程序LCD显示时间扫描按键时间设置数据写回DS1302保存返回主显单 图4-2 时间设定程序流程图4.3温度设定模块设计DS18B20的初始化:(1) 先将数据线置高电平“1”。(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)(3) 数据线拉到低电平“0”。(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。(5) 数据线拉到高电平“1”。(6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起最少要480微秒。(8) 将数据线再次拉高到高电平“1”后结束。开始DS18B20初始化从DS18B20中读出数据,放入RAMLCD模块显示温度返回图4-3 温度测量程序流程4.4闹钟设定模块设计开始初始化扫描按键闹钟设定数据保存返回图4-4 闹钟设定程序流程图5.万年历的制作和调试5.1布线的原则画硬件原理图时应注意些原则:(1) 按统一的要求选择图纸幅面、图框格式、电路图中的图形符号、文字符号。 (2) 应根据万年历的的工作原理,将各元器件自左到右,自上而下地排成一列或数列。(3) 图面安排时,电源部分一般安排在左下方,输入端在左侧,输出端在右侧。(4) 图中可动元件的工作状态,原则上应处于开断、不加电的工作位置。(5) 将所有芯片的电源和地引脚全部利用,不要悬空。在实际画的过程中应考虑自己的制作水平,为了防止制作出的PCB板有断线等情况发生,在画线时都用30mil,而为了区分电源线和接地线,则电源线和接地线用50mil。在画PCB中应值得注意的是先看元器件的实物,然后看软件中是否有相对应的库元器件,如果没有就需要根据实物自己画出相对应的元件,以免做好板后才发现元器件无法插入对应的孔中。在制作PCB板的时候应注意必须把墨全部转印到覆铜板上,以免对板腐蚀的时候出现断线等情况,如果转印并不十分好,则可以用黑色水墨笔在断线处画上一笔,也可以起到防腐蚀的效果。5.2焊接调试万年历的制作过程中焊接最容易出现问题,在焊接前,必须先对照元器件的PCB图和原理图,以免防止元器件的正负极接反或者把元器件搞错。在焊接的时候要注意虚焊,根据焊接的经验,在焊点锡是尖角的,一般都是焊实了;如果焊点处出现圆颗状,则容易出现虚焊,元器件的管脚可能没有焊实,出现接触不良的情况。检查是否虚焊可以在完成焊接后,接上电源,看电路是否能正常工作,如果不行,则可以用数字万用表进行检测。用数字万用表检测的时候,可以很方便的检测出电路的通断,判断在做板的时候是否有断路,也很容易检测是否虚焊。5.3万年历硬件调试在制作出实物后,硬件并非按照理论上的情况成功进行。经过检测发现单片机的工作电压不能达到5V,导致LCD不能正常显示,经过检查发现稳压电路供电有问题,主要是7805端的电压不稳定,经过对焊接的修正和电容的更换,使单片机能获得5V的正常工作电压。LCD正常工作状态:图5-3 1602正常显示状态对于进行检测时发现实际温度与检测温度有偏差,且偏差较大的问题,只需对程序进行修正,可以减小误差。修正前: a=tmpreadbyte(); /先读取低八位 b=tmpreadbyte(); /再读取高八位 temp=b; temp=temp8; temp=temp|a; mm=temp*0. 625; temp=mm*10; return(temp);修正后:a=tmpreadbyte(); /先读取低八位 b=tmpreadbyte(); /再读取高八位 temp=b;temp=temp8; temp=temp|a; mm=temp*0.0625;temp=mm*10+0.5; return(temp);5.4系统软件的调试根据原理图,在已有的程序上进行修改就可以运用于设计。在编写过程中可以根据自己所想的理想界面,对程序进行修改,在修改完成后没有错误就可以运用在硬件上。一般在程序编写好后,可以先进行软件仿真,这个可以检查程序是否适用于硬件,如果没有成功则说明,程序还存在一些问题;如果成功,则说明程序没有问题。但是在软件仿真成功后,实际运用在硬件上,未必能成功,那是因为软件仿真和实际的硬件始终存在一定的差别,软件仿真只是提高程序的成功率。在运用在实际的硬件上时,还需要根据硬件的实际情况进行修正,一般都可以成功,问题不大。在软件调试时由于实际硬件问题,原本的程序不适合,在对程序进行修改,使结果能正常显示在LCD上。对程序数值的修改如下:数值不正确导致无法显示:void init_ds18b20() /DS18B20初始化;uchar x;x=1;while(x)DQ=0;delay_us(100); /需延时480us960usDQ=1;/delay_us(2);/需延时1560us for 228.21us 可以 ?delay_1us(4);/ while 221.70us if(DQ=0)/等待DS18B20拉低;x=0;delay_us(20); /需要延时 60240usDQ=1;/释放总线/ delay_us(500);修改后的数值:将/ while 221.70us 改为while 328.21us 就可以了6.结论本次设计主要是介绍了单片机的发展历程和万年历在日常生活中给人们带来的方便。第二章主要介绍了设计万年历的总体思路、万年历组成的几个模块以及模块之间的连接。第三章主要介绍了各个模块的具体组成的,每个模块选用的具体器件和器件的优点,其中主要运用到的器件是单片机AT89S52、DS1302时钟芯片、DS18B20温度传感器、7805三端集成稳压电路、LCD1602液晶显示屏。第四章主要介绍了软件设计,写出了其中几个主要模块的程序流程图,看起来清晰明了,便于程序的编写。第五章主要介绍了在制作万年历的过程中的注意事项、硬件软件的最终调试和解决在制作过程中出现的问题。在此次万年历的设计过程中,更加熟习地掌握单片机及其他元器件的运用,明白了它们的工作原理和使用方法。在制作过程中,很好的锻炼了自己的动手能力,从一片空白,到慢慢运用自己所学,把几年的学习知识一起运用在一个作品中,这个万年历的成功制作,自己付出许多时间、精力。更主要的是利用这个设计,把以前的分散知识结合在一起,并且用自己的方式表达出来,这是对自己几年的辛苦的肯定。在此过程中同样感到了自己的许多不足,和一些知识的欠缺,明白对于电子这一类的学习中还有许许多多自己所不知道的知识和问题。但是也明白了,只有在一次次的实践过程中,才能成长的更快,才能完善自己,才能挑战未来。希望在以后还能像这样不断扩展和锻炼自己。参考文献1 孙育才. MCS-51系列单片机微型计算机及应用M东南大学出版社,1997,23-34.2 何立民. 单片机应用系统设计M.北京航空航天大学出版社,1999,60-62.3 张天凡. 51单片机C语言开发详解M.电子工业出版社,2008,12-704 于永. 51单片机C语言常用模块与综合系统设计M.电子工业出版社,2007,240-2575 胡辉. 单片机原理与应用M.中国水利水电出版社,2007,50-1196 谭浩强. C语言设计M.清华大学出版社.2005,106-107 7 高鹏. Protel 99入门与提高M.人民邮电出版社.2007,220-2228 王怀平. 单片机微机万年历设计N.职大学报.2000.29 胡汉才. 单片机原理及接口技术M.清华大学出版社.1996,546-64310 张有德. 单片微型机原理应用与实践M.复旦大学出版社.1992,347-46811 何希庆. MCS-51单片机原理实例实践M.山东大学出版社.1989,242-29812 范立南. 单片微机接口与控制技术M.辽宁大学出版社.1996,78-20413 李华. MCS-51系列单片机实用接口技术M.北京航空航天大学出版社.1999,138-24814 张毅刚. MCS-51单片机应用设计M.哈尔滨工业大学出版社.1997,442-64815 晁阳. 单片机CS-51原理及应用开发教程.清华大学出版.2007,354-355谢 辞此次万年历的设计在指导老师和同学的帮助下,自己一步一步完成的。很感谢指导老师对我的关心和督促,感谢同学对我在遇到问题时的帮助。在学校的良好环境中,安心学习,顺利完成毕业设计。在这次的设计中学到了许多知识,很好地锻炼自己,通过自己努力完成了作品。感谢学校创造这么好的学习环境;感谢指导老师的细心栽培;感谢同学的热心帮助!附件附件一:原理图 附件二:PCB图附件三:元器件清单1元器件名称元器件型号数量2普通电容C1、C222pf23普通电容C5、C60.1uf24电解电容C710uf15点解电容C3、C4100uf26普通电阻R4、R91k27普通电阻R5、R6、R7、R8、R1010k58普通电阻R24.7k19普通电阻R10010110可变电阻R310k111上拉电阻R14.7k112单片机U1AT89S52113时钟芯片U2DS1302114三端集成稳压电路U47805115晶振Y312M116晶振Y232.768HZ117LCD液晶显示屏Y11602118温度传感器J1DS18B20119插针J2CON2120开关S1、S2、S3、S4、S5521蜂鸣器LS1122二极管D1IN4007123PNP Q185501附件四:实物图附件五:程序清单#include#include #define uint unsigned int#define uchar unsigned char/*变量定义*/uint l_tmp;sbit dssclk=P10;sbit dsio=P11;sbit dsrst=P12;sbit lcdrs=P30;sbit lcdrw=P31;sbit lcden=P32;uchar miao,shi,fen,nian,yue,ri,xinqi;sbit BUZZER=P33; /蜂鸣器接口sbit s0=P20;/时间设置sbit s1=P21;/闹钟设置sbit s2=P22;/加一sbit s3=P23;/减一uint ntable4;sbit DQ=P14; /定义DS18B20接口;uchar aa,bb,cc,dd,ee,ff;uint temp;uchar jinzhi(uchar x);uchar nza,nzb,nzc,nzd;/闹钟设置的各参数 uchar flag,flag1,flag2,s0num,s1num; /flag1为闹钟标志位 ,flag显示标志位,flag2为按键锁定标志位/*函数声明部分*/void help(void);void keyscan(); /键盘输入void delay_us(uchar us); /for us延时void delay_1us(uchar us); /while us延时void delay_1ms(uchar z); /键盘延时消抖void init_ds18b20(); /DS18B20初始化bit tmpreadbit(); /读一位程序 uchar tmpreadbyte(); /读一个字节程序void writebyte(dat); /写字节程序void write_ds_byte(uchar temp);/ds1302 写一位void write_ds(uchar,uchar);/ds1302 写一个字节uchar read_ds(uchar); /ds1302读一个字节/void read_rtc(void);/void set_rtc(void);void write_sfm(uchar,uchar); /lcd写 时 分 秒 月 日void write_year(uchar,uchar); /lcd写 年void write_xinqi(uchar,uchar); /lcd写 星期uint tmp(); /读取温度void display(uchar aa,uchar bb,uchar cc,uchar dd,uchar ee,uchar ff);/温度显示部分void init(); /lcd初始化void write_date(uchar date);/lcd写数据void write_com(uchar com);/lcd写指令void tmpchange();/温度转化命令uchar jinzhi(uchar x); /进制转化void init_naozhongdisplay(void); /闹钟显示界面初始化/*延时部分*/void delay_us(uchar us) /for us延时uchar i;/i=us; for(i=us;i0;i-);void delay_1us(uchar us) /while us延时uchar i;i=us; while(i)i-;void delay_1ms(uchar z)/键盘延时消抖uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);void delay(uchar z)uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*/void init_naozhongdisplay(void) /闹钟显示界面初始化 write_com(0x80+0); /设置数据指针write_date(0x4f); /0write_date(0x46); /Fwrite_date(0x46); /Fwrite_com(0x80+0x40+0);write_date(0x30); /0write_date(0x30); /0write_date(0x3a); /:write_date(0x30); /0write_date(0x30); /0write_date(0x3a); /:write_date(0x30); /0write_date(0x30); /0/*lcd液晶程序部分*/void write_com(uchar com)/lcd写指令lcdrs=0; lcdrw=0;lcden=0;P0=com;lcden=1;delay(5);lcden=0;void write_date(uchar date)/lcd写数据lcdrs=1; lcdrw=0;lcden=0;P0=date;lcden=1;delay(5);lcden=0;void init() /lcd初始化lcden=0;write_com(0x38); /lcd液晶 显示模式设置write_com(0x0c); /lcd液晶 开显示 关光标 关闪烁write_com(0x06); /读一个字节 光标指针加一 不整屏移动write_com(0x01); /清屏write_com(0x80); /设置数据指针void display(uchar aa,uchar bb,uchar cc,uchar dd,uchar ee,uchar ff)/温度显示部分write_com(0x80+10); /温度显示部分write_date(aa); write_date(0x30+bb); write_date(0x30+cc); write_date(dd); write_date(0x30+ee); write_date(ff); /*键盘输入部分*/void keyscan()uchar mm,ff,ss,rr,yy,nn;if(s0=0)delay_1ms(5);if(s0=0)flag=1;/当flag=0时才更新始终数据显示 否则禁止更新显示s0num+; /计算时间设置按键的次数 当为8时则退出设置状态 进入正常显示flag1=0;while(!s0);if(s0num=1)write_com(0x80+0x40+11);write_com(0x0f); if(s0num=2)write_com(0x80+0x40+7);if(s0num=3)write_com(0x80+0x40+4);if(s0num=4)write_com(0x80+0x40+1);if(s0num=5)write_com(0x80+9);if(s0num=6)write_com(0x80+6);if(s0num=7)write_com(0x80+3);if(s0num=8) s0num=0; write_com(0x0c); flag=0; write_ds(0x8e,0x00);write_ds(0x80,miao); /写秒write_ds(0x82,fen); /写分write_ds(0x84,shi);/写时write_ds(0x86,ri); /写日write_ds(0x88,yue); /写月write_ds(0x8a,xinqi); /写星期write_ds(0x8c,nian); /写年write_ds(0x8e,0x80); if(s0num!=0)/*加时钟按键程序*/if(s2=0)delay_1ms(5);if(s2=0)while(!s2);if(s0num=1)xinqi+;if(xinqi=8)xinqi=0;write_xinqi(11,xinqi);write_com(0x80+0x40+11); if(s0num=2)mm=miao/16;miao=miao%16;miao=miao+mm*10;miao+;if(miao=60)miao=0;mm=miao/10;mm=mm*16;miao=miao%10;miao=mm+miao; write_sfm(0x40+6,miao);write_com(0x80+0x40+7);if(s0num=3) ff=fen/16;fen=fen%16;fen=fen+ff*10;fen+;if(fen=60) fen=0;ff=fen/10;ff=ff*16;fen=fen%10;fen=ff+fen; write_sfm(0x40+3,fen); write_com(0x80+0x40+4);if(s0num=4) ss=shi/16;shi=shi%16;shi=shi+ss*10;shi+;if(shi=24) shi=0;ss=shi/10;ss=ss*16;shi=shi%10;shi=ss+shi;write_sfm(0x40+0,shi);write_com(0x80+0x40+1);if(s0num=5)rr=ri/16;ri=ri%16;ri=ri+rr*10;ri+;if(ri=32) ri=0;rr=ri/10;rr=rr*16;ri=ri%10;ri=rr+ri;write_sfm(8,ri);write_com(0x80+9);if(s0num=6) yy=yue/16;yue=yue%16;yue=yue+yy*10;yue+;if(yue=13) yue=0;yy=yue/10;yy=yy*16;yue=yue%10;yue=yy+yue;write_sfm(5,yue);write_com(0x80+6);if(s0num=7)nn=nian/16;nian=nian%16;nian=nian+nn*10;nian+;if(nian=99) nian=0;nn=nian/10;nn=nn*16;nian=nian%10;nian=nn+nian;write_year(0,nian);write_com(0x80+3);/*减时钟按键程序*/if(s3=0)delay_1ms(5);if(s3=0)while(!s3);if(s0num=1)xinqi-;if(xinqi=0)xinqi=7;write_xinqi(11,xinqi);write_com(0x80+0x40+11); if(s0num=2)mm=miao/16;miao=miao%16;miao=miao+mm*10;miao-;if(miao=0)miao=59;mm=miao/10;mm=mm*16;miao=miao%10;miao=mm+miao; write_sfm(0x40+6,miao);write_com(0x80+0x40+7);if(s0num=3) ff=fen/16;fen=fen%16;fen=fen+ff*10;fen-;if(fen=0) fen=59;ff=fen/10;ff=ff*16;fen=fen%10;fen=ff+fen; write_sfm(0x40+3,fen); write_com(0x80+0x40+4);if(s0num=4) ss=shi/16;shi=shi%16;shi=shi+ss*10;shi-;if(shi=0) shi=23;ss=shi/10;ss=ss*16;shi=shi%10;shi=ss+shi;write_sfm(0x40+0,shi);write_com(0x80+0x40+1);if(s0num=5)rr=ri/16;ri=ri%16;ri=ri+rr*10;ri-;if(ri=0) ri=31;rr=ri/10;rr=rr*16;ri=ri%10;ri=rr+ri;write_sfm(8,ri);write_com(0x80+9);if(s0num=6) yy=yue/16;yue=yue%16;yue=yue+yy*10;yue-;if(yue=0) yue=12;yy=yue/10;yy=yy*16;yue=yue%10;yue=yy+yue;write_sfm(5,yue);write_com(0x80+6);if(s0num=7)nn=nian/16;nian=nian%16;nian=nian+nn*10;nian-;if(nian=0) nian=99;nn=nian/10;nn=nn*16;nian=nian%10;nian=nn+nian;write_year(0,nian);write_com(0x80+3); /*闹钟设置按键*/ if(s1=0)delay_1ms(5);if(s1=0) flag2=1;/防止在闹钟设置界面下 s0起作用 flag=1;/当flag=0时才更新始终数据显示 否则禁止更新显示 /flag1=1; /开启闹
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防工程补充协议书
- 工业炉燃料系统装配工服务质量抽查考核试卷及答案
- 铁氧体材料烧成工服务响应速度考核试卷及答案
- 线上签协议书注意什么
- 2025版权委托代理服务合同
- 脚轮制作工安全警示标识认知考核试卷及答案
- 山东省济宁兖州区七校联考2026届八年级数学第一学期期末预测试题含解析
- 江苏省南京东山外国语学校2026届七年级数学第一学期期末综合测试试题含解析
- 2025年国有土地使用权转让合同(现状补办类)模板范文
- 山东东营市2026届数学八年级第一学期期末学业质量监测试题含解析
- 合肥市社会化工会工作者招聘考试真题2024
- 演讲与朗诵教学课件
- 《CSCO乳腺癌诊疗指南2025》更新要点解读
- 2025年教师师德师风考试题(附答案)
- 装修装饰-设计方案投标文件(技术方案)
- 绥化绥化市2025年度“市委书记进校园”事业单位引才287人笔试历年参考题库附带答案详解
- 第五单元:含长方形和正方形的不规则或组合图形的面积专项练习-2023-2024学年三年级数学下册典型例题系列(解析版)人教版
- 基于“教学评一致性”视域下的小学数学教学实践
- GB/T 44971-2024土壤硒含量等级
- 2024年团校考试入团考试测试题库及答案
- 甲状腺手术体位的综合征
评论
0/150
提交评论