




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数理与信息工程学院单片机原理及应用短学期课程设计新颖60秒LED旋转电子钟 数理与信息工程学院单片机原理及应用短学期课程设计 题 目: 新颖60秒LED旋转电子钟 专 业: 电子信息工程 班 级: 电信131班 姓 名: 高 蕾 学 号: 13610101 指导老师: 张浩然 成 绩: ( 2015.9 )目 录第一节 引 言 1.1 电子钟概述1.2 设计任务1.3 系统主要功能第二节 电子钟硬件设计2.1 元器件清单2.2 系统的硬件构成及功能2.3 AT89C2051单片机及其引脚说明2.4 60秒旋转译码驱动原理2.5 时分显示部件2.6 温度检测部件第三节 电子钟软件设计3.1 系统
2、主程序设计3.2 定时计数中断程序设计3.3 时间调整或定闹设置程序设计第四节 系统调试与测试结果分析4.1 使用的仪器仪表4.2 系统调试4.3 测试结果4.4 测试结果分析第五节 结束语与心得体会第六节 参考文献 第一节 引 言 本系统采用单片机AT89C2051控制,以AT89C2051为核心,它完成整个系统的信息处理及协调功能,本次设计我们选用ATMEL公司的AT89C2051芯片,AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版,其功能强大,兼容性好,还支持软件选择的空间和掉电两种节电方式。本设计的软件,硬件都采用模块化的设计方法,提高了设计的效率。本次设
3、计通过对一个实现定时、时钟显示、报时、闹钟等功能的时间系统的设计,其中结合了数据转换显示、数码管显示、动态扫描、单片机定时中断等技术。系统由AT89C2051、LED数码管、按键、三极管、温度传感器DS18B20、数字集成芯片CD4017、数字集成芯片CD4069、电阻等组成。能实现时钟时、分、秒的显示。也具有时间设置、闹铃开和关设置、制式切换。文章后附有电路图、程序清单。1.1 电子钟概述目前市场上提供的无论是机械钟还是石英钟在晚上无照明的情况下都是不可见的。要知道当前的时间,必须先开灯,故较为不便。现在市场上也出现了一些电子钟,它以六只LED数码管来显示时分秒,违背了人们指针式的传统习惯与
4、理念,而且这类电子钟一般是采用大型显示器件,适用于银行、车站等公共场所,且外观设计欠美观,很少进入百姓家庭。此外,无论是机械钟、石英钟还是电子钟,都存在着共同的问题:时间误差。针对以上存在的问题,我们设计了一款采用LED显示器件显示的电子时钟,解决了时钟存在的误差问题,并能在夜间不必其它照明就能看到时间,且以60只发光管实现秒显示,接近于传统的秒针来显示秒的形式,用户容易接受,而且美观大方。另加七只装饰用的LED灯,使整个时钟显的相当美观新颖,故还可作为室内装饰用。 1.2 设计任务设计一款基于AT89C2051单片机的电子钟。设计基本要求:1) 用4只LED数码管输出显示时和分。2) 可通过
5、按键设置闹钟功能,且停闹无须手工操作。3) 可通过按键设置分校时。4) 写出详细的设计报告。5) 给出全部电路和源程序。发挥部分要求:1) 用60只LED发光管旋转显示,模拟“秒针”的行走。2) 模拟“秒针”行走的“嘀哒”声。3) 增加室温检测和显示功能(可与时间交替显示)。4) 增加停(掉)电保护功能。5) 提高计时精度,使年计时误差小于30秒。6) 可通过按键设置一天两闹(比如早晨、中午各一次)。1.3 系统主要功能电子钟的外观如图1.3.1所示。周边60只发光管顺时旋转来显示秒,中间四只LED数码管用于显示时间,中下方的七只LED灯顺时旋转,供装饰用。 其主要功能有:整点报时;四只LED
6、数码管显示当前时分;每隔一秒钟周边的60只LED发光管旋转一格,装饰用的LED每隔一秒旋转一次。当发生停电事件时,由后备电池供电,系统进入低功耗状态,所有显示部件停止显示,这样即延长了电池的寿命,同时又保证了CPU继续计数,不至于因停电而时钟停止运行。当恢复供电后,系统自动恢复工作状态,不影响计时。图1.3.1 多功能电子钟外观图第二节 电子钟硬件设计 2.1 元器件清单表2-1-1 元器件清单表名 称型号数量电阻100欧姆,1/8瓦1电阻270欧姆,1/8瓦2电容100微法/25伏2电容220微法/25伏1电容30P 瓷片3电容104(0.1微法)3变压器5 V/100 M A1电源线150
7、cm1固定脚铜3套PCB线路板直径1151热缩管直径20.2米单片机AT89C20511数字集成芯片CD40172数字集成芯片CD40691超高亮数码管共阳 尺寸0.5inch4超高亮发光二极管直径3 红、透明13超高亮发光二极管直径3 绿、透明50普通二极管IN40014普通二极管IN41482稳压二极管C4V3( 4.3V)1三极管90125三极管90131轻触按键小(尺寸6×6mm×5.5)3蜂鸣器5V1晶振6M(小体积)1底座14脚1底座16脚2底座20脚1底座40脚1电阻220欧姆,1/8瓦8电阻4.7K,1/8瓦5电阻100欧姆,1/8瓦1电阻270欧姆,1/8
8、瓦2电容100微法/25伏2电容220微法/25伏1电容30P 瓷片3电容104(0.1微法)3变压器5 V/100 M A1电源线150cm1固定脚铜3套PCB线路板直径1151热缩管直径20.2米2.2 系统的硬件构成及功能电子钟的原理框图如图2.2.1所示。它由以下几个部件组成:单片机89C2051、电源、时分显示部件、60秒旋转译码驱动电路。时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。时分显示模块、60秒旋转译码驱动电路以及显示驱动都通过89C2051的I/O口控制。电源:电源部分有二部分组成。一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持
9、系统的正常工作;另一部分是由3V的电池供电,以保证停电时正常计时。正常情况下电池是不提供电能的,以保证电池的寿命。具体电路参见“新颖的60秒旋转电子钟参考电路原理图”。图2.2.1 电子钟系统原理框图2.3 AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统
10、,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。AT89C2051是一个有20个引脚的芯片,引脚配置如图2.3.1所示。与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。AT89C2051芯片的20个引脚功能为:VCC 电源电压;GND 接地;RST 复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复“1”;XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2 来自反向振荡放大器的输出。 图2.3.1 AT89C2051引脚配置P1口:8位双向I/
11、O口。引脚P1.2P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA的灌电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。P3口引脚P3.0P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用作输入。P3口也可用作
12、特殊功能口,其功能见表2-3-1。P3口同时也可为闪速存储器编程和编程校验接收控制信号。表2-3-1 P3口特殊功能P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)2.4 60秒旋转译码驱动原理按常规传统设计,需60进制译码驱动电路才能实现60秒旋转译码驱动,若用六片十进制计数译码器构成六十进制计数译码电路,则电路连线多(需要120根连线),硬件电路庞大,开销大。为此,我们巧妙地采用了两片CD4017进行六十进制计数译码,实现60秒旋转译码驱动。既减少了电路的复
13、杂程度又可降低了成本。图2.4.1为CD4017功能引脚图,图2.4.2为其时序图。 图2.4.1 CD4017引脚图图2.4.2 CD4017时序图CD4017集成电路是十进制计数/时序译码器,共有10个译码输出Q0Q9;每个译码输出通常处于低电平,且在时钟脉冲由低到高的上升沿输出高电平;每个高电平输出维持1个时钟周期;每输入10个时钟脉冲,输出一个进位脉冲,因此进位输出信号可作为下一级计数器的时钟信号。在清零输入端(R)加高电平或正脉冲时,只有输出端Q0为高电平,其余各输出端均为低电平“0”。 为实现对发光二极管的驱动,将每一个译码输出端口接一只发光二极管,并将二极管串联限流电阻后接地。当
14、译码端口Q0Q9中任一端口为高电平,则对应的发光二极管点亮,如图2.4.3所示。 图2.4.3 CD4017控制LED原理图仔细考查CD4017的功能,可发现其10个输出的高电平是相互排斥的,即任一时刻只有一只发光二极管点亮,因此可将图6电路进一步简化为如图2.4.4所示,从而简化电路设计。 图2.4.4 优化后控制LED原理图在本电子钟设计中,每秒点亮一个发光二极管,循环点亮一周共需60个发光二极管,若用上述的6片CD4017实现驱动,显然电路复杂。为此我们选用两片CD4017和一片6反相器,采用“纵横双译码”技术,巧妙地实现60秒旋转译码驱动,其中一片接成10进制,一片接成6进制,实现6&
15、#215;10=60的功能,具体连接方法如图2.4.5所示。图2.4.5 发光二极管“纵横双译码”循环点亮LED原理图将周期为1秒的输入脉冲作为其中一片CD4017的时钟脉冲,而此片的级联进位输出端(QC)作为另一片的时钟输入,并将Q6与复位端相连。在两片译码输出端交叉点上接入发光二极管,构成6×10矩阵。根据CD4017时序特点,在初始状态,作为高位(纵)的CD4017译码器输出端口Q0处于高平,经反相器反相后为低电平。当作为低位(横)的CD4017译码器输出端口Q0Q9依次输出高电平后,则对应的二极管LD1LD10依次点亮;此后由于QC端的进位,高位CD4017译码输出端口Q1输
16、出高电平,反相后输出低电平,当低位的CD4017译码输出端口Q0Q9依次输出高电平后,二极管LD11LD20依次点亮。如此往复,直至高位Q6向复位端输入高电平,CD4017复位,60秒循环点亮重新开始。2.5 时分显示部件由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。如图2.5.1所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段
17、笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。图2.5.1 LED数码管结构原理图众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。所谓软件译码,即由单片机软件完成从数字到显示码的转换。从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显示段码为1个字节。各段码位与显示段的对应关系如表2-5-1。表2-5-1 各段码位的对应关系需说明
18、的是当用数据口连接LED数码管adp引脚时,不同的连接方法,各段码位与显示段有不同的对应关系。通常数据口的D0位与a段连接,D1位与b段连接,D7位与dp段连接,如表2所示,表2-5-2为用于LED数码管显示的十六进制数和空白字符与P的显示段码。表2-5-2 LED显示段码注:(1)本表所列各字符的显示段码均为小数点不亮的情况。 (2)“空白”字符即没有任何显示。根据AT89C2051单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管。将AT89C2051的P1.0P1.7分别与共阳数码管的ag及dp相连,高电平的位对应的LED数码管的段暗,低电平的位对应的LED数码管的段亮,这样,当
19、P0口输出不同的段码,就可以控制数码管显示不同的字符。例如:当P0口输出的段码为1100 0000,数码管显示的字符为0。数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描显示方式需解决多位LED数码管的“段控”和“位控”问题,本电路的“段控”(即要显示的段码的控制)通过P0口实现;而每一位的公共端,即LED数码管的“位控”,则由P3口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出
20、这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。在本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于“开关”状态。系统的时分显示部件由4只7段共阳LED数码管构成,前两只用于时的显示,后两只用于分的显示。值得一提的是,在设计中需要实现时与分之间的两个闪烁点,为此,将第三只LED数码管倒置摆放,这样就很巧妙地形成了两个很自然的闪烁点。与此同时,为了能使两点显示能够形象的表示时钟“秒”的变化,设计时,将两个点由P1.7单独控制,每隔一秒使P1.7发送一个正脉冲,从而实现了两个点的闪烁显示,闪烁周期为一秒。 26 温度检测部件 Dallas 半导体
21、公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。 2.6.1 DS18B20的主要特性 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。温度范围55125,在-10+85时精度为±0.5。可编程的分辨率为912位,对应的可分辨
22、温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。2.6.2 DS18B20引脚 DS18B20引脚如图2.6.1所示,1脚为地,2脚为数据输出和命令输入端,3脚为电源。图2.6.1 DS18B20引脚图2.6.3 DS18B20编程注意事项: 编程时需特别注意时序
23、,或者说时间间隔的要求,详见USB全自动在线编程实验指导书的相关内容。第三节 电子钟软件设计本系统的软件系统主要可分为主程序和定时器中断程序两大模块。在程序过程中,加入了抗干扰措施。下面对部分模块作介绍。31 系统主程序设计主程序的功能是完成系统的初始化,在显示时间之前,对系统是否停电状态进行检测;若停电,将系统进入低功耗状态,用电池电压维持单片机计时工作,但此时不显示时间,用节省用电;若不停电,则将时分发送显示。程序流程如图3.1.1所示。图3.1.1 系统主程序流程图32 中断程序设计中断程序(如图3.2.1所示)完成时间计数,时间调整,误差消除等功能。中断采用AT89C2051内部T0中
24、断实现,定时时间为125ms,当时间到达125ms×8,即1分钟时,分计数缓冲器MINBUFFER增加1,到达1小时,则时计数缓冲器HOURBUFFER增加1,并将分、时的个位、十位放入显示缓冲器。当分计数缓冲器和时计数缓冲器分别到达60min、24h时,则对它们清零,以便从新计数。在中断设计中,还通过软件实现了累计误差消除功能,使整个系统时间的精确度得到保证。图3.2.1 定时中断程序3.3 时间调整或定闹设置程序设计当设计的时间到达的时候,要驱动蜂鸣器,使其能够响起,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的高电平或低电平,则在该口线上就能产生一定频率的
25、矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。3.4 总程序设计/*晶振为6M*/#include<reg51.h>#include<intrins.h>sbit p17=P17;sbit p37=P37;sbit p30=P30;sbit p31=P31;sbit p34=P34;sbit p35=P35;sbit p33=P33;sbit p32=P32;sbit KEY1=P32;sbit KEY2=P33;sbit BEEP=P33;bit TP_read_flag=1;#define u
26、char unsigned char#define uint unsigned intuchar jishu1=0;uchar jishu2=0;uchar fen=59,shi=8,miao=30;uchar ii,jj;uint KEY1_count,KEY2_count;bit k=0; /K=1,做减法运算uchar nao1_shi=12,nao1_fen=53,nao2_shi=12,nao2_fen=41;uchar disp; /显示切换控制uchar xuanzhuan_count;bit clock_co; /显示时间控制bit aram_flag;bit aram_sto
27、p;bit flag; /闹钟开启和关闭的标志位 flag=1:闹钟开启 flag=0:闹钟关闭bit wendu; /wendu=0,显示温度 wendu=1,显示时间bit set_model;bit xuanzhuan_flag;bit aram_on;uchar tt; /存储温度值uint yanshi1,yanshi2;uchar shuzi110=0x0c0,0x0f9,0x0a4,0x0b0,0x99,0x92,0x82,0x0f8,0x80,0x90;uchar shuzi210=0x0c0,0x0cf,0x0a4,0x86,0x8b,0x92,0x90,0x0c7,0x80
28、,0x82;void delay_18b20(uint);uchar ReadOneChar(void);uchar readtemperature(void);void WriteOneChar(uchar);void KEY_check(void);void alarm(void);void lingsheng();void xuanzhuan(uchar miao);/*延时*/void delay(uint t) /延时约100US uint i,j; for(i=0;i<t;i+) for(j=0;j<11;j+);/*显示*/void xianshi(uchar tem
29、p) if(p17) P1=temp; else P1=0x7f&temp; delay(3);/*定时器T0*/void timer0() interrupt 1TH0=-50000/256;TL0=-50000%256; /6M晶振定时100MSjishu1+;if(jishu1>=10)jishu1=0;miao+;p33=0; delay(100);p33=1;xuanzhuan_flag=1;if(miao>=60)miao=0;fen+;p37=1;p37=0;if(fen>=60)shi+;p33=0;fen=0;if(shi>=24)shi=0;
30、if(set_model=0) /未处于设置状态if(miao%20=0&&TP_read_flag=1) /每20S显示一次温度ET0=0; tt=readtemperature(); /读取温度ET0=1;wendu=1; /TP_read_flag=0;else if(miao%20!=0)TP_read_flag=1;wendu=0;/*外部中断INT0*/ void int0(void) interrupt 0 / 2号按键变量+按下 /delay(800); if(!p32) /while(!p32); EX1=0; /执行外中断0的时候将外中断1关掉,避免产生干扰
31、 switch(disp) case 2: shi+; if(shi=24) shi=0; break; case 3: fen+; if(fen=60) fen=0; break; case 4: nao1_shi+; if(nao1_shi=24) nao1_shi=0; break; case 5: nao1_fen+; if(nao1_fen=60) nao1_fen=0; break; case 6: nao2_shi+; if(nao2_shi=24) nao2_shi=0; break; case 7: nao2_fen+; if(nao2_fen=60) nao2_fen=0;
32、 break; default:; TR1=1; /开启定时器1,查询是否响应减法运算 IE1=0; /开外中断1之前使其中断标志位清零,避免了因干扰产生的中断的干扰 EX1=1; /*定时器T1*/void timer1(void) interrupt 3 TH1=-2000/256; TL1=-2000%256; xuanzhuan(miao);/*ds18b20 延时函数*/void delay_18b20(uint i) while(i-);/*初始化函数*/Init_DS18B20(void) bit x; p32 = 1; /DQ复位 delay_18b20(2); /稍做延时 p
33、32 = 0; /单片机将DQ拉低 delay_18b20(50); /精确延时 大于 480us p32 = 1; /拉高总线 delay_18b20(10); x=p32; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay_18b20(10);/*读一个字节*/uchar ReadOneChar(void) uchar i=0; uchar dat = 0; for (i=8;i>0;i-) p32 = 0; / 给脉冲信号 dat>>=1; p32 = 1; / 给脉冲信号 if(p32) dat|=0x80; delay_18b20(5); ret
34、urn(dat);/*写一个字节*/void WriteOneChar(unsigned char dat) uchar i=0; for (i=8; i>0; i-) p32 = 0; p32 = dat&0x01; delay_18b20(5); p32 = 1; dat>>=1; delay_18b20(5);/*读取温度*/uchar readtemperature(void) uchar a=0; uchar b=0; uchar t=0; Init_DS18B20(); WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneCh
35、ar(0x44); / 启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度 a=ReadOneChar(); /读取温度值低位 b=ReadOneChar(); /读取温度值高位 a=a>>4; /低位右移4位,舍弃小数部分 t=b<<4; /高位左移4位,舍弃符号位 t=t|a; return(t);/*初始化学号显示*/void init() uchar temp1,temp2,temp3,temp4; temp1
36、=shuzi11; /显示学号0222 temp2=shuzi20; temp3=shuzi11; temp4=shuzi10; yanshi1=100; yanshi2=20; xianshi(temp1);/动态显示 p35=0; delay(yanshi1); p35=1; xianshi(temp2); p34=0; delay(yanshi1); p34=1; xianshi(temp3); p31=0; delay(yanshi2); p31=1; xianshi(temp4); p30=0; delay(yanshi2); p30=1;/*主函数*/void main() uch
37、ar temp1,temp2,temp3,temp4; uchar i; for(i=0;i<120;i+) init(); delay(3); delay(100); ii=0;jj=0; BEEP=0; delay(250); BEEP=1; delay(250); BEEP=0; delay(200); BEEP=1; clock_co=0; flag=1; disp=1; /初始化默认显示时间 wendu=0; /默认显示时间 p37=0; PT0=1; /使定时器0中断优先 TMOD=0x11;/开定时器0,工作方式1 ET0=1; ET1=1; EA=1; TR0=1; TR
38、1=1; TH0=-50000/256; TL0=-50000%256; /6M晶振定时100MS TH1=-4000/256; TL1=-4000%256; while(1) KEY_check(); alarm(); if(!wendu) /wendu=0显示时间 switch(disp) case 1: temp1=shuzi1fen%10; /正常显示时间 temp2=shuzi2fen/10; temp3=shuzi1shi%10; temp4=shuzi1shi/10; yanshi1=20; yanshi2=20; break; case 2: /时设置显示状态 temp1=sh
39、uzi1fen%10; temp2=shuzi2fen/10; temp3=shuzi1shi%10; temp4=shuzi1shi/10; yanshi1=1; yanshi2=20; break; case 3:/分设置显示状态 temp1=shuzi1fen%10; temp2=shuzi2fen/10; temp3=shuzi1shi%10; temp4=shuzi1shi/10; yanshi1=20; yanshi2=1; break; case 4: temp1=shuzi1nao1_fen%10;/闹1时设置显示状态 temp2=shuzi2nao1_fen/10; temp
40、3=shuzi1nao1_shi%10; temp4=shuzi1nao1_shi/10; yanshi1=1;yanshi2=20; break; case 5: temp1=shuzi1nao1_fen%10;/闹1分设置显示状态 temp2=shuzi2nao1_fen/10; temp3=shuzi1nao1_shi%10; temp4=shuzi1nao1_shi/10; yanshi1=20;yanshi2=1; break; case 6: temp1=shuzi1nao2_fen%10; /闹2时设置显示状态 temp2=shuzi2nao2_fen/10; temp3=shu
41、zi1nao2_shi%10; temp4=shuzi1nao2_shi/10; yanshi1=1;yanshi2=20; break; case 7: temp1=shuzi1nao2_fen%10; temp2=shuzi2nao2_fen/10; temp3=shuzi1nao2_shi%10; temp4=shuzi1nao2_shi/10; yanshi1=20; yanshi2=1; break; else /wendu=0显示温度 yanshi1=10;yanshi2=110; temp1=0x0c6; temp2=0x0c0; temp3=shuzi1tt%10; temp4
42、=shuzi1tt/10; xianshi(temp1);/动态显示 p35=0; delay(yanshi1); p35=1; xianshi(temp2); p34=0; delay(yanshi1); p34=1; xianshi(temp3); p31=0; delay(yanshi2); p31=1; xianshi(temp4); p30=0; delay(yanshi2); p30=1; /*按键操作*/void KEY_check()if(KEY1=0)KEY1_count+;elseKEY1_count=0;if(KEY1_count>=20)KEY1_count=0;if(aram_flag=1)aram_flag=0;elseset_model=1; if(clock_co) disp+; if(disp=8) disp=1;set_model=0; e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校改造装饰工程重点特殊部位处理措施
- 学校“三风”建设中常见问题及措施
- 合同编号(豫财招标采购-2026-1992)
- 展览展会筹备进度计划与保证措施
- 水电站工程质量保证体系及措施
- 与基础设施专业的施工配合措施
- 外墙保温岩棉板协议
- 农业生态循环种植养殖联合合同
- 农民合作社入股参与农业生产协议
- 负载型催化剂设计-洞察及研究
- 2021年成都中医药大学辅导员招聘考试题库及答案解析
- 液相色谱柱使用记录
- 项目检查汇报报告(52张)课件
- 直螺纹套筒现场平行检查及记录表
- 精选芭蕾舞男女演员之间的潜规则汇总
- JJG 856-2015 工作用辐射温度计检定规程-(高清现行)
- 新人教版小学美术五年级上册教学设计(全册)
- J-STD-020D[1].1中文版
- 益美高引风式冷却塔特点介绍
- 1沥青混合料生产工艺
- 相亲相爱 简谱
评论
0/150
提交评论