智能仪器课程设计_自动电阻炉温度控制器.doc

上传人:苏美尔 文档编号:8872857 上传时间:2021-01-21 格式:DOC 页数:32 大小:732.50KB
返回 下载 相关 举报
智能仪器课程设计_自动电阻炉温度控制器.doc_第1页
第1页 / 共32页
智能仪器课程设计_自动电阻炉温度控制器.doc_第2页
第2页 / 共32页
智能仪器课程设计_自动电阻炉温度控制器.doc_第3页
第3页 / 共32页
智能仪器课程设计_自动电阻炉温度控制器.doc_第4页
第4页 / 共32页
智能仪器课程设计_自动电阻炉温度控制器.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《智能仪器课程设计_自动电阻炉温度控制器.doc》由会员分享,可在线阅读,更多相关《智能仪器课程设计_自动电阻炉温度控制器.doc(32页珍藏版)》请在三一文库上搜索。

1、智能仪表综合训练说明书题 目:自动电阻炉温度控制器 学生姓名:xxx学 号:xxx专 业:测控技术与仪器班 级:测控08-1班指导教师:x摘 要此电阻炉温度控制器主要是以单片机STC89C52为核心,通过S型热电偶采集热端温度并进行冷端温度补偿得到实际温度T,然后经放大电路和ADC0832模数转换,并进行线性化处理,之后经单片机STC89C52进行PID控制,并加入PID参数的调整,最后通过液晶显示器LCD1602实现温度值和PID输出值及参数值的显示。它用最简单的硬件单元和软件编程实现了温度采集、温度PID控制、温度显示、上下限报警、PID参数显示、PID参数修改等功能。关键词:ADC083

2、2;单片机STC89C52;LCD显示;PID控制;S型热电偶目 录摘 要1目 录2第一章 前言31.1热电偶31.1.1热电偶及其工作原理31.1.2 热电偶的冷端温度补偿31.1.3 热电偶的分类41.2 PID41.2.1 PID简介41.2.2 PID算法介绍51.2.3 位置式PID算法5第二章 电阻炉温度控制器总体设计62.1功能需求62.2 硬件设计72.3 软件设计7第三章 电阻炉温度控制器硬件设计83.1 S型热电偶83.1.1 S型热电偶及其分度表83.1.2 S型热电偶线性化处理93.2 单片机STC89C52及其外围接口电路93.2.1 单片机STC89C5293.2.

3、2 单片机STC89C52外围接口电路113.3 ADC0832113.4 LCD1602显示器12第四章 软件设计144.1电阻炉温度控制器主程序144.2 ADC0832数据采集子程序154.3热电偶线性化标度变换程序154.4 PID控制程序164.5 PID参数修改子程序174.6 LCD显示子程序18第五章 总结19参考文献20附录 A21第一章 前言在使用电阻炉温度控制器之前,我们有必要了解其制作工艺和一些关键器件的概况,以便我们能够自己处理它所出现的一些小问题或者为爱好者学习提供帮助。因此这一章我们就关于电阻炉温度控制器运用的基本知识作一介绍。1.1热电偶1.1.1热电偶及其工作

4、原理热电偶是温度测量仪表中得关键性元件,因其具有结构简单,性质稳定,测温范围宽,测量精度高、动态性能好、使用方便以及容易维护等优点,现已经被用于各种行业。特别是由于其性质稳定,在高温环境的测量中,热电偶测温占有相当重要的地位。热电偶的工作原理主要是利用了热电效应,所谓热电效应,就是指两种不同成份的导体(称为热电偶丝材或热电极)两端接合成回路,当两个接合点的温度不同时,在回路中就会产生电动势。直接测量介质的一端称为工作端,另一端称为冷端。1.1.2 热电偶的冷端温度补偿 由热电偶的测温原理可知,热电势的大小不仅与热端温度有关,而且与冷端温度有关,只有当冷端温度恒定时,才能通过热电势的大小去判断热

