数码管显示温控电动机_第1页
数码管显示温控电动机_第2页
数码管显示温控电动机_第3页
数码管显示温控电动机_第4页
数码管显示温控电动机_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中北大学单片机课程设计说明书 第 1 页 共 19 页1 1 引言引言本设计是一种基于单片机原理的简易实用的温度控制系统。采用 AT89C51 作为CPU 主控装置,电路主要由温度采集和电机控制电路组成。温度采集由智能温度传感器 DS18B20 集成芯片完成,该系统主要用于实现温度采集、显示和控制功能。1.11.1 设计任务与要求设计任务与要求 使用 AT89C51 单片机为核心,使用 4 位集成式数码管显示当前温度,温度传感使用 DS18B20。用 4 位集成式数码管显示当前温度,当温度在范围CC007020之外时,直流电动机开始旋转。控制程序在 Keil 软件中编写,编译,整个控制电路在

2、Proteus 仿真软件中连接调试。1.21.2 实用价值与理论意义实用价值与理论意义 温度的测量和控制在工业生产中获得了广泛的应用,在工农业生产、日常的生活等领域都占有重要的地位。随着对温度控制精度的不断提高,温度控制系统的控制技术得到了迅速发展。目前温度控制系统广泛应用于社会生活、生产,成为发展国民经济的重要设备之一。所以温度控制智能化有着极其重要的意义。通过对温度控制通信系统的设计,了解信息采集测试、控制及通信的过程,提高在电子工程设计和操作方面的综合能力,初步培养在完成工程项目中所应具备的基本素质和要求。以 AT89C51 单片机为核心,使用 4 位集成式数码管显示当前温度,使用 DS

3、18B20 温度传感器来设计一个用 4 位集成式数码管显示当前温度,当温度在CC007020范围之外时,使直流电动机开始旋转的程序并仿真调试,验证该设计可行性。2 2 方案设计方案设计采用 AT89C51 作为 CPU 主控制器,电路由温度采集、电机控制、显示电路组成,系统的总体电路原理图如图 2.1 所示中北大学单片机课程设计说明书 第 2 页 共 19 页 图 2.1 电路原理图3 3 硬件电路的设计硬件电路的设计3.13.1 温度采集电路温度采集电路3.1.1 DS18B20 数字温度传感器基本特性独特的一线接口,只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件 可用

4、数据总线供电,电压范围为 3.0 V 至 5.5 V 无需备用电源 测量温度范围为-55 C 至+125 。可编程的分辨率为 912 位 温度转换为 12位数字格式最大值为 750 毫秒 用户可定义的非易失性温度报警设置 应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统.表 3.1 中所示为 DS18B20 内部寄存器阵列。其中的 2、3 字节是可设置的文都超限报警值,同一总线上的器件可以设置不同的高、低限报警数值,当某一点的文都超限是,改点就会发出报警信号。表 3.1 DS18B20 内部寄存器寄存器位置说明寄存器位置说明0温度测量低字节5保留1温度测量高字节6保留2高限

5、报警温度值7保留3低限报警温度值8CRC4状态设置字主控制器件对 DS18B20 的各种控制都是通过传输操作指令进行的。对 ROM 操作CPU复位和振荡电路电机控制电路显示电路温度采集电路中北大学单片机课程设计说明书 第 3 页 共 19 页的命令制记过能表如表 3.2 所示表 3.2 DS18B20 ROM 操作指令命令功能命令功能33H读取器件的编码制F0H搜索器件编码55H根据编码制查找器件ECH报警器件搜索CCH跳过读取编码制操作表 3.3 DS18B20 RAM 操作指令命令功能命令功能4EH写内部数据存储器44H温度转换命令BEH读内部数据存储器B8H调用 EEROM 内数值48H

6、复制内部数据存储器B4H读器件供电方式3.1.2 DS18B20 数字温度传感器 芯片引脚表 3.4 DS18B20 的引脚引脚符号说明1GND地线引脚2DQ单线运用的数据输入/输出引脚3VDD可选 VDD 引脚3.1.3 电路如 3.1 图所示为温度采集电路,由于 DS18B20 是单线数据传输的智能温度传感器,在使用中不需要如何外围的元件,在连接时仅需要一条口线即可实现单片机与 DS18B20 的双向通信。所以此温度采集电路只需将 DS18B20 外接一个上拉电阻,然后接在单片机的 I/O 接口。中北大学单片机课程设计说明书 第 4 页 共 19 页 VCC图 3.1 温度采集电路3.23

7、.2 CPUCPU 电路电路CPU 电路主要包括复位和晶振电路。复位电路主要是在系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定延时才撤销复位信号,以防止电源开关过程中引起的抖动而影响复位。本电路,主要是由一个按键和电容电阻组成的 RC 复位电路。晶振电路是由片内振荡电路输入线外接石英晶体和微调电容组成,此处使用12MHZ 的晶体振荡器。3.33.3 电机控制电路电机控制电路本系统的电机控制电路:电动机回路是一个简单的开关电路,主要由单片机的I/O 接口接电路的输入端,通过单片机的 I/O 口的电平控制三极管的通断,来控制继电器,从而达到控制电机的目的

