单片机课设报告模板____电子时钟_第1页
单片机课设报告模板____电子时钟_第2页
单片机课设报告模板____电子时钟_第3页
单片机课设报告模板____电子时钟_第4页
单片机课设报告模板____电子时钟_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、华北水利水电学院课程设计报告课程名称: 数字电子钟的设计 姓 名: 学 号: 班 级: 专 业: 指导老师: 日 期: 2013/01/15 目 录前言-21 课程设计的目的和要求-31.1、 课程设计的目的-31.2、 课程设计的基本要求-32 系统设计-42.1基本工作原理-42.2系统设计-4 2.2.1系统组成方案-4 2.2.2扩展单元编址-5 2.2.3 按键、显示功能的定义-52.3 软件总体设计-6 2.3.1 存储单元的分配、标志位的定义-6 2.3.2主程序框图及清单-63 硬件设计-7 3.1主控制器-8 3.1.1 89C52内部结构-8 3.1.2 89C52引脚封装

2、与功能表-93.1.3 P0P1P2P3口内部结构及作为I/O端口时的使用-113.1.4 晶体振荡器电路-133.1.5 复位电路-143.2 DS18B20原理及引脚介绍-143.3 LCD显示驱动电路-154 软件设计-17 4.1数字温度传感器DS18B20温度的采集处理软件设计-17 4.2数据处理显示程序设计-185 系统操作说明-196 结束语-197 参考文献-218 系统原理图与实物图-21致 谢-22附录1-22前言20实际末,电子技术获得了飞速的发展。在其推动下现代电子产品几乎渗透到了社会的各个领域,有力的推动和提高的社会生产力的发展与信息化程度,同时也是现代电子产品性能

3、进一步提升,产品的更新换代节奏也越来越快。时间对人们来说是那么的宝贵,工作的忙碌性和繁杂容易使人们忘记当前的时间。然而遇到重大事情的时候,一旦忘记时间,就会给自己或者是他人造成很大的麻烦。所以说能随时准确的指导时间并利用时间,是我们生活中必不可少的。想知道时间,手表当然是很好的选择,但是在忙碌当中,我们还需要一个“助理”时不时的给我们提醒时间,所以,计时器最好能够用有一个定时系统,随时提醒容易忘记时间的人。最早能够定时、老式的时钟属于机械式钟表,但这种时钟受到机械结构、动力合体技的限制,在功能性能以及在造价上都没有办法与电子时钟相比。电子时钟是采用电子电路实现对时、分、秒进行数字显示的即使装置

4、,广泛应用于个人家庭、车站、码头办公室等公共场所,成为人们日常生活活动中不可少的必须品。由于数字集成电路的发展和石英晶体振荡器的广泛使用,使得数字时钟的精度远远超过老式钟表,钟表的数字化跟人们生产生活带来了极大的方便,而且大大的扩展了钟表原先的时钟功能。诸如整点提示、定时报警、定时广播、自动启闭路灯,定时开关烘箱、同步动力设备、甚至各种定时电气的自动启动等,所有这些,都是以钟表数字化为基础的。数字时钟中最常见的是单片机模块,数字时钟是一种用单片机原理实现时、分、秒显示的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此研究数字钟及扩大其应用,有着非常现实的意

5、义。1 课程设计的目的和要求1.1 课程设计的目的以89C52单片机控制的时钟,在LCD显示器上显示当前的时间。设计目的:1. 使用LCD显示器显示当前时间、温度。2. 设计能支持年月日星期时分秒的时钟,时钟要具有时间调整功能。电路具有复位功能。3. 用3个功能键操作来设置当前时间。功能键K1K3功能如下。(1)K1-移动。(2)K2-增加。(3)K3-减少。1.2 课程设计的基本要求1分析任务,给出总体设计方案,画出系统原理框图。2硬件电路设计,给出主要电路原理图。3软件设计,给出程序流程图,完成程序设计和软件调试。4完成调试。5完成课程设计报告的撰写,及时上交课程设计报告。2 系统设计2.

6、1 基本工作原理该电路是由AT89C52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路采用芯片DS1302,以节约成本提供准确的计时功能,它可以对年、月、日、周、日、时、分、秒进行计时,具有闰年补偿功能。时间显示部份采用液晶LCD1602。2.2 系统设计2.2.1系统组成方案此次单片机数字时钟的设计采用AT89C52为主控制芯片,并由其芯片DS1302提供时钟数据,利用LCD进行时间显示。图2-1电路设计框图下图为用Proteus软件画的原理图:图2-2 Proteus仿真图2.2.2扩展单元编址此次设计采用单片机内部存储器,将引脚EA接高电平,故无扩展单元。2.2

