版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、系统基本方案选择和论证 单片机芯片的选择本设计采用at89s51芯片作为硬件核心,该芯片采用flash rom,内部具有4kb rom存储空间,相对于本设计而言程序空间完全够用。能于3v的超低压工作,而且与mcs-51系列单片机完全兼容,而且运用于电路设计中时具备isp在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,避免芯片的多次拔插对芯片造成的损坏。显示模块选择方案和论证方案一: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.方案二: 采用le
2、d数码管动态扫描,led数码管价格虽适中,对于显示数字也最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。但是由于数码管动态扫描需要借助74ls164移位寄存器进行移位,该芯片在电路调试时往往会有很多障碍,所以不采用led数码管作为显示2。方案三: 采用lcd液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见3,对于电子万年历而言,一个1602的液晶屏即可,价格也还能接受,需要的接口线较多,但会给调试带来诸多方便,所以此设计中采用lcd1602液晶显示屏作为显示模块.时钟芯片的选择方案和论证方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月
3、、日、星期、时、分、秒计数。采用此种方案虽然可以减少时钟芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二:采用ds1302时钟芯片实现时钟,ds130是美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个318的用于临时性存放数据的ram寄存器。ds1302是ds1202的升级产品,与ds1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后
4、背电源进行涓细电流充电的能力。主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768khz晶振4。因此,本设计中采用ds1302提供时钟。温度传感器的选择方案与论证方案一: 使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行a/d转换。此设计方案需用a/d转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差5。方案二: 采用数字式温度传感器ds18b20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单
5、片机连接,可以避免a/d模数转换模块,降低硬件成本,简化系统电路6。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。因此,本设计ds18b20温度传感器作为温度采集模块。电路设计最终方案决定 综上各模块的选择方案与论证,确定最后的主要硬件资源如下:采用at89s51作为主控制系统;ds1302提供时钟;ds18b20作为数字式温度传感器;lcd1602液晶屏作为显示。系统的硬件设计与实现电路设计框图 本系统的电路系统框图如图1所示。at89s51单片机对ds1302和ds18b20写入控制字并读取相应的数据,继而控制lcm1602作出对应的显示。lcd1602液晶显示模块at89s5
6、1主控模块键盘控制模块ds1302时钟模块温度采集模块 图1 系统硬件框图系统硬件概述本电路是由at89s51单片机作为控制核心,能在3v超低压工作,at89s51是一个低功耗,高性能cmos 8位单片机,片内含4kbytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s51可为许多嵌入式控制应用系统提供高性价比的解决方案;时钟电路由ds13
7、02提供,它是一种高性能、低功耗、带ram的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个31*8的用于临时性存放数据的ram寄存器。可产生年、月、日、周、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由ds18b20完成,它具有独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯,测温范围 55125,固有测温分辨率0.5,支持多
8、点组网功能,多个ds18b20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温,工作电源:35v/dc,在使用中不需要任何外围元件;显示部份由lcd1602液晶显示器完成,该显示器为工业字符型液晶,能够同时显示16x02即32个字符(16列2行)。主要单元电路的设计 at89s52单片机主控制模块的设计 at89s52是一个低功耗,高性能cmos 8位单片机,片内含4k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存
9、储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s51可为许多嵌入式控制应用系统提供高性价比的解决方案。at89s51具有如下特点:40个引脚,4kbytes flash片内程序存储器,128bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。此外,at89s51设计和配置了振荡频率可为0hz并可通过软件设置省电模式。空闲模式下,cpu暂停工作,
10、而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以适应不同产品的需求。at89s52单片机为40引脚双列直插芯片,有四个i/o口p0,p1,p2,p3,mcs-51单片机共有4个8位的i/o口(p0、p1、p2、p3),每一条i/o线都能独立地作输出或输入7。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash
11、编程时,p0口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。 p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外
12、部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。i/o口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经
13、过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。输入缓冲器cpu将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,如果不对端口置1,端口锁存器原来的状态有可能为0q端为0q为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类i/o口被
14、称为准双向口。89c51的p0/p1/p2/p3口作为输入时都是准双向口。 单片机的最小系统如图2所示:18引脚和19引脚接时钟电路,xtal1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,xtal2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端.单片机的最小系统如下图所示:图2中的晶振频率为12mhz,复位方式为上电自动复位8-9。 单片机中断系统 在提及单片机的最小系统后,现对单片机的另一重要应用系统即中断系统做一个比较详细的介绍。 在cpu 与外设交换信息时,存
15、在着一个快速cpu与慢速的外设之间的矛盾。为解决这个问题,发展了中断的概念。单片机在某一时刻只能处理一个任务,当多个任务同时要求单片机处理时,这一要求应该怎么实现呢?通过中断可以实现多个任务的资源共享。所谓的中断就是,当cpu正在处理某项事务的时候,如果外界或者内部发生了紧急事件,要求cpu暂停正在处理工作而去处理这个紧急事件,待处理完后,再回到原来中断的地方,继续执行原来被中断的程序,这个过程称作中断。 从中断的定义我们可以看到中断应具备中断源、中断响应、中断返回这样三个要素。中断源发出中断请求,单片机对中断请求进行响应,当中断响应完成后应进行中断返回,返回被中断的地方继续执行原来被中断的程
16、序。mcs-51单片机的中断源共有两类,它们分别是:外部中断和内部中断。外部中断0(int0)来自p3.2引脚,通过外部中断0触发方式控制位it0(tcon.0),来决定中断输入信号是低电平有效还是负跳变有效。一旦输入信号有效,便使ie0标志置一,向cpu申请中断;外部中断1(int1)来自p3.3引脚,通过外部中断1触发方式控制位it1(tcon.2),来决定中断输入信号是低电平有效还是负跳变有效。一旦输入信号有效,便使ie0标志置一,向cpu申请中断。内部中断有三个:tf0,tf1,ri或ti。tf0(tcon.5),片内定时/计数器t0溢出中断请求标志。当定时/计数器t0发生溢出时,置位
17、tf0,并向cpu申请中断;tf1(tcon.7),片内定时/计数器t1溢出中断请求标志。当定时/计数器t1发生溢出时,置位tf1,并向cpu申请中断;ri(scon.0)或ti(scon.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位ri或当串行口发送完一帧串行数据时置位ti,向cpu申请中断10。 mcs-51单片机为用户提供了四个专用寄存器,来控制单片机的中断系统。定时器控制寄存器(tcon),该寄存器用于保存外部中断请求以及定时器的计数溢出。进行字节操作时,寄存器地址为88h。按位操作时,各位的地址为88h8fh,当cpu采样到int0(或int1)端出现有效中断请求时,i
18、e0(ie1)位由硬件置“1”。当中断响应完成转向中断服务程序时,由硬件把ie0(或ie1)清零, 当计数器产生计数溢出时,相应的溢出标志位由硬件置“1”。当转向中断服务时,再由硬件自动清“0”。计数溢出标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用;串行口控制寄存器(scon),进行字节操作时,寄存器地址为98h。按位操作时,各位的地址为98h9fh,当发送完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”,当接收完一帧串行数据后,由硬件置“1”;在转向中断服务程序后,用软件清“0”。串行中断请求由ti和ri的逻辑或得到
19、。就是说,无论是发送标志还是接收标志,都会产生串行中断请求;中断允许控制寄存器(ie),进行字节操作时,寄存器地址为0a8h。按位操作时,各位的地址为0a8h0afh,可见,mcs-51单片机通过中断允许控制寄存器对中断的允许(开放)实行两级控制。即以ea位作为总控制位,以各中断源的中断允许位作为分控制位。当总控制位为禁止时,关闭整个中断系统,不管分控制为状态如何,整个中断系统为禁止状态;当总控制位为允许时,开放中断系统,这时才能由各分控制位设置各自中断的允许与禁止。mcs-51单片机复位后(ie)00h,因此中断系统处于禁止状态。单片机在中断响应后不会自动关闭中断。因此在转中断服务程序后,应
20、根据需要使用有关指令禁止中断,即以软件方式关闭中断。中断优先级控制寄存器(ip)mcs-51单片机的中断优先级控制比较简单,因为系统只定义了高、低2个优先级。高优先级用“1”表示,低优先级用“0”表示。各中断源的优先级由中断优先级寄存器(ip)进行设定。ip寄存器地址0b8h,位地址为0bfh0b8h。时钟电路模块的设计 ds1302 是美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟芯片,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds130
21、2内部有一个318的用于临时性存放数据的ram寄存器。ds1302是ds1202的升级产品,与ds1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力11。 ds1302的引脚排列,其中vcc1为后备电源,vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。ds1302由vcc1或vcc2两者中的较大者供电。当vcc2大于vcc10.2v时,vcc2给ds1302供电。当vcc2小于vcc1时,ds1302由vcc1供电。x1和x2是振荡源,外接32.768khz晶振。rst是复位/片选线,通过把rst输入驱动置高电平来启动所有的数据传送。r
22、st输入有两种功能:首先,rst接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,rst提供终止单字节或多字节数据的传送手段。当rst为高电平时,所有的数据传送被初始化,允许对ds1302进行操作。如果在传送过程中rst置为低电平,则会终止此次数据传送,i/o引脚变为高阻态。上电运行时,在vcc2.0v之前,rst必须保持低电平。只有在sclk为低电平时,才能将rst置为高电平。i/o为串行数据输入输出端(双向),sclk为时钟输入端。ds1302的控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入ds1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取ram
23、数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 在控制指令字输入后的下一个sclk时钟的上升沿时,数据被写入ds1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个sclk脉冲的下降沿读出ds1302的数据,读出数据时从低位0位到高位7。ds1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd码形式。此外,ds1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与ram相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。ds13
24、02与ram相关的寄存器分为两类:一类是单个ram单元,共31个,每个单元组态为一个8位的字节,其命令控制字为c0hfdh,其中奇数为读操作,偶数为写操作;另一类为突发方式下的ram寄存器,此方式下可一次性读写所有的ram的31个字节,命令控制字为feh(写)、ffh(读)。ds1302与cpu的连接需要三条线,即sclk(7)、i/o(6)、rst(5)。实际上,在调试程序时可以不加电容器,只加一个32.768khz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入ds18b20,同时显示实时温度。只要占用cpu一个口线即可。单片机与ds1302连接图如图3
25、所示:图3 ds1302与单片机的连接温度采集模块设计 采用数字式温度传感器ds18b20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用0.7与ds18b20的i/o口连接加一个上拉电阻,vcc接电源,vss接地。独特的一线接口,只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为3.0v至5.5v无需备用电源 测量温度范围为-55度至+125度。-10度至+85度范围内精度为0.5度温度传感器可编程的分辨率为912位12。ds18b20连线如图4所示: 图4 ds18b20管脚连线显示模块的设计如
26、下图5所示,采用lcm1602液晶显示器,单片机p1口作为数据输出口,rs,rw,e分别通过10k的上拉电阻连接到单片机的p0.0,p0.1,p0.2。vdd接5v电源,vss接地。vee为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度)。rs为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。r/w为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。e(或en)端为使能(enable)端,下降沿使能。db0-db7为双向数据总线,同时最高位db7也是忙信号检测位。bla、b
27、lk分别为显示器背光灯的正、负极13。 图5 lcm1602与单片机的连接 系统仿真电路 本次仿真使用软件protues7.0,该软件元件库丰富,元件封装要求相对简单且参数调整方便,除此之外,程序还可进行动态调试。系统仿真截图如图9所示: 图9 系统仿真电路图 如图,左上角为显示模块lcm1602,u1是时钟芯片ds1302,u2是主控模块at89c51,u3为温度传感器ds18b20,右下角是键盘控制模块。系统的软件设计 开始初始化读、写日期、时间和温度分离日期时间温度显示值 显示子程序日期、时间修改子程序闰月子程序 返回 程序流程框图 图10 主程序流程图主程序流程图如上图10所示。由于l
28、cm1602,ds18b20,ds1302的数据读取及指令写入函数均已在各自的头文件中完成,在主程序中只须引用即可。由于在硬件电路方面上设计了时间调整按键和开关,因此应有对应的时间调整程序。时间调整程序的流程图如图11所示。 图11 时间调整程序流程图子程序 由于本系统程序涉及的可编程器件有lcm1602,ds18b20以及ds1302,各芯片的控制字及数据读写如果混杂,将会使程序可读性大大降低,因此采用子程序的方法进行调用并将其封装于各自的头文件中。详尽的程序设计见附录。系统测试硬件测试在protues仿真结束后,于焊接板上完成了硬件组装。在调试硬件时遇到过很多问题,但只要细心、认真检查这些
29、问题都是可以避免的,主要问题及解决办法现列如下:(1) 接通电源后lcm1602没有正确的显示。在不通电状态下用万用表检测电路是否正常连接,在检查回路时发现有的点之间看似连接,但由于虚焊导致其并无电气连接,只能对焊脚进行在加工直到解决问题。(2) 电路工作一段时间之后有的芯片发热严重。经查发现原来是有尖锐的管脚刺破邻近的漆包线造成短路,断掉该线并再次连接可解决问题。软件测试由于本系统涉及到多个子程序,多个芯片的编程。首先必须对可编程芯片的控制字即其控制指令要熟记于心。其次,芯片很多都有时钟输入端,需要晶振支持。对芯片的读写都需要在相应的触发沿到来时才能进行。由于ds18b20是串行通信数据,只
30、用一个口线传输,在处理采集的模拟信号时需要一定的时间,会对延时有较高要求。所以在调用温度子程序时,先关闭定时器1中断允许,在温度子程序反回时再打开定时器1中断允许。主程序:#include#includelcd1602.h#includeds1302.h#includeds18b20.h#define uint unsigned int#define uchar unsigned charuint b6;/年、月、日、时、分、秒uchar code row1=2009-01-01;uchar code row2=00:00:00;uchar year112=31,28,31,30,31,30,
31、31,31,30,31,30,31;/平年uchar year212=31,29,31,30,31,30,31,31,30,31,30,31;/润年uchar j6=0x85,0x88,0x8b,0x84+0x40,0x87+0x40,0x8a+0x40;/lcd地址uchar i,k,jj=0,w,clock=0,bigclock=0,c=0,num;/i循环数,k温度缓存,jj地址位uint temp;sbit b1=p30;/设置sbit b2=p31;/上调sbit b3=p32;/下调sbit b4=p33;/转换sbit b5=p34;/闹钟sbit speaker=p35;lcd
32、scan()for(i=0;i6;i+) lcdwrite(ji);lcdshuju(a11-i*2+0x30);lcdwrite(ji+0x01);lcdshuju(a10-i*2+0x30);void key()if(b1=0) dsaddshuju(0x80,(a14)+a0+0x80);while(b1=0)for(i=0;iyear2b1-1)b2=1;else if(b2year1b1-1)b2=1;if(b1=13)b1=1;if(b0=100)b0=0;if(b3=0)delay(3);bjj-;if(b5=-1)b5=59;if(b4=-1)b4=59;if(b3=-1)b3
33、=23;if(b0%4=0&b0%100!=0) | b0%400=0)if(b2=0)b2=year2b1-1;else if(b2=0)b2=year1b1-1;if(b1=0)b1=12;if(b0=-1)b0=99;for(i=0;i6;i+) a11-i*2+clock=bi/10;a10-i*2+clock=bi%10;lcdwrite(jjj);lcdshuju(0);lcdwrite(jjj+1);lcdshuju(0);delay(200);lcdwrite(jjj);lcdshuju(a11-2*jj+clock+0x30);lcdwrite(jjj+1);lcdshuju
34、(a10-2*jj+clock+0x30);delay(200);if(b1=1) dsaddshuju(0x80,(a14)+a0);dson();if(b5=0)clock=12;void main()speaker=0;lcdrw=0;dson();lcdon();lcdwrite(0x83);for(i=0;i10;i+)lcdshuju(row1i);delay(1);lcdwrite(0x84+0x40);for(i=0;i8;i+)lcdshuju(row2i);delay(1);dsrst=0;dssclk=0;while(1)for(i=0;i4)&0x0f;dsrst=1;
35、dswrite(0x8d);k=dsread();dsrst=0;a10=k&0x0f;a11=(k4)&0x0f;delay(100);lcdscan();key();if(b5=0)for(i=0;i12;i+)if(ai+12=ai)num+;if(num=12)bigclock=1;else num=0;lcdwrite(0x8e);lcdshuju(&);else lcdwrite(0x8e);lcdshuju(0x00);if(bigclock=1) speaker=1;c+;if(c=100)bigclock=0;speaker=0;temp=readtemperature();
36、/temp是uint型的。不然会出现温度到25后回00的现象。可能是由于十六进制与十进制的差异。lcdwrite(0x8d+0x40);lcdshuju(temp/100+0x30);lcdwrite(0x8e+0x40);lcdshuju(temp/10%10+0x30);子程序:lcm1602头文件:#include#define uint unsigned int#define uchar unsigned charsbit lcdrs=p00;sbit lcdrw=p01;sbit lcden=p02;void delay(uint z) uint x,y; for(x=z;x0;x-
37、) for(y=110;y0;y-);/1毫秒左右延时/lcdwrite() lcd写指令void lcdwrite(uchar write)lcdrs=0;p1=write;delay(1);lcden=1;delay(1);lcden=0;/lcdshuju() lcd写数据void lcdshuju(uchar shuju)lcdrs=1;p1=shuju;delay(1);lcden=1;delay(1);lcden=0;/lcdon() lcd显示初始化void lcdon()lcden=0;lcdwrite(0x38);/显示模式lcdwrite(0x0c);/开显示,光标不闪烁lcdwrite(0x06);/光标设置lcdwrite(0x01);ds18b20头文件:#include#define uint unsigned int#define uchar unsigned charsbit dq=p03;void sdelay(unsigned int i)while(i-);ds18b20on(void)/ds18b20初始化uchar x=0;dq=1; sdelay(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第七章 膳食营养指导与疾病预防课件
- 2024年度工程协议执行与监管台账
- 2024年财务外包代理协议范本
- XX砖厂2024年度加工承揽协议范本
- 2024年度户外墙面广告发布协议
- 2024型号铝合金买卖协议样本
- 2024年度原材料采购协议样式
- 2024年房屋买卖协议简
- 学校章程建设实施方案全套
- 2024年度股东权益合作协议样本
- 期中测评试卷(1-4单元)(试题)-2024-2025学年人教版三年级数学上册
- GB/T 15822.1-2024无损检测磁粉检测第1部分:总则
- 新质生产力解读课件
- 经理的困惑案例分析
- 海水淡化反渗透装置检修维护说明书
- 建筑工程专业英语unitPPT课件
- 学生对教师评价表(共8页)
- 批发零售大个体 E204-3批发和零售业产业活动单位(个体经营户)商品销售和库存
- 异辛酸钠合成工艺及建设项目
- 西电计组课程设计报告
- 汽车买卖合同工商示范文本
评论
0/150
提交评论