版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西华大学电气信息学院智能化电子系统设计报告 1 前言现代生活,电脑已经成为人们生活中不可缺少的一部分。无论笔记本电脑还是台式电脑,人们在选择的时候都会考虑到它的散热性能,一个好的散热系统能够保证电脑的高速正常运行,给CPU足够的空间进行高负载的活动,才能享受计算机技术给我们生活带来的无穷魅力,可见一个好的散热系统,对电脑而言是多么的重要。但是,计算机部件中大量使用的是集成电路,而众所周知,高温是集成电路的大敌。高温不但会导致系统运行不稳,使用寿命缩短,甚至有可能使某些部件烧毁。导致高温的热量不是来自计算机外,而是计算机内部,或者说是集成电路内部。散热器的作用就是将这些热量吸收,然后发散到机箱内
2、或者机箱外,保证计算机部件的温度正常。多数散热器通过和发热部件表面接触,吸收热量,再通过各种方法将热量传递到远处,比如机箱内的空气中,然后机箱将这些热空气传到机箱外,完成计算机的散热。说到计算机的散热器,我们最常接触的就是CPU的散热器。散热器通常分为主动散热和被动散热两种;前者以风冷散热器较为常见,而后者多为散热片。细分散热方式,又可分为风冷,液冷,半导体制冷,压缩机制冷等等。其中,液冷·半导体制冷及压缩机制冷要么技术不成熟,要求高,能耗大;要么体积受限,价格昂贵。风冷散热器作为区别于水冷散热器的一个主流产品类别,不断的引领着整个IT散热市场的前进和创新因此,风冷是最常见,性价比最
3、高的散热方式,我们设计的“智能电脑散热系统”就是利用温度传感器实现对外界温度的感知,再利用单片机 编程控制风扇的转速,从而实现温度的自动调节,以达到散热目的。正是因为融合了温度传感器技术和单片机技术,使得本作品兼智能化和自动化于一体。而温控调速技术的优点在于其能有效地提高散热器的的工作效率,节约能源,性价比高,适用范围广泛。且本设计比较人性化,由于不同的电脑的散热能力不同,对于散热能力很差的电脑而言,只凭借温控可能无法实现正常降温,就需要人为控制来调节适合电脑的散热,因此我们增加了手控模式。本设计中增加了实时温度显示,让我们随时看着CPU的具体温度,从而消除忧虑,并且,在这基础之上,还增加了高
4、温报警功能,避免你的电脑因为温度过高烧毁一些部件甚至是CPU。因此,我们的设计更加人性化,更加舒适。 2 总体方案设计2.1设计内容 根据对环境温度的测量控制小风扇的转速,并用数码管显示当前温度数值,温度升高风扇转速提高,温度降低风扇转速下降。同时配备按键实现控制风扇的启、停,温控模式、手控模式、手控档位加,手控档位减,另外还要实现温度过高自动报警,以及按键按下时发声,提醒操作成功。2.2方案比较 方案一:选用热敏电阻作为感测温度的核心元件,通过运算放大器放大由于温度变化引起热敏电阻电阻的变化、进而导至的输出电压变化的微弱电压变化信号,再用AD转换芯片ADC0809将模拟信号转化为数字信号输入
5、STC89C52RC单片机处理。采用液晶显示屏LCD显示温度,电机采用数模转换芯片AD0832控制,由单片机根据当前温度值送出相应数字量到AD0832,由AD0832产生模拟信号产生PWM波,控制直流电机转速。如图2.1热敏电阻检测温度89C52单片机比较器AD转换LCD显示按键控制DA转换控制电机报警装置 图2.1 系统总体框图 方案二:采用数字式集成温度传感器DS18B20作为感测温度的核心元件,直接输出数字温度信号输入STC89C52RC单片机处理,采用四位共阳数码管显示温度,采用动态扫描显示方式,并且采用对单片机编程输出PWM调制波形经ULN2003驱动后直接控制电机转速。如图2.2D
6、S18B20温度转换89C52单片机四位7段LED数码管按键控制U L N2003控制电机报警装置图2.2 系统总体框图2.3 方案论证 方案一:此方案能够实现设计的功能,采用热敏电阻有价格便宜、元件易购的优点,但热敏电阻对温度的细微变化不敏感,在信号采集、放大、转换过程中还会产生失真和误差,并且由于热敏电阻的R-T关系的非线性,其本身电阻对温度的变化存在较大误差,虽然可以通过一定电路予以纠正,但不仅将使电路复杂稳定性降低,而且在人体所处温度环境温度变化中难以检测到小的温度变化。液晶体显示屏具有显示字符优美,不但能显示数字还能显示字符甚至图形的优点。但是液晶显示模块价格昂贵,驱动程序复杂。虽然
7、用DA转化芯片产生PWM调制波能够实现,但是D/A转换芯片价格较高,与其温控状态下单片机直接编程相比性价比不高。 方案二:本方案也能正常实现设计的功能,并且由于数字式集成温度传感器DS18B20的高度集成化,大大降低了外接放大转换等电路的误差因素,温度误差很小,并且由于其感测温度的原理与上述方案的原理有着本质的不同,使得其温度分辨力极高。温度值在器件内部转换成数字量直接输出,简化了系统程序设计,又由于该传感器采用先进的单总线技术,与单片机的接口变的非常简洁,抗干扰能力强。LED数码管显示,成本低廉,显示温度明确醒目,在夜间也能看见,功耗极低,显示驱动程序的编写也相对简单,这种显示方式得到广泛应
8、用。2.4方案选择通过上面两种方案的论证比较,中和性价比和复杂度,我们选择第二种方案。3.单元模块电路简介与设计3.1 本系统部分器件介绍3.1.1 DS18B20 温度传感器简介DS18B20 单线数字温度传感器是Dallas 半导体公司开发的世界上第一片支持“一线总线”接口的温度传感器。它具有3 引脚TO92 小体积封装形式。温度测量范围为-55+125,可编程为9 位12 位A/D 转换精度,测温分辨率可达0.0625。被测温度用符号扩展的16 位数字量方式串行输出。工作电压支持3V5.5V 的电压范围,既可在远端引入,也可采用寄生电源方式产生。DS18B20 还支持“一线总线”接口,多
9、个DS18B20可以并联到3 根或2 根线上,CPU 只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。它还有存储用户定义报警温度等功能。DS18B20 内部结构及管脚图:DS18B20 内部结构如图3.1所示,主要由4 部分组成:64 位ROM、温度传感器、非挥发的温度报警触发器TH 和TL、配置寄存器。其管脚排列如图3.2所示,DQ 为数字信号端,GND 为电源地,VDD 为电源输入端。图3.1 DS18B20 内部结构图3.2 DS18B20 外形及管脚3.1.2 STC89C52RC单片机简介STC89C52RC 是一种带4K字节闪存可编
10、程可擦除只读存储器(FPEROM)256B片内RAM的低电压,高性能CMOS8 位微处理器。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容。由于将多功能8 位CPU 和闪烁存储器组合在单个芯片中,STC 的STC89C52RC 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。STC89C52RC单片机管脚如图3.3所示:图3.3 STC89C52RC单片机管脚各管脚功能:VCC:供电电压。GND:接地。P0 口:P0 口为一个8 位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。当P1 口的管脚第一次写1 时,
11、被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH 编程时,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
12、”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是8 个带内部上拉电阻的双向I/O 口,可接收输出4 个TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流
13、(ILL)这是由于上拉的缘故。P3 口也可作为AT89C51 的一些特殊功能口。3.1.3 ULN2003芯片简介ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。 输入5VTTL电平,输出可达500mA/50V。 ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。 该电路的特点如下: ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。 ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增
14、益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统其管脚图如图3.4 图3.4 ULN2003芯片引脚图3.2 单元模块电路设计3.2.1 电源电路电源电路主要是为系统提供电源,在本设计中,为了使电路简单,我们直接用USB接口提供5V直流电源为电路供电。下图中的第2个图是电源指示灯电路,指示是否给系统加电,第3个图是滤波电路,第4个图是为其余芯片供电电路。电路如图3.5。 图3.5 电源电路图3.2.2 单片机主芯片电路 芯片STC89C52RC是带2K字节快闪存储器的8位单片机。P0-P3口都是并行I/O口,都可用于数据的输入和输出。其中P1的P
15、1.4,P1.5,P1.6,P1.7口用于LED显示的位选控制;P1.2高温报警;P1.3用于控制直流电机的转速。P2口用于LED数码管的段选信号输出,P3.4用于DS18B20温度检测值的输入,而P0.0-P0.4用于按键的输入检测,同时P0口加上拉电阻。电路如图3.6 。图3.6 单片机芯片STC89C52的电路图3.2.3 时钟电路单片机的晶振电路,即时钟电路。单片机的工作流程,就是在系统时钟的作用下,一条一条地执行存储器中的程序。单片机的时钟电路由外接的一只晶振和两只起振电容,以及单片机内部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降。
16、单片机系统常用的晶振频率有6MHz、110592MHz、12MHz、本系统采用110592MHz晶振,电容选30pF,电路如图3.7 。图3.7 晶振电路图3.2.4 复位电路系统刚上电时,单片机内部的程序还没有开始执行,需要一段准备时间,也就是复位时间。一个稳定的单片机系统必须设计复位电路。当程序跑飞或死机时,也需要进行系统复位。复位电路有很多种,有上电复位,手动复位等,电路如图3.8 。 图3.8 复位电路图3.2.5 显示电路LED采用共阳极数码管,利用单片机的I/O口驱动LED数码管的亮灭。设计中为了简化电路,直接用P1.5-P1.7四位来作为数码管的片选信号,P2口来作为其段码控制L
17、ED数值显示。其电路如图3.9图3.9显示模块电路图3.2.6 温度检测电路 设计中利用DS18B20作为温度检测,并且它能自动将温度信号转换成数字信号输入给单片机的P3.4口,检测灵敏,速度较快。模块电路如图3.10图3.10 温度检测电路3.2.7 按键控制电路设计中利用五个按键控制,系统的启、停,模式选择,以及手控模式下的风扇转速增减(默认为温控模式),分别通过单片机I/O口的P0.0-P0.4输入,并且P0口加上拉电阻。电路如图3.11图3.11 按键控制电路3.2.8 报警及电机电路 高温报警和按键发声采用同一电路,通过单片机的P1.2输出信号经ULN2003后控制此部分,而电机的控
18、制则由单片机P1.3输出调制后的波形经ULN2003后驱动电机。电路如图3.12图3.12 报警及电机电路3.3 模块联接总电路 根据以上各个部分的介绍,最后联接成整体,实现从DS18B20中采集温度,将温度值一数字信号送入单片机中经过处理后控制显示以及风扇转速,随着温度的变化,显示和电机的转速也会发生变化,并且进入手控模式后,通过按键也可以人为控制转速,其联接总图如3.13:图3.13 系统联接总电路图4.软件设计4.1 程序设计原理及所用工具本设计采用刚刚学过的51单片机汇编语言进行编程,采用模块化思想,即将其分为很多个模块,有DS18B20部分,显示部分,PWM调制部分,温度比较及高温报
19、警部分,按键控制部分,编程所用的软件是Keil2,下载程序用到了STC_ISP_V481软件,程序调试时仿真用到Proteus 7.0。4.2 主程序设计 主程序中主要完成将各模块程序联接起来,并且不断循环进行,达到连续工作,并且会进行状态查询,当开启后才能执行程序,否则不断待机查询,最后进行是否关闭查询,若没有关闭,正常执行,若关闭则进入待机查询开启键状态。流程框图见图4.14.3各模块子程序设计4.3.1 DS18B20复位与检测子程序在本子程序中首先进行DS18B20的复位并查询是否准备好,然后写入控制,读出温度,其代码如下:RESET: SETB DATA_LINE NOP CLR D
20、ATA_LINE MOV R0,#64H MOV R1,#03HRESET1: DJNZ R0,$ MOV R0,#64H DJNZ R1,RESET1 SETB DATA_LINE NOP MOV R0,#25HRESET2: JNB DATA_LINE,RESET3 DJNZ R0,RESET2 JMP RESET4 RESET3: SETB FLAG1 JMP RESET5RESET4: CLR FLAG1 JMP RESET6RESET5: MOV R0,#064H DJNZ R0,$ RESET6: SETB DATA_LINE RET 本代码的过程是,首先由单片机向其输入大约600
21、us的低电平信号,为了让DS18B20复位,然后将总线拉高就是等待它的反应,若存在并且准备就绪就会给单片机回复一个高电平,当我们查询到高电平后,就将标志位置高,表明其存在并准备好,查询不到高电平,则代表DS18B20存在故障,则标志位清零。通过这个子程序,可以准确的判断DS18B20的状态,有利于系统的正常运行。 而从DS18B20中读取温度的程序如下:READ: MOV R4,#4 ; 将温度高位和低位从DS18B20中读出 MOV R1,#30H ; 存入30H、31H、32H、33HRE00: MOV R2,#8RE01: CLR C SETB DATA_LINE NOP NOP CLR
22、 DATA_LINE ;读前总线保持为低 NOP NOP NOP SETB DATA_LINE ;开始读总线释放 MOV R3,#09 ;延时18微妙 DJNZ R3,$ MOV C,DATA_LINE ;从DS18B20总线读得一个BIT MOV R3,#23 DJNZ R3,$ ;等待46微妙 RRC A ;把读得的位值环移给A DJNZ R2,RE01 ;读下一个BIT MOV R1,A INC R1 DJNZ R4,RE00 RET 通过这个程序我们可以看出,在DS18B20准备就绪并且应答单片机后,就可以进行读取温度的操作。将读取的数据放入单片机的数据储存器的4个储存单元。从程序中可
23、以看出,DS18B20是采用串行通信方式,只能进行位操作,通过将读取来的信息在累加器中进行带标志位移位操作,可以将串行变并行,完成读取后的温度信息是以字节的形式存在,方便后续的调用和处理。4.3.2 显示子程序 将温度读出转换后的温度数据分别存在70H-73H中,在本子程序中将其读出从P2口输出控制数码管显示。 将读取来的温度数据进行BCD码转换的代码如下:CONVTEMP: MOV A,TEMPH ;判温度是否零下 ANL A,#80H JZ TEMPC1 ;温度零上转 CLR C MOV A,TEMPL ;二进制数求补(双字节) CPL A ;取反加1 ADD A,#01H MOV TEM
24、PL,A MOV A,TEMPH ; CPL A ADDC A,#00H MOV TEMPH,A ;TEMPHC HI =符号位 MOV TEMPHC,#0BH SJMP TEMPC11TEMPC1: MOV TEMPHC,#0AH ;TEMPC11: MOV A,TEMPHC SWAP A MOV TEMPHC,A MOV A,TEMPL ANL A,#0FH ;乘0.0625 MOV DPTR,#TEMPDOTTAB MOVC A,A+DPTR MOV TEMPLC,A ;TEMPLC LOW=小数部分 BCD MOV A,TEMPL ;整数部分 ANL A,#0F0H SWAP A MO
25、V TEMPL,A MOV A,TEMPH ANL A,#0FH SWAP A ORL A,TEMPL MOV TEMP_ZH,A ;组合后的值存入TEMP_ZH LCALL HEX2BCD1 MOV TEMPL,A ANL A,#0F0H SWAP A ORL A,TEMPHC ;TEMPHC LOW = 十位数 BCD MOV TEMPHC,A MOV A,TEMPL ANL A,#0FH SWAP A ;TEMPLC HI = 个位数 BCD ORL A,TEMPLC MOV TEMPLC,A MOV A,R7 JZ TEMPC12 ANL A,#0FH SWAP A MOV R7,A
26、MOV A,TEMPHC ;TEMPHC HI = 百位数 BCD ANL A,#0FH ORL A,R7 MOV TEMPHC,ATEMPC12: RETTEMPDOTTAB: DB 00H,01H,02H,03H,04H,05H,06H DB 07H,08H,09HHEX2BCD1: MOV B,#064H DIV AB MOV R7,A MOV A,#0AH XCH A,B DIV AB SWAP A ORL A,B RET BCD码的转换是温度数据进入单片机后最重要的过程,之后的显示和PWM调制过程都要用到转换后的数据,如果本部分代码有误,整个系统都将无法运行。从程序中可以看出,首先是
27、判断温度是否零下,因为涉及到符号位的取值,如果没有这一步在后面的单字节的BCD码转换过程中就不能读取出符号信息。当把温度数据转换成BCD码后,需提取出各位的值,将一个两位或者三位数分解成由百位,十位,各位构成的好处是有利于后面动态扫描显示的段码值查表。 显示部分代码如下:DISP1: MOV R1,#70H ;指向显示数据首址 MOV R5,#80H ;扫描控制字初值PLAY: MOV P2, #0FFH MOV A,R5 ;扫描字放入A MOV P1, A MOV A,R1 ;取显示数据到A MOV DPTR,#TAB ;取段码表地址 MOVC A,A+DPTR ;查显示数据对应段码 MOV
28、 P2,A ;段码放入P2口 MOV A, R5 JNB ACC.6,LOOP5 ;小数点处理 CLR P2.7LOOP5: LCALL DL_MS ;显示2MS INC R1 ;指向下一个地址 MOV A,R5 ;放回 R5 内 JB ACC.3,ENDOUT ;ACC.3=1时一次显示结束 RR A ;A 中数据循环右移 MOV R5,A ;放入 R5 中 AJMP PLAY ;跳回 PLAY 循环ENDOUT: MOV P1,#00H ;一次显示结束,P1口复位 MOV P2,#0FFH ;P2口复位 RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,
29、0F8H,80H,90H,0FFH,0BFH,0C7H,89HDL_MS: MOV R6,#25 DL1: MOV R7,#100DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET 通过转换后的数据存在70H-73H中,将其读出再通过查表,获得段码值,然后通过单片机的P2口送出控制LED显示,而位选信号通过P1口送出,本程序中为了简便,使用了移位循环显示,并且带有小数点的显示。4.3.4 按键扫描子程序 本子程序是进行控制模式选择按键查询,并且进入手控模式时的档位调节查询,并且伴有按键发声,按键扫描子程序代码:KEYSCAN1: JB K1,KEYSCAN1 LCALL BEEP
30、_BL0 RETKEYSCAN2: JB K4,KEYSCAN2_OUT CPL FLAG2 LCALL BEEP_BLKEYSCAN2_OUT: RETKEYSCAN4: JB FLAG2,KEY1AJMP KEYSCAN4_OUTKEY1: JB K3,KEY2 LCALL BEEP_BL MOV A,ZS_MR ADD A, #5 MOV ZS_MR,A AJMP KEYSCAN4_OUTKEY2: JB K5,KEYSCAN4_OUT LCALL BEEP_BL MOV A,ZS_MR SUBB A, #5 MOV ZS_MR,A AJMP KEYSCAN4_OUTKEYSCAN4_O
31、UT: RETKEYSCAN3: JB K2,KEYSCAN3_OUT LCALL BEEP_BL0 LCALL KEYSCAN1KEYSCAN3_OUT: RET 本代码中包含启动关闭按键,当供电后,单片机进入查询待机状态,只有在K1键按下后,才能够执行主程序,而K2键用于关闭系统,当其按下后,调用按键发声程序,转入查询K1待机状态。而K4键是模式选择键,本设计精巧之一就有模式选择时,设定了标准位,可以通过查询标志位便能够确认模式,从而进行不同的PWM调制,默认模式为温控模式标志位为低,当按下K4便进入手控模式,同时标志位置高,只有在K4按下后,K3,K5按键才有效,分别为档位加和档位减,并
32、且按键按下都会调用发声程序,并且二极管会发光,提醒操作成功。开始初始化开启?查询按键K1检测DS18B20正常?NYN温度转换命令Y读温度温度BCD码处理显示温度模式查询与默认温度比较查询是否关按下?YN图4.1 主程序流程框图5系统调试5.1 硬件调试 在完成电路图的仿真之后,进入了实物设计,实物设计主要是对自己所设计的电路图进去焊接,用到自己电路图上的所用器件,如果实在没有的,可以用功能相似的器件来代替。在完成第一部分的焊接后,要对一些部件进行电压的测量,第一部分的焊接主要焊接电阻,电源,USB接口,发光二极管等,焊接完成后,我们接上USB接口,发现电路板上的USB接口处的发光二极管不亮,
33、开始并不明确问题所在,之后我们使用万用表对USP接口,稳压二极管,电源进行电压的测量,最后我们发现时总控制开关安反,最后我们只好将按键取下重新安装,然后再加电测量测量出来的电压值均在+5.00V左右,并且发光二极管发亮,说明之后焊接的电路正确,之前存在问题。 之后我们断开电源再将电路素所需要的芯片的连接板和电容等器件焊接到电路板上,焊接时必须注意芯片和电容的正负极,例如电容的正负极判断为“长正短负”,就是电容所接的长的那根导线接正极,短的那根接负极。在焊接完成之后,我们再次接通电源和USP接口的电源,按下开关电源,USB接口处的发光二极管再次发亮,此时再次用万用表对电路板的电源,稳压二极管,U
34、SB接口及其各个芯片和单片机进行电压的测量,测量出来的全部都在+5.00V,说明电路正确,此时我们将所用的芯片包括单片机接上电路板,然后开启电源,将程序载入单片机运行整个电路,我们发现LED数码管显示存在问题,主要是第二位位选可能存在问题,并且显示较暗,后来我们总结发现是LED直接由单片机接出负载,而单片机的接负载能力很差,所以很暗,并且LED存在问题,最后在老师的指导下,根据原理图,灵活做一些变动,添加了电阻、三极管驱动,另外,更换了LED显示屏,使其显示非常正常和明亮。由于老师给的外部电路是万用板,所以我们必须自己焊接电路,并且要自己连接导线,焊接完成后,将程序下载到单片机中运行,发现电机
35、不能正常转动,而且报警器不断报警,最后我们检测发现,ULN2003的公共端我们没有接地,因此我们将其接地后在进行调试,发现一切都正常。总结本次自己动手焊接和调试电路发现自己在动手能力方面还有很多不足,但是能够自己在老师的指导下找出问题解决问题,自己觉得这是一个很大的进步。5.2 软件调试 软件调试是一个漫长的过程,一个小的疏忽就可能造成软硬件结合时出现错误。我们在本次调试中主要出现了两个大的错误:一方面就显示和PWM调制时程序存在冲突,从而使电机转动时出现不按预定进行转动,另方面是动态显示程序中的延迟做的不是恰到好处,从而显示不停闪速。最初的显示程序和PWM调制程序分别为:DISP1: MOV
36、 R1,#70H ;指向显示数据首址 MOV R5,#80H ;扫描控制字初值PLAY: MOV P2,#0FFH MOV A,R5 ;扫描字放入A MOV P1,A MOV A,R1 ;取显示数据到A MOV DPTR,#TAB ;取段码表地址 MOVC A,A+DPTR ;查显示数据对应段码 MOV P2,A ;段码放入P2口 MOV A,R5 JNB ACC.6,LOOP5 ;小数点处理 CLR P2.7LOOP5: LCALL DL_MS ;显示2MS INC R1 ;指向下一个地址 MOV A,R5 ;放回 R5 内 JB ACC.3,ENDOUT ;ACC.3=1时一次显示结束 R
37、R A ;A 中数据循环右移 MOV R5,A ;放入 R5 中 AJMP PLAY ;跳回 PLAY 循环ENDOUT: MOV P1,#00H ;一次显示结束,P1口复位 MOV P2,#0FFH ;P2口复位 RETPWM波形调制子程序PWM: PUSH ACC PUSH PSW JB FLAG2,SK MOV A,TEMP_ZH MOV B,#03 MUL AB CJNE A,PWM1,ZZZ CLR P1.3 AJMP PWM_OUTZZZ: JC L1 AJMP PWM_OUTL1: CLR P1.3 AJMP PWM_OUTSK: MOV A,ZS_MR CJNE A,PWM1,
38、ZZZ1 MOV ZS_MR,A CLR P1.3 AJMP PWM_OUTZZZ1: MOV ZS_MR,A JC L2 AJMP PWM_OUTL2: CLR P1.3PWM_OUT:POP PSW POP ACC RET从上面的两个程序中,可以看出在显示程序中是用P1口作位选信号控制LED,为了简化程序,通过给P1口赋初值80H,然后通过移位来实现不同的位选,从而实现动态显示的功能。在PWM调制程序中也是用P1.3口输出波形来控制电机的转速。当程序执行时,会出现这样的错误:当执行一次显示程序后就会将P1.3口置低,因此,P1.3口输出的波形总是高电平很少,大量的低电平,从而电机转速很小,
39、并且不受控制。在明白了这个错误后,将PWM程序稍作改变,使用P3.7口来输出调制,从而解决了这个问题。修改后的PWM程序代码如下:PWM: PUSH ACC PUSH PSW JB FLAG2,SK MOV A,TEMP_ZH MOV B,#03 MUL AB CJNE A,PWM1,ZZZ CLR P3.7 AJMP PWM_OUTZZZ: JC L1 AJMP PWM_OUTL1: CLR P3.7 AJMP PWM_OUTSK: MOV A,ZS_MR CJNE A,PWM1,ZZZ1 MOV ZS_MR,A CLR P3.7 AJMP PWM_OUTZZZ1: MOV ZS_MR,A
40、JC L2 AJMP PWM_OUTL2: CLR P3.7PWM_OUT:POP PSW POP ACC RET 另外一个问题就是在显示程序中的延时最初太长,从而显示出现相当闪速的情况。最初的显示延迟程序为:DL_MS: MOV R6,#50H DL1: MOV R7,#100DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET 在这个程序中,以12M晶振的情况下延迟达到了10MS左右,因此,扫描时间过长,接近了人眼的暂留反应时间,因此就能看见闪烁,通过减小延迟时间,提高扫描频率。但是还得综合考虑定时器的时间等其他因素,最后,将扫描时间控制在2MS左右,显示便正常了,但是还有一些
41、闪速,那是因为计数器中断调用时也需要时间,基于89C52单片机的主频,我们只能做到这样,若想完全解决这个问题,可以通过更换效率更高的单片机来完成。修改后的延迟程序为:DL_MS: MOV R6,#10H DL1: MOV R7,#100DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET6 系统功能、指标参数6.1 系统功能 该系统是针对电脑散热而设计,能够及时监测机箱内的实时温度,并自动将温度值转换成数字信号送入单片机,然后在LED显示频上准确无误的显示;通过对送入温度进行分析,判断温度有无达到最大温度,如果达到就进行报警,给人们警示。当我们选择温控模式时,就将送入的温度值参与P
42、WM调制,当温度不断增大时,风扇转速不断增加,反知,随着温度减小,风扇转速也减小;当进入手控模式时,我们可以任意增大减小风扇的转速,同时当我们对按键进行操作时,蜂鸣器发声提醒操作成功,从而设计显得人性化,舒适化。6.2 指标参数在主电路板中需要测量出的参数:电源电压,各个芯片的电压以及单片机的电压,以下为各电压的值:1.电源电压的测量值为5.00V3.芯片的电压值:ULN2003的电压测量值为5.02V,MAX232的电压测量值为5.03V,4.单片机的电压值为5.02V5.电机运行时其两端的电压是5.04V所以对于电源为5V电路来说,以上参数都是正确的。其余的参数如下:1.电路板中单片机的晶
43、振电路中晶振元件12MHZ2.高温报警电路中的限流电阻的大小为100 3.显示模块中的电阻大小为4.7K并且在系统正常工作状态下,各个模块的电压,电阻等参数均正常。7 结论 本设计通过硬件焊接,软件编程以及重要的软硬件调试之后,实现了最初预想的各项功能,虽不说一帆风顺,但完成了要求。并且除了要求的温度读取、显示、控制电机等基本功能外,我们还增加了手控模式,高温报警,按键发声提醒等功能,使设计更加人性化。智能化的电脑散热系统不仅能够用于电脑的散热,其实也可以用于普通风扇的设计之中,本设计可以说是多方面的考虑。而增加手控模式的好处在于,不同电脑的性能和CPU产热量也不太一样,而本设计对温度控制电机
44、的灵敏度相当高,对于温度过高的电脑或者温度变化很快的电脑而言,比较适宜。对于一些电脑散热不是很多,温度变化比较稳定的电脑,可以采用手控设定档位,减小能耗,使散热系统寿命更长。对于很多用按键控制的系统没有添加按键提醒部件,虽说可以减小能耗,但是对于操作不是很明确,当你按下时,如果变化不大的情况下,你不能确定操作是否成功;倘若有了提醒装置,每次操作成功都有提醒,既能给人们带来方便,也能方便检修。 设计虽然成功了,但是并没有正在用于电脑内部散热,若条件允许便能真正检测出系统设计的有效性和安全性。本系统的设计集中的对我们数模电电路知识,汇编语言学习,以及实际动手能力进行了综合性的考察,由于我们对一些器
45、件的了解程度不是很高,所以,对于我们的设计还有很多改进的地方,比如:直流电机可以改成效率更高,能耗更低的电机等。8 总结与体会通过本次课程设计对很多学科有了深入的学习和理解,对电路也有了新的体会,在设计过程中,主要做了两方面的设计:一就是软件的设计。二是硬件电路的设计。在软件设计中本系统的软件部分主要是利用汇编语言来设计的,更加深入的巩固了我们的汇编知识,增加了我们的编程能力和经验。简单仪器原理与设计的课程是通信工程专业学生所要掌握的,是实践教学不可缺少的重要环节。通过课程设计,不仅能提高学生学习智能仪器的兴趣,加深对智能仪器的理解,开阔视野,也能为毕业设计打下良好的基础。学生基本上经历了单片机应用系统开发的全过程,扩大了学生实践的内容,从而取得了较好的教学实践效果。任何收获都要付出巨大的努力,我们思考,阅读,动手,这让我们受益匪浅,其乐无穷。经过四星期的努力,我们终于成功的完成了本次课程设计。再设计过程中我们又很多收获当然也遇到很多困难。譬如说不能把书本上的知识与实践相结合。还有当我们第一次把硬件电路做出来以后就在调试时发现LED工作不正常,原来是我们没有添加三极管来驱动LED显示,单靠单片机输出来负载是行不通的,在这个过程中培养了我们发现问题,思考问题,解决问题的能力,也增加了我们实际动手实践的能力。在这次设计的软件部分是使用汇编语言,考虑到刚刚学过,并且想
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保护鼻子健康教案反思
- 角形的边说课稿
- 教师职业病健康知识讲座
- 展览合同终止合同协议范例
- 市政工程保温板施工合同
- 消费者权益争议解决协议
- 房屋建筑施工合同审计
- 办公楼厕所翻新合同样本
- 家电企业会计人员聘用协议
- 酒店窗户安装施工协议
- 《社会医学》课件11健康危险因素评价
- DB34T 3826-2021 保温板外墙外保温工程技术标准 (1)
- 实验二、轴系结构设计实验
- 病原微生物实验室生物安全备案专家意见表
- 虫害控制培训完整版
- 高中音乐“歌唱”模块教学研修(一)
- 无阀滤池工作原理
- 钢结构厂房施工方案(屋面板及墙板)
- 杂交水稻种子越夏贮藏
- 木箱包装件产品包装作业指导书
- 尿素水解制氨系统培训20180808
评论
0/150
提交评论