7、.3按键、显示功能的定义1.显示模块的设计如图(2-3)所示,该设计采用液晶显示装置即把时间显示在液晶显示器上,不仅结构简单清新可见,而且省电也容易控制。数据的传输采用P0口进行控制, 其引脚VSS接地,VEE接VCC,RS和E是显示器的控制端分别由单片机的引脚P2.0、P2.1进行控制。而VDD是作为液晶显示器的灰度调节引脚,接一变阻器来改变其显示的清晰度(实际接地)。图2-3 LM016L液晶显示器2.按键模块的设计如图(2-4)所示,校时电路主要靠键盘来控制。键盘是一组按键的集合。共有三个按键,分别是:功能键、增加键、减少键。它是嵌入式计算机系统中不可缺少的外围电路。是实现人机对话的纽带

8、。 图2-4 按键模块2.3 软件总体设计2.3.1 存储单元的分配、标志位的定义2.3.2主程序框图及清单图2-5 主程序框图主程序清单:void main() lcd_init();ds1302_init();init();while(1)keyscan(); 3 硬件设计3.1主控制器 3.1.1 AT89C52内部结构AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的

9、8 位CPU 和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其内部结构如图(3-1)所

10、示:图3-1 AT89C52内部结构3.1.2 89C52引脚封装与功能表AT89C52是此次课程设计的核心部分。其引脚如图(3-2)所示:图3-2 AT89C52引脚图AT89C52各管脚功能如下:VCC:供电电压;GND:接地;P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。;P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流;P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输

11、出电流;P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入;P3口管脚功能: P3.0是RXD(串行输入口);P3.1是TXD(串行输出口);P3.2是/INT0(外部中断0);P3.3是/INT1(外部中断1);P3.4是T0(记时器0外部输入);P3.5是T1(记时器1外部输入);P3.6是/WR(外部数据存储器写选通);P3.7是/RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG

12、:当访问外部存储器时,地址锁存允许输出电平用于锁存地址的地位字节。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.3 P0P1P2P3口内部结构及作为I/O端口时的使用P0内部结构如图(3-3)所示,除了I/O功能以外,在进行单片机系统扩展时,P0口是作为单片机系统的地址/数

13、据线使用的,一般称为地址/数据分时复用引脚。P0口作为输入口使用时,应区分读引脚和读端口。读引脚时,必须先向电路中的锁存器写入“1”,使输出级的FET截止引脚处于高阻态,以避免锁存器状态为“0”时对引脚读入的干扰。图3-3 P0口的内部结构P1内部结构如图(3-4)所示,P1口是准双向口,只能作为通用I/O口使用。作为输出口使用时,无需再外接上拉电阻。作为输入口使用时,应区分读引脚和读端口。读引脚时,必须先向电路中的锁存器写入“1”,使输出级的FET截止。图3-4 P1口的内部结构P2内部结构如图(3-5)所示,P2口是准双向口,在实际应用中,可以用于为系统提供高8位地址,也能作为通用I/O口

14、使用。作为通用I/O口的输出口使用时,与P1口一样无需再外接上拉电阻。作为通用I/O口的输入口使用时,应区分读引脚和读端口。读引脚时,必须先向锁存器写入“1”。图3-5 P2口的内部结构P3内部结构如图(3-6)所示,P3口是准双向口,可以作为通用I/O口使用,还可以作为第二功能使用。作为第二功能使用的端口,不能同时当作通用I/O口使用,但其他未被使用的端口仍可作为通用I/O口使用。作为通用I/O的输出口使用时,不用外接上拉电阻。图3-6 P3口的内部结构3.1.4 晶体振荡器电路晶体振荡器电路如图(3-7)所示,在XTLA1和XTLA2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自激振荡

15、器。其发出的时钟脉冲直接送入片内定时控制部件,其中C电容对频率有微调作用。图3-7晶体振荡器电路3.1.5 复位电路复位电路如图(3-8)所示,在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。 图3-8复位电路 3.2 DS18B20原理及引脚介绍DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其

16、工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。DS18B20管脚排列如图(3-9)所示:图3-9 DS18B20DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序。3.3 LCD显示驱动

