欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    课程设计报告(参考模版).doc

    • 资源ID:56395685       资源大小:490KB        全文页数:34页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计报告(参考模版).doc

    课程设计报告课程名称: 单片机课程设计 题 目: 温度报警系统 学 院: 环境与化学工程 系:测控技术与仪器 专 业: 测控技术与仪器 班 级: 测仪102 学 号: 学生姓名: 杨友准 起讫日期: 2012-12-272013-01-07 指导教师: 杨大勇、杨俊清、熊剑 摘 要随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。本文主要介绍了一个基于AT89C52单片机的数字温度报警器系统。详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度报警系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。关键词:单片机;温度检测;AT89C52;DS18B20;目录一、设计任务、目的、描述1二、主要器件简介三、系统设计四、 原理图五、 设计总结、心得体会等六、 参考文献七、 附录一、 设计任务、要求1在本次单片机课程设计中,主要完成如下方面的设计任务:1) 了解单片机技术的发展现状;2) 掌握MCS-51系列80C52的最小电路及外围扩展电路的设计;3) 简述数码管动态显示和矩阵键盘基本原理;4) 了解单片机数据转换功能及工作过程;5) 完成主要功能模块的硬件电路设计及必要的参数确定;6) 用KEIL完成编写系统程序;7) 用PROTUES软件完成原理图的绘制;8) 用LOCHMASTER完成硬件电路设计;9) 以万能版为模板,将所有元件按电路图焊接连线,完成调试。二、方案总体设计方案一:基于STC89C51单片机通过读取温度传感器DS18B20测量温度后存储的数据,之后送去数码管显示。当高于或低于一定温度将分别利用红黄灯报警。此方案由于DS18b20测量温度范围为55+125,在工业生产中此范围较小。而且由于编程时采用I2C通信,因此读取数据是时序要求较高,程序编写复杂。本方案电路复杂,灵活性不高,效率低,不利于系统的扩展,对信号处理比较困难。方案二:采用51系列单片机作为整机的控制单元,将0-5V模拟电压信号通过AD0808模数转换成模拟温度值0-255,然后通过数码管显示其温度值。此方案设计简单,编程容易,并且增宽了测量温度范围。本设计采用第二种方案。为了能够使系统具备检测温度的大小,利用51系列单片机为主控制器,通过AD0808检测由电位器分压输出的的电压值,从而输出模拟温度值0-255送入单片机,并且由其送去1602液晶显示。主要设计思路三、硬件设计3.1 DS18B20概述DS18B20是Dallas公司继DS1820后推出的一种改进型智能数字温度传感器,与传统的热敏电阻相比,只需一根线就能直接读出被测温度值,并可根据实际需求来编程实现912位数字值的读数方式3。3.1.1 DS18B20封装形式及引脚功能 图2.1 DS18B20封装形式和引脚功能如图2.1所示,DS18B20的外形如一只三极管,引脚名称及作用如下:GND:接地端。DQ:数据输入/输出脚,与TTL电平兼容。VDD:可接电源,也可接地。因为每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成数据测量的时间较长;采用外部供电方式则VDD接+5V,多用一根导线,但测量速度较快。3.1.2 DS18B20内部结构64位ROM和单线接口存储和控制逻辑 高速缓存器温度传感器高温触发器TH低温触发器TL匹配寄存器8位CRC发生器电源检 测CDQVDD内部电源VDD图2.2 DS18B20内部结构图2.2中出示了DS18B20 的主要内部部件,下面对DS18B20内部部分进行简单的描述4:(1)64位ROM。64位ROM是由厂家使用激光刻录的一个64位二进制ROM代码,是该芯片的标识号,如表2.1所示:表2.1 64位ROM标识8位循环冗余检验48位序列号8位分类编号(10H)MSB LSBMSB LSBMSB LSB 第1个8位表示产品分类编号,DS18B20的分类号为10H;接着为48位序列号。它是一个大于281*1012的十进制编码,作为该芯片的唯一标示代码;最后8位为前56位的CRC循环冗余校验码,由于每个芯片的64位ROM代码不同,因此在单总线上能够并接多个DS18B20进行多点温度实习检验。(2)温度传感器。温度传感器是DS18B20的核心部分,该功能部件可完成对温度的测量通过软件编程可将-55125范围内的温度值按9位、10位、11位、12位的分辨率进行量化,以上的分辨率都包括一个符号位,因此对应的温度量化值分别为0.5、0.25、0.125、0.0625,即最高分辨率为0.0625。芯片出厂时默认为12位的转换精度。当接收到温度转换命令(44H)后,开始转换,转换完成后的温度以16位带符号扩展的的二进制补码形式表示,存储在高速缓存器RAM的第0,1字节中,二进制数的前5位是符号位。如果测得的温度大于0,这5位为0,只要将测得的数值乘上0.0625即可得到实际温度;如果温度小于0,这5位为1,测得的数值需要取反加1再乘上0.0625即可得到实际温度。(3)高速缓存器。DS18B20内部的高速缓存器包括一个高速暂存器RAM和一个非易失性可电擦除的EEPROM。非易失性可点擦除EEPROM用来存放高温触发器TH、低温触发器TL和配置寄存器中的信息。(4)配置寄存器。配置寄存器的内容用于确定温度值的数字转换率。DS18B20工作是按此寄存器的分辨率将温度转换为相应精度的数值,它是高速缓存器的第5个字节,该字节定义如表2.2所示:表2.2 匹配寄存器TMR0R111111TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时该位被设置为0,用户不要去改动;R1和R0用来设置分辨率;其余5位均固定为1。DS18B20分辨率的设置如表2.3所示:表2.3 DS18B20分辨率的设置R1R0分辨率最大转换时间 /ms009位93.750110位187.51011位3751112位750DS18B20依靠一个单线端口通讯。在单线端口条件下,必须先建立ROM 操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面5个ROM 操作命令之一:1)读ROM;2)匹配ROM;3)搜索ROM;4)跳过ROM;5)报警搜索。这些命令对每个器件的激光ROM 部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。成功执行完一条ROM 操作序列后,即可进行存储器和控制操作,控制器可以提供6 条存储器和控制操作指令中的任一条。一条控制操作命令指示DS18B20完成一次温度测量。测量结果放在DS18B20的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器TH 和TL 各由一个EEPROM字节构成。如果没有对DS18B20使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对TH 和TL 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。3.1.3 DS18B20供电方式DS18B20可以采用外部电源供电和寄生电源供电两种模式。外部电源供电模式是将DS18B20的GND直接接地,DQ与但单总线相连作为信号线,VDD与外部电源正极相连。如图2.3所示:单片机DS18B20外部+5V电源VDDDQ4.7KVCC其它单线器件图2.3 DS18B20外部供电方式图中DS18B20的DQ端口通过接入一个4.7K的上拉电阻到VCC,从而实现外部电源供电方式。寄生电源供电模式如图2.4所示:从图中可知,DS18B20的GND和VDD均直接接地,DQ与单总线相连,单片机其中一个I/O口与DS18B20的DQ端相连。VCC单片机DS18B20GND4.7K图2.4 DS18B20寄生电源供电方式+5V3.1.4 DS18B20的测温原理DS18B20的测温原理如图2.5所示, 其主要由斜率累加器、温度系数振荡器、减法计数器、温度存储器等功能部件组成。图2.5 DS18B20的测温原理DS1820 是这样测温5的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55)的值增加,表明所测温度大于-55。同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨率。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。DS18B20内部对此计算的结果可提供0.5的分辨率。温度以16bit带符号位扩展的二进制补码形式读出,表2.4 给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS18B20测温范围-55+125,以0.5递增。表2.4 温度数据关系温度数据输出(二进制)数据输出(十六进制)+125 00FA+25 0032+0.5 00010 0000-0.5 FFFF-25 FFCE-55 FF92S18B20遵循单总线协议,每次测温时都必须有4个过程6: 初始化; 传送ROM 操作命令; 传送ROM操作命令; 数据交换;3.1.5 DS18B20的ROM命令read ROM(读ROM).命令代码为33H,允许主设备读出DS18B20的64位二进制ROM代码。该命令只适用于总线上存在单个DS18B20.Match ROM(匹配ROM)。命令代码为55H,若总线上有多个从设备时,适用该命令可选中某一指定的DS18B20,即只有和64位二进制ROM代码完全匹配的DS18B20才能响应其操作。Skip ROM(跳过ROM)。命令代码为CCH,在启动所有DS18B20转换之前或系统只有一个DS18B20时,该命令将允许主设备不提供64位二进制ROM代码就适用存储器操作命令。Search ROM(搜索ROM)。命令代码为F0H,当系统初次启动时,主设备可能不知纵向上有多少个从设备或者它们的ROM代码,适用该命令可确定系统中的从设备个数及其RON代码。Alarm ROM(报警搜索ROM)。命令代码为ECH,该命令用于鉴别和定位系统中超出程序设定的报警温度值。Write scratchpad(写暂存器)。命令代码为4EH,允许主设备向DS18B20的暂存器写入两个字节的数据,其中第一个字节写入TH中,第二个字节写入TL中。可以在任何时刻发出复位命令终止数据的写入。Read scratchpad(读暂存器)。命令代码为BEH,允许主设备读取暂存器中的内容。从第一个字节开始直到读完第九个字节CRC读完。也可以在任何时刻发出复位命令中止数据的读取操作。Copy scratchpad(复制暂存器)。命令代码为48H,将温度报警触发器TH和TL中的字节复制到非易失性EEPROM。若主机在该命令之后又发出读操作,而DS18B20又忙于将暂存器中的内容复制到EEPROM时,DS18B20就会输出一个“0”,若复制结束,则DS18B20输出一个“1”。Convert T(温度转换)。命令代码为44H,启动一次温度转换,若主机在该命令之后又发出其它操作,而DS18B20又忙于温度转换,DS18B20就会输出一个“0”,若转换结束,则DS18B20输出一个“1”。Recall E2(拷回暂存器)。命令代码为B8H。将温度报警触发器TH和TL中的字节从EEPROM中拷回到暂存器中。该操作是在DS18B20上电时自动执行,若执行该命令后又发出读操作,DS18B20会输出温度转换忙标识:0为忙,1完成。Read power supply(读电源使用模式)。命令代码为B4H。主设备将该命令发给DS18B20后发出读操作,DS18B20会返回它的电源使用模式:0为寄生电源,1为外部电源。3.2 AT89C52概述3.2.1单片机AT89C52介绍AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。3.2.2 主要功能特性1、兼容MCS51指令系统 2、8k可反复擦写(大于1000次)Flash ROM; 3、32个双向I/O口; 4、256x8bit内部RAM; 5、3个16位可编程定时/计数器中断; 6、时钟频率0-24MHz; 7、2个串行中断,可编程UART串行通道; 8、2个外部中断源,共8个中断源; 9、2个读写中断口线,3级加密位; 10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能; 11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。 图3 管脚图 图 4 单片机电路连接图 AT89C51管脚介绍: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。 图2.2.2(1) AT89C51管脚 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为AT89C51的一些特殊功能口。RST:复位输入。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.3 单片机最小系统的设计单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。本次课程设计中选用AT89C52式单片机,其最小系统主要由电复位、振荡电路组成。单片机的最小系统如图3所示。单片机的复位电路原理是在单片机的复位引脚RST上电阻和电容,实现上电复位。当复位电平持续两个时钟周期以上时复位有效。复位电路由按键复位和上电复位两部分组成,上电复位是在复位引脚上连接一个电容到VCC,再连接一个电阻到GND;按键复位是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。AT89C51单片机使用12MHZ的晶振最为振荡源,由于单片机内部有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容一般在15pF至50pF之间。外部晶振结合单片机内部电路产生单片机所需的时钟频率。图3 单片机最小系统3.4 温度采集电路的设计温度采集电路部分,采用数字温度传感器DS18B20进行温度采集。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3个引脚;温度侧量范围为-55+125,测量精度为0.5;被测温度用符号扩展的16位数字量方式串行输出;CPU只需用一个端口线就可以与DS18B20通信。温度采集电路如图4所示。图4 温度采集电路3.5 LED显示报警电路的设计LED数码管与单片机的P0口相连,单片机将采集到的温度值转化为与数码管对应的数据,通过P0口输出显示。即信号通过译码管的端口a、b、c、d、e、f、g 、dp 端来控制每段译码管的亮灭与否,同时通过端口1、2、3、4 四个端口来控制四个译码管。在本次设计中,用集成芯片74HC245驱动数码管。同时当采集到的温度值超过所设置的范围时,单片机会输出一信号,通过三极管放大后驱动蜂鸣器发出报警信号。LED数码管报警电路四、软件设计系统设计原理:本次课程设计是基于单片机的数字温度计设计,在开始课程设计的时候我们要理解并掌握对单片机的开发,学会使用KEIL及Proteus等仿真软件。根据设计任务要求选择好器件,编写好程序运行成功之后进行软件联调,验证系统是否正确。通过筛选,我们组选用单片机AT89S52作为主控制系统;用1602液晶显示模块芯片作为温度数据显示装置;智能温度传感器采用DS18B20器件作为测温电路主要组成部分。 五 仿真调试(1)Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。(2)使用独立的Keil仿真器时,注意事项 l 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 l 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 六、设计总结、心得体会等回顾起此次单片机课程设计,我仍感慨颇多,从理论到实践,在接近半月的日子里,可以说得是苦多于甜,但是可以学到很多的的东西,不仅是学习上的,而且是关于做人做事方面的感悟。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。我在设计的过程中遇到了许多问题,同时也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对汇编语言掌握得不透彻。还有,这次的设计让我明白了求人不如求己,虽然我们要讲究合作,但更重要的是自己,只有自己懂,自己做,才不会在关键时刻掉链子。别人终究是一个陪衬,路总是要自己走,属于自己的任务就要自己搞。所以,我们必须要时刻强大自己,别人终究是别人。这个过程虽然不是很平坦,肯定会遇到各种各样的问题,但一旦征服了它那它就是你的东西了,当这样的厚积达到一定程度那你就能享受到薄发那刻的辉煌。要努力做好以下几点:一、要积极准备,跟上大家步伐。二、对于不太了解的东西要先动手去做,然后再去制定计划。对于未知的多些客观了解。三、多动手,多交流。在选取工具之前可以先试验,保证成功的概率。四、不论什么,不管多难,自己都应该先动手试一试。做出自己的东西。七、参考文献1钟晓伟,宋哲存,基于单片机的实验是温湿度控制系统设计 A 林业机械与木工设备2叶景,基于单片机的温度控制系统的设计 经验与交流,20083胡寿松,C语言M北京:科学出版社,20074刘笃仁,韩保君,感测技术基础 电子工业出版社,20125梅丽凤,王艳秋,汪毓铎,张军,单片机原理及接口技术 清华大学出版社20066张义和,陈敌北,例说8051M北京:人民邮电出版社,20067 张开生,郭国法,MCS-51单片机温度控制系统的设计J微型计算机信息,2005附录1电路图2原器件清单序号编号名称型号数量1R1 电阻4.7K13R3电阻1.5K14RP1排阻1.5K15C1、C2电容33P26C3电容10u17S1按键开关18X1晶振12M110LS1蜂鸣器111U151单片机AT89C52112U2温度传感器DS18B20113lcd液晶显示器160213程序#include <reg52.h> #define uint unsigned int#define uchar unsigned char#define lcd_data_port P0unsigned char mun_char_table=""sbit lcd_rs_port = P25; sbit lcd_rw_port = P26;sbit lcd_en_port = P27;sbit S=P22;sbit f=P20;sbit DQ=P10;int temp,S0,S1,S2,S3,S4,S5,S6,S7,S8;void lcd_delay(uint z)uint x,y; for(x=110;x>0;x-)for(y=z;y>0;y-); /*DS18B20程序*/void delay(unsigned int i)while(i-);void Init_DS18B20(void)unsigned char x=0;DQ = 1; delay(8); DQ = 0; delay(80); DQ = 1; delay(14);x=DQ; delay(20);void ReadOneChar()unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0; dat>>=1;DQ = 1; if(DQ) dat|=0x80;delay(4);return(dat);WriteOneChar(unsigned char dat)unsigned char i=0;for (i=8; i>0; i-)DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;ReadTemperature()unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); WriteOneChar(0x44); Init_DS18B20();WriteOneChar(0xCC); WriteOneChar(0xBE); a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*0.0625; t= tt*10+0.5; return t; /*LCD1602 忙等待*/void lcd_busy_wait() lcd_rs_port = 0; lcd_rw_port = 1; lcd_en_port = 1; lcd_data_port = 0xff; while (lcd_data_port&0x80); lcd_en_port = 0; /*LCD1602 命令字写入*/void lcd_command_write(uchar command) lcd_busy_wait(); lcd_rs_port = 0; lcd_rw_port = 0; lcd_en_port = 0; lcd_data_port = command; lcd_en_port = 1; lcd_en_port = 0; void saomiao1()P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0) lcd_delay(50);if(temp!=0xf0) switch(temp)case 0xe0: S1=0;break;case 0xd0: S1=1;break;case 0xb0: S1=2;break;case 0x70: S1=3;break; P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0) lcd_delay(50);if(temp!=0xf0) switch(temp)case 0xe0: S1=4;break;case 0xd0: S1=5;break;case 0xb0: S1=6;break;case 0x70: S1=7;break; P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0) lcd_delay(50);if(temp!=0xf0) switch(temp)case 0xe0: S1=8;break;case 0xd0: S1=9;break; void saomiao2()P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0) lcd_delay(50);if(temp!=0xf0) switch(temp)case 0xe0: S2=0;break;case 0xd0: S2=1;break;case 0xb0: S2=2;break;case 0x70: S2=3;break; P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0) lcd_delay(50);if(temp!=0xf0) switch(temp)case 0xe0:S2=4;break;case 0xd0:S2=5;break;case 0xb0:S2=6;break;case 0x70:S2=7;break; P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0) lcd_delay(50);if(temp!=0xf0) switch(temp)case 0xe0: S2=8;break;case 0xd0: S2=9;break; void saomiao3()P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0) lcd_delay(50);if(temp!=0xf0) switch(temp)case 0xe0: S6=0;break;case 0xd0: S6=1;break;case 0xb0: S6=2;break;case 0x70: S6=3;break; P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0) lcd_delay(50);if(temp!=0xf0) switch(temp)case 0xe0: S6=4;break;case 0xd0: S6=5;break;case 0xb0: S6=6;break;case 0x70: S6=7;break; P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0) lcd_delay(50);if(temp!=0xf0) switch(temp)case 0xe0: S6=8;break;case 0xd0: S6=9;break; /*LCD1602 初始化*/void init() lcd_delay(20); lcd_command_write(0x38); lcd_delay(100); lcd_command_write(0x38); lcd_delay(50); lcd_command_write(0x38); lcd_delay(10); lcd_command_write(0x08); lcd_command_write(0x01); lcd_command_write(0x06); lcd_command_write(0x0c); /*LCD1602 字符写入*/void lcd_char_write(uchar x_pos,

    注意事项

    本文(课程设计报告(参考模版).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开