微机原理课程设计报告K型热电偶传感器实验_第1页
微机原理课程设计报告K型热电偶传感器实验_第2页
微机原理课程设计报告K型热电偶传感器实验_第3页
微机原理课程设计报告K型热电偶传感器实验_第4页
微机原理课程设计报告K型热电偶传感器实验_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、北京科技大学自动化学院微机原理课程设计微机原理课程设计报告时 间 2013.12 _学 院 自动化 _专业班级 _姓名 _学号 合 作 者 _指导教师 _成 绩 _摘要 8086是intel公司设计生产的cpu,是计算机发展史上的里程碑。通过学习8086cpu的工作原理,可以帮助我们理解计算机的工作原理。实践动手能力是电子信息类应用型人才必须具备的基本素质。本次微机原理课程设计,通过设计一个热电偶温度检测器,并将测量得到的数据显示到lcd屏幕上。其中使用到8086,adc0809,8255,8279,经过一周的练习,锻炼了我们的编写程序能力,逻辑分析能力,解决问题的能力,查找文献的能力。关键词

2、:8086 热电偶 adc0809abstract8086 is a cpu designed by intel and a milestone in the history of the development of the computer. studying the working principle of 8086 cpu can help us understand the working principle of the computer. practice ability is basic qualities of students who majored in electron

3、ic and information. the microcomputer principle course ,we designed a thermocouple temperature detector and displayed the measured data on the lcd screen. it used 8086, adc0809, 8255827.after a week of practice, we promote our ability to write programs, logic analysis ability and problem solving ski

4、lls and the ability of searching reference.key words:8086 thermocouple adc0809- 1 -北京科技大学自动化学院微机原理课程设计目录摘要1abstract1引言1k型热电偶传感器实验21 实验内容22 实验设备23 实验设计原理23.1 热电偶原理23.2 ad转换电路34 设计思路44.1 ad转换采集数据44.2 数据显示到数码管上44.3 数据显示到lcd上54.4 报警54.5 显示柱形图55 程序流程65.1 主程序流程图65.2 lcd显示程序流程图75.3 数码管显示子程序流程图85.4 报警子程序流程图

5、85.5 柱形图显示程序流程图97 实验现象及说明97.1 实验结果97.2 结果说明108 在小组中的任务119 实验心得11结论12参 考 文 献13附 录141 程序清单14- 2 -北京科技大学自动化学院微机原理课程设计引言微机原理课程设计需综合运用所学知识针对一个较为具体的控制对象或过程进行系统设计、硬件选型及软件设计。通过课程设计,可以对理论知识融会贯通,培养同学们的系统设计能力,使同学们达到以下能力训练:(1)调查研究、分析问题的能力;(2)使用设计手册、技术规范的能力;(3)查阅文献的能力;(4)制定设计方案的能力;(5)计算机应用的能力;(6)设计计算和绘图的能力;(7)语言

6、文字表达的能力。本组微机原理设计的内容是通过热电偶检测热端温度,并利用模拟电路将信号放大,使用adc0809将得到的模拟信号转换成数字量,最终显示到相应的设备上。通过仔细的调试,最终完成了整体电路的调试。k型热电偶传感器实验1 实验内容连接好电路,编写调试程序。用打火机加热热电偶的测量端,读出冷端和热端的温度差,并显示到液晶屏上。2 实验设备1、el-mut-iii 实验箱2、8086cpu 板3、温度传感器模块3 实验设计原理3.1 热电偶原理热电偶是将两种不同性质的金属导线连接在一起所形成的温度测量装置。其测量原理是利用席贝克效应(seed back effect),即两种不同性质的金属导

7、线连接在一起形成封闭回路时,若使其中一接点的温度高于另一接点的温度,则在此闭合回路中,即有电流流过。如下图所示:图1 热电偶原理在热电偶上,两根导线连接在一起的点称为热接点,也称测量点,通常置于待测温度区;而两导线不连接的地方称为冷接点,接测量电路。根据正、负极用材料的不同,热电偶分为b、e、j、k、r、s、t、y 型。本模块中采用的是k 型热电偶,其正极为镍铬合金,负极为镍硅合金。与其它类型的热电偶相比,k 型热电偶的线性较好,使用方便,因而在工业测量中被广泛使用。k 型热电偶的基本测量电路如下图所示。k 型热电偶的工作原理见模块说明,其测量电路如下图所示。coupler1、coupler2