17、电路在实际应用中,用户很少直接设计LCD显示器驱动接口,一般是直接使用专用的LCD显示驱动器和LCD显示模块。其中,LCD显示模块LCM(LiquidCrystalDisplayModule)是把LCD显示器、背景光源、线路板和驱动集成电路等部件构成一个整体,作为一个独立的部件使用,具有功能较强、易于控制、接口简单等优点,在单片机系统中应用较多。其内部结构如图2-8所示。LCD显示模块只留一个接口与外部通信。显示模块通过这个接口接收显示命令和数据,并按指令和数据的要求进行显示。外部电路通过这个接口读出显示模块的工作状态和显示数据。LCD显示模块一般带有内部显示RAM和字符发生器,只要输入ASC

18、II码就可以进行显示。LCD显示模块按功能显示可分为:LCD段式显示模块、LCD字符型显示模块、LCD图形显示块三类。液晶显示器因其功耗低、重量轻而成为便携式应用中的主流显示技术。这里所用的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等。液晶显示有点振式和字符式两种,在这里采用字符式液晶显示器1602来实现显示电路的功能。LCD驱动器LCD显示器LCD控制器VSSVDDVLRSR/WED0-D7图3-10 LCD显示电路由于1602液晶显示器是本身带有驱动模块的液晶屏,它只有并口线和一些控制线,与单片机的连接有两种

19、不同的方法,直接访问方式和间接访问方式。直接访问方式就是微处理器把液晶显示模块当作存储器或I/O设备直接挂在总线上,模块8位数据总线与微处理器的数据总线相连,用读或写操作信号与地址信号共同产生控制信号。4 软件设计4.1数字温度传感器DS18B20温度的采集处理软件设计DS18B20工作过程一般遵循以下协议:初始化ROM操作命令存储器操作命令处理数据。 1.初始化单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道DS1820 在总线上且已准备好操作。 2.ROM操作命令3.存储器操作命令4.处理数据DS18B20的高

20、速暂存存储器由9个字节组成,其分配如图3所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。图4-1 DS1302电路4.2数据处理显示程序设计本实验液晶显示内容包括各点温度,报警温度,时间,所以我们对液晶只写不读操作。即RW引脚接始终低电平。 LCD基本操作时序: 写指令:RS=L,RW=L;D0D7指令码;E=高脉冲;写数据:RS=H,RW=L; D0D7数据;E=高脉冲;图4-2 LCD写时序图LCD的初始化设置包括指令初始化和数据初始化。图4-3 LCD显示电路5 系统操作说明本

21、次课程设计中的电路板,采用USB接口供电。上电后系统自动复位,LCD显示当前时间和温度。并具有整点报时的功能。复位键可用于在系统不稳定或程序跑飞时对单片机系统进行复位。使用3个功能键可以设置当前时间。功能键K1K3功能如下:(1)K1-移位。(2)K2-增加。(3)K3-减少。设置过程中LCD显示时间不变,K1间按下8次后,恢复正常。6 结束语这次课程设计,让我都认识到单片机与C语言的深度。最初的我觉得电子时钟是单片机设计中最基本的设计,应该会是一个很简单的设计。但在我着手设计时发现并不是那么容易的。在硬件电路设计时由于对芯片DS1302和DS18B02的功能还未完全了解,犯了不少错误。在软件

22、设计时,使用C语言进行芯片的编程,虽然在程序运行效率上会比汇编语言低,但C语言直观,便于修改和维护,于是选择了C语言编程。虽然大一有学过C语言,并且觉得挺有趣的,可是却没有真正的做过程序。在参考了书中各种芯片的编程思路后,开始自己去编写程序。运行时发现书中的程序有许多地方是不对的,于是便开始了改程序。电子时钟程序的运行是比较顺利,后来加上了DS18B20后才出现了问题,即键盘和温度不能同时作用,属于鱼与熊掌不可兼得的情况,但其实不应该是这样的,在经过许多修改之后,程序有了很大的完善。在仿真和程序都可以正常运行后,真正的困难是电路板的焊接。由于对元器件的布局和接线焊接的不熟悉,电路板焊接起来十分

23、困难,并且比较凌乱。在经历了一个艰辛的过程之后,电路板终于焊接好了,可显示却并不正常,于是又开始了电路板的各种调试。最终发现是LCD出现了问题,另外 有些芯片的引脚虽在仿真上没有显示,但仍需连好才行。在换过LCD之后,经过多次改善,最总得到了比较理想的效果,还是十分让人欣慰的。这一个学期的学习,反而更加让我明白,自己不懂的东西远远要比懂的东西多得多。而我们能够做到的,那就是不断的努力去学习,不断去增加自己的专业知识,无论如何都不要放弃。在遇到未知的知识时,就有针对的去查询那方面的资料,去弄懂它。通过这次的经历,我熟悉了对一项课题研究,设计,调试,总结等过程,就我自己而言,是有很大帮助的。也为我

