




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京科技大学自动化学院微机原理课程设计
PAGE
-
PAGE
1
-
《微机原理》课程设计报告
时间
2013.12_
学院自动化_
专业班级
_
姓
名
___
学
号
合作者
_
指导教师
___
成绩
_______
摘要
8086是Intel公司设计生产的CPU,是计算机发展史上的里程碑。通过学习8086CPU的工作原理,可以帮助我们理解计算机的工作原理。实践动手能力是电子信息类应用型人才必须具备的基本素质。本次微机原理课程设计,通过设计一个热电偶温度检测器,并将测量得到的数据显示到LCD屏幕上。其中使用到8086,ADC0809,8255,8279,经过一周的练习,锻炼了我们的编写程序能力,逻辑分析能力,解决问题的能力,查找文献的能力。
关键词:8086热电偶ADC0809
Abstract
8086isACPUdesignedbyIntelandamilestoneinthehistoryofthedevelopmentofthecomputer.Studyingtheworkingprincipleof8086CPUcanhelpusunderstandtheworkingprincipleofthecomputer.Practiceabilityisbasicqualitiesofstudentswhomajoredinelectronicandinformation.Themicrocomputerprinciplecourse,wedesignedathermocoupletemperaturedetectoranddisplayedthemeasureddataontheLCDscreen.Itused8086,ADC0809,8255827.Afteraweekofpractice,wepromoteourabilitytowriteprograms,logicanalysisabilityandproblemsolvingskillsandtheabilityofsearchingreference.
KeyWords:8086thermocoupleADC0809
北京科技大学自动化学院微机原理课程设计
PAGE
-
PAGE
2
-
目录
TOC\o"1-3"\h\z
摘要
1
Abstract
1
引言
1
K型热电偶传感器实验
2
1实验内容
2
2实验设备
2
3实验设计原理
2
3.1热电偶原理
2
3.2AD转换电路
3
4设计思路
4
4.1AD转换采集数据
4
4.2数据显示到数码管上
4
4.3数据显示到LCD上
5
4.4报警
5
4.5显示柱形图
5
5程序流程
6
5.1主程序流程图
6
5.2LCD显示程序流程图
7
5.3数码管显示子程序流程图
8
5.4报警子程序流程图
8
5.5柱形图显示程序流程图
9
7实验现象及说明
9
7.1实验结果
9
7.2结果说明
10
8在小组中的任务
11
9实验心得
11
结论
12
参考文献
13
附录
14
1程序清单
14
北京科技大学自动化学院微机原理课程设计
-
PAGE
17
-
引言
《微机原理》课程设计需综合运用所学知识针对一个较为具体的控制对象或过程进行系统设计、硬件选型及软件设计。通过课程设计,可以对理论知识融会贯通,培养同学们的系统设计能力,使同学们达到以下能力训练:
(1)调查研究、分析问题的能力;
(2)使用设计手册、技术规范的能力;
(3)查阅文献的能力;
(4)制定设计方案的能力;
(5)计算机应用的能力;
(6)设计计算和绘图的能力;
(7)语言文字表达的能力。
本组微机原理设计的内容是通过热电偶检测热端温度,并利用模拟电路将信号放大,使用ADC0809将得到的模拟信号转换成数字量,最终显示到相应的设备上。通过仔细的调试,最终完成了整体电路的调试。
K型热电偶传感器实验
1实验内容
连接好电路,编写调试程序。用打火机加热热电偶的测量端,读出冷端和热端的温度差,并显示到液晶屏上。
2实验设备
1、EL-MUT-III实验箱
2、8086CPU板
3、温度传感器模块
3实验设计原理
3.1热电偶原理
热电偶是将两种不同性质的金属导线连接在一起所形成的温度测量装置。其测量原理是利用席贝克效
应(SeedbackEffect),即两种不同性质的金属导线连接在一起形成封闭回路时,若使其中一接点的温度高于另一接点的温度,则在此闭合回路中,即有电流流过。如下图所示:
图1热电偶原理
在热电偶上,两根导线连接在一起的点称为热接点,也称测量点,通常置于待测温度区;而两导线不连接的地方称为冷接点,接测量电路。根据正、负极用材料的不同,热电偶分为B、E、J、K、R、S、T、Y型。本模块中采用的是K型热电偶,其正极为镍铬合金,负极为镍硅合金。与其它类型的热电偶相比,K型热电偶的线性较好,使用方便,因而在工业测量中被广泛使用。K型热电偶的基本测量电路如下图所示。K型热电偶的工作原理见模块说明,其测量电路如下图所示。COUPLER1、COUPLER2为热电偶冷接点的两接线端,COUPLER1为正端。OP07为高阻运算放大器,用于高精度的电压放大。如上图所示,电压增益为500倍。模块上BALANCE电位器对应于图中R6,用于零位调节。J1对应于VOUT1插孔,输出模拟电压。R9电位器用于设置报警电压,当模拟输出大于报警电压时,ALARM灯亮,ALARMOUT输出高电平;否则ALARM灯不亮,ALARMOUT输出低电平。使用时,应先对OP07调零,具体方法如下:将热电偶的两接线端接在模块的两接线端子上,红端接正,蓝端接负。用万用表测VOUT1端的输出电压,使VOUT1=0V。(注:必须在接上热电偶的情况下调零,否则测量误差较大)将测量端置于加热区(或用打火机加热),用A/D采样VOUT1端电压,根据下面K型热电偶的分度表可计算出冷端和热端的温差T1(两刻度之间可用线性插值),用其它方法测出的常温为T0,T0+T1就是测量端的实际温度。
图2K型热电偶电路图
3.2AD转换电路
八路八位A/D实验电路由一片ADC0809,一片74LS04,一片74LS32组成,该电路中,ADIN0—ADIN7是ADC0809的模拟量输入插孔,CS0809是0809的AD启动和片选的输入插孔,EOC是0809转换结束标志,高电平表示转换结束。齐纳二极管LM336-5提供5V的参考电源,ADC0809的参考电压,数据总线输出,通道控制线均已接好,八位双缓冲D/A实验电路由一片DAC0832。一片74LS00,一片74LS04,一片LM324组成,该电路中除DAC0832的片选未接好外,其它信号均已接好,片选插孔标号CS0832。输出插孔标号DAOUT。该电路为非偏移二进制D/A转换电路,通过调节POT3,可调节D/A转换器的满偏值,调节POT2,可调节D/A转换器的零偏值。
图3AD转换电路的原理图
4设计思路
4.1AD转换采集数据
ADC0809是逐位逼近型8通道A/D转换芯片,CMOS工艺制造,双列直插式28引脚封装。由于本次实验时硬件电路使用的是实验箱,所以硬件电路无需设计。ADC0809有8个通道,本次使用的是0通道,片选信号选用CS3,所以地址定义为“CON0809EQU04D0H”。在START端产生一个正脉冲,启动AD转换,并锁存模拟通道地址。由于AD转换需要一定的时间,所以接下来等待一段时间,读取AD转换值。
4.2数据显示到数码管上
数码管电路使用的是8279驱动电路。由于电路已经设计完毕,所以程序开始定义其控制和数字地址:
CON8279EQU0492H
DAT8279EQU0490H
由于数码管显示需要显示的编码,所以先定义编码表。
SEGCODDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
当获取ADC后的信息后,分别提取高四位和低四位的数据,然后到数码管显示表中查找相应的编码,发送到8279,8279驱动数码管便能显示出当前的数据。
4.3数据显示到LCD上
为了减轻总线的负担,驱动LCD的任务给了8255,CPU通过控制8255的输出来控制LCD的显示内容。将PA0~PA7连接到LCD的数据端口上,将PC7连接到BUSY端口上,将PC0连接到LCD的REQ上,将CS8255连接到CS0。首先初始化8255,将A端口设置为输出模式,PC7~PC4设置为输入模式,PC3~PC0设置为输出并复位PC0端口,B端口设置为输出模式。LCD的驱动芯片接收命令来显示字符,有很多种方式,里面包括汉字库等。获取显示位置等数据后,判断是否忙,然后发送数据,等待接收,发送完毕,将相应的数据发送完毕后即可显示相应的字符。
4.4报警
由于在实际应用中往往会加入报警等异常处理环节,本组添加设计了报警功能,当温度超过设定温度时,LED灯开始闪烁。设计原理比较简单,获取数据后与设定数据进行比较,当温度超过设定温度值时,CPU发送命令给8255,让8255B端口输出相应的电平让LED闪烁,达到报警的效果。
4.5显示柱形图
为了直观的显示温度的变化,本组加入了柱形图显示。首先定义了不同温度下的显示字节编码。
GRAF:DB0F3H,01D,17D,80H
DB0F3H,01D,17D,40H
DB0F3H,01D,17D,20H
DB0F3H,01D,17D,10H
DB0F3H,01D,17D,08H
DB0F3H,01D,17D,04H
DB0F3H,01D,17D,02H
DB0F3H,01D,17D,01H
当获取AD值后判断当前的温度等级并获取显示编码,然后显示到液晶屏上即可。
5程序流程
开始
5.1主程序流程图
8255初始化,以及LCD显示“USTB自动化学院,温度:”等
调用柱形图显示程序在液晶屏显示当前温度对应的柱形图
调用报警程序,判断当前是否应该报警
调用LCD显示程序在LCD上显示数据
获取AD转换后的值,并存入寄存器和存储器
启动一次零通道的AD转换,并延时等待
调用数码管显示函数,在数码管上同步显示数据据
图4主程序流程图
5.2LCD显示程序流程图
图5液晶屏显示流程图
5.3数码管显示子程序流程图
开始
8279初始化
获取编码
发送结束
发送数据
N N
Y
图6数码管显示流程图
5.4报警子程序流程图
开始
获取温度
是否报警
关闭LED
闪烁一次LED
图7报警子程序流程图
5.5柱形图显示程序流程图
开始
获取显示编码
发送数据到LCD上
图8柱形图显示子程序
7实验现象及说明
7.1实验结果
经过调试,完成基本的功能,并添加了附加的功能。数码管能与LCD同步显示采集的AD值。当温度超过一定值时,系统通过闪烁LED报警。同时为了方便地查看当前的温度状况,在LCD上显示了柱形图。实际工作状况如下图所示:
图9实物演示效果图
7.2结果说明
由于本次实验采集的是ADC转换后的值,并没有进行AD值和实际温度差值之间的转换,所以图中显示的数据并不是真实的温度值。另一方面,热电偶检测的是热锻和冷端的温度差,所以实际的AD值不光跟热端温度有关,而且跟冷端温度有关。由于热电偶的线性度比较高,所以加热另一端能清楚地看到采集的AD值升高。
8在小组中的任务
本人在本次实验中主要负责程序的编写,注释的添加。另外,在完成基本功能后,我添加了报警功能和柱形图显示功能,并撰写了个人的设计报告。
9实验心得
通过本次实验设计,了解了计算机的基本工作原理,AD转换的基本方式。另外,本次实验是一次综合性的课程设计,熟悉了几种显示设备的使用方法,初步掌握了汇编语言程序设计的方法。在整个设计过程中,我们也遇到了一些问题,比如液晶屏不能正常显示,经过检查是因为连线上了一根。程序中也遇到一些问题,数码管不能和液晶屏同步显示,经过检查,结果是一句程序跳转指令出错了。总之,本次课程设计收获颇多,收获了一些课堂上不能得到的能力和锻炼。
结论
热电偶的热端在温度发生变化以后,由于席贝克响应,热电偶回路中会有电流流过,因此通过模拟电路采集电压信号并进行放大等处理后进行AD转换可以得到数字量,此数字信号跟热电偶两端的温度差有关。通过查表或者拟合公式可以得到实际的温度差值。由于本次使用汇编语言书写程序,所以对浮点数的处理比较复杂,所以只显示了采集的AD值,但是能形象的描述出温度的变化。
参考文献
王忠民著.微型计算机原理.西安:西安电子科技大学出版社,2007.
董洁著.stu_8086课程设计说明.北京.北京科技大学,2013
附录
1程序清单
CON0809EQU04D0H
CON8279EQU0492H
DAT8279EQU0490H
ASSUMECS:CODE
CODESEGMENTPUBLIC
ORG100H
START:JMPSTART1
SEGCODDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;0~9的编码
TEMP0DB00H
;**********************************Init***********************************START1:MOVDX,04A6H;选中控制寄存器
MOVAX,88H;A端口输出,工作在方式0,PC7~PC4输入,B端口输出,PC3~PC0输出
OUTDX,AX;发送命令
MOVAX,70H;
OUTDX,AX;复位PC0
MOVAL,0F4H;清屏命令
CALLCOMD
CALLDELAY;延时等待
MOVSI,OFFSET[TABLE]
MOVCX,183D
WR0:MOVDX,04A4H;写端口C命令
INAX,DX;读端口C的状态
ANDAX,80H;判断BUSY
JNZWR0;忙等待
MOVAL,[SI];给液晶屏发送命令
CALLCOMD;调用发送函数
INCSI;SI+1,传送下一个数据
LOOPWR0
;***********************************************************************
;**********************************main*********************************
MAIN1:MOVDX,CON0809
MOVAX,34H
OUTDX,AX;锁存AD转换通道,为通道0
MOVCX,10H
WAIT1:NOP
NOP
LOOPWAIT1;等待AD转换的完成
MOVDX,CON0809;
INAX,DX;读入温度数据
ANDAX,0FFH;去位
MOVBX,AX;存入BX
MOVDI,OFFSETTEMP0
MOVCS:[DI],BL ;将数据存储起来
MOVTEMP0,BL ;
CALLLCD_DISP;LCD显示
CALLLED_DISP;LED显示
CALLLIGHT ;判断是否报警
CALLZHUXING ;柱形图显示
CALLDELAY ;延时等待
JMPMAIN1;回到主函数入口继续执行
;***********************************************************************
;********************************LED_Display****************************LED_DISP:MOVDI,OFFSETTEMP0
MOVBL,CS:[DI] ;从存储器中读取上次的AD转换值
MOVDI,OFFSETSEGCOD ;获取数码管编码的首地址
MOVAX,08H
MOVDX,CON8279
OUTDX,AX ;让数码管显示16X8字符,左端开始
MOVDX,DAT8279 ;获取数据地址
PUSHBX ;将BX暂时备份
ANDBX,0F0H ;获取高四位编码
MOVCL,4
SHRBX,CL ;逻辑右移4位
ADDDI,BX ;获取编码偏移地址
MOVAL,CS:[DI]
MOVAH,0
OUTDX,AX ;发送数据
NOP
NOP
MOVDI,OFFSETSEGCOD
POPBX
ANDBX,0FH ;获取低四位数据
ADDDI,BX ;添加偏移量
MOVAL,CS:[DI]
MOVAH,0
OUTDX,AX ;发送低四位数据
CALLDELAY ;延时等待
RET
;***********************************************************************
;*******************************lIGHT***********************************
LIGHT:MOVDI,OFFSETTEMP0 ;获取上次ADC的值
MOVBL,CS:[DI]
CMPBL,30H ;跟设定值进行比较
JBLIGHT_OFF ;低于30H的话转移
MOVDX,04A2H ;传送数据
MOVAL,00H ;B端口输出低电平
OUTDX,AL ;写入B端口
CALLDELAY ;延时等待
LIGHT_OFF:MOVDX,04A2H ;传送数据
MOVAL,0FFH ;关闭LED
OUTDX,AL ;写入A端口
RET
;***********************************************************************
;***************************GRAF***************************************
ZHUXING:MOVDI,OFFSETTEMP0 ;获取AD值
MOVAL,CS:[DI]
MOVAH,00H
MOVBL,16D
DIVBL; ;除以16
MOVCL,AL ;获取当前温度等级
SHOW:MOVSI,OFFSET[GRAF] ;获取当前温度对应的显示编码
ADDCL,SI
MOVAL,[CL]
CALLCOMD ;调用COMD显示出来
RET
;***********************************************************************
;************************LCD_DISP**************************************
LCD_DISP:PUSHBX ;暂时备份
ANDBX,0F0H
MOVCL,4
SHRBX,CL ;获取高四位数据
ADDBX,30H ;获取相应的ASCII码
CMPBL,3AH ;如果高于0AH,还得再加上07H
JBT0
ADDBL,07H
T0:MOVCX,03D ;循环3次
MOVSI,OFFSET[TEP1]
T1:MOVDX,04A4H
INAX,DX ;读端口C的状态
ANDAX,80H ;判断BUSY
JNZT1 ;忙等待
MOVAL,[SI] ;给液晶屏发送命令
CALLCOMD ;调用发送函数
INCSI ;SI+1,传送下一个数据
LOOPT1
WR1:MOVDX,04A4H ;读C命令
INAX,DX ;读端口C的状态
ANDAX,80H ;判断BUSY
JNZWR1 ;忙等待
MOVAL,BL ;给液晶屏发送命令
CALLCOMD ;调用发送函数
MOVCX,03D
MOVSI,OFFSET[TEP2]
T2:MOVDX,04A4H ;写端口命令
INAX,DX ;读端口C的状态
ANDAX,80H ;判断BUSY
JNZT2 ;忙等待
MOVAL,[SI] ;给液晶屏发送命令
CALLCOMD ;调用发送函数
INCSI ;SI+1,传送下一个数据
LOOPT2
POPBX
ANDBX,0FH ;获取低四位数据
ADDBX,30H ;获取ASCII码
CMPBL,3AH
JBWR2
ADDBL,07H ;如果超过0AH,还得再添加07H
WR2:MOVDX,04A4H ;读C命令
INAX,DX ;读端口C的状态
ANDAX,80H ;判断BUSY
JNZWR2 ;忙等待
MOVAL,BL ;给液晶屏发送命令
CALLCOMD ;调用发送函数
CALLDELAY
RET
;***********************************************************************
;***********************************************************************
DELAY:MOVCX,03FFFH
DELAY1:NOP
NOP
LOOPDELAY1 ;空循环等待
RET
;***********************************************************************
;**********************************************************************
COMD:MOVDX,04A0H;传送数据
OUTDX,AL;写入A端口
MOVDX,04A6H;写控制字寄存器
MOVAX,71H
OUTDX,AX;PC0置位,拉高PC0
MON:MOVDX,04A4H
INAX,DX;读端口C
ANDAX,80H;判断是否忙碌
JZMON;等待其不忙碌为止,发送数据就结束了
MOVDX,04A6H;写控制寄存器
MOVAX,70H
OUTDX,AX;复位PC0,拉低REQ
RET
;**********************************************************************
TABLE:;DB0F0H,01D,00D,11H,11H;北
;DB0F0H,02D,00D,1EH,09H;京
;DB0F0H,03D,00D,1FH,26H;科
;DB0F0H,04D,00D,1CH,1CH;技
;DB0F0H,05D,00D,14H,53H;大
;DB0F0H,06D,00D,31H,07H;学
DB0F1H,01D,05D,'U'
DB0F1H,02D,05D,'S'
DB0F1H,03D,05D,'T'
DB0F1H,04D,05D,'B'
DB0F0H,03D,00D,37H,34H;自
DB0F0H,04D,00D,16H,0FH;动
DB0F0H,05D,00D,1BH,0FH;化
DB0F0H,06D,00D,31H,07H;学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度高新技术企业员工解除劳动合同证明书
- 二零二五年度书画领域经纪人佣金结算合同
- 二零二五年度房屋租赁合同租赁期间房屋维修协议
- 二零二五宅基地使用权转让与农村金融服务合同
- 2025年度自建房装修工程设计与施工安全合同
- 2025年度企业财务总监聘用合同
- 2025年小工厂环保节能技术研发人员劳动合同
- 2025年度教师聘用劳动合同书-基础教育阶段数学教师培养协议
- 2025年流态化干燥技术与设备项目合作计划书
- 互联网公益众筹项目文本语言风格对用户捐助决策的影响研究
- 保险授权书格式模板
- (完整版)数字电子技术基础教案
- 小回沟矿井3.0Mt-a新建工程变更项目环评
- 胃癌影像诊断(共42张)
- 汽车维修合同管理制度
- 剑桥KET词汇表(中英对照)
- 2024年湖南高速铁路职业技术学院单招职业技能测试题库附答案
- (完整)低压配电柜技术规范
- 《通信原理》樊昌信曹丽娜编著第六版课件
- 2024年注册安全工程师考试题库【含答案】
- 第2课《树立科学的世界观》第2框《用科学世界观指导人生发展》-【中职专用】《哲学与人生》同步课堂课件
评论
0/150
提交评论