基于单片机的电子时钟设计-(带定时功能和温度显示)_第1页
基于单片机的电子时钟设计-(带定时功能和温度显示)_第2页
基于单片机的电子时钟设计-(带定时功能和温度显示)_第3页
基于单片机的电子时钟设计-(带定时功能和温度显示)_第4页
基于单片机的电子时钟设计-(带定时功能和温度显示)_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的电子时钟设计 带定时功能和温度显示 班 级: 11 级质量 2 班 学 号: 1110132217 姓 名: 詹超 专 业: 产品质量 指导老师: 王正家 二零一四年六月 Error! Bookmark not defined. 摘 要 传统的数字电子时钟采用了较多的分立元器件,不仅占用了很大的空间而且利 用率也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很难满 足设计需求。 单片机是集 CPU、RAM、ROM、定时器/计数器和多种接口于一体的微控制器。它 体积小、成本低、功能强,广泛应用于智能产品和工业自动化上。而 51 系列的单片 机是各单片机中最为典型和最有代表性的一种。 ,本次设计提出了系统总体设计方案, 并设计了各部分硬件模块和软件流程,在用 C 语言设计了具体软件程序后,将各个 模块完全编译通过过后,结果证明了该设计系统的可行性。该设计给出了以 AT89C51 为核心,利用单片机的运算和控制功能,并采用系统化 LED 显示模块实时显示数字 的设计方案,适当地解决了实际生产和日常生活中对计时高精确度的要求,因此该 设计在现代社会中具有广泛的应用性。 关键词: 电子时钟,单片机,C 语言。 Abstract Conventional digital electronic clock USES more discrete component, not only takes up a lot of space but also utilization ratio is low, with the constant improvement of the system design complexity, using traditional clock system design method is difficult to meet the design requirements. SCM is a set of CPU, RAM, ROM and timer/counter and a variety of interface in the integration of micro controller. Small volume, low cost, strong function, it is widely used in intelligent products and industrial automation. And 51 series microcontroller is the single chip microcomputer in one of the most typical and most representative. , the design put forward the system overall design scheme, and designs the hardware modules and software process, the parts after using C language design a specific software program, the various modules after fully compiled through, the results proved the feasibility of the design system.This design USES AT89C51 as the nucleus is presented, the calculation and control function of microcontroller, and USES the systematic design of real-time display of digital LED display module, appropriate solutions to the practical production and daily life to the requirement of high precision timing, therefore the design has wide application in the modern society. Keywords: Electronic clock, SCM, C language。 目 录 摘 要 .I ABSTRACT.II 第一章第一章前言前言.1 第二章第二章方案论证与比较方案论证与比较.2 2.1 数字时钟方案.2 2.2 数码管显示方案.2 第三章第三章系统设计系统设计.3 3.1 总体设计.3 3.1.1 系统说明.3 3.1.2 系统框图.3 3.2 模块设计.3 3.2.1 复位电路.3 3.2.2 按键调时间部分.4 3.2.3 温度采集部分.4 3.2.4 数码管位选部分.5 3.2.5 数码管段选部分.7 3.2.6 数码管显示部分.8 3.2.7 单片机控制部分.9 第四章第四章原理图与原理图与 PCBPCB 图图.11 4.1 原理图.11 4.2 PCB 图. .12 第五章第五章软件设计软件设计.13 5.1 程序流程图.13 5.2 源程序.16 第六章第六章总结总结.24 6.1 物品清单与元件特性.24 6.2 设计总结.25 参考文献(参考文献(REFERENCES):):.26 0 第一章第一章前言前言 计时工具自问世至今已经有很长一段历史了,一直以来它都在人们日常生活生产中发挥着 十分重要的作用。科学技术的不断发展为各种新型时钟的问世提供了先决条件,数字时钟就是其 中之一。数字时钟能够精确地表示时、分、秒,至今已经普遍应用到各类行业以及公共场所,时 钟的数字化更为人们的生活带来了极大的便利,所以对时钟进行研究有着十分重要的现实意义。 时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片 机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由 晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时 钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计 数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现, 在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有: DS1302,DS12887,X1203 等都可以满足高精度的要求。 而传统的温度采集系统包含温度采集电路和 AD 转换电路,在外加这些电路比较繁琐,这 里选用的 DS18B20 数字温度传感器,它集合和温度采集和 AD 转换电路,在使用中不需要任何 外围元件,接线方便。体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和 控制领域。 本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,同时具备时间调整以及 定时提醒的功能。本设计由单片机 AT89C51 芯片和 LED 数码管为核心,辅以必要的电路,构成 了一个单片机电子时钟。 1 第二章第二章方案论证与比较方案论证与比较 2.1 数字时钟方案数字时钟方案 数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。 方案一:本方案采用 Dallas 公司的专用时钟芯片 DS12887A。该芯片内部采用石英晶体振荡 器,其芯片精度不大于 10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或 设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工 作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。 而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时 间。 方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存 放时钟的时、分、秒信息。利用定时器与软件结合实现 1 秒定时中断,每产生一次中断,存储器 内相应的秒值加 1;若秒值达到 60,则将其清零,并将相应的分字节值加 1;若分值达到 60,则 清零分字节,并将时字节值加 1;若时值达到 24,则将十字节清零。该方案具有硬件电路简单的 特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软 件实现,当单片机不上电,程序不执行时,时钟将不工作。 基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。 2.2 数码管显示方案数码管显示方案 方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定 的导通或截止。该方式每一位都需要一个 8 位输出口控制。静态显示时较小的电流能获得较高 的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的 I/O 口太多,造成了资源的 浪费。 方案二:动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来 说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足 够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。 调整参数可以实现较高稳定度的显示。动态显示节省了 I/O 口,降低了能耗。 从节省 I/O 口和降低能耗出发,本设计采用方案二。 2 第三章第三章系统设计系统设计 3.1 总体设计总体设计 3.1.1 系统说明系统说明 利用单片机(AT89C51)制作带温度显示功能和定时功能的电子时钟。由六个 LED 数码管分别显示小时十位、小时个位、分钟十位、分钟个位、秒钟十位、秒钟个位,两个 LED 数码管来显示环境实时温度。四个按键进行时间的调节和定时调节。 3.1.2 系统框图系统框图 图 3-1 系统框图 3.2 模块设计模块设计 3.2.1 复位电路 RESET R2 10k C3 10uF K5 图 3-3 复位电路 控制部分 单片机(AT89C51) 按键部分 (k1,k2,k3,k4)) 温度传感器 (DS18B20) 时间显示部分 (六个个共阴极数码管) 温度显示部分 (两个共阴极数码管) 复位电路闹钟电路 3 如图 3-3 所示,复位电路主要型号为 10UF/16V 的电解电容,型号为 104 的瓷片电容, 10K 的电阻以及按键 K5 构成,RESET 接芯片的第 9 引脚,当开关按下时引脚 9 为高电平 1,断开时引脚为低电平 0。 3.2.2 按键调时间部分 K1 K2 K3 K4 K1 K2 K3 K4 图 34 按键电路 图 34 为按键电路,采用的是低电平触发。通过扫描的方式来进行识别单片机引脚的 信号。例如,当按下 k1 时,将 P1.4 口置零,此时将执行相应的程序,即让 F_K1 加 1。 3.2.3 温度采集部分 29.0 DQ 2 VCC 3 GND 1 U4 DS18B20 图 35 温度采集电路 4 如图 35 为温度传感器 DS18B20 的电路。DS18B20 是 DALLAS 公司生产的一线式数 字温度传感器,具有 3 引脚 TO92 小体积封装形式;温度测量范围为55125, 可编程为 9 位12 位 A/D 转换精度,测温分辨率可达 0.0625,被测温度用符号扩展的 16 位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多 个 DS18B20 可以并联到 3 根或 2 根线上,CPU 只需一根端口线就能与诸多 DS18B20 通信, 占用微处理器的端口较少,可节省大量的引线和逻辑电路。 表 1 DS18B20 温度与数字关系表 3.2.4 数码管位选部分 A B C 0WX 7WX 6WX 5WX 4WX 3WX 2WX 1WX A 1 B 2 C 3 E1 6 E2 4 E3 5 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U2 74LS138 图 3-5 数码管位选电路 5 图 3-5 为位选电路,这里采用的是 74HC138 译码器,由于 3-8 译码器的特点是每次输 入对应一位高电平输出。这样,在同一时刻,8 位共阴极数码管中只有译码器输出为高电 平的那位显示出字符,而其他 7 位则是熄灭的。同样,在下一时刻,只让下一位的位选线 处于选通状态,而其他个位的位选线处于关闭状态,在段码线上输出将要显示字符的段码, 则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如此循环下去,就 可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻, 只有一位显示,其他各位熄灭,但由于 LED 的余辉和人眼的视觉暂留作用,只要每位显示 间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效果。 表 2 74HC138 译码器码表 6 3.2.5 数码管段选部分 0D 1D 2D 3D 4D 5D 6D 7D 0DX 7DX 6DX 5DX 4DX 3DX 2DX 1DX D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 U3 74HC373 图 3-6 数码管段选电路 如图 3-6 为数码管段选电路,采用的是 74HC373 锁存器进行字模的传输。373 的输出 端 O0O7 可直接与总线相连。当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑 状态,可用来驱动负载或总线。当 OE 为高电平时,O0O7 呈高阻态,即不驱动总线, 也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时, O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。当 LE 端施密 特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。 表 3 74HC37 功能表 7 3.2.6 数码管显示部分 图 3-6 数码管显示 如图 3-6 为数码管显示情况,这里采用的是 8 个共阴极数码,前 6 位显示时间,分别 为时、分、秒,后 2 位为温度。其中时钟与分钟和分钟和秒钟之间有点隔开。 表 4 共阴极数码管字模表 显示=dpgfedcba=编码 0001111110 x3f 1000001100 x06 2010110110 x5b 3010100110 x4f 4011001100 x66 5011011010 x6d 6011111010 x7d 7000001110 x07 8011111110 x7f 9011011110 x6f A011101110 x77 b011111000 x7c C001110010 x39 d010111100 x5e E011110010 x79 F011100010 x71 8 3.2.7 单片机控制部分 K1 K2 K3 K4 SPEAKER A B C 0D 1D 2D 3D 4D 5D 6D 7D SPEAKER RESET XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 C1 22uF C2 22uF X1 CRYSTAL R0 10k 图 3-7 如图 3-7,这里选用的单片机型号是 AT89C51。AT89C51 是美国 ATMEL 公司生产的 低功耗,高性能 CMOS 8 位单片机,片内含 4K bytes 的可系统编程的 Flash 只读程序存储 器,器件采用 ATMEL 公司的高密度,非易失性存储技术生产,兼容标准 8051 指令系统 及引脚。AT89C51 提供以下标准功能:4K 字节 Flash 闪速存储器,128 字节内部 RAM,32I/O 口线,看门狗(WDT) ,两个数据指针,两个 16 位定时/计数器,一个 5 向量 两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。 如图 3-7 所示,AT89C51 有 40 引脚,双列直插(DIP)封装,所用引脚功能如下: 1.VCC 运行时加4.5V 2.GND 接地 3.XTAL1 振荡器反相放大器及内部时钟发生器的输入端 4.XTAL2 振荡器反相放大器的输出端 5.RST 复位输入,高电平有效,在晶振工作时,在 RST 引脚上作用 2 个 机器周期以上的高电平,将使单片机复位。WDT 溢出将使该引脚输出高电平,设 置 SFT AUXR 的 DISRTO 位(地址 8EH)可打开或关闭该功能。DISRTO 位缺省 为 RESET 输出高电平打开状态。 6.EA/VPP 片外程序存储器访问允许信号。欲使 CPU 仅访问外部程序存储器 (地址为 0000H-FFFFH) ,EA 端必须保持低电平(接地) ,如果 EA 端为高电平 (接 Vcc 端) ,CPU 则执行内部程序存储器中的指令。 7.P1 口,P2 口P1,P2 是一组带内部上拉电阻的 8 位双向 I/O 口。运行时通过 P1 口控制驱动电路的工作,将数据送到数码管,显示相应的段码,为了达到减少功 耗或满足端口对最大电流的限制,应加上一限流电阻。P2.0P2.5 口控制数码 管的位选,使六个数码管轮流显示数据,等于 1 时位选三极管导通,等于 0 时位 选三极管截止。 9 8.无自锁开关(S2P3.7)开关接相应引脚 P3.7,当开关按下时,相应引脚为 低电平 0,断开时引脚为高电平 1。 10 第四章第四章原理图与原理图与 PCBPCB 图图 4.14.1 原理图原理图 K1 K2 K3 K4 K1 K2 K3 K4 SPEAKER A B C A B C 0D 1D 2D 3D 4D 5D 6D 7D 0D 1D 2D 3D 4D 5D 6D 7D 0DX 7DX 0WX 7WX 1DX 2DX 3DX 4DX 5DX 6DX 1WX 2WX 3WX 4WX 5WX 6WX 0WX 7WX 0DX 7DX 6DX 5DX 4DX 3DX 2DX 1DX 6WX 5WX 4WX 3WX 2WX 1WX SPEAKER RESET RESET XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 C1 22uF C2 22uF X1 CRYSTAL R0 10k LS1 SOUNDER K1 K2 K3 K4 Q1 PNP R1 100 A 1 B 2 C 3 E1 6 E2 4 E3 5 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U2 74LS138 D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 U3 74HC373 27.0 DQ 2 VCC 3 GND 1 U4 DS18B20 R2 10k C3 10uF K5 湖湖北北工工业业大大学学 制制作作人人:詹詹超超 于于波波涛涛 2014年年6月月10日日 图 4-1 原理图 如图 4-1 为时钟电路总的原理图。分为最小单片机系统、单片机复位电路、按键电路、 数码管位选电路、数码管段选电路、数码管显示电路、蜂鸣器电路、温度采集电路。使用 单片机的 P2 口进行数模的输出,P14、P15、P16 与 74HC138 连接实现数码管位选,按 键电路接入 P10、P11、P12、P13 四个 IO 口,通过程序控制,扫描该四个引脚的信 号实现时间的调节。蜂鸣器通过与三极管 8550 连接,最终接入 P17,时间设定启动使其 发声。 温度传感器接入 P37,将采集到的模拟信号转化为数字信号后传到单片机。 11 4.24.2 PCBPCB 图图 图 4-2 PCB 图 如图 4-2 为电路的 PCB 图,我使用的是 Altium designer 进行绘制。首先创建相应的元 件库和 PCB 库,并进行封装。然后按照电路绘制原理图,绘制完成后就可以执行更改,生 成 PCB 图,然后进行布线。分为自动布线和手动布线,一般虽然自动布线速度快,但相对 于手动布线而言,不是那么美观。对于一些简单的原理图,提倡进行手动布线。 12 第五章软件设计软件设计 5.1 程序流程图 开开始始 K1是否为0? K1=1? 按键次数加一 按键次是否等于4 延时,防 抖 清零按键次数 是 否 传感器 数据处理 送入单片 机内 读取温度 显示温度 图 5-1 时间位选择流程图图 5-2 温度流程图 13 开始 K2=0? 开定时 K2=1? F-K=1? 秒加一 秒60? 秒清零 F-K=2? 分加一 分60? 分清零 F-K=3? 、 时加一 时=24? 时清零 图 5-3 时间调整流程图 14 保护现场 重装定时器初 值 循环次数减1 满20次? 秒单元加1 60s到? 秒单元清0, 分单元加1 60分到? 分单元清0, 时单元加1 24小时到? 时单元清0 恢复现场 返回 Ye s No No Yes Yes No No Yes 图 5-4 定时中断流程图 15 5.2 源程序源程序 #include #include #define uchar unsigned char #define uint unsigned int /此表为 LED 的字模, 共阴数码管 0-9 uchar code Disp_Tab = 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x40; /段码控 制 uint LedOut10; bit flag; sbit ds=P37; sbit LS138A=P14; sbit LS138B=P15; sbit LS138C=P16; sbit beep=P17; sbit k1=P10; sbit k2=P11; sbit k3=P12; sbit k4=P13; uchar hour=12,minite=0,second=0; uchar h,m,s; uint i,a,temp; uchar F_k1=0,F_k3=0,ahour=0,aminite=0,asecond=0; /延时函数 void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=200;y0;y-); /延时函数 us void delayus(uint t) while(t-); 16 /复位函数 void ds_reset() ds=1; delayus(5); ds=0; delayus(80); ds=1; delayus(14); if(ds=0) flag=1; /18b20 存在 else flag=0; /18b20 不存在 delayus(20); /位读取函数 bit ds_read_bit() bit dat; ds=0; _nop_(); _nop_(); ds=1; _nop_(); dat=ds; delayus(10); return dat; uchar ds_read_byte()/把位转化为字节函数 uchar i,j,k; for(i=0;i8;i+) j=ds_read_bit(); k=(j1); return k; void ds_write_byte(uchar dat)/写字节函数 17 uchar i; for(i=0;i1; delayus(6); uint read_temperature()/读取温度值函数 uchar a,b; ds_reset(); ds_write_byte(0 xcc); ds_write_byte(0 xbe); a=ds_read_byte(); b=ds_read_byte(); temp=b; temp=temp=100) num=0; LedOut0=Disp_Tabh/10; LedOut1=Disp_Tabh%10+0 x80; LedOut2=Disp_Tabm/10; LedOut3=Disp_Tabm%10+0 x80; LedOut4=Disp_Tabs/10; LedOut5=Disp_Tabs%10; LedOut6=Disp_Tabtemp/100; LedOut7=Disp_Tabtemp%100/10; for(i=0; i8; i+) 18 P2=LedOuti ; switch(i) case 0:LS138A=0; LS138B=0; LS138C=0; break; case 1:LS138A=1; LS138B=0; LS138C=0; break; case 2:LS138A=0; LS138B=1; LS138C=0; break; case 3:LS138A=1; LS138B=1; LS138C=0; break; case 4:LS138A=0; LS138B=0; LS138C=1; break; case 5:LS138A=1; LS138B=0; LS138C=1; break; case 6:LS138A=0; LS138B=1; LS138C=1; break; case 7:LS138A=1; LS138B=1; LS138C=1; break; delay(1); /*定时函数*/ void timer0() interrupt 1 TH0=(65535-50000)/256; TL0=(65535-50000)%256; a+; if(a=20) a=0; second+; if(second=60) second=0; minite+; if(minite=60) minite=0; hour+; if(hour=24) hour=0; 19 /*按键 1 函数 */ void key1() if(k1=0) delay(1); if(k1=0) TR0=0; while(!k1); F_k1+; if(F_k1=4) F_k1=0; TR0=1; /*按键 2 函数*/ void key2() if(k2=0) delay(1); while(!k2); if(F_k1=1) second+; if(second=60) second=0; if(F_k1=2) minite+; if(minite=60) minite=0; if(F_k1=3) hour+; 20 if(hour=24) hour=0; if(F_k3=1) asecond+; if(asecond=60) asecond=0; if(F_k3=2) aminite+; if(aminite=60) aminite=0; if(F_k3=3) ahour+; if(ahour=24) ahour=0; /*按键 3 函数 */ void key3() if(k3=0) delay(1); if(k3=0) while(!k3); F_k3+; if(F_k3=4) F_k3=0; 21 /*按键 4 函数 */ void key4() if(k4=0) delay(1); while(!k4); if(F_k1=1) second-; if(second=0) second=59; if(F_k1=2) minite-; if(minite=0) minite=59; if(F_k1=3) hour-; if(hour=0) hour=23; if(F_k3=1) asecond-; if(asecond=0) asecond=59; if(F_k3=2) aminite-; if(aminite=0) aminite=59; if(F_k3=3) ahour-; if(ahour=0) ahour=23; 22 /主函数 void main() TMOD=0X01; TH0=(65535-50000)/256; TL0=(65535-50000)%256; EA=1; TR0=1; ET0=1; P1=0 xff; while(1) ds_reset(); ds_write_byte(0 xcc); /跳过 ROM ds_write_byte(0 x44); /温度转换 key1(); key2(); key3(); key4(); if(ahour=hour&aminite=minite&second1000 次)ISP Flash ROM 32 个可编程 I/O 口 4

温馨提示

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

评论

0/150

提交评论