24、们以后的动手实践积攒了许多经验,相信有一天,在把基础知识弄懂之后,我也可以创新出自己的东西,这也是作为电子专业的我,大学所想要实现的目标。7 参考文献1 张毅刚、彭喜元,单片机原理与应用设计,电子工业出版社.2 刘坤主编,51单片机典型应用开发范例大全,中国铁道出版社.8 系统原理图与实物图致 谢真心感谢给予我们指导的老师,毕竟我们的知识量还远远不够,真的很需要你们的帮助。还有帮我调试和检查电路板的大家,真的十分感谢!附录1元器件清单:AT89C52 1个LCD16021个DS13021个DS18B021个12M、3.2768M晶振各1个30pF电容2个10uF电容1个10K排阻1个蜂鸣器1个

25、接线USB接口1个10K 电阻5个2K电阻1个4.7K电阻1个程序清单:#include/*变量定义*/#define uint unsigned int#define uchar unsigned charuchar second,minute,hour,date,month,year;uint week,tvalue,tflag;uchar data disdata5;#define one 0x81/第一行的起始位置(空1位)#define two 0xc0/第二行的起始位置sbit RS_1602=P20;sbit E_1602=P21;sbit RST_1302=P22;sbit C

26、LK_1302=P23;sbit IO_1302=P24;sbit DQ=P25;sbit beep=P26;sbit key_mode=P10;sbit key_up=P11;sbit key_down=P12;sbit ACC0=ACC0;sbit ACC7=ACC7;uchar n=0;uchar code tab1=20 - - ;uchar code tab2= : : ;uchar weektab83= ,SUN,MON,TUE,WEN,THU,FRI,SAT;uchar c=C;/*函数声明*/void init();uchar bcd_dec(uchar bcd);uchar

27、dec_bcd(uchar dec);void delay(uint x);void write_1602com(uchar com);void write_1602dat(uchar dar);void write_hms(uchar add,uchar dat);void write_ymd(uchar add,uchar dat);void write_week(uchar week);void lcd_init();void write_byte(uchar dat);uchar read_byte();void write_1302(uchar add,uchar dat);ucha

28、r read_1302(uchar add);void ds1302_init();void ds1820rst();uchar ds1820rd();void ds1820wr(uchar wdata);uint read_temp();void ds1820disp();void delay_18B20(uint i);void keyscan();void BUZZ();void display();/*主函数*/void main() lcd_init();ds1302_init();init(); / read_temp();/读取温度/ ds1820disp();/显示while(

29、1)keyscan(); /display(); /*LCD1602程序部分*/void write_1602com(uchar com) RS_1602=0;E_1602=0;P0=com;delay(1);E_1602=1;delay(1);E_1602=0;void write_1602dat(uchar dat) RS_1602=1;E_1602=0;P0=dat;delay(1);E_1602=1;delay(1);E_1602=0;void write_hms(uchar add,uchar dat) uchar gw,sw; gw=dat%10; sw=dat/10; write

30、_1602com(two+add); write_1602dat(0x30+sw); write_1602dat(0x30+gw);void write_ymd(uchar add,uchar dat) uchar gw,sw; gw=dat%10; sw=dat/10; write_1602com(one+add); write_1602dat(0x30+sw); write_1602dat(0x30+gw);void write_week(uchar week) uint i; write_1602com(one+0x0b); for(i=0;i3;i+) write_1602dat(we

31、ektabweeki); void lcd_init() uchar k; write_1602com(0x38); /功能设置 write_1602com(0x0c); write_1602com(0x06); write_1602com(0x01); /清屏 write_1602com(one); for(k=0;k16;k+) write_1602dat(tab1k); write_1602com(two+1); for(k=0;k0;k-)IO_1302=ACC0;CLK_1302=0;CLK_1302=1;ACC=ACC1; uchar read_byte() uchar k;RST

