




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 电子体温计设计摘 要 本文设计一种基于单片机控制的电子体温计,实现了实时测量显示和语音播报与声音报警的功能。主要由电源电路模块,A/D转换电路模块,温度控制模块,自动控制模块,温度设制、显示及报警电路模块,串行通信模块和语音播放模块组成。自动控制模块采用双AT89S52构成主从串行处理结构实现对系统的自动控制。温度控制模块选用AD590集成温度传感器来采集外界温度,转换为线性电压信号。线性电压经由OP07构成高精度低温漂的放大电路处理后,由A/D转换电路模块中的ADC0809完成AD转换,得到8位的数字信号送入自动控制模块的主机中。主机将采集到温度值在LED数码管上显示出来,并通过串口通信将
2、温度信号传到从机。此外,主机完成温度预制和报警电路模块功能,从机完成温度值的语音播放功能。关键词 单片机; AD590; ADC0809; ISD25601 绪论温度是存在于客观世界的一个基本物理量,它与人类的生活和生存有着密切的联系。温测量的历史,可以追溯到l6世纪。当时Saatorio用空气热膨胀的原理,制出了第一支测量口腔温度的体温计。本世纪初,开始用水银来制作体温计,至今在临床上得到了广泛的应用。根据1928年Ebstein的报告,当时除测量口腔及腋下的温度外,还可以测量直肠、颈部、大腿根部,外耳及尿温。这些都是用被测皮肤温度与玻璃球内积存的水银温度相等的原理实现的。由于水银体温计使用
3、方便、精度高,因而应用很广。由于用水银体温计进行体温监测很不方便,水银的污染的可能也很严重等,为了正确测量人体局部温度,促使人们开发了各种不同的测温仪器和测温方法。现在已有许多医院采用了电子体温计,用其它电子仪器测量体温也日益普及。电子温度测量方式是随着电子技术的兴起而发展的一门学科。它利用材料随温度变化的参数转换成电信号1对温度进行测量。早期的电子温度测量均采用模拟技术的方法,对传感器的非线性补偿采用分立式电路进行各种方法的补偿,线路复杂、体积庞大、可靠性低,应用受到很大的制约,微电子技术的发展使这一希望逐步变成了现实。现在数字集成电路技术和相应的数字信号处理理论相对成熟,开发制造成本大幅下
4、降,为新一代电子体温计的开发创造了良好的先决条件,以数字技术为主要技术的新一代电子体温计2,3又一次成为关注和研究的对象。因此,鉴于传统的水银体温计汞的污染及其携带不方便易破碎,尤其是测量时间过长等缺点,本课题设计出一种数字式电子体温计。2 系统方案与论证2.1 方案论证与比较方案一:采用热电偶温差电路测温,温度检测部分可以使用低温热偶,热电偶由两个焊接在一起的异金属导线所组成,通过将参考结点保持在已知温度并测量该电压,便可推断出检测结点的温度。数据采集部分使用带有A/D 通道的单片机,在将随被测温度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示电路上,就可
5、以将被测温度显示出来。系统包括对A/D的数据采集,温度的显示等,这几项功能信号通过输入输出电路由单片机处理。4此外还有复位电路,晶振电路等。现场输入硬件有手动复位键、A/D 转换芯片,处理芯片为51 芯片,执行机构有数码管、报警器等。系统框图如图 2-1所示。数码管报警电路测温点路晶振电路复位电路按键防抖动单 片 机数据传送图 2-1 热电偶温差电路测温系统框图方案二:采用数字温度芯片DS18B20 测量温度,输出信号全数字化。该系统利用单片机控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可根据需要设定上下限报警温度。该系统扩展性非常强,在数据处理同时显示时间
6、,利用键盘来进行调时和温度查询,获得的数据可通过MAX232芯片与RS232接口进行串口通信,方便采集和整理时间温度数据。系统框图如图 2-2所示。按键输入电路驱动电路报警电路测温电路时钟电路复位电路扩展接口:对时间和温度信息定点存储,并与计算机进行数据交换显示电路单 片 机图 2-2 DS18B20温度测温系统框图方案三:外部温度信号经过集成温度传感器采集转换成相应的电压信号,经过信号放大后成为模拟输入信号,AD将该模拟信号转换成数字信号,通过并口送入到主机。主机处理这些信号后通过LED数码管显示出来,同时还处理按键和报警模块的程序。温度值由主机通过串行通信传送给聪机,从机控制语音芯片报出对
7、应的温度值。系统框图如图 2-3所示。放大电路AD温度采集A/D转换电路模块键盘预制、报警电路模块主机串行通信语音播放模块从机显示模块图 2-3 系统框图2.2 方案选择方案一:热电偶在测温范围内热电性质稳定,比热小,导电率高,但热电偶的体积较大,使用不易,价格高5,6。而电子体温计的温度传感器要求易用,方便携带,体积小,故不用采用。方案二:测温装置电路简单、精确度较高、实现方便,但DS18B20一般用于工业测温度,故不采用。方案三:采用集成温度传感器。集成温度传感器一般且有具有线性好、精度高、灵敏度高、体积小、使用方便等优点如上所述,故选用方案三来进行设计。3 系统硬件电路设计电子体温计主要
8、由电源电路模块,A/D转换电路模块,温度控制模块,自动控制模块,温度设制、显示及报警电路模块,串行通信模块和语音播放模块组成。3.1 自动控制模块 单片机的概述 单片机,又称为微控制器。是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统7,8。单片机的主要特点:有优异的性能价格比;集成度高、体积小、可靠性高;控制功能强;低电压、低功耗。单片机的主要应用领域有:
9、工业控制、仪器仪表、电信技术、办公自动化和计算机外部设备、汽车和节能、制导和导航等。9,10 3.1.2 AT89S52芯片自动控制模块选用AT89S52,它是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。11 (1) 标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门
10、狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 (2) 在外部结构上,AT89S52单片机和MCS-51系列单片机的结构相同,有三种封装形式,分别是PDIP形式,为40针脚;PLCC形式,为44针脚;TAFP形式,也为44针脚。其中,常用的为PDIP形式,如图3-1所示。图3-1 AT89S
11、52的引脚图3.2串行通信模块 串行通信模块的主要功能是主机把温度值数据发送到从机,从机接收数据并控制语音芯片报出当前的温度值。主机与从机串行通信电路图如图3-2所示。 图3-2 主机与从机串行通信电路图3.3 电源电路模块如图3-3所示,220V交流电经变压器降压、桥式整流、电容滤波后由7905、7805、7812三端集成稳压管分别得到-5V、+5V、12V电压,整个系统供电。图3-3 电源电路图3.4 温度控制模块温度控制模块选用AD590,主要功能是负责采集温度,把温度值进过放大后传送给A/D转换电路模块3.4.1 AD590概述 集成温度传感器AD590 是美国模拟器件公司生产的集成两
12、端感温电流源。AD590 属于电流型集成温度传感器,电流型集成温度传感器是一个输出电流与温度成比例的电流源,由于电流很容易变换成电压,故使用十分方便。AD590 集成温度传感器的输出电流是整个电路的电源电流,而这个电流与施加在这个电路上的电源电压几乎无关。12,13 AD590主要特性如下: (1) 具有线性输出电流。 (2) 宽广的操作温度范围(-55150)。 (3) 宽广的工作电压范围(+4V+30V)。 (4) 良好的隔离性。 AD590的包装与等效电路如图3-4所示。图3-4 AD590外形及符号AD590是电流型温度传感器,通过对电流的测量可得到所需要的温度值。根据特性分挡,AD5
13、90的后缀以I,J,K,L,M表示。AD590L,AD590M一般用于精密温度测量电路,它采用金属壳3脚封装,其中1脚为电源正端V;2脚为电流输出端I0;3脚为管壳,一般不用。它是两端子的半导体温度感测组件,另有一端子是外壳接脚,可接地以减少噪声干扰。AD590如同一个随温度而改变输出电流的定电流源,输出电流与外壳的开氏(K)温度成正比。开氏温度与摄氏温度的单位相等,0等于273.2K,100等于373.2K。当温度为0时,AD590的输出电流是273.2A。而温度为100时,输出电流是373.2A。温度每升高1,输出电流增加1A,及温度系数为1 A/。 温度检测、放大电路原理AD590当温度
14、增加1时,其输出电流会增加1A。即AD590的温度系数为1A/。所以在T()时的电流I1(T)为 (式3.1)而温度每变化1时,V2的电压变化是为 (式3.2) 表示温度每增加1,V2会增加10mV。在0时V2就已经有电压存在,其值为 (式3.3) 则T()时 , (式3.4)如图3-3所示,OP3组成差动放大器,电压增益为 (式3.5)零位调整SVR1则用于抵补0的电压值,由差动放大器的公式 (式3.6)可得知,若调整SVR1使V1的电压为2.732V,则0时,差动放大器的输出VO为0V。也就是说,若温度是在0至50之间,则差动放大器的输出电压是在0V至5V之间,亦即每0.1V的输出代表温度
15、上升1。与设计要求相符合。 温度检测与放大电路该模块的主要功能是实时检测温度并转换放大,传送给A/D转换电路。温度检测、放大电路主要器件的作用:OP1:设置温度阀值;OP2:采集AD590转换温度数据;OP3:完成A/D数模转换所需的模拟信号输入;AD590:温度传感器;SVR:零位调整。如图3-5所示。图3-5 AD590温度检测、放大电路图3.5 A/D转换电路模块A/D转换电路模块选用ADC0809,其功能是从温度控制模块接受数据后,经过A/D转换,把模拟量转换成数字量传送给主机进行处理。3.5.1 ADC0809概述 ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次
16、逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片14,15 (1)主要性能特点 8路8位A/D转换器,即分辨率8位 具有转换起停控制端 转换时间为100s 单个5V电源供电 模拟输入电压范围05V,不需零点和满刻度校准 工作温度范围为-4085摄氏度 低功耗,约15mW (2)引脚特性IN0-IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入
17、前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A、B、C三条地址线的地址信号进行锁存,经译码后被选中的通.的模拟量进转换器进行转换。A、B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。数字量输出及控制线:11条。ADC通道选择表如表3-1所示。表3-1 ADC0809通择表CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EO
18、C为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7-D0为数字量输出线。 CLK为时钟输入信号线。ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。3.5.2 A/D转换电路图如图3-6所示,ADC0809把从放大电路传送过来的模拟信号转变成数字信号,并行传送给单片机的P0口,让单片机处理。图3-6 A/D转换电路图3.6温度设制、显示及报警电路模块该模块通过按键可事先设置报警温度值,当显示的
19、温度值超过设定的温度值时,单片机会从INT0脚发出一连串脉冲,驱动蜂鸣器发出报警声。数据用3位LED显示 LED显示器简介在显示系统中,使用的显示器件主要有LED发光二极管,LCD液晶显示器,近年来也有使用简易形式的CRT接口,其中LED显示器最为常见,具有成本低廉、配置灵活、与单片机的接口简单方便、易于编程等特点,在低端领域使用广泛, LCD液晶显示器多用于高端场合。在本系统设计中,采用LED显示器。LED显示器是由发光二极管显示字段促成的器件,在单片机应用系统中通常使用的是七段LED,这种显示器分共阴极和共阳极两种。其结构图如下图3-7所示。 a)共阴极 (b)共阳极 (c)结构图图3-7
20、 3位LED结构图共阴极LED数码管的发光二极管的阴极接地,当发光二极管的阳极为高电平时,发光二极管点亮;共阳极LED数码管的发光二极管的阳极接+5V电源。N位的LED显示器有N根位选线和8N根段选线,位选线控制显示位的亮和暗,段选线控制字符的选择。LED显示器有两种显示方式静态显示方式和动态显示方式。在静态工作方式下,共阴极接地或者共阳极接5V,每一位的段选线(ag,dp)与一个8位的并行I/O口相连。在动态工作方式中,要将所有位的段选线并接在一个I/O口上,共阴极或共阳极分别由相应的I/O口线控制。由于每一位的段选线都接在一个I/O口上,所以每送一个段选码,各位显示器都显示同一个字符,这样
21、的显示器是不能用的,解决方法是利用人的视觉滞留,从段选线I/O口上按位次分别送显示字符的段选码,在位选控制口也按相应的次序分别选通相应的显示位(共阴极送低电平,共阳极送高电平),选通位就显示相应字符,并保持几毫秒的延时,未选通位不显示字符(熄灭),这样对各位的显示就是一个循环的过程。由于人的视觉滞留,这种动态变化是观察不到的,从效果看,各位显示器能连续而稳定的显示不同字符。在实际使用中,多使用动态显示16方式。 电路图如图3-8所示。图3-8 温度设制、显示及报警电路图3.7 语音播放模块语音播放模块采用采用ISD2560语音录放集成电路,其功能是进行语音提示。 ISD2650概述 (1) I
22、SD2560是DIP器件封装,有28脚,如图3-9所示。图3-9 ISD2560管脚图 各引脚功能如下: 脚1脚7: A0/M0A6/M6地址/模式选择; 脚8脚10: A7A9输入地址线 ; 脚11: AUX IN辅助输入; 脚12、脚13: VSSD、VSSA数字地和模拟地; 脚14、脚15: SP 、SP-扬声器输出; 脚16: VCCA模拟信号电源正极; 脚17、脚18: M IC、MIC REF 麦克风输入端和输入参考端 ; 脚19: AGC自动增益控制; 脚20、脚21: ANA IN、ANA OUT 模拟信号输入和输出; 脚22: OUF 溢出; 脚23: CE 片选(低电平允许
23、芯片工作); 脚24: PD 芯片低功耗状态控制; 脚25: EOM 录放音结束信号输出; 脚26: XCLK 外部时钟; 脚27: P/R 录/放控制选择; 脚28: VCCD 数字信号电源正极;(2)工作原理:ISD2560内部存储单元EEPROM均匀分为600行,有600个地址单元,每个地址单元指向其中一行,每一个地址单元分辨率为100ms 。ISD2560有10个地址输入端A0A9,录址能力达1024位,地址空间为01023。其分配情况是:地址0299作为分段用,地址600767未使用,地址7681023为工作模式选择(即A8、A9都为高)。当最高位地址A8、A9都为高电平时(地址76
24、81023),地址端A0A6就作为工作模式选择端M0M6,对应7种工作模式。当A8、A9不都为高时(地址0599),只需在分段录、放音操作前(不少于300ns)给地址A0A9赋值,操作就从该地址开始。17 ISD2560将EEPROM分为600个信息段,每段800个字节。作为一个整体单位进行寻址和控制,应给每个信息段分配一个供外部控制的地址。每个语音段的尾部自动增加一个结束标志EOM,组合放音时,通过检测EOM来控制各语音段的结束和下一段的开始。 每个信息段录放音时间等于总时间除以600。例如ISD2560总时间为60s,每个信息段的录放音时间为100ms。故可利用该时间长度作为一个段地址,通
25、过单片机定时器的计时平行地映射信息段的地址,得到每段录音的起始地址。这样,就需设置一个地址计数器。一般录音从0地址开始,首先通过CPU将它赋给A0A9,然后通过单片机控制ISD启动录音,同时启动单片机的定时器开始计时,每到一个信息段的时间,就给地址计数加1。当单片机停止控制ISD录音时,同时停止定时器计时。此时地址计数器的值即为该段语音的未地址,加1即为下一段语音首地址,并将它存在EEPROM中,为下一将放音提供地址信息。通过CPU将该地址赋给A0A9,即可录制下一段语音。依次下去,即可在录制完所有语音段的同时得到各段的起始地址。若不是从0地址开始的语音段,需将初始地址赋给A0A9,加上地址计
26、数器的值,可得到语音段的末地址。 电路原理图语音播放模块如图3-10所示,主要由单片机AT89S52与语音芯片ISD2560组成。图3-10 录音、放音电路图4 系统软件设计4.1系统程序流程图图4-1为主机程序流程图,主要功能是显示温度、按键扫描、BCD码转换、串行发送数据给从机。定时器定时1ms,每定时100次即1秒钟就启动A/D转换程序、BCD码转换程序,串行发送二进制数给从机。图4-2为从机程序流程图,负责接收数据并且播报相应的温度值,T0定时器定时,结合延时程序定时1分钟,使每1分钟更新一次语音音素地址,即每1分钟更新一次温度值 ,并在中断程序处理过程度中播报一次温度。开始显示温度启
27、动A/D转换按键扫描初始化BCD码转换串行发送1秒钟到否NY开始初始化二进制转十进制BCD码1分钟到否播报一次温度串口中断入口返回更新温度数据YN图4-1 主机程序流程图 图4-2 从机程序流程图4.2子程序流程图T0中端人口计数变量清零Y播报一次温度N返回1分钟到否 图4-3 从机的T0中断程序流程图5 系统测试5.1硬件测试 单元模块测试 (1)电源测试:用数字万用表电压档测量各三端稳压管输出的电压值是否正常。测试相关测试点,三路电压正常。 (2) 温度采集模块的测试:调节温度变化,测试点的电压值是否有相对应的改变。当温度变化时,测试点的电压与温度之间的线性关系比较好,如表所示。 (3)A
28、/D 转换模块的测试:当输入为0V 和5V 以及中间若干电压输入时,测试A/D转换是否正常。测试发现当输入为0V 时,ADC0809 的输出为00H,为+5V 时为0FFH,当输入为2.5V 时,输出为0EFH,测试结果表明A/D 转换的功能完全实现。 (4)语音播放模快的测试:通过拨码开关人工给语音芯片选地址,测试不同的地址是否有不同的发音,以检验语音是否正确录入及能否正常播放。根据设定,将12个语音信号分别放到指定的行地址上,当按相应的行地址拨开关给ISD2560 时,能够正常播放设定的12个语音,说明语音芯片的录用存贮工作成功。接入系统,编程输出相应的行地址,ISD2560能够正常播放各
29、个语音,说明语音播放模快的硬件设计可行。 系统整体测试测试方法以水温代替人的体温,用一根水银温度计与所制作的体温计探头(捆绑)同时接触被测热水的同一点。(1)准备一杯0摄氏度的冰水混合物和一杯热水。从0度开始记录测试点的电压值与温度计对比较。记完一个数后,往杯中加热水,这样,每测一次,记录一次数据,再加一次热水,这样使水温渐渐升高,一直测到水温为50摄氏度。 (2)检测水温高于50 摄氏度时测试点的电压值。看是否为5V。结果显示为+5V,说明保护电路可行。5.2 软件测试将各功能子程序进行KAIL C系统进行软件仿真,全部通过,再进行硬件仿真,也能全部实现所要求实现的功能。 (1)数码管显示的
30、测试:把放大器的输出连接到ADC0809的输入端,ADC0809 与单片机相连接,观察数码管显示的数值是否与测试点所测值成归一化关系。 (2)双机串行通信测试:主机发送一个8位二进制数,用示波器观察从机是否接收到。5.3 硬件与软件的联机测试 将把程序经编译、下载到相应的AT89S51 芯片中,构建电路测试,比较数码管显示的数值与温度计的值和测试点的值。5.4 测试数据和结果分析 测试数据按照前述的测试方法,取得到测试结果如表5-1所示。表5-1 数码显示与测试点电压随温度变化关系温度值(摄氏度)数码管显示值测试点电压值(V)000.00.010.010.01.00119.019.01.903
31、38.138.13.82047.847.84.80060.150.05.003 结果分析根据上述测试结果,此系统的设计基本取得成功。智能体温计的测量范围在,在测试温度方面有一定的成效,测试误差较小,通过表5-1的数据比较,显示的误差与实际的温度值误差在内。数码管显示的数值是否与测试点所测值成归一化关系。6 结论 本次设计采用AT89S52作为核心器件实现对系统的自动控制,采用双单片机串行处理结构。AD590集成温度传感器采集外界温度,并将温度变化转换为线性电压信号。线性电压经由OP07构成高精度低温漂的放大电路处理后,作为ADC0809的模拟输入信号,由ADC0809完成AD转换,得到8位的数
32、字信号送入主机(AT89S52)。主机将采集到温度值在LED数码管上显示出来,并通过串口通信将温度信号传到单从机(AT89S52)。此外,主机完成温度预制和报警电路模块功能,主机完成温度值的语音播放功能。比起水银体温计,电子体温计利用电子感温,灵敏度高,适合无法长时间安静的儿童,且能在较短的时间内准确测试出体温,温度播报时间可快至1min。它的测量精度可达0.1,LED直接显示体温数值。参考文献Electronic thermometers designZhao ZhixiangAbstract As the era of progress and development, microcont
33、roller technology has spread to our life, work, scientific research, etc, has become a more mature technology, this paper introduces a kind of based on single chip microcomputer control, the electronic thermometers AT89S52 as the core device implements to the system automatic control, adopt double m
34、icrocontroller serial processing structure. AD590 temperature sensors to collect outside temperature integrated, and temperature change converted to linear voltages. OP07 constitutes high precision linear voltage temperature drift through the amplifier circuit, as ADC0809 after treatment by the anal
35、og input signal, ADC0809 finish A/D conversion, get eight digital signals into AT89S52 SCM (1). SCM 1 temperature collected in LED digital display, and tube through serial communication will temperature signals to single Keywords Microcontroller; AD590; ADC0809; ISD2560 致 谢谢我的班主任魏勇老师,谢谢他在这四年中为我们全班所做
36、的一切,他不求回报,无私奉献的精神很让我感动,再次向他表示由衷的感谢。#include #include #include #define uchar unsigned char#define uint unsigned intuchar code dis_code10=0xc0,0xf9,0xa4,0xb0,/ 0, 1, 2, 30x99,0x92,0x82,0xf8,0x80,0x90; / 4, 5, 6, 7, 8, 9, off uchar data set_data3=0x00,0x07,0x03; /预设37.0度uchar data ad_data; /AD转换结果uchar
37、 data dis_buf3=0x00,0x00,0x00; / 显示缓冲区uchar data bcd_buf3=0x00,0x00,0x00; /十进制BCD码转换存放区uchar data TIMER0_NUM;bit TIMER0_flag;bit data set_flag=0;sbit ALE=P24;sbit OE=P25;sbit START=P26;sbit EOC=P27;sbit P30=P30;sbit select0=P37;sbit select1=P36;sbit select2=P35;sbit K1=P20;sbit K2=P21;sbit K3=P22;sb
38、it K4=P23;sbit bep=P33;sbit SET_IND=P34;sbit P17=P17; /小数点uint data temp;/*/*函数声明/*/void delay1ms(uchar t); void adc(void);void BCD(void);void keyscan(void);void send_str(void);void beep(void);void display(void);/*/*按键蜂鸣函数/*/void beep2(void) uchar data j,k; for(j=26;j0;j-) for(k=254;k0;k-); bep=!bep
39、; bep=1; /*/*蜂鸣报警/*/void beep(void) uchar data j,k; for(j=100;j0;j-) for(k=254;k0;k-) bep=0; bep=1; /关蜂鸣器 /*/*延时1ms函数/*/void delay1ms(uchar t) uchar j,k; for(j=0;jt;j+) for(k=0;kset_data2) /报警值检测 beep(); else if(bcd_buf2=set_data2) if(bcd_buf1set_data1) beep(); else if(bcd_buf1=set_data1) if(bcd_buf
40、0set_data0) beep(); /*/*键盘扫描函数/*/void keyscan(void) uchar data m; if(K1=0) /K1设置键 for(m=0;m100;m+) /延时11msdisplay(); if(K1=0) beep2(); /按键时响一声 set_flag=!set_flag; /设置标志位取反 if(set_flag=1) /若设置键按下,则检测K2-K4 SET_IND=0; /设置灯亮 if(K2=0) /K2:十位加1 for(m=0;m100;m+) /延时11ms display(); if(K2=0) beep2(); /按键时响一声
41、 set_data2+; if(set_data2=5) set_data2=0; if(K3=0) /K3:个位加1 for(m=0;m100;m+) /延时11ms display(); if(K3=0) beep2(); /按键时响一声 set_data1+; if(set_data1=10) set_data1=0; if(K4=0) /K4:小数位加1 for(m=0;m100;m+) /延时11ms display(); if(K4=0) beep2(); /按键时响一声 set_data0+; if(set_data0=10) set_data0=0; else SET_IND=
42、1;/*/*显示函数/*/void display(void) if(set_flag) /设置键按下,则显示设置的数值 dis_buf0=set_data0; dis_buf1=set_data1; dis_buf2=set_data2; else /否则显示温度值 dis_buf0=bcd_buf0; dis_buf1=bcd_buf1; dis_buf2=bcd_buf2; P1 = 0xff; / 先关闭所有数码管P1 = dis_codedis_buf0; / 小数显示代码传送到P1口select2=1;select1=1;select0=0;/ 位选delay1ms(1); /延时1msP1 = dis_codedis_buf1; / 个位显示代码传送到P1口select2=1;select1=0;select0=1;/ P17=0;delay1ms(1); /延时1msP1 = dis_codedis_buf2; / 十位显示代码传送到P1口select2=0;select1=1;select0=1;/ delay1ms(1); /延时1ms/*/*串口发送一个字符函数/*/void send_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 出血的护理措施
- 超市员工保密协议书
- 驿站转让违约协议书
- 餐厅经营股东协议书
- 铁路应聘就业协议书
- 兄弟俩共同分家协议书
- 餐饮项目外包协议书
- 道路合作施工协议书
- 餐厅物业转让协议书
- 裁员赔偿保密协议书
- 苏州昆山鹿城村镇银行2023年招聘人员笔试历年难、易错考点试题含答案附详解
- 2023年高考英语模拟卷(天津专用)(解析版)
- 山西煤炭运销集团锦瑞煤业有限公司煤炭资源开发利用、地质环境保护与土地复垦方案
- 《国家中药饮片炮制规范》全文
- 教育公共基础知识整理版
- Q-SY 06351-2020 输气管道计量导则
- 铁路工程定额电子版(Excel版)
- 如何预防与处理劳动争议培训课件
- JJG 1148-2022电动汽车交流充电桩(试行)
- GB/T 31586.2-2015防护涂料体系对钢结构的防腐蚀保护涂层附着力/内聚力(破坏强度)的评定和验收准则第2部分:划格试验和划叉试验
- GB/T 24917-2010眼镜阀
评论
0/150
提交评论