8、 为热电偶冷接点的两接线端,coupler1 为正端。op07 为高阻运算放大器,用于高精度的电压放大。如上图所示,电压增益为500 倍。模块上balance 电位器对应于图中r6,用于零位调节。j1 对应于vout1 插孔,输出模拟电压。r9 电位器用于设置报警电压,当模拟输出大于报警电压时,alarm 灯亮,alarm out 输出高电平;否则alarm 灯不亮,alarm out 输出低电平。使用时,应先对op07 调零,具体方法如下:将热电偶的两接线端接在模块的两接线端子上,红端接正,蓝端接负。用万用表测vout1 端的输出电压,使vout1=0v。(注:必须在接上热电偶的情况下调零,

9、否则测量误差较大) 将测量端置于加热区(或用打火机加热),用a/d 采样vout1 端电压,根据下面k 型热电偶的分度表可计算出冷端和热端的温差t1(两刻度之间可用线性插值),用其它方法测出的常温为t0,t0+t1就是测量端的实际温度。图2 k型热电偶电路图3.2 ad转换电路八路八位a/d 实验电路由一片adc0809,一片74ls04,一片74ls32 组成,该电路中,adin0adin7是adc0809 的模拟量输入插孔,cs0809 是0809 的ad 启动和片选的输入插孔,eoc 是0809 转换结束标志,高电平表示转换结束。齐纳二极管lm336-5 提供5v 的参考电源,adc08

10、09 的参考电压,数据总线输出,通道控制线均已接好,八位双缓冲d/a 实验电路由一片dac0832。一片74ls00,一片74ls04,一片lm324 组成,该电路中除dac0832 的片选未接好外,其它信号均已接好,片选插孔标号cs0832。输出插孔标号daout。该电路为非偏移二进制d/a 转换电路,通过调节pot3,可调节d/a 转换器的满偏值,调节pot2,可调节d/a 转换器的零偏值。图3 ad转换电路的原理图4 设计思路4.1 ad转换采集数据adc0809是逐位逼近型8通道a/d转换芯片,cmos工艺制造,双列直插式28引脚封装。由于本次实验时硬件电路使用的是实验箱,所以硬件电路

11、无需设计。adc0809有8个通道,本次使用的是0通道,片选信号选用cs3,所以地址定义为“con0809 equ 04d0h”。在start端产生一个正脉冲,启动ad转换,并锁存模拟通道地址。由于ad转换需要一定的时间,所以接下来等待一段时间,读取ad转换值。4.2 数据显示到数码管上数码管电路使用的是8279驱动电路。由于电路已经设计完毕,所以程序开始定义其控制和数字地址: con8279 equ 0492hdat8279 equ 0490h由于数码管显示需要显示的编码,所以先定义编码表。segcod db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,7

12、7h,7ch,39h,5eh,79h,71h 当获取adc后的信息后,分别提取高四位和低四位的数据,然后到数码管显示表中查找相应的编码,发送到8279,8279驱动数码管便能显示出当前的数据。4.3 数据显示到lcd上为了减轻总线的负担,驱动lcd的任务给了8255,cpu通过控制8255的输出来控制lcd的显示内容。将pa0pa7连接到lcd的数据端口上,将pc7连接到busy端口上,将pc0连接到lcd的req上,将cs8255连接到cs0。首先初始化8255,将a端口设置为输出模式,pc7pc4设置为输入模式,pc3pc0设置为输出并复位pc0端口,b端口设置为输出模式。lcd的驱动芯片

13、接收命令来显示字符,有很多种方式,里面包括汉字库等。获取显示位置等数据后,判断是否忙,然后发送数据,等待接收,发送完毕,将相应的数据发送完毕后即可显示相应的字符。4.4 报警由于在实际应用中往往会加入报警等异常处理环节,本组添加设计了报警功能,当温度超过设定温度时,led灯开始闪烁。设计原理比较简单,获取数据后与设定数据进行比较,当温度超过设定温度值时,cpu发送命令给8255,让8255b端口输出相应的电平让led闪烁,达到报警的效果。4.5 显示柱形图为了直观的显示温度的变化,本组加入了柱形图显示。首先定义了不同温度下的显示字节编码。graf: db 0f3h,01d,17d,80h db

14、 0f3h,01d,17d,40h db 0f3h,01d,17d,20h db 0f3h,01d,17d,10h db 0f3h,01d,17d,08h db 0f3h,01d,17d,04h db 0f3h,01d,17d,02h db 0f3h,01d,17d,01h当获取ad值后判断当前的温度等级并获取显示编码,然后显示到液晶屏上即可。5 程序流程开始5.1 主程序流程图8255初始化,以及lcd显示“ustb自动化学院,温度:”等调用柱形图显示程序在液晶屏显示当前温度对应的柱形图调用报警程序,判断当前是否应该报警调用lcd显示程序在lcd上显示数据获取ad转换后的值,并存入寄存器和存

