![基于8255的温度显示_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/10d8d67e-3912-4741-9d92-9fa90aaf233e/10d8d67e-3912-4741-9d92-9fa90aaf233e1.gif)
![基于8255的温度显示_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/10d8d67e-3912-4741-9d92-9fa90aaf233e/10d8d67e-3912-4741-9d92-9fa90aaf233e2.gif)
![基于8255的温度显示_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/10d8d67e-3912-4741-9d92-9fa90aaf233e/10d8d67e-3912-4741-9d92-9fa90aaf233e3.gif)
![基于8255的温度显示_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/10d8d67e-3912-4741-9d92-9fa90aaf233e/10d8d67e-3912-4741-9d92-9fa90aaf233e4.gif)
![基于8255的温度显示_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/4/10d8d67e-3912-4741-9d92-9fa90aaf233e/10d8d67e-3912-4741-9d92-9fa90aaf233e5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告(2011/2012学年第二学期)题目:基于8255的8E显示温度控制器设计专业学生姓名班级学号授课教师林建中授课单位南京邮电大学日期 2012年5月目录第一部分实验目的及要求:31实验目的32.实验要求3第二部分实验工具及实验器件41.Proteus7.4以及Keil 2软件的使用42.51单片机AT89c51。63.数字温度传感器DS18B2064.DS18B20的操作方式75.可编程并行I/O接口芯片8255 A86.74HC373 锁存器97.8LED液晶显示器件7SEG-MPX8-CC-BLUE10第三部分实验原理及程序代码:101.硬件部分电路设计图102.软件部分设计11
2、第四部分实验测试结果18第五部分实验小结和体会20第一部分实验目的及要求:1实验目的本课程设计在理论课程的基础上,重点培养学生的动手能力,通过理论计算、实际编程、调试、测试、分析查找故障,解决在实际设计中的问题,使设计好的电路能正常工作,为下一步结合实际的硬件系统设计准备条件2. 实验要求基本要求:用热敏电阻或温度传感器作温度探头,通过AD转换器变换,把温度数据在LED上显示。 1、显示精度±0。5 2、能记录和回放温度参数,记录间隔可任意设定(1S到1h,步长1s) 3、回放数据速度可设定 4、画出温度变化曲线。发挥部分:1、显示精度提高到±0。1 2、显示精度提高到
3、177;0。013、与实际温度计温度比较,找出温度显示误差曲线,在报告中描出,并分析误差来源4、实现温度自动补赏动态显示格式:8LED动态显示第二部分实验工具及实验器件1. Proteus7.4以及Keil 2软件的使用Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名
4、的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模
5、拟的实物运行状态和过程。而*.HEX文件则由Keil软件编译后生成。Keil uVision2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集
6、成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,使您能在很短的时间内就能学会使用keil c51来开发您的单片机应用程序。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。有了proteus和keil 我们就需要在这两个软件中建立我们所需要的工程进行实验,具体
7、步骤如下:第一步:在Keil2中建立一个新的工程,并命名,第二步:选择使用的单片机芯片,我们选择80c31,第三步:将新创建的.c文件添加到Target中。这样我们就可以在keil2的环境下对单片机的程序进行编译和运行了。2. 51单片机AT89c51AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL
8、高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允
9、许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。主要特性:·与MCS-51 兼容 ·4K字节可编程FLASH存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz ·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡
10、器和时钟电路管脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八
11、位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写
12、入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚
13、两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机
14、器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3. 数字温度传感器芯片DS18B20DS18B20是Dallas公司生产的单总线数字温度传感器芯片,具有3脚TO-92小体积封装形式;温度测
15、量范围为-55+125;可编程为912位A/D转换精度;用户可自设定非易失性的报警上下限值;被测温度用16位补码方式串行输出;测温分辨率可达0.0625;其工作电压既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或两根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少。可广泛应用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。4. DS18B20的操作方式DS18B20详细引脚功能描述1 GND地信号;2 DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;3 VDD可选择的VDD引脚
16、。当工作于寄生电源时,此引脚必须接地。DS18B20的使用方法。由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在
17、进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。5. 可编程并行I/O接口芯片8255 A8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部
18、分、控制部分。引脚功能:RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。D0D7:三态双向数据总线,825
19、5与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在一下三种方式下工作。方式0基本输入输出方式;方式1选通输入/出方式;方式三双向选通输入/输出方式;PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。工作于三种方式中的任何一种;PB0PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。不能工作于方式二;PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲
20、器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'不能工作于方式一或二。A1,A0:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器. 当A1=0,A0=0时,PA口被选择; 当A1=0,A0=1时,PB口被选择; 当A1=1,A0=0时,PC口被选择; 当A1=1.A0=1时,控制寄存器被选择.6. 74HC373 锁存器当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0O7 呈高阻态,即不驱动总线,也
21、不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。引出端符号:D0D7 数据输入端OE 三态允许控制端(低电平有效)LE 锁存允许端O0O7 输出端真值表:DnLEOEOnHHLHLHLLXLLQ0XXH高阻态7. 8LED液晶显示器件7SEG-MPX8-CC-BLUE此为8位共阴极数码管。第三部分实验原理及程序代码:1. 硬件部分电路设计图电路图如图:2. 软件部分设计#include "reg51
22、.h"#include "intrins.h"#include "absacc.h"#define COM8255 XBYTE0x7fff /8255端口地址#define PA8255 XBYTE0x7ffc#define PB8255 XBYTE0x7ffd#define PC8255 XBYTE0x7ffeconst unsigned char code SEG_CODE=0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,;const unsigned char code DECIMAL_
23、TEMPERATURE=0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9; / 从DS19B20 得小数部分对应表 sbit DQ = P10; /数据通信线sbit key1=P15; sbit key2=P16;unsigned int temperature;/测量温度bit fg=0; /温度正负标志unsigned int data tabl10;/温度数据库unsigned char data tab210;unsigned int clock=0,num=0;/ 步长控制unsigned char rolling=0;bit back=0;void delay(un
24、signed int n); /延迟 n 毫秒void TxReset(void); /产生复位脉冲初始化DS18B20void RxWait(void); /等待应答脉冲bit RdBit (void); /读取数据的一位,满足读时隙要求unsigned char RdByte(void); /读取数据的一个字节void WrByte(unsigned char b); /写数据的一个字节,满足写1和写0的时隙要求void convert(void); /启动温度转换void RdTemp(void); /读取温度void Display(void);void Initialization(
25、void); /初始化子程序void Record(void);void Backdisplay(void); void main()unsigned char i; COM8255=0x80;Initialization();while(1)while(back)TR0=1;convert();for(i=1;i<10;i+)Display();RdTemp();Record();if(key1=0)delay(10);if(key1=0)back=back; while(!key1);while(back)TR0=0;Backdisplay();if(key1=0)delay(10)
26、;if(key1=0)back=back; while(!key1);if(key2=0)delay(10);if(key2=0)rolling+;rolling=rolling%10; while(!key2); void delay(unsigned int n) /延迟 n 毫秒unsigned char i;while(n-) for(i=0;i<110;i+); void TxReset(void) /产生复位脉冲初始化DS18B20unsigned int i;DQ = 0; /拉低约900usi = 100;while (i>0) i-;DQ = 1; /产生上升沿i
27、 = 4;while (i>0) i-;void RxWait(void)/等待应答脉冲unsigned int i;while (DQ);while (DQ);/检测到应答脉冲i = 4;while (i>0) i-;bit RdBit (void) /读取数据的一位,满足读时隙要求unsigned int i;bit b;DQ = 0;i+;DQ = 1;i+;i+;b = DQ;i=8;while (i>0) i-;return(b);unsigned char RdByte(void) /读取数据的一个字节unsigned char i,j,b;b=0;for (i=
28、1;i<=8;i+)j =RdBit();b = (j<<7)|(b>>1); return(b);void WrByte(unsigned char b) /写数据的一个字节,满足写1和写0的时隙要求unsigned int i;unsigned char j;bit btmp;for (j=1;j<=8;j+)btmp = b&0x01;b = b>>1;if(btmp) /写1DQ = 0;i+;i+;DQ = 1;i = 8;while(i>0) i-;else/写0DQ = 0;i = 8;while (i>0)i-
29、;DQ = 1;i+;i+;void convert(void) /启动温度转换TxReset();RxWait();delay(1);WrByte(0xcc); /skip ROM命令 WrByte(0x44); /convert T命令void RdTemp(void)/读取温度unsigned char a,b; TxReset();RxWait();delay(1);WrByte(0xcc); WrByte(0xbe);a = RdByte();/温度值低位字节b = RdByte();/温度值高位字节temperature = b;temperature<<=8;temp
30、erature = temperature|a;if(temperature<0x0fff)/判断温度正负,若为正,直接显示,否则取补码fg=0; elsetemperature = temperature+1;fg=1;void Display(void) if(fg=0) /温度为正时显示的数据 PB8255=0xfe; /第一个数码管 PA8255=0x00; /不显示 delay(2); PB8255=0xfd; /第二个 PA8255=SEG_CODE(temperature>>4)/10; /输出十位数 delay(2);PB8255=0xfb; /第三个 PA8
31、255=SEG_CODE(temperature>>4)%10|0x80; /输出个位和小数点 delay(2); PB8255=0xf7; /第四个 PA8255=SEG_CODEDECIMAL_TEMPERATUREtemperature&0xf; delay(2); if(fg=1) /温度为负时显示的数据 PB8255=0xfe; /第一个数码管 PA8255=0x40; /负号 delay(2);PB8255=0xfd; /第二个数码管 PA8255=SEG_CODE(temperature>>4)/10; /输出十位数 delay(2);PB8255
32、=0xfb; /第三个 PA8255=SEG_CODE(temperature>>4)%10|0x80; /输出个位和小数点 delay(2); PB8255=0xf7; /第四个 PA8255=SEG_CODEDECIMAL_TEMPERATUREtemperature&0xf; delay(2); void Initialization()COM8255=0x80;TMOD=0X02;/定时器方式2,初值重装,8位 28=256;TH0=6;/初值,12MHz晶振,250us.TL0=6;EA=1;/开总中断ET0=1;/开定时中断TR0=1;/启动定时器0 void T0_time() interrupt 1 /定时中断clock+;void Record(void)if(clock>=12000)clock=0; /计数满足1s,归零num=num%10; /记录数据tablnum=temperature<<1;if(fg)tablnum=tablnum+1;num+;void Backd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子商务产业园的物流配送体系建设
- 电影节庆典活动多功能影厅布置方案
- 2025年离婚协议模板正版自己写的
- 过期药品报废申请书
- 2025年中国农用打捆机行业发展运行现状及投资潜力预测报告
- 建设项目环境影响报告表0502
- 2024-2029年中国汽车铝合金压铸件行业深度调研与投资战略规划分析报告
- 组合线项目可行性研究报告
- 2025-2031年中国辽宁省危险废物处理行业发展前景预测及投资方向研究报告
- 2025年有风扇电热干燥箱行业深度研究分析报告
- 第五版-FMEA-新版FMEA【第五版】
- 英语人教版高中必修三(2019新编)第一单元教案
- GB/T 9535-1998地面用晶体硅光伏组件设计鉴定和定型
- GB 9706.1-2020医用电气设备第1部分:基本安全和基本性能的通用要求
- 口腔颌面外科:第十六章-功能性外科与计算机辅助外科课件
- 植物工厂,设计方案(精华)
- 贷款新人电销话术表
- 音箱可靠性测试规范
- 数据结构ppt课件完整版
- 新北师大版四年级下册小学数学全册导学案(学前预习单)
- 杭州市主城区声环境功能区划分图
评论
0/150
提交评论