




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Z S T UZhejiang Sci-Tech University 单片机应用设计报告设计题目: 多功能电子时钟 专业班级: 姓名学号: 指导教师: 二零一三年七月摘要基于单片机的定时和控制装置在许多行业有着广泛的应用,而数字钟是其中最基本的,也是最具有代表性的一个例子。在基于单片机系统的数字钟电路中,除了基本的单片机系统和外围电路外,还需要外部的控制和显示装置。本论文基于单片机原理技术介绍了一款于STC90C51RD+(下文以AT89C51为介绍)芯片作为核心控制器的单片机多功能数字电子钟的设计与制作,软件程序编辑的实现。通过使用芯片的内部的可编程定时器/计数器,再通过对内部中断程序的设置来设计出时钟程序,即设计出了电子时钟的核心。然后在核心电路的基础上设计出了相应的扩展电路,使本设计更加实用。采用数码管显示时间,LCD1602显示温度。当定时时间到时,蜂鸣器会发出滴滴的声音提醒用户,并在LCD1602上显用户将要做的事情。用户可以通过三个独立按键修改当前时间显示。关键词:单片机;数码管;温度传感器;定时;目录一、51单片机基本原理简介31.1 AT89C51单片机引脚功能3二、设计框图及整机概述32.1 系统总体结构框图32.2 设计目标及实现功能32.3 系统的硬件设计32.3.1 显示部分电路的设计32.3.2 控制部分电路的设计3三、系统的软件设计33.1 系统程序设计总框图33.2 各模块的程序设计3四、系统调试34.1 硬件调试34.2 软件调试34.3 调试结果3五、设计总结35.1 设计难点35.2 可能出现的问题35.3 设计结果35.4、设计心得及体会3六、参考文献3附录31 实物图32 原理图33 程序代码3一、51单片机基本原理简介1.1 AT89C51单片机引脚功能 如图所示,图为单片机的基本外围电路。20管脚接地,40管脚接+5V电源,为单片机工作提供电源。18及19管脚接晶振,为单片机提供时钟信号,晶振为12MHz。晶振的振荡频率越高,系统的时钟频率越高,单片机工作的速度也越高。对于液晶显示电路的设计,需要单片机有较高的工作效率,所以选择比较高频率的晶振,从而提高液晶屏幕的刷新速率,获得更加连贯、流畅的图像显示。根据需要还可以加上复位电路,复位是单片机的初始化操作。或者当单片机程序运行出错导致死锁状态的时候,为摆脱困境,也需要按复位键以重新启动。 图1.1 AT89C51单片机基本外围电路P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。RST:复位输入。晶振工作时,RST 脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96个晶振周期的高电平。特殊寄存器AUXR( 地址8EH) 上的DISRTO 位可以使此功能无效。DISRTO默认状态下,复位高电平有效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52 从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA 必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP 电压。二、设计框图及整机概述2.1 系统总体结构框图在本设计中,LED七段数码管和LCD1602作为显示装置分别显示,按键作为输入装置,可以修改时间。利用DS18B20中的温度传感器可完成对温度的测量,并显示在LCD1602上。当闹钟定的时间到时,蜂鸣器会发出滴滴的声音,LCD1602上显示定时任务。显示器复位电路51芯片按键电路时钟电路温度电路蜂鸣器图2.1 系统总体结构框图2.2 设计目标及实现功能1、数码管能够显示时间变化;2、LCD1602能够显示温度;3、定时时间到,蜂鸣器响起,LCD1602显示要做的事情;4、通过按键改变时间;2.3 系统的硬件设计电路是由控制部分和显示部分两大部分组成。利用单片机程序进行控制,并通过数码管进行显示。2.3.1 显示部分电路的设计 LED数码显示管的基本原理用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态显示,按译码方式可分为硬件译码和软件译码。本设计也采用动态显示方案。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的,约1ms左右,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。单片机AT89S52通过74HC573和74H138(38译码器)驱动数码管显示数值, 显示部分采用普通共阴极数码管显示,采用动态扫描,以减少硬件电路。图2.2 数码管显示部分电路 LCD1602显示的基本原理采用LCD显示,LCD显示具有丰富多样性,灵活性,电路简单、易于控制而且功耗小,对于信息量多的系统,是比较适合的,LCD液晶显示模块采用LCD1602型号,具有很低的功耗,正常工作室电流仅2.0mA/5.0V。通过编程实现总动关闭屏幕能够更有效地降低功耗。LCD1602分两行显示,每行可现实多达16个字符,其内部的字符发生器已经存储了160个不同的点阵字符图形,通过内部指令可实现对其显示多样的控制。图2.3 LCD1602电路在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。2.3.2 控制部分电路的设计 时钟模块利用芯片内部的振荡器,然后在引脚XTAL1和引脚XTAL2两端接晶体谐振器,就构成了稳定的自激振荡器,根据计算其发出的脉冲数,来计算时间。外接晶振时,C1和C2的值为22pF; C1、C2对频率有微调作用,晶体谐振器的频率12MHz。为了减少寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机芯片靠近。设置了24小时制,调整计时的按键。 温度模块主要由18B20通过单片机AT89C51中的温度程序不断的检测温度来显示温度。18B20温度传感器工作原理:DS18B20能直接读出被测温度,并可根据实际要求通过简单的编程实现912位的数字值读数方式,DS18B20的性能特点如下: 1、独特的单线接口仅需要一个引脚进行通信; 2、负电压特性,电源极性接反时,不会因发热而 烧毁,但不能正常工作。 3、无须外部器件; 4、可通过数据线供电,电压范围为3.0-5.5V; 5、零待机功耗;图2.4 LCD1602电路 6、温度以9或12位数字量读出; 7、用户可定义的非易失性温度报警设置; 8、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 蜂鸣器蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增用ULN2003来放大电流。我们可以通过程序控制P1.2脚的电平来使蜂鸣器发出声音和关闭。程序中改变单片机P1.2引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变P1.2输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。 复位模块单片机复位电路是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从该状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。无论是在单片机刚接上电源时,还是断电后或者发生故障后都要复位。图2.5 复位电路 按键模块按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键, 图2.6 LCD1602电路直接用 I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。三、系统的软件设计3.1 系统程序设计总框图开始系统初始化LCD1602显示温度数码管显示时间Y定时时间到NY按键按下蜂鸣器响显示要做的事情15s后 N按键3按键2按键1停止分钟-1分钟+1小时+1图3.1 系统程序设计总框图3.2 各模块的程序设计3.2.1 计时程序计时程序是实现电子时钟的核心内容,本程序用定时/计数器0来控制和更新时间,用定时/计数器1来进行动态扫描。TMOD |=0x01; /定时器0 10ms in 12M crystal 用于计时TH0=0xd8;TL0=0xf0;/55536,10毫秒ET0=1;TR0=1; /启动定时/计数器0/ TMOD |=0x10; /定时器1用于动态扫描TH1=0xF8;TL1=0xf0;/1ms扫描一次ET1=1;TR1=1; /启动定时/计数器0 EA =1; /开总中断3.2.2 温度程序DS18B20的数据读写是通过时序处理来确认信息交换的。(1)写时序:有两种写时序:写1时序和写0时序。总线控制器通过写1时序写逻辑1到DS18B20,写0时序写逻辑0到DS18B20。所有写时序必须最少持续60us,包括两个写中期之间至少1us的回复时间。当总线控制器把数据线从逻辑高电平拉到低电平的时候,写时序开始。(见图3.1)图3.1 读/写时序图总线控制器要产生一个写时序,必须把数据线拉到低电平后释放,在写时序开始后的15us释放中线。当总线被释放的时候,5K的上拉电阻将拉高总线。总控制器要生成一个写0时序,必须把数据线拉到低电平并持续保持(至少60us)。总线控制器初始化写时序后,DS18B20在一个15us到60us的窗口内对I/O线采样。如果线上是高电平,就是写1。如果线上是低电平,就是写0。(2)读时序:总线控制器发起读时序时,DS18B20仅被用来传输数据给控制器。因此,总线控制器在发出读暂存器指令BEH后必须立刻开始读时序,DS18B20可以提供请求信息。除此之外,总线控制器在发出发送温度转换指令44H或召回EEPROM指令B8H之后读时序。所有读时序必须最少60us,包括两个度周期间至少1us的恢复时间。当总线控制器把数据线从高电平拉到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放。在总线控制器发出读时序后,DS18B20通过拉高或拉低总线来传输1或0。当传输逻辑0结束后,总线被释放,通过上拉电阻回到上升沿状态。从DS18B20输出的数据在读时序的下降沿出现后15us内有效。因此,总线控制器在读时序开始后必须停止把I/O脚驱动为低电平15us,以读取I/O脚状态。四、系统调试4.1 硬件调试 由于本次设计采用的是自己网上买的开发板,因此,在硬件方面无需在调试。只是有些线还是要自己连接的。4.2 软件调试本程序采用单片机C语言编写,用Keil编译器编程模拟调试。并通过STC将生成的hex文件下载至单片机中。4.3 调试结果在调试开始前,将下载线与电脑相接,第8个数码管就有一部分亮,LED灯也有两个微亮,由此可得该开发板接触方面并不是很好。程序下载好,运行后,LCD1602第二行显示当前温度。其中的temperature的字母t出现在第一行,这令我非常的奇怪。后面我就分两次写,最终被我给搞定了。定时时间到时,蜂鸣器滴滴响起, LCD1602显示定时要做的事情,时长15秒。与此同时,数码管有微微的闪动,但并不影响其计时的效果。期间有时用手触摸LCD1602会导致其显示失常。当蜂鸣器在工作时,不可按下按键,有可能会影响LCD1602显示功能,并且此时也不能更改数码管的数值。五、设计总结5.1 设计难点 (1):温度设计模块的设计; (2):LCD1602显示模块的设计; (3):数码管时间的显示及更新; (4):单片机个功能模块的综合设计。5.2 可能出现的问题 (1):温度显示,与实际偏差大; (2):LCD显示模块的功能显示不正常; (3):闹铃设计与其他时间功能设计冲突;(4):偶尔在显示时会出现一些异常情况。5.3 设计结果 经过调试,和多次改进,本设计达到了预期的效果。数字钟可以正常显示时间,LCD1602可以显示温度,能够正常反映出室温情况,并且每隔一小时更新一次。当定时时间到时,蜂鸣器会发出滴滴响声提醒用户,与此同时,还会在LCD1602上显示定时所要完成的事项。当然,还可以根据需要,增加整点报时的功能;在定时方面仍需改进,使得用户可以通过按键或其他方式修改定时时间;还可以增加日期和星期的显示。总之,本设计提供了一套行之有效的数字钟的设计方案,并且成本较低,具有较高的实用性。5.4、设计心得及体会首先再确定了这个题目之后,我先考虑的是如何应用LCD1602,因为在上个学期我就上过ARM课,学过关于液晶的一些东西,前一阵子也玩了下nokia5110,所以想看看我对于液晶方面的东西掌握的怎么样。首先我到网上搜关于LCD1602的程序,然后再搜了一份中文资料,一边看程序,一边看中文资料,还好程序有注释,看起来也不是很费劲,然后就把它编译,下载到开发板中,效果还不错,这段程序就被我利用起来了。然后我自己用字模软件画了个字,因为它是5*8的,而字模要用8*8,所以,前面三列是空白的,在后面5给点出来,下载进去运行,发现字是倒的,于是我就在字模里,把字旋转了90。,然后显示的字终于是正的了。其实我本来想用汉字显示要做的事情,后来发现用汉字这一方法不行;因为主程序采用循环的,就是一遍一遍不断扫描的,用这程序显示的汉字会有延迟效果,而且字还会乱走,不稳定,于是我就改成显示英文了,英文的显示一直很稳定。接下去是时钟程序了,时钟程序的难点在于数码管的显示。对于数码管我一直是处于是懂非懂的状态,虽然我最后我把程序搞出来了,但并不代表我真的就懂了。数码管显示的数据需要我们提前列在一数组里,要用时再取。我们可以通过控制P2端口来控制哪一位数码管亮。因为我们要做时钟,所以8个数码管都要点亮,但实际上,一次只能点亮一个数码管,因此,我决定采用动态扫描的方式进行,并且扫描的时间要足够短,不能让人眼有闪烁的感觉,其次,还要不停的刷新数值。最难的其实就是温度测量这一模块了。也是花了我最长的时间。到现在我还处在非懂的地步。对于DS18B20,我也想通过学LCD160那样把它掌握,但实际学起来并不是很尽人意。我程序看了一遍又一遍,但都不是很懂,最不懂的在于他的温度换算,我就是看不懂什么意思,不过最后勉强懂了。这几天经常熬夜真心受不了。总体说来这次课程设计还是让我学到了不少东西,又让我的自学能力有了进一步的提升。其次,当你跟单片机接触越多,你会发现你会越来越了解单片机,而且很有可能在某一时刻,你不懂的问题,突然你就懂了。还有就是想法跟实际永远有很大的差距,不要有太多想法,当你动手后,你就知道自己该往哪走,哪里才是最适合自己的。六、参考文献1张义和等编著.例说51单片机(语言)M.人民邮电出版社.2008.42宋彩利等编著.单片机原理与C51编程M.西安交通大学出版社.2011.73高海宾等编著.Altium Designer10从入门到精通M.机械工业出版社.20124LCD1602中文资料OL. /view/a972df55804d2b160b4ec060.html,2013-7-15 LCD1602显示中文汉字OL./view/60c7eaef6294dd88d0d26b1d.html,2013-7-16 wang1jin带您从零学单片机(蜂鸣器)OL./view/3591a6fdc8d376eeaeaa31a1.html,2013-7-37 DS18B20_测温系统OL./view/630a6b63ddccda38376baf29.html,2013-7-48 DS18B20的工作原理及应用OL./view/a53224146edb6f1aff001f03.html,2013-7-4附录1 实物图2 原理图3 程序代码/* 项目名称: 多功能电子时钟* 描述 : 采用数码管显示当前的时间,当定时时间到时,会发出滴滴的 声音提醒用户,并在1602上显示用户将要做的事情。用户可以 通过三个独立按键修改当前时间。此外1602还会显示当前的温 度,每隔一小时更新一次。* 创建人 : 沈嘉琪,李泽一,2013年7月1日*/#include#include#define uchar unsigned char#define uint unsigned int#define jump_ROM 0xCC#define start 0x44#define read_EEROM 0xBE/设置定时时间1/#define h1 12/小时#define m1 30/分钟#define s1 2/秒/设置定时时间2/#define h2 12 /小时#define m2 30/分钟#define s2 19/秒/设置定时时间3/#define h3 12/小时#define m3 31/分钟#define s3 02/秒/sbit KEY1=P32;sbit KEY2=P33;/三个独立按键,可以设置时间sbit KEY3=P34;/sbit Speak =P12;/蜂鸣器器控制脚 /sbit LED=P10;/1602引脚设置/sbit E=P27;/1602使能引脚sbit RW=P26;/1602读写引脚sbit RS=P25;/1602数据/命令选择引脚/sbit DQ = P23; /DS18B20数据口/uchar minute=30,hour=12,second=00; /定义并且初始化值 12:30:00/共阴数码管 0-9 /code uchar tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /uchar Tabl8; /定义缓冲区uchar Co; /变量uint t, e; /变量uchar TMPH,TMPL; /变量/uchar code table=0x08,0x1F,0x09,0x1F,0x0A,0x1B,0x1C,0x1F,; /起 uchar code table1=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07; /自定义字符数据地址/*/程序区/* 名称 : Displaypro( )* 功能 : 显示正常时间*/void Display(void) Tabl0=tabhour/10; Tabl1=tabhour%10;Tabl2=0x40;Tabl3=tabminute/10;Tabl4=tabminute%10;Tabl5=0x40; Tabl6=tabsecond/10;Tabl7=tabsecond%10;/* 名称 : delay()* 功能 : 延时,延时时间大概为5US。* 输入 : 无* 输出 : 无*/void delays()_nop_();_nop_();_nop_();_nop_();_nop_();/* 名称 : delay()* 功能 : 延时函数* 输入 : N* 输出 : 无*/void delay(uint N)int j;for(j=0; jN; j+);void dela(uint M)int j;for(j=0; jM; j+)_nop_();/* 名称 : Reset()* 功能 : 复位DS18B20*/uchar Reset(void)uchar deceive_ready;DQ = 0;delay(29);DQ = 1;delay(3);deceive_ready = DQ;delay(25);return(deceive_ready);/* 名称 : read_bit()* 功能 : 从DS18B20读一个位值* 输入 : 无* 输出 : 从DS18B20读出的一个位值*/uchar read_bit(void)uchar i;DQ = 0;DQ = 1;for(i=0; i3; i+);return(DQ);/* 名称 : write_bit()* 功能 : 向DS18B20写一位* 输入 : bitval(要对DS18B20写入的位值)* 输出 : 无*/void write_bit(uchar bitval)DQ=0;if(bitval=1)DQ=1;delay(5);DQ=1;/* 名称 : read_byte()* 功能 : 从DS18B20读一个字节* 输入 : 无* 输出 : 从DS18B20读到的值*/uchar read_byte(void)uchar i,m,receive_data;m = 1;receive_data = 0;for(i=0; i8; i+)if(read_bit()receive_data = receive_data + (m i);delay(6);return(receive_data);/* 名称 : write_byte()* 功能 : 向DS18B20写一个字节* 输入 : val(要对DS18B20写入的命令值)* 输出 : 无*/void write_byte(uchar val)uchar i,temp;for(i=0; i i;temp = temp & 0x01;write_bit(temp);delay(5);/* 名称 : Delay()* 功能 : 延时子程序,延时时间为 1ms * i* 输入 : i (延时一毫秒的个数)* 输出 : 无*/void De(uint i)uint x,j;for(j=0;ji;j+)for(x=0;x=1001;x+)_nop_();/* 名称 : bit Busy(void)* 功能 : 这个是一个读状态函数,读出函数是否处在忙状态* 输入 : 输入的命令值* 输出 : 无*/bit Busy(void)bit busy_flag = 0;RS = 0;RW = 1;E = 1;delays();busy_flag = (bit)(P0 & 0x80);E = 0;return busy_flag;/* 名称 : wcmd(uchar del)* 功能 : 1602命令函数* 输入 : 输入的命令值* 输出 : 无*/void wcmd(uchar del)while(Busy();RS = 0;RW = 0;E = 0;delays();P0 = del;delays();E = 1;delays();E = 0;/* 名称 : wdata(uchar del)* 功能 : 1602写数据函数* 输入 : 需要写入1602的数据* 输出 : 无*/void wdata(uchar del)while(Busy();RS = 1;RW = 0;E = 0;delays();P0 = del; delays();E = 1;delays();E = 0;/* 名称 : L1602_init()* 功能 : 1602初始化*/void L1602_init(void)wcmd(0x38);wcmd(0x0c);wcmd(0x06);wcmd(0x01);/* 名称 : L1602_char(uchar hang,uchar lie,char sign)* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符显示b ,调用该函数如下 L1602_char(1,5,b)* 输入 : 行,列,需要输入1602的数据* 输出 : 无*/void L1602_char(uchar hang,uchar lie,char sign)uchar a;if(hang = 1) a = 0x80;if(hang = 2) a = 0xc0;a = a + lie - 1;wcmd(a);wdata(sign);/* 名称 : L1602_string(uchar hang,uchar lie,uchar *p)* 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示ab cd ef ,调用该函数如下 L1602_string(1,5,ab cd ef;)* 输入 : 行,列,需要输入1602的数据* 输出 : 无*/void L1602_string(uchar hang,uchar lie,uchar *p)uchar a,b=0;if(hang = 1) a = 0x80;if(hang = 2) a = 0xc0;a = a + lie - 1;while(1)wcmd(a+);if(*p = 0)|(b=16) break;b+;wdata(*p);p+;/* 名称 : play()* 功能 : 让蜂鸣器发出声音*/void play(void)for(t=0;t50;t+)Speak=0;dela(300) ; Speak=1;dela(300) ;Speak=0;dela(300) ;/* 名称 : 主函数* 功能 : 开启定时中断及相关设置,按键扫描,定时扫描,更新温度,显示*/void Main() uint temp;L1602_init();L1602_string(2,2, mperature:);L1602_string(2,1,te);L1602_char(2,15,);L1602_cha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》检测卷讲解附完整答案详解【夺冠】
- 2025年生化分析仪器试剂项目合作计划书
- 储能系统在2025年辅助服务市场定价机制创新与实践案例
- 2025年教师招聘之《幼儿教师招聘》检测卷附答案详解【典型题】
- 2025年教师招聘之《幼儿教师招聘》模考模拟试题附答案详解(研优卷)
- 教师招聘之《幼儿教师招聘》综合检测提分带答案详解(培优a卷)
- 2025年甲基四氢苯酐项目发展计划
- 农产品溯源电商创新创业项目商业计划书
- 移动应用用户增长创新创业项目商业计划书
- 智能医疗诊断辅助创新创业项目商业计划书
- 曲臂式高空作业车专项施工方案
- 2025秋人教统编版二年级语文上册第一单元语文园地一【教案】
- SOP考试题及答案
- 高职院校实训室管理办法
- 电力施工安全管理办法
- 危险化学品生产许可证实施细则(一)(危险化学品无机产品部分)
- 德瑞斯D600变频器说明书
- 2025-2030年中国锂电池回收行业市场深度调研及前景趋势与投资研究报告
- 数字化教育资源在跨学科教学中的应用
- JG/T 127-2017建筑门窗五金件滑撑
- T/CGCC 7-2017焙烤食品用糖浆
评论
0/150
提交评论