5、端温度的高低。 冷端温度补偿方法有冰点法,恒温迁移法,计算修正法,电桥补偿法,软件补偿法。我们这里采用计算修正法: 计算修正法基于中间温度定律,其计算公式如式1.1 EAB(T,0)=EAB(T,T0)+EAB(T0,0) (1.1)1.1.3 热电偶的分类按照工业标准化的要求,热电偶可以分为标准化热电偶和非标准化热电偶两种。标准化热电偶指工艺成熟、能批量生产、性能稳定、应用广泛,且具有统一分度表并已列入国际和国家标准文件的热电偶。非标准化热电偶是指研究还不够成熟,虽然已有产品,也能够使用但是没有统一的分度表,需要个别标定,给我们的使用带来不便,因此我们日常不做使用和研究。标准化热电偶包括铂铑

6、10-铂热电偶(S型)、铂铑30-铂铑6热电偶(B型)、镍镉-镍硅热电偶(K型)、镍镉-铜镍热电偶(E型)、铜-铜镍热电偶(T型)。我们着重介绍K型和S型热电偶:S型热电偶为贵重金属热电偶,其正极导体的化学成分为铂铑合金,其中,含铑10%,含铂90%。负极为纯铂。S型热电偶具有准确度高、测温区宽、使用寿命长和稳定性好等优点。特别是其在高温下抗氧化性能好,因此我们的产品电阻炉温度控制器选用热电偶作为温度传感器。K型热电偶为目前用量最大的廉价金属热电偶。其正极的化学成分为:Ni:Cr=90:10;负极的化学成分为:Ni:Si=97:3,测量温度为-2001300。1.2 PID 1.2.1 PID

7、简介PID控制是工程应用中最广泛的控制规律,它的主要特点是其结构简单、稳定性好、工作可靠、调整方便。其各种参数的特征如下:比例调节的作用是按比例反映系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用以减小偏差。比例作用大,可以加快调节,减小误差,但是过大的比例作用会使系统的稳定性下降,甚至造成系统不稳定。积分调节的作用是使系统消除稳态误差,因为一旦有误差,积分调节就起作用,直至无误差,积分调节的输出维持常量。微分调节的作用是反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,使偏差还没有形成即被微分调节作用消除,因此微分作用可以改善系统的动态性能。1.2

8、.2 PID算法介绍PID算法有位置式和增量式输出两种。增量式PID算法输出得到的结果是增量,也就是说,在上一次的控制量的基础上需要增加(负值意味着减少)的控制量。例如,在晶闸管电动机调速系统中,控制量的增量意味着晶闸管的触发相位在原有的基础上需要提前或滞后的量。位置式算法输出则表现为当前的触发相位应该在什么位置。又如在温度控制系统中,增量式算法表现为在上次通电时间比例的基础上,还需要增加或减少的通电时间比例;位置式算法输出则直接指明本周期内要通电多长时间1.2.3 位置式PID算法位置式PID算法可以直接指出需要通电多长时间,因此其受到广泛应用。其计算公式如式1.2下: (1.2) 式中,为

9、基本偏差,表示当前测量值与设定目标值之间的差值,结果可以是正或负。当设定目标作为被减数时,正数表示还没有达到设定值。负数表示已经超过了设定值。累计偏差,它是每次偏差值的代数和。,和是PID算法的3个控制参数,分别称为比例常数、积分常数和微分常数,对不同的控制对象选择不同的数值,需要经过现场整定才能获得较好的效果。第二章 电阻炉温度控制器总体设计此电阻炉温度控制器主要是以单片机STC89C52为核心,通过热电偶采集热端温度并进行冷端温度补偿得到实际温度T,然后经放大电路和ADC0832模数转换,并进行线性化处理,之后经单片机STC89C52进行PID控制,并加入PID参数的调整,最后通过液晶显示

10、器LCD1602实现温度值和PID输出值及参数值的显示。它用最简单的硬件单元和软件编程实现了温度采集、温度PID控制、温度显示、上下限报警、PID参数显示、PID参数修改等功能。2.1功能需求电阻炉温度控制器实际上是以单片机为核心,根据设定温度值与采集温度值进行比较求出偏差然后PID运算对电阻炉温度进行控制。此控制系统可实现以下功能:温度采集:温度控制:温度显示:上下限报警显示:参数显示:PID控制参数设定修改:其单回路控制系统图2.1如下所示:图2.1 单片机单回路控制系统2.2 硬件设计电阻炉温度控制器主要有单片机AT89C52、A/D转换器、按键、LCD显示、加热炉、传感器、SSR输出控