8、。3.43.4 显示电路显示电路硬件显示电路部分由四位数码管构成。采用的是动态扫描方式。通常将所有位的段选线相应的并联在一起,有一个 8 位的 I/O 口控制,形成段选线的多路复用。而各位共阳极分别有相应的 I/O 口控制,实现各位的分时复用。段选和位选位同相驱动,不需要对每个 LED 数码管单独配置锁存和驱动电路,简化电路。显示部分的四位一体的数码管用 74LS04 驱动,P3.3 作为温度采集信号线,P0口为显示数据线,P2 口作为位选线,动态扫描实现显示温度。4 4 软件设计电路软件设计电路软件设计主要分为两部分:主程序和服务子程序,子程序包括显示和温度传感器读/写程序。GNDI/OVC

9、C中北大学单片机课程设计说明书 第 5 页 共 19 页4.14.1 温度转换的程序设计温度转换的程序设计 单片机实现温度转换读取温度数值程序的流程如图 4.1 所示 图 4.1 温度转换 N-S 图开始初始化 DS18B20应答脉冲发起 skip rom 的命令发温度转换的命令延时 1s 等待温度转换完成初始化 DS18B20应答脉冲发起读温度命令读取第温度数据是否是否中北大学单片机课程设计说明书 第 6 页 共 19 页4.24.2 数码管显示电路数码管显示电路显示数据刷新子程序主要是对显示缓冲器中的显示数据惊喜刷新操作,当最高显示位为 0 时将符号位移入下一位。显示数据刷新流程图如图 4

10、.2 所示 图 4.2 显示 N-S 图开始温度零?下?置“-”标志计算采集的温度温度数据移入显示寄存器十位 0?十位显示符号百位不显示是是百位 0?百位显示数据是结束否否中北大学单片机课程设计说明书 第 7 页 共 19 页5 5 KeilKeil 及及 ProtuesProtues 仿真仿真在 Keil 中完成编辑、编译、连接、调试、仿真等整个流程。然后分别由 C51及 A51 编译器编译生成目标文件(.OBJ)。目标文件可由 LIB51 创建生成库文件,也可以与库文件一起经 L51 连接定位生成绝对目标文件(.ABS).ABS 文件由 OH51 转换成标准的 Hex 文件。在 Prote

11、us 中连接电路,实现它的电路仿真是交互的,可视化,实现软件源码级的实时调试。图 5.1 Keil 软件中的调试图以下各图分别为仿真的结果图,图 5.2 是 proteus 软件中的电路图。四位数码管显示采集到的温度,当温度为负值时显示符号“-” ,当十位和百位为零时不显示该位。从图中可以看出:在-20-70范围内电机停转,数码管显示温度传感器的温度值;当温度大于 70或者小于-20时电机开始转动。中北大学单片机课程设计说明书 第 8 页 共 19 页XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD33

12、6P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51-21.0DQ2VCC3GND1U2DS18B20R14k7X1CRYSTALC11nC21nR210kC3

13、1uFQ1BD91112U3:A740434U3:B740456U3:C74041312U3:D7404VCCVCCRL1JWD-171-17D11N4002+88.8图 5.2 电路仿真图中北大学单片机课程设计说明书 第 9 页 共 19 页-8.0DQ2VCC3GND1U2DS18B20R14k712U3:A740434U3:B740456U3:C74041312U3:D7404图 5.3 温度采集及显示电路中北大学单片机课程设计说明书 第 10 页 共 19 页XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P

14、0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C5166.0DQ2VCC3GND1U2DS18B20R14k7X1CRYSTALC11nC21n

15、R210kC31uFQ1BD91112U3:A740434U3:B740456U3:C74041312U3:D7404VCCVCCRL1JWD-171-17D11N4002-0.00Q1BD911VCCRL1JWD-171-17D11N4002 0.0066.0DQ2VCC3GND1U2DS18B20R14k7图 5.4 规定正范围内电机停转中北大学单片机课程设计说明书 第 11 页 共 19 页XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD

16、633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51110.0DQ2VCC3GND1U2DS18B20R14k7X1CRYSTALC11nC21nR210kC31uFQ1BD91112U3:A740434U3:B74

17、0456U3:C74041312U3:D7404VCCVCCRL1JWD-171-17D11N4002-207RL1JWD-171-17-207110.0DQ2VCC3GND1U2DS18B20R14k7图 5.5 超出 70电机转动中北大学单片机课程设计说明书 第 12 页 共 19 页XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3