32、_1302=1;for(k=0;k1;return(ACC); void write_1302(uchar add,uchar dat) RST_1302=0; CLK_1302=0;RST_1302=1;write_byte(add);write_byte(dat);CLK_1302=1;RST_1302=0; uchar read_1302(uchar add) uchar t;RST_1302=0; CLK_1302=0;RST_1302=1;write_byte(add);t=read_byte();CLK_1302=1;RST_1302=0;return(t); void ds130

33、2_init() RST_1302=0; CLK_1302=0;write_1302(0x80,second|0x00); /*DS18B02程序部分*/void ds1820rst()/ds1820复位 DQ = 1; /DQ复位 delay_18B20(4); /延时 DQ = 0; /DQ拉低 delay_18B20(100); /精确延时大于480us DQ = 1; /拉高 delay_18B20(40); uchar ds1820rd()/读数据 uchar i=0; uchar dat = 0; for (i=8;i0;i-) DQ = 0; /给脉冲信号 dat=1; DQ =

34、 1; /给脉冲信号 if(DQ) dat|=0x80; delay_18B20(10); return(dat); void ds1820wr(uchar wdata)/写数据 uchar kk=0; for (kk=8;kk0;kk-) DQ=0; DQ=wdata&0x01; delay_18B20(10); DQ=1; wdata=1; uint read_temp()/读取温度值并转换 uchar a,b; ds1820rst(); ds1820wr(0xcc);/跳过读序列号 ds1820wr(0x44);/启动温度转换 ds1820rst(); ds1820wr(0xcc);/跳

35、过读序列号 ds1820wr(0xbe);/读取温度 a=ds1820rd(); b=ds1820rd(); tvalue=b; tvalue=8; tvalue=tvalue|a; if(tvalue0x0fff) tflag=0; else tvalue=tvalue+1; tflag=1; tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数return(tvalue); void ds1820disp(t)/温度值显示 uchar flagdat; disdata0=tvalue/1000+0x30;/百位数 disdata1=tvalue%1000/100+

36、0x30;/十位数 disdata2=tvalue%100/10+0x30;/个位数 disdata3=tvalue%10+0x30;/小数位 if(tflag=0) flagdat=0x20;/正温度不显示符号 else flagdat=0x2d;/负温度显示负号:- if(disdata0=0x30) disdata0=0x20;/如果百位为0,不显示 if(disdata1=0x30) disdata1=0x20;/如果百位为0,十位为0也不显示 write_1602com(0xca); write_1602dat(flagdat);/显示符号位 write_1602com(0xcb);

37、 write_1602dat(disdata1);/显示十位 write_1602com(0xcc); write_1602dat(disdata2);/显示个位 write_1602com(0xcd); write_1602dat(0x2e);/显示小数点 write_1602com(0xce); write_1602dat(disdata3);/显示小数位 write_1602com(0xcf); write_1602dat(c); /*键盘扫描程序部分*/void keyscan() /uchar n=0;if(key_mode=0)delay(10);if(key_mode=0)whi

38、le(!key_mode);n+;if(n=9)n=1;switch(n)case 1:TR0=0; write_1602com(two+0x08);write_1602com(0x0f);write_1302(0x8e,0x00);write_1302(0x80,0x80|dec_bcd(second);break;case 2:write_1602com(two+5);break;case 3:write_1602com(two+2);break;case 4:write_1602com(one+0x0d);break;case 5:write_1602com(one+0x09);brea

39、k;case 6:write_1602com(one+0x06);break;case 7:write_1602com(one+0x03);break;case 8:write_1602com(0x0c);write_1302(0x80,0x00|dec_bcd(second);write_1302(0x8e,0x80);TR0=1;break;if(n!=0)if(key_up=0)delay(10);if(key_up=0) while(!key_up); switch(n)case 1:second+;if(second=60)second=0;write_hms(7,second);w

40、rite_1302(0x80,0x80|dec_bcd(second);write_1602com(two+0x08);break;case 2:minute+;if(minute=60)minute=0;write_hms(4,minute);write_1302(0x82,dec_bcd(minute);write_1602com(two+05);break;case 3:hour+;if(hour=24)hour=0;write_hms(1,hour);write_1302(0x84,dec_bcd(hour);write_1602com(two+2);break;case 4:week

41、+;if(week=8)week=1;write_week(week);write_1302(0x8a,week);write_1602com(one+0x0f);break;case 5:date+;if(date=32)date=1;write_ymd(8,date);write_1302(0x86,dec_bcd(date);write_1602com(one+9);break;case 6:month+;if(month=13)month=1;write_ymd(5,month);write_1302(0x88,dec_bcd(month);write_1602com(one+6);break;case 7:year+;if(year=100)year=0;write_ymd(2,year);write_1302(0x8c,dec_bcd(year);write_1602com(one+3);break; if(key_down=0)delay(10);if(key_down=0) while(!key_down); switch(n)case 1:second-;if(second=-1)second=59;write_hms(7,second);write

温馨提示

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

评论

0/150

提交评论