11、制组成的控制系统。其组成框图如图2.2所示:图2.2 硬件组成框图2.3 软件设计该电阻炉温度控制器采用模块化的结构设计。其主程序流程图如图2.3所示:其软件部分的的设计由ADC0832采样子程序、中断子程序、LCD初始化子程序、PID控制子程序、PID参数按键修改子程序。ADC0832采集温度信号,信号经A/D转换后送至单片机STC89C52进行PID处理,用户可以根据自身条件对PID参数进行调整,之后LCD显示器显示温度值和PID处理值,从而控制电阻炉温度。 图2.3 主程序流程图第三章 电阻炉温度控制器硬件设计3.1 S型热电偶3.1.1 S型热电偶及其分度表S型热电偶首先是标准化热电偶

12、,偶丝直径规定为0.5mm,允许偏差-0.015mm,其正极(SP)的名义化学成分为铂铑合金,其中含铑为10%,含铂为90%,负极(SN)为纯铂,故俗称单铂铑热电偶。该热电偶长期最高使用温度为1300,短期最高使用温度为1600。而且S型热电偶在正常长期使用温度为8001300左右时测量的精度最高,而在800以内的测温准确度不高,而长期使用温度在1300以上就很容易损坏热电偶。因此我们在对其分度表的计算时温度设定为01300,因为电阻炉正符合其要求,并为长期使用电器。S型热电偶分度表如下表3.1所示:表3.1 S型热电偶分度表 3.1.2 S型热电偶线性化处理此电阻炉温度传感器中S型热电偶温度

13、传感器采集0-1300的温度进行显示控制,根据S型热电偶分度表列出其对应的mv电压,由于所用单片机STC89C52能够控制的电压信号为0-5V,以及编程转换值,因此根据以上进行标度变换处理得表3.2所示:表3.2 标度变换表温度值()分度表值(mv)A/D采样值(v)转换值00003002.3230.883456005.2371.991019008.4483.211164130013.15552553.2 单片机STC89C52及其外围接口电路3.2.1 单片机STC89C52 STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥

14、有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案STC89C52的引脚分布如图3.1所示,各部分引脚功能如下1. P0.0P0.7引脚:作为I/O引脚使用时,P0口是漏极开路双向口,向口锁存器写入1时,I/O引脚将悬空,是高阻输入引脚;在读写外部存储器时P0口作低8位数据/地址总线。2. P1.0P1.7引脚:内部带有弱上拉的准双向I/O口,作输入引脚使用前,先向P1口锁存器写入1,使P1口引脚上拉至高电平;另外,P1.0与P1.1还有第二功能:T2(P1.0)定时器T2的计数输入端或定时器T2的时钟输出端,T2EX(P1

15、.1)定时器T2的外部触发输入端。图3.1 STC89C52引脚分布图3. P2.0P2.7引脚: 内部带有弱上拉的准双向I/O口,作输入引脚使用前,先向P2口锁存器写入1,使P2口引脚上拉至高电平;在读/写外部存储器时,P2口输出高8位地址信号A15A8。4. P3.0P3.7引脚:内部带有弱上拉的准双向I/O口,作输入引脚使用前,先向P3口锁存器写入1,使P3口引脚上拉至高电平;另外,P3口还有第二功能:RXD(P3.0)串行数据接收(输入)端;TXD(P3.1)串行数据发送(输出)端;(P3.2)外中断0输入端;(P3.3)外中断1输入端;T0(P3.4)定时/计数T0的外部输入端;T1

16、(P3.5)定时/计数T1的外部输入端;(P3.6)外部数据存储器写选通信号,低电平有效;(P3.7)外部数据存储器读选通信号,低电平有效;5. 引脚:外部程序存储器选择信号,低电平有效;在复位期间CPU检测并锁存引脚的电平状态,当读引脚为高电平时,从片内程序存储器取指令,只有当程序计数器PC超出片内程序存储器地址编码范围时,才转到外部程序存储器中取指令;当该引脚位低电平时,一律从外部程序存储器中取指令。6. :外部程序存储器读选通信号,低电平有效。7ALE:低8位地址锁存信号,在访问外部程序存储器时,ALE下降沿锁存从P0口输出的低8位地址信息A7A0,以便随后将P0口作为数据总线使用;在正

