南京工业大学project2温度计设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机科学与技术学院实习报告(2016 — 2017 学年第一学期)

课程名称:project2

班级:电子1401

学号:1402140112

姓名:董路

指导教师:方强,武晓光

2017年1月

目录

第一章:详细描述课题功能要求和指标,介绍课题系统的设计框图 (1)

第二章:硬件介绍 (1)

实验设计思路 (1)

显示模块 (2)

AD转换模块 (4)

检测电路: (6)

键盘模块: (6)

第三章:代码介绍 (7)

流程图: (9)

第四章:测试与总结 (9)

电路图: (11)

第一章:详细描述课题功能要求和指标,介绍课题系统的设

计框图

设计温度采样电路,显示现在温度。并包括报警电路,键盘输入温度限制模块,ad转换模块,显示模块,温度采样电路。

使用文档:channel可以选择使用哪一路ad转换得知,按键键盘第一行最后一个按键是设置最高温度限制,第三行是设置最低温度限制,例如(按下最高温度设置按钮后,在按下两位数字,最高温度设置就完成了),当被测温度超过设置温度就会导致蜂鸣器报警,温度测量围是0—100℃,具有工业利用价值。

1. 1

1. 2

第二章:硬件介绍

实验设计思路

温度计的设计分为以下几个模块

1.温度采集

2.温度元素和相关元素的转换

3.Ad转换模块

4.数据收集和处理

5.输出模块

2. 1

对于数字温度计,温度采集模块使用热敏电阻将温度信号转换成电压信号,再通过ad转换模块将电压模拟量转换成数字量,传递给cpu来处理相关数据,最后将处理出来的温度信号在数码管显示出来。

●温度采集和数据转换:

元器件选择RTD-PT100(PT100温度参数:当在20℃在50℃之间时,电阻值大概是100Ω到120Ω之间)

恒流源产生1mA的恒定电流,PT100的电压值大概是100mV到120mV,由于tlc1543是10位的ad转换,所以最小的采样间隔是5000/1024≈4.88mV,而相应的pt100在20到50℃,变化一度欧姆相应大概变化0.385Ω,所以通过放大器放大到合适的倍数,从而使精度达到要求。

●数据手机和处理:

由于TLC1543是10位串行输出,所以要将TLC1543和MCU相连,这次我选择使用80c51,因为c51使我们已经使用过的芯片比较容易掌握,通过c51来控制TLC1543的哪一路收集信号,同时来采集TLC1543发送过来的数据,通过算法将采集过来的数据进行处理从而得出温度的数据。

●显示:

将c51和LCD相连从而显示出相应的温度。

●按键输入上下限:

通过按键设置温度上下限从而使温度超过时候报警。

硬件相关:

●显示模块

2. 2

LM016L显示相应的字符

基本操作分为四种:

1. 读状态:输入RS=0,RW=1,E=高脉冲。输出:D0—D7为状态字。

2. 读数据:输入RS=1,RW=1,E=高脉冲。输出:D0—D7为数据。

3. 写命令:输入RS=0,RW=0,E=高脉冲。输出:无。

4. 据:输入RS=1,RW=0,E=高脉冲。输出:无。

命令控制字为以下几种

当每一次命令控制字给出的时候适当的延迟一段时间然后检验LCD的忙标志位,如果不忙,就输入下一次操作,在显示字符之前要对芯片进行正确的配置

LCDWcommond(clearscreencom); //清屏函数

LCDWcommond(LCDprintmode); //显示模式设置

LCDWcommond(LCDOnAndCursor); //亮屏光标不显示

LCDWcommond(LCDFunction); //8位数据接口和两行显示

AD转换模块:

2. 3

TLC1543十位模数转换器,将电压模拟量转换成电压数字量,模拟量量程位0-5v,数字量量程是0-1024,0-1024;

相关支持:

本次mode1模式时序状态图如下:

2. 4

初始化TLC:

Cs片选信号:HIGH->LOW状态,重置部计数器,并且使能DATAout,address,I/Ocloc。

第一次初始化不传递数据输出,仅仅AD转换的输入地址给TLC1543并且提供时序给ad转换提供转换时间。地址输入为时钟信号的前四位,高位先输入,然后是低位。

DATAread:

等待ad转换的上升沿当上升沿出现的时候,就是ad转换的结束,表示可以输出数据,然后开始串口数据读取。串口输出是以最高有效位最先出来,然后依次输出下边的位数,共输出十次。

●检测电路:

利用桥式测电阻,并利用差分放大电路测出桥式电压差,

2. 5 2. 6

差分放大电路放大倍数是10倍,并输出电压到ad转换。

桥式电压测电阻的方法比直接利用电压电流法明确度更高,所以利用桥式电压测电阻。可以抵消一部分电阻误差所带来的影响。

注意事项:c51芯片的P0口由于没有上拉电阻所以接负载的时候要接上拉电阻。

使用芯片RESPACK,做上拉电阻。

●键盘模块:

2. 7

正常状态下横线给逻辑0,四根竖线由于上拉电阻是高电平当有按键按下的时候四根线有变为逻辑0,当出现逻辑0的时候就是有按键按下,这时候在将横线的四根依次赋值位0其余位为1,来检测每一根竖线的逻辑电平,例如当第一个按键被按下的时候当横线位0其余为1的时候,检测四根竖线,是哪根竖线变为0,就是那根竖线和相应的横线的交叉点的按键被按下。

第三章:代码介绍

软件流程介绍:

//LCD显示函数模块

void LCDWcommond(uchar );//LCD写命令函数

void LCDInitial(); //LCD初始化函数

void LCDPrint(unsigned char *pointer);//LCD打印字符函数//处理数据函数模块

int handledigtalvol(int _contrastvol);//返回温度数据

//TLC1543模块

void TLCInitial(uchar address);//TLC初始化函数

int TLCEOC(); //TLC转换完成标志位检验函数

int TLCDataRead(); //TLC数据读取

//键盘模块函数

uchar KeyScanfH();//键盘扫描函数

void P0LW(uchar num);//p0口低位赋值

uchar keyboardscanf();//键盘值扫描

void keynormalstate();//没有按键按下键盘低位状态

void keyboardstate();//键盘状态机

//蜂鸣器设置模块

void buzzerset(_temprature);//蜂鸣器

//主函数

void main()

相关文档
最新文档