15、储器启动一次零通道的ad转换,并延时等待调用数码管显示函数,在数码管上同步显示数据据图 4 主程序流程图5.2 lcd显示程序流程图图5 液晶屏显示流程图5.3 数码管显示子程序流程图开始8279初始化获取编码发送结束发送数据nny图6 数码管显示流程图5.4 报警子程序流程图开始获取温度是否报警关闭led闪烁一次led图7 报警子程序流程图5.5 柱形图显示程序流程图开始获取显示编码发送数据到lcd上图8 柱形图显示子程序7 实验现象及说明7.1 实验结果经过调试,完成基本的功能,并添加了附加的功能。数码管能与lcd同步显示采集的ad值。当温度超过一定值时,系统通过闪烁led报警。同时为了方

16、便地查看当前的温度状况,在lcd上显示了柱形图。实际工作状况如下图所示:图9 实物演示效果图7.2 结果说明由于本次实验采集的是adc转换后的值,并没有进行ad值和实际温度差值之间的转换,所以图中显示的数据并不是真实的温度值。另一方面,热电偶检测的是热锻和冷端的温度差,所以实际的ad值不光跟热端温度有关,而且跟冷端温度有关。由于热电偶的线性度比较高,所以加热另一端能清楚地看到采集的ad值升高。8 在小组中的任务本人在本次实验中主要负责程序的编写,注释的添加。另外,在完成基本功能后,我添加了报警功能和柱形图显示功能,并撰写了个人的设计报告。9 实验心得通过本次实验设计,了解了计算机的基本工作原理

17、,ad转换的基本方式。另外,本次实验是一次综合性的课程设计,熟悉了几种显示设备的使用方法,初步掌握了汇编语言程序设计的方法。在整个设计过程中,我们也遇到了一些问题,比如液晶屏不能正常显示,经过检查是因为连线上了一根。程序中也遇到一些问题,数码管不能和液晶屏同步显示,经过检查,结果是一句程序跳转指令出错了。总之,本次课程设计收获颇多,收获了一些课堂上不能得到的能力和锻炼。结论热电偶的热端在温度发生变化以后,由于席贝克响应,热电偶回路中会有电流流过,因此通过模拟电路采集电压信号并进行放大等处理后进行ad转换可以得到数字量,此数字信号跟热电偶两端的温度差有关。通过查表或者拟合公式可以得到实际的温度差

18、值。由于本次使用汇编语言书写程序,所以对浮点数的处理比较复杂,所以只显示了采集的ad值,但是能形象的描述出温度的变化。参 考 文 献1 王忠民著. 微型计算机原理. 西安:西安电子科技大学出版社,2007.2 董洁著. stu_8086课程设计说明 .北京.北京科技大学,2013附 录1 程序清单 con0809 equ 04d0h con8279 equ 0492h dat8279 equ 0490h assume cs:code code segment public org 100h start: jmp start1 segcod db 3fh,06h,5bh,4fh,66h,6dh,

19、7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h ;09的编码 temp0 db 00h;*init* start1: mov dx, 04a6h ;选中控制寄存器 mov ax, 88h ;a端口输出,工作在方式0,pc7pc4输入,b端口输出,pc3pc0输出 out dx, ax ;发送命令 mov ax, 70h ; out dx, ax ;复位pc0 mov al, 0f4h ;清屏命令 call comd call delay ;延时等待 mov si,offsettable mov cx, 183d wr0: mov dx, 04a4h ;写端口c命

20、令 in ax, dx ;读端口c的状态 and ax, 80h ;判断busy jnz wr0 ;忙等待 mov al, si ;给液晶屏发送命令 call comd ;调用发送函数 inc si ;si+1 ,传送下一个数据 loop wr0;*;*main* main1: mov dx, con0809 mov ax, 34h out dx, ax ;锁存ad转换通道,为通道0 mov cx, 10h wait1: nop nop loop wait1 ;等待ad转换的完成 mov dx, con0809 ; in ax, dx ;读入温度数据 and ax, 0ffh ;去位 mov

21、bx, ax ;存入bx mov di,offset temp0 mov cs:di,bl;将数据存储起来 mov temp0,bl; call lcd_disp ;lcd显示 call led_disp ;led显示 call light;判断是否报警 call zhuxing;柱形图显示 call delay;延时等待 jmp main1 ;回到主函数入口继续执行;*;*led_display* led_disp: mov di,offset temp0 mov bl,cs:di;从存储器中读取上次的ad转换值 mov di,offset segcod;获取数码管编码的首地址 mov ax