17、常情况下,ALE输出信号为1/6振荡频率,并可用作外部时钟或定时信号。8. XTAL1:片内晶振电路反向放大器输入端,接CPU内部时钟电路; XTAL2:片内晶振电路反向放大器输出端;9. RST:复位信号输入端,高电平有效;10. VCC:电源引脚,VSS:电源地。STC89C52系列单片机属于MCS51型系列单片机,它们的存储器在组织结构上有4个物理上相互独立的空间:片内程序存储器和片外程序存储器,内部数据存储器和片外数据存储器。其中片外数据存储区共64KB,相应的地址空间为0000FFFFFH;片内数据存储区共256B,其中80HFFH为SFR(特殊功能寄存器区),20H2FH为位寻址区

18、,00H1FH为R0R7工作寄存器区,30H7FH为用户存储数据用的存储区,共80个字节;片内程序存储区有4KB,通过=1进行选通;片外程序存储区有64KB是通过=0进行选通。3.2.2 单片机STC89C52外围接口电路 该电阻炉温度控制器中使用了STC89C52单片机,以及ADC0832A/D转换器、晶振电路、复位电路、按键、LCD1602液晶显示器。其连接原理图如图3.2:3.3 ADC0832该电阻炉温度控制器所用的A/D转换器是ADC0832, ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的

19、模拟电压输入在05V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。 图3.2 STC89C52外围接口电路图其封装及引脚如图3.3所示,引脚介绍如下:CS_ 片选使能,低电平芯片使能CH0 模拟输入通道0,或作为IN+/-使用CH1 模拟输入通道1,或作为IN+/-使用 GND 芯片参考0 电位(地)DI 数据信号输入,选择通道控制DO 数据信号输出,转换数据输出图3.3 ADC0832引脚图3.4 LCD1602显示器LCD,又称

20、液晶显示器(Liquid Crystal Display),为平面超薄的显示设备,它由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。功耗很低,因此倍受工程师青睐,适用于使用电池的电子设备。它的主要原理是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。LCD与单片机连接如图3.4所示 图3.4 LCD1602与单片机连接图其引脚介绍如表3.3所示:表3.3 LCD1602引脚介绍表编号符号引脚说明编号符号引脚说明1VSS电源地9D2双向数据线2VDD5v电源正极10D3双向数据线3VL液晶显示偏压11D4双向数据线4RS数据/命令选择12D5双向数据线5R/W读/写选择13D6双

21、向数据线6E使能信号14D7双向数据线7D0双向数据线15BLA背光源正极8D1双向数据线16BLK背光源负极其主要技术参数如下:显示容量:16*2个字符芯片工作电压:4.5-5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95*4.35(W*H)mm第四章 软件设计4.1电阻炉温度控制器主程序电阻炉温度控制器主程序首先进行液晶初始化,然后判断1s标志是否执行;如果是,进行AD采样,执行AD处理子程序,ADC0832采集电压信号;之后判断是否有按键按下,执行按键处理子程序;若没有按键按下,计算PID值;随后对数据显示处理,显示PID值,结束。其主程序流程图如图4

22、.1所示图4.1 主程序流程图4.2 ADC0832数据采集子程序按照ADC0832的工作方式,可以得到如图4.2所示的程序流程图。在将ADC0832的端口定义好后,用CS=0选通ADC0832,之后,将DI端置1,开始AD转换,然后送入通道0或者1的选择信息,在DO端先输出D7-D0数据,再输出D0-D7数据,然后比较两次输出的数据值是否相等,若不相等,继续采样,若相等,返回采样值。 图4.2 ADC0832数据采集子程序4.3热电偶线性化标度变换程序性标度变换是热电偶采集温度与A/D转换器之间的桥梁,是关键性环节,流程图如图4.3所示在程序中,DAT代表A/D线性标度变换值,首先DAT与转

23、换值进行比较,判断其符合哪一个段内;MDAT表示显示温度值,当DAT判断其处于哪一个段内,这样根据线性标度变换公式,即可求出其采集的温度值;之后返回温度值MDAT,以备LCD显示器显示。图4.3 线性标度变换子程序4.4 PID控制程序单片机对A/D采集的温度需要进行与设定温度值进行比较,然后经过PID控制,其PID控制流程图如图4.4所示首先,定义偏差et= Indat-Tedat(Indat表示测量值,Tedat表示设定值),偏差之和sumet,连续两偏差之差et_temp;然后判断20ms标志flag2是否为1,若是,进行PID计算,算出pout,若否,输出上次pout。此PID为了显示

