




免费预览已结束,剩余7页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安工业大学北方信息工程学院毕业设计(论文)中期报告题目:基于单片机的温度采集系统设计 基于单片机温度采集系统设计开题报告(尚磊)(最终修改)基于单片机温度采集系统设计开题报告(尚磊)(最终修改)基于单片机温度采集系统设计开题报告(尚磊)(最终修改)基于单片机温度采集系统设计开题报告(尚磊)(最终修改)基于单片机温度采集系统设计开题报告(尚磊)(最终修改)系 别 专 业 班 级 姓 名 学 号 导 师 1. 设计(论文)进展状况 在这段时间里,我主要学习了温度传感器AD590的工作原理,连接方法;如何使用ADC0809进行数模转换;Keil uVision2开发软件的使用;以及如何在 Keil uVision2环境下的编程实现及调试。同时,对实现带有小数的温度检测进行了具体学习和编程。具体工作如下:(1) AD590的具体工作原理与工作方式 AD590,它是一种半导体感受式的,由测温电阻、二极管和集成电路器件成。 AD590是一种单片集成的两端式温度敏感电流源,它有金属壳,小型的扁平封装芯片和不锈钢等几种封装形式,实验平台利用IC温度传感器AD590作为测温器,AD590是一种精度和线性度较好的双端集成温度传感器,其输出电流与绝对温度有关,对于电源电压从5-10V变化只引起1m A最大电流的变化或1摄氏度等效误差。 上图给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路,当温度有10的变化时输出电压变化为20mV,即该电路M点电压随温度变化为2mV/。将温度传感器输出的小信号跟随放大19.2倍左右后,送至8位A/D转换器转换成数字量。 (2) A/D转换模数转换采用ADC0809,它是芯片输出端具有可控的三态门,这种芯片的输出端可以直接和系统总线相连,由读信号控制三态门,转换结束后,CPU执行一条输入指令,从而产生读信号,将数据从A/D转换器取出。ADC0809是典型的8位8通道逐次逼近式A/D转换器,CMOS工艺,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存译码电路,其转换时间为100s左右。8路模拟量开关地址锁存与译码8位A/D转换器三态输出锁存器START CLKEOCVccGNDABCALEVref Vref(+) (-)IN0IN7D0D7八路模拟量输入八路模拟量输出ADC0809内部结构如图所示,图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换,地址锁存与译码电路完成对A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择。8位A/D转换器是逐次逼近式,由控制与时序电路、逐次逼近寄存器、树状开关以及256R电阻阶梯网络等组成。输出器用于存放和输出转换得到的数字量。(3)在 Keil uVision2环境下进行具体程序设计程序如下#include#includesbit cp_164=P26; /164的脉冲控制引脚sbit data_164=P27; /164的串行数据引脚float xiaoshu;int temper1,c,temper2; /保存实际温度的变量,只考虑温度为正且取整数 sbit DQ=P24; /数据端口void delay(unsigned int i) while(i-);/初始化函数Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ复位 delay(8); /稍做延时 DQ = 0; /单片机将DQ拉低 delay(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay(14); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay(20); /读一个字节 ReadOneChar(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ=1) dat=dat|0x80; delay(4); return(dat); /写一个字节 WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay(5); DQ = 1; dat=1; /读取温度 ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned char t=0; Init_DS18B20(); WriteOneChar(0xCC); / 跳过读序号列号的操作 WriteOneChar(0x44); / 启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度 a=ReadOneChar(); b=ReadOneChar(); t=b; t=8; t=t|a; temper1=t/16; temper2=t%16; xiaoshu=temper2/16.0; c=xiaoshu*10000; /以下是显示两位的函数,参数X是两位整数/ void led_2(unsigned char x) unsigned char zixing10=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09;/字型代码 unsigned char i,zixing2; zixing2=zixingx%10; /以下显示X的低位 for(i=0;i1; zixing2=zixingx/10;/以下显示X的高位 for(i=0;i1; /*以下是顺序显示a,b,c的函数,共显示6位, abc均是两位整数*/void led_6(unsigned char a,unsigned char b,unsigned char c) led_2(c); led_2(b); led_2(a); main() unsigned int i=0; while(1) ReadTemperature(); /读温度 led_6(temper1,c/100,c%100); for(i=0;i40000;i+); for(i=0;i40000;i+); 程序仿真图如下:除此之外 我通过微机原理一书找到了如何使用以8088CPU系统为核心设计一个温度采集系统并在三位LED显示器上显示当前温度。他实现起来较为简单,所需要的芯片清单及器件为:CPU8088 ADC0809 接口芯片8255 温度传感器AD59074LS138译码器 74LS273段码锁存器 DM7407N 锁存器 晶振 运算放大器 数码管三个 电容电阻若干。程序流程图程序清单为:PORTA EQU 020H ;定义端口地址PORTB EQU 021HPORTC EQU 022HPORTD EQU 023HDATA SEGMENT TABLE DB 40H DB 4FH DB 24H DB 30H DB 19H DB 12H DB 02H DB 78H DB 00H DB 10H BUFDA1 DB ? BUFDA2 DB ? BUFDA3 DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,98H OUT PORTD,AL ;8255的初始化 ;* MOV AL,01 OUT PORTC,AL MOV AL,00 OUT PORTC,AL ;PC0 为0,启动A/D转换FIND: IN AL,PORTC TEST AL,010H JNZ FIND ;读PC4的值,如为1则继续查询 MOV AL,01 OUT PORTC,AL ;使PC0为1,撤消启动信号 IN AL,PORTA ;读取转换数据 ;* MOV CL,100 ;计算百位,十位,个位 DIV CL MOV BUFDA1,AL XOR AL,AL MOV CL,10 MOV BL,AH MOV AL,BL MOV AH,0 DIV CL MOV BUFDA2,AL MOV BUFDA3,AH ;*DISPLAY:MOV BX,OFFSET TABLE MOV AL,DI+0 XLAT ;换码 MOV DX,PORTB OUT DX,AL MOV CX,30H ;延迟程序DELAY: LOOP DELAY RET ;* MOV CX,30HDISPLAY1:MOV AL,06H OUT PORTD,AL MOV AL,05H OUT PORTD,AL MOV AL,03H OUT PORTD,AL MOV DI,OFFSET BUFDA1 CALL DISPLAY ;使LED0工作 MOV AL,07H OUT PORTD,AL MOV AL,04H OUT PORTD,AL MOV AL,03H OUT PORTD,AL MOV DI,OFFSET BUFDA2 CALL DISPLAY ;使LED1工作 MOV AL,07H OUT PORTD,AL MOV AL,05H OUT PORTD,AL MOV AL,02H OUT PORTD,AL MOV DI,OFFSET BUFDA3 CALL DISPLAY ;使LED2工作 LOOP DISPLAY1;延迟 ;* MOV AH,4CH INT 21HCODE ENDS END STARTLED的输出通过微机原理的学习 我明白了由于输出的电压量范围是05V即转换为数字量后为0FF之间。所以,要使温度表示范围为085,需把0FF除以3。经过CPU未经处理过的数值是以ASCII码的方式显示在电脑屏幕上的,还需将ASCII码转换成十进制显示。为了便于读数。在LED灯上的显示将设计为8421码的方式显示。转换方法在程序中已注明。2. 存在问题及解决措施在学习和程序编写过程中遇到了一些问题:主要是开始对 Keil uVision2软件的使用以及汇编语言的掌握问题,在程序编写过程中,出现了一些错误,比如语法使用错误,程序格式错误以及仿真时属性设置错误等原因,在后来的深入学习后,这些问题得到解决。在编程过程中,对于如何使用语言在Keil uVision2环境下充分完成部件
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家具厂冲床安全管理细则
- 九年级下学期班主任德育职业发展规划计划
- 纳米传感器阴道感染检测-洞察及研究
- 线上教学计划反馈与改进
- 小学语文一年级阅读习惯培养计划
- 刷单技术支持工作计划
- 2025年神经外科手术操作风险评估考核答案及解析
- 2025年全球香水行业需求分析及创新策略研究报告
- 人美版二年级美术上册课程设计计划
- (2025年标准)家族修路协议书
- 2025海南省老干部服务管理中心招聘事业编制人员6人(第1号)考试备考题库及答案解析
- 2025年内江市总工会公开招聘工会社会工作者(14人)笔试模拟试题及答案解析
- 2025云南辅警笔试题目及答案
- 2025四川内江市总工会招聘工会社会工作者14人笔试备考试题及答案解析
- 2025-2026学年湘教版(2024)初中数学八年级上册教学计划及进度表
- 2025至2030中国公安行业发展趋势分析与未来投资战略咨询研究报告
- GB/T 45763-2025精细陶瓷陶瓷薄板室温弯曲强度试验方法三点弯曲或四点弯曲法
- 全过程工程咨询投标方案(技术方案)
- (高清版)DZT 0388-2021 矿区地下水监测规范
- 有害物质污染源识别与评价表
- 餐具洗消保洁制度管理办法
评论
0/150
提交评论