22、, 08h mov dx, con8279 out dx, ax ;让数码管显示16x8字符,左端开始 mov dx, dat8279;获取数据地址 push bx;将bx暂时备份 and bx, 0f0h;获取高四位编码 mov cl,4 shr bx,cl;逻辑右移4位 add di,bx ;获取编码偏移地址 mov al,cs:di mov ah,0 out dx,ax ;发送数据 nop nop mov di,offset segcod pop bx and bx,0fh ;获取低四位数据 add di,bx ;添加偏移量 mov al,cs:di mov ah,0 out dx, a

23、x ;发送低四位数据 call delay;延时等待 ret;*;*light* light: mov di,offset temp0;获取上次adc的值 mov bl,cs:di cmp bl,30h;跟设定值进行比较 jb light_off;低于30h的话转移 mov dx, 04a2h ;传送数据 mov al,00h;b端口输出低电平 out dx, al ;写入b端口 call delay;延时等待 light_off: mov dx, 04a2h ;传送数据 mov al,0ffh;关闭led out dx, al ;写入a端口 ret;*;*graf* zhuxing: mov

24、 di,offset temp0;获取ad值 mov al,cs:di mov ah,00h mov bl,16d div bl;除以16 mov cl,al;获取当前温度等级 show: mov si,offsetgraf;获取当前温度对应的显示编码 add cl,si mov al,cl call comd;调用comd显示出来 ret;*;*lcd_disp* lcd_disp: push bx;暂时备份 and bx, 0f0h mov cl,4 shr bx,cl;获取高四位数据 add bx,30h ;获取相应的ascii码 cmp bl,3ah;如果高于0ah,还得再加上07h

25、jb t0 add bl,07h t0: mov cx,03d;循环3次 mov si,offsettep1 t1: mov dx, 04a4h in ax, dx ;读端口c的状态 and ax, 80h ;判断busy jnz t1 ;忙等待 mov al, si ;给液晶屏发送命令 call comd ;调用发送函数 inc si ;si+1 ,传送下一个数据 loop t1 wr1: mov dx, 04a4h ;读c命令 in ax, dx ;读端口c的状态 and ax, 80h ;判断busy jnz wr1 ;忙等待 mov al, bl ;给液晶屏发送命令 call comd

26、 ;调用发送函数 mov cx,03d mov si,offsettep2 t2: mov dx, 04a4h ;写端口命令 in ax, dx ;读端口c的状态 and ax, 80h ;判断busy jnz t2 ;忙等待 mov al, si ;给液晶屏发送命令 call comd ;调用发送函数 inc si ;si+1 ,传送下一个数据 loop t2 pop bx and bx,0fh ;获取低四位数据 add bx,30h ;获取ascii码 cmp bl,3ah jb wr2 add bl,07h;如果超过0ah,还得再添加07h wr2: mov dx, 04a4h ;读c命

27、令 in ax, dx ;读端口c的状态 and ax, 80h ;判断busy jnz wr2 ;忙等待 mov al, bl ;给液晶屏发送命令 call comd ;调用发送函数 call delay ret;*;* delay: mov cx, 03fffh delay1: nop nop loop delay1;空循环等待 ret;* ;* comd: mov dx, 04a0h ;传送数据 out dx, al ;写入a端口 mov dx, 04a6h ;写控制字寄存器 mov ax, 71h out dx, ax ;pc0置位,拉高pc0 mon: mov dx, 04a4h i

28、n ax, dx ;读端口c and ax, 80h ;判断是否忙碌 jz mon ;等待其不忙碌为止,发送数据就结束了 mov dx, 04a6h ;写控制寄存器 mov ax, 70h out dx ,ax ;复位pc0,拉低req ret ;* table: ;db 0f0h,01d,00d,11h,11h ;北 ;db 0f0h,02d,00d,1eh,09h ;京 ;db 0f0h,03d,00d,1fh,26h ;科 ;db 0f0h,04d,00d,1ch,1ch ;技 ;db 0f0h,05d,00d,14h,53h ;大 ;db 0f0h,06d,00d,31h,07h ;学 db 0f1h,01d,05d,u db 0f1h,02d,05d,s db 0f1h,03d,05d,t db 0f1h,04d,05d,b db 0f0h,03d,00d,37h,34h ;自 db 0f0h,04d,00d,16h,0fh ;动 db 0f0h,05d,00d,1bh,0fh ;化 db 0f0h,06d,00d,31h,0

温馨提示

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

评论

0/150

提交评论