24、方便,保证输出为正,因此判定pout是否为负。图4.4 PID控制程序4.5 PID参数修改子程序为了能够满足用户的需要,电阻炉温度控制器能偶调整不同的PID参数,以便控制温度。其PID参数修改子程序流程图如图4.5所示:简单介绍这几个按键功能:1键功能键:选择修改kp、ki、kd2键加1键3键减1键4键确定键图4.5 PID参数修改子程序4.6 LCD显示子程序根据设计要求,进行LCD显示程序的编写,流程如图4.6所示。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。设置显示的字符模式,显示字符时要先输入显示字符地址,也就是告诉模

25、块在哪里显示字符,最后将字符码写入到指定位置。 图4.6 LCD显示程序第五章 总结 这次智能仪器设计,我们在王老师的指导下,做了关于自制电阻炉温度控制器的设计。虽然,由于某些硬件的短缺,没能做成一个完整的电阻炉温度控制器,但是基本上做出了温度的采集、PID控制、显示等。在这次设计中,我们通过自己查阅资料,和同学老师交流辩论,加深了对热电偶、A/D转换器、PID控制、单片机中断等好多理论知识理解。同时,再做这个设计我们需要学会protel99画原理图、visio画流程图、如鹏版Keil进行软件编程、STC_ISP_V4.7.9软件下载.这些东西对于我来说是第一次接触,但是通过这次设计的亲自完成

26、,虽然不敢说已经全部掌握,但至少我能够自己在以后的运用的轻松操纵。对于我们所做得这个电阻炉温度控制器的设计,首先,在硬件方面我们选的是STC89C52作为单片机对温度进行PID控制,ADC0832作为A/D转换器进行A/D采样,热电偶作为温度传感器,LCD显示器作为温度和其他参数显示。对于硬件的连接不成问题。其次,在软件方面,我们用到了ADC0832采集子程序、线性标注变换子程序、PID控制子程序、PID参数修改子程序、LCD显示子程序、以及最重要的主程序。这些程序经过我们的努力基本上实现了其各自的功能,也和主程序密切连接。最后,我们的设计基本上符合了老师规定的要求,但是在细节方面也许有许多的

27、不足和漏洞,我们会不断的改进,也希望大家给我们指正,我们将会不断完善我们的作品。总的来说,这次设计让我学习了不少东西。第一、理论学习是必须的,我们必须一直注重自己的理论学习,踏踏实实把理论知识学习好,才能顺利实践。第二、理论固然重要,但是没有实践的演练,理论永远只是一纸空文,学习理论的最终目的是为了实践,因此我们应该不断实践。第三、在这个网络发达的时代,我们应该学会运用网上的知识,目的就是学会学习,高效做事。参考文献1 王学智.热电偶测温及其冷端温度补偿 湖北水利水电职业技术学院J 2011.022 杜洋.A/D转换芯片ADC0832的应用J.电子制作,2006.7.3 张怀广. “Prote

28、l99”快速入门的几个技巧J. 科教文汇(下旬刊), 2010.05 .4 李建海,张大为,张凯,刘迪. 数字PID控制器在温度控制系统中的应用J. 电子测量技术 2009.04 . 5 刘伏文. 单片机C和汇编语言混合编程J. 电子制作, 2007,(06) .6 于志赣,刘国平,张旭斌. 液显LCD1602模块的应用J. 机电技术, 2009,(03) .7 李实. 基于模糊PID算法的电阻炉温度控制系统设计J. 鞍钢职工大学 2011,(05)8 任国强. 标准S型热电偶整百度点热电势的自动计算J. 计量技术, 1994,(11) 9 吴健, 侯文,郑宾. 基于STC89C52单片机的温

29、度控制系统J. 中北大学电子测试技术国家重点实验室 2011,(04)10 李忠虎,李希胜.过程参数检测技术及仪表M.北京计量出版社 2009年第1版11 潘永雄.新编单片机原理与应用M.西安:西安电子科技大学出版2007第一版12 周祖茗.液显模块LCD1602的接口设计及编程技巧J.中国科技纵横,2010.14.附录 A源程序#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include intrins.h sbit RS = P10; /Pin4sbit RW = P11; /Pin5sbit EN = P12; /Pin6sbit key1 = P1