18、.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51-17.0DQ2VCC3GND1U2DS18B20R14k7X1CRYSTALC11nC21nR210kC31uFQ1BD91112U3:A740434U3:B740456U3:C74041312U3:D7404VCCVCCRL1JWD-171-17D11N4002-0.0

19、0-17.0DQ2VCC3GND1U2DS18B20R14k7Q1BD911VCCRL1JWD-171-17 0.00图 5.6 规定负范围内电机停转中北大学单片机课程设计说明书 第 13 页 共 19 页XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3

20、.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51-26.0DQ2VCC3GND1U2DS18B20R14k7X1CRYSTALC11nC21nR210kC31uFQ1BD91112U3:A740434U3:B740456U3:C74041312U3:D7404VCCVCCRL1JWD-171-17D11N4002-207-26.0DQ2VCC3GND1U2DS18B20R14k7VCCRL1JWD-17

21、1-17-207图 5.7 小于-20电机转动中北大学单片机课程设计说明书 第 14 页 共 19 页6 6 结论结论本课程设计阐述了以 AT89C51 单片机为核心,使用 DS18B20 温度传感器以及 4 位集成式数码管显示温度的数码管显示的温控电动机。实现了通过数码管监测温度,当温度在CC007020范围之外时,直流电动机开始旋转的要求。附录附录: :温控电动机源程序温控电动机源程序/DS18B20 的读写程序,数据脚 P3.3 /温度传感器 18B20 汇编程序,采用器件默认的 12 位转化 /最大转化时间 750 微秒,显示温度-55 到+125 度,显示精度 /为 0.1 度,显示

22、采用 4 位 LED 共阳显示测温值 /P0 口为段码输入,P2.0P2.3 为位选 /*/#include #include #define Disdata P0 /段码输出口#define discan P2 /扫描口#define uchar unsigned char#define uint unsigned intsbit DQ=P36; /温度输入口sbit DIN=P07; /LED 小数点控制uint h; int temp;float temp2;/*温度小数部分用查表法*/uchar code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03,0

23、x03,0 x04,0 x04,0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09;/uchar code dis_712=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xff,0 xbf;/共阳 LED 段码表 0 1 2 3 4 5 6 7 8 9 不亮 - uchar code scan_con4=0 xfe,0 xfd,0 xfb,0 xf7; /列扫描控制字uchar data temp_data2=0 x00,0 x00; /读出温度暂放uchar data d

24、isplay5=0 x00,0 x00,0 x00,0 x00,0 x00; /显示单元数据,共 4 个数据和一个运算暂用/*11us 延时函数*/中北大学单片机课程设计说明书 第 15 页 共 19 页/void delay(uint t) for (;t0;t-);void delayms(uint ms)uint i;uchar j;for(i=ms;i0;i-)for(j=112;j0;j-);/*显示扫描函数*/void scan() char k;for(k=0;k0;i-) DQ=1;_nop_();_nop_(); /从高拉倒低 DQ=0;_nop_();_nop_();_no

25、p_();_nop_(); /5 us DQ=val&0 x01; /最低位移出 delay(6); /66 us val=val/2; /右移 1 位 DQ=1; delay(1);/*DS18B20 读 1 字节函数*/从总线上取 1 个字节uchar read_byte(void)uchar i;uchar value=0;for(i=8;i0;i-) DQ=1;_nop_();_nop_(); value=1; DQ=0;_nop_();_nop_();_nop_();_nop_(); /4 us DQ=1;_nop_();_nop_();_nop_();_nop_(); /4

26、 us if(DQ)value|=0 x80; delay(6); /66 us中北大学单片机课程设计说明书 第 17 页 共 19 页DQ=1;return(value);/*读出温度函数*/read_temp() ow_reset(); /总线复位 delay(200); write_byte(0 xcc); /发命令 write_byte(0 x44); /发转换命令 ow_reset(); delay(1); write_byte(0 xcc); /发命令 write_byte(0 xbe); temp_data0=read_byte(); /读温度值的低字节 temp_data1=r

27、ead_byte(); /读温度值的高字节 temp=temp_data1; temp6348) / 温度值正负判断 temp2=(65536-temp)*0.0625; / 负温度求补码,标志位置 1 return temp; /返回温度值/*温度数据处理函数*/二进制高字节的低半字节和低字节的高半字节组成一字节,这个/字节的二进制转换为十进制后,就是温度值的百、十、个位值,而剩/下的低字节的低半字节转化成十进制后,就是温度值的小数部分/*/void work_temp(uint tem)uchar n=0,t,r;if(tem6348) / 温度值正负判断 tem=65536-tem;n=1; / 负温度求补码,标志位置 1 display4=tem&0 x0f; / 取小数部分的值中北大学单片机课程设计说明书 第 18 页 共 19 页 display0=ditabdisplay4; / 存入小数部分显示值 display4=tem4; / 取中间八位,即整数部分的值 display3=display4/100; / 取百位数据暂存 t=display3; display1=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论