30、4; /Pin6sbit key2 = P15; /Pin6sbit key3 = P16; /Pin6sbit key4 = P17; /Pin6/ADC0832的引脚sbit ADCS =P20; /ADC0832 chip seclectsbit ADDI =P37; /ADC0832 k insbit ADDO =P37; /ADC0832 k outsbit ADCLK =P36; /ADC0832 clock signal #define uchar unsigned char#define uint unsigned int#define date P0 #define RS_C

31、LR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#define EN_SET EN=1#define INIT_TEMP 800#define MIN_TEMP 100#define MAX_TEMP 900/#define MAX 1500uchar code Temp_Data=0123456789;uchar code Temp_Min=Temp is most Min; uchar code Temp_Max=Temp is most Max;uchar tem1

32、10=0,45,101,164,255;uchar tem210=0,300,600,900,1300; uchar temp118=WD: PID: ,temp216=P= I= D= ;uchar getdata; /获取ADC转换回来的值bit flag,flag2;uchar time_20ms,time_ms,time_1s,Bottem,data1,data2,kemp;char et,sumet,et_temp; int pout,OUT;char KP=5;KI=10;KD=15; int Init_PID( uchar Indat,uchar Tedat,char et_ol

33、d);/*读ADC0832函数*/ /采集并返回unsigned int Adc0832(unsigned char channel) /AD转换,返回结果 uchar i=0; uchar j; uint dat=0; uchar ndat=0; if(channel=0)channel=2; if(channel=1)channel=3; ADDI=1; _nop_(); _nop_(); ADCS=0;/拉低CS端 _nop_(); _nop_(); ADCLK=1;/拉高CLK端 _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿1 _nop_(); _no

34、p_(); ADCLK=1;/拉高CLK端 ADDI=channel&0x1; _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿2 _nop_(); _nop_(); ADCLK=1;/拉高CLK端 ADDI=(channel1)&0x1; _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿3 ADDI=1;/控制命令结束 _nop_(); _nop_(); dat=0; for(i=0;i8;i+) dat|=ADDO;/收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次时钟脉冲 _nop_();

35、 _nop_(); dat=1; if(i=7)dat|=ADDO; for(i=0;i8;i+) j=0; j=j|ADDO;/收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次时钟脉冲 _nop_(); _nop_(); j=j7; ndat=ndat|j; if(i=1; ADCS=1;/拉低CS端 ADCLK=0;/拉低CLK端 ADDO=1;/拉高数据端,回到初始状态 dat=8; dat|=ndat; return(dat); /return ad k/*中断*/void Init_Time() TMOD=0X10; TH1=(65536-20

36、000)/256; TL1=(65536-20000)%256; EA=1; ET1=1; TR1=1;/*/* 微秒延时函数 */*/void delay_us(unsigned int n) /延时 如果需要高精度延时 请嵌入汇编 if (n = 0) return ; while (-n); /*/* 毫秒函数声明 */*/ void delay_ms(unsigned char i) unsigned char a, b; for (a = 1; a i; a+) for (b = 1; b; b+) ; /*/* 写入命令函数 */*/ void LCD_write_com(unsi

37、gned char com) RS_CLR; RW_CLR; EN_SET; date = com; delay_us(5); EN_CLR; /*/* 写入数据函数 */*/ void LCD_write_Data(unsigned char Data) RS_SET; RW_CLR; EN_SET; date = Data; delay_us(5); EN_CLR; /*/* 写入字符串函数 */*/ void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s) if (y = 0) LCD_write_com(0

38、x80 + x); else LCD_write_com(0xC0 + x); while (*s) LCD_write_Data( *s); s +; if(Bottem=1) LCD_write_com(0x0f);LCD_write_com(0xC0); if(Bottem=2) LCD_write_com(0x0f);LCD_write_com(0xC5); if(Bottem=3) LCD_write_com(0x0f);LCD_write_com(0xCA); /*/* 初始化函数 */*/ void LCD_init(void) LCD_write_com(0x38); /*显示模式设置*/ delay_ms(5); LCD_write_com(0x38); delay_ms(5); LCD_write_com(0x38); delay_ms(5); LCD_write_com(0x38); LCD_write_com(0x08); /*显示关闭*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1