《微机原理与接口技术》课程设计报告.docx
《《微机原理与接口技术》课程设计报告.docx》由会员分享,可在线阅读,更多相关《《微机原理与接口技术》课程设计报告.docx(22页珍藏版)》请在冰点文库上搜索。
《微机原理与接口技术》课程设计报告
《微机原理与接口技术》课程设计报告
题目:
压力测控系统的设计1
学院:
物流工程学院
专业班级:
学号:
姓名:
起止时间
指导教师:
2015年1月30日
摘要
《微机原理与接口技术》课程是理工科学生一门重要的专业课程,且实践性较强。
对于测控技术与仪器专业的学生尤其重要。
此课程的课程设计是对学生的一种基本素质训练的较好形式,可以通过课程设计加强学生的实践能力、动手能力和学习能力。
将所学的理论知识和实际情况结合起来,从而制定了压力测控系统的设计1这一题目。
如今经济的飞速发展使得城市的建设逐渐走向科学化、智能化。
其中各种功能的融合整合,现在成为技术发展的主流趋势。
压力测控系统是工业生产过程自动化中的重要测量设备,可以用来测量压力、液位等工程参数。
本文介绍了一种基于8086微处理器的压力测控系统,系统操作简便、自动化程度高、扩展方便且具有良好的人机交互能力。
该系统通过实验,取得了较为满意的控制效果。
可应用在一些精度要求不太高的系统中。
为了降低成本,在满足性能的要求下,选择低成本器件,简化系统设计。
关键字:
8086处理器8255接口A/D转换器压力传感器LED
Abstract
"Microcomputerprincipleandinterfacetechnology"courseisanimportantprofessionalcourseinscienceandengineeringstudents,andstrongpracticality,isespeciallyimportantformeasurementandcontroltechnologyandinstrumentspecialtystudents.Thecourseofcurriculumdesignisakindofbasicqualitytrainingofstudentsisbetterform,canthroughthecurriculumdesigntostrengthenthestudents'practicalability,practicalabilityandlearningability.
Combinelearningtheoreticalknowledgeandactualsituation,thusmakethepressuremeasurementandcontrolsystemdesign.1thistopic.Therapideconomicdevelopmentoftodaymakesscientific,intelligentconstructionofcitygradually.Integratedwithvariousfeaturesoffusion,nowbecomethemainstreamoftechnologydevelopmenttrend.Pressuremeasurementandcontrolsystemisanimportantmeasurementinindustrialproductionprocessautomationequipment,canbeusedtomeasurepressure,liquidlevelofengineeringparameters.Thispaperintroducesakindofpressuremeasurementandcontrolsystembasedon8086microprocessor,systemoperationissimple,highdegreeofautomation,extension,convenientandhasagoodabilityofhuman-computerinteraction.Throughtheexperiment,thesystemachievedarelativelysatisfactorycontroleffect.Canbeusedinsomeaccuracyrequirementisnottoohighinthesystem.Inordertoreducecosts,tomeettherequestoftheperformance,chooselowcostdevices,simplifysystemdesign.
Keywords:
A/Dconverter8086processor
8255interfacepressuresensorLED
一、课程设计名称及方案总体介绍
1、课题名称:
压力测控系统的设计1
2、设计要求
对压力传感器的信号进行检测并在LED数码显示器上显示压力值,当压力低于30pa时,黄灯闪烁,闪烁周期为1秒。
当压力高于150pa时,红灯闪烁。
LED的显示内容为P=XXX。
XXX为测试值。
3、方案介绍
由于本实验箱提供的压力传感器的灵敏度效果不是很理想,所以采用0~5V模拟电压替代。
利用ADC0809进行A/D转换,将传感器输出(0~5V)模拟量转化成8位并行输出的数字量,并送入8086CPU进行处理(5V对应的模拟量是11111111B=255D)。
CPU通过数值计算(00H对应的是0pa,FFH对应的是200pa),转换成实际的压力值,并利用8279进行数码管显示。
AD转化采样过程一直进行,当检测到压力值低于30pa时,调用相应的黄灯闪烁程序,黄灯闪烁;当检测到压力值高于150pa时,调用相应的红灯闪烁程序,红灯闪烁;处于两者中间时,调用全灭程序,两灯都灭。
灯闪烁程序采用8255间断输出高低电平实现,间隔为1s。
二、课程设计所需设备
STAR系列实验仪一套
PC机一台
导线若干
三、系统主要原件功能与原理介绍
1、8086CPU主控芯片介绍
1.1总括
本系统的主控芯片是Intel公司的8086CPU,8086CPU的主时钟频率为5MHz,有16位数据总线和20位地址总线。
主要由总线接口部件BLU和指令执行部件EU构成。
1.2片选区域介绍
上图是8086的片选电路,由三片74273和一片74154组成。
主要用于控制辅助芯片的作用和停止。
8086片选地址:
2、压力测量和频率发生电路
2.1压力测量等效电路
我们采用D2区的0~5V模拟电压模块构成压力测量部分。
2.2频率发生电路
ADC0809时钟信号为500K,供采样计时;8279时钟信号为2M。
3、ADC0809模数转换模块
ADC0809是CMOS单片型逐次逼近式A/D转换器,有8路8位的转换器,转换时间为100us,输入电压范围0~+5V。
本实验只用到IN0来接收温度传感器输出的模拟量,所以将ADDA、ADDB、ADDC全部置低电平,时钟脉冲接500KHz。
ADC0809的并行数据输出8086的数据总线相连,传输采样数据到CPU,CPU对采样的数据进行处理。
4、8279显示模块
8279可编程的键盘、显示接口芯片。
它既具有按键处理功能,又具有自动显示。
8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能8*8=64BRAM。
内置键盘获取函数GetBCDKey和数码管显示函数Display可供直接调用。
该芯片能自动消抖并具有双键锁定保护功能。
显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。
本实验主要运用其显示功能,显示三位的压力值。
8279的数据口D0~D7与CPU的数据总线相连接,用于接收数据,显示。
5、8255执行模块
8255是Intel系列微处理器配套使用的可编程并行接口芯片。
具有3个并行输入输出口。
本实验用到PC0、PC1分别控制黄灯和红灯。
本实验需将PC口设置在输出的模式下。
低电平点亮,延时一段时间,再高电平熄灭,完成闪烁的要求。
8255的数据口D0~D7与CPU的数据(控制)总线相连接,用于控制字及计数初值的写入。
四、系统软件设计及系统程序
1、系统设计框图
2、软件程序设计
3、系统原理图及接线
接线说明
B4区:
CS,A0,A1(8255)
A3区:
CS2,A0,A1(CPU)
B4区:
PC0、PC1
G5区:
LED2(黄),LED3(红)
E5区:
CS,A0(8279)
A3区:
CS5,A0
E5区:
CLK
B2区:
2M
E5区:
B,C
G5区:
B,C
G4区:
CLK(ADC0809)
B2区:
500K
G4区:
CS
A3区:
CS1
G4区:
ADDA、ADDB、ADDC
C1区:
GND
G4区:
IN0
D2区:
0~5V
4、系统程序
.MODELTINY;.COM文件的内存模型是'TINY',微型模式
EXTRNDisplay8:
NEAR;外部程序(8279显示程序)头文件包含
AR_89EQU0F000H;ADC0809输出端口地址,片选CS1
C_A_55EQU0E003H;8255控制端口地址,片选CS2
PC_AREQU0E002H;8255PC口数据线地址
.STACK100;堆栈段,100个存储空间
.DATA;数据段开始
BRDB8DUP(?
);八位数码管地址
TEMPDB0;当前压力值
.CODE;代码段
START:
MOVAX,@DATA;数据段首地址赋给AX
MOVDS,AX;填满数据段寄存器
NOP;停顿一下
CALLInit_8255;调用8255初始化程序
XORAL,AL;ADC0809采样值清零
JMPSTART5;跳到START5
START1:
MOVCX,50;设定采样50次
MOVBX,0;累计五十次采样值的和
START2:
CALLAD0809;采样函数调用
XORAH,AH;清高位
ADDBX,AX;采样值加到BX中
LOOPSTART2;重复执行START250次
MOVAX,50;除数,求平均
XCHGAX,BX;把,被除数给AX,除数给BL
DIVBL;商(均值)存放在AL中
CMPAL,TEMP;采样值与当前采样值比较
JZSTART4;如果采样值无变化,跳转到START4,先比较显示再重新采样
START5:
MOVTEMP,AL;采样值有变化,把采样值赋给当前采样值(未转换)
CALLDTE_DPY;调用显示函数
START3:
CALLDLTime;调用段延时程序,等待下一次采样
JMPSTART1;跳回采样程序开头,开始第二次采样
START4:
CALLDTE_DPY;调用显示函数,先比较显示
JMPSTART3;跳回START3
;*************************数码管显示********************************
DTE_DPYPROCNEAR;分别提取数字量个、十、百放暂存区
MOVBL,40;5V对应200pa
MULBL;AL×BL,结果存放于AX
MOVBL,51;除数为51,模拟量5V对于数字11111111B=255D
DIVBL;对采样值进行乘上40除51转为压力值,商保存在AL中
CMPAL,1EH;采样值与30比较
JBEYELLOW;小于30,转YELLOW
CMPAL,96H;大于等于30,采样值与150比较
JAERED;大于150,转RED
JMPCENTER;大于等于30,小于等于150,转CENTER
START6:
AAM;AL/10商放AH(高两位),余数放AL(个位)
MOVBR,AL;个位
MOVAL,AH;商重新放入AL
AAM;AH(百位),AL(十位)
MOVBR+1,AL;十位显示
MOVBR+2,AH;百位显示
MOVBR+3,10H;高5位不显示,赋值16D,则清零,数码管最大显示F(15D)
MOVBR+4,10H;消隐
MOVBR+5,10H;消隐
MOVBR+6,10H;消隐
MOVBR+7,10H;消隐
LEASI,BR;显示缓存BUFFER偏移地址给SI
CALLDisplay8;调用相应的外部显示函数,显示各个数码管的数值
RET;返回
DTE_DPYENDP;DTE_DPY过程结束
;************************ADC0809采样程序***************************
AD0809PROCNEAR;ADC0809模数转换,转换值放入AL中,最大为FFH
PUSHCX;保护原有的CX(采样次数50)
MOVAL,0;清零当前转换值
MOVDX,AR_89;ADC0809输出端口地址赋给DX
OUTDX,AL;ADC0809输出清零
MOVCX,200;模数转换,时间,延时标志
LOOP$;延时,等待AD转换完成,待CX减为0时,结束循环
MOVDX,AR_89;ADC0809输出端口地址赋给DX
INAL,DX;将转换后的值存入AL
POPCX;弹出保护的CX
RET;返回
AD0809ENDP;AD0809进过程结束
;************************黄灯闪烁程序******************************
YELLOW:
;黄灯闪烁程序
PUSHAX;保护采样值AX
MOVDX,PC_AR;8255_C口数据地址
MOVAL,0FEH;11111110B
OUTDX,AL;写数据,PC0接黄灯,输出低电平,黄灯亮
CALLDL1s;灯亮延时1s
MOVAL,0FFH;11111111B
OUTDX,AL;写数据,PC0接黄灯,输出高电平,黄灯灭
CALLDL1s;灯灭延时1s
POPAX;弹出保护的采样值AX
JMPSTART6;跳回显示程序
;************************红灯闪烁程序*******************************
RED:
;红灯闪烁程序
PUSHAX;保护采样值AX
MOVDX,PC_AR;8255C口数据地址
MOVAL,0FDH;11111101B
OUTDX,AL;写数据,PC1接红灯,输出低电平,红灯亮
CALLDL1s;灯亮延时1s
MOVAL,0FFH;11111111B
OUTDX,AL;写数据,PC1接红灯,输出高电平,红灯灭
CALLDL1s;灯灭延时1s
POPAX;弹出保护的采样值AX
JMPSTART6;跳回显示程序
;************************红绿灭程序********************************
CENTER:
;灯全灭程序
PUSHAX;保护采样值AX
MOVDX,PC_AR;8255C口数据地址
MOVAL,0FFH;11111111B,C抠均输出高电平
OUTDX,AL;写数据,PC0、PC1输出均高电平,灯全灭
POPAX;弹出保护的采样值AX
JMPSTART6;跳回显示程序
;************************短延时程序********************************
DLTimePROCNEAR;短延时程序,近过程,供采样间隔
PUSHCX;保护原有的CX(采样次数50)
MOVCX,5000;对应8086主频,5000个周期,为250ms
LOOP$;循环,无操作
POPCX;弹出保护的CX
RET;返回
DLTimeENDP;延时程序DLTime结束过程
;************************延时500ms程序****************************
DL500msPROCNEAR;500ms延时程序,近过程
PUSHCX;保护原有的CX(采样次数50)
MOVCX,60000;循环次数
DL500ms1:
LOOPDL500ms1;循环DL500ms160000次
POPCX;弹出保护的CX
RET;返回
DL500msENDP;500ms延时程序结束过程
;************************延时1s程序*******************************
DL1sPROCNEAR;1s延时程序,近过程
PUSHCX;保护原有的CX(采样次数50)
MOVCX,2;循环次数
DL1s1:
CALLDL500ms;调用500ms延时程序DL500ms
LOOPDL1s1;循环DL1s12次
POPCX;弹出保护的CX
RET;返回
DL1sENDP;1s延时程序结束过程
;************************8255初始化程序****************************
Init_8255PROCNEAR;8255初始化程序,近过程
MOVDX,C_A_55;8255初始化
MOVAL,80H;控制字,方式0,PA、PB、PC均为输出
OUTDX,AL;写控制字
MOVDX,PC_AR;8255PC口数据地址
MOVAL,0FFH;AL8位均置1,输出高电平,灯灭
OUTDX,AL;写PC口输出状态
RET;返回
Init_8255ENDP;8255初始化程序,结束过程
ENDSTART;结束START程序
五、系统调试
1、小于30pa
压力值在0~30pa时,数码管后三位实时显示测量值,黄灯闪烁。
2、中间
压力值在30~150pa时,数码管后三位实时显示测量值,黄、红灯均熄灭。
3、大于150pa
压力值在150~200pa时,数码管后三位实时显示测量值,红灯闪烁。
六、课程设计体会总结
回顾起这两周的课程设计,我感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
在近两周的课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
最终的检测调试环节,以保程序的正确。
这次课程设计终于顺利完成了,在设计中遇到了很多问题,经过我们认真的反复修改,才得到正确的程序。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。
更重要的是,在实验课上,我们学会了很多学习的方法。
而这是日后最实用的,真的是受益匪浅。
要面对社会的挑战,只有不断的学习、实践,再学习、再实践。
实验过程中,也对团队精神的进行了考察,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。
果然是团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。
此次微机课程设计,也让我对微机这一门课程有了系统的疏导。
在学习这门课程是我们只是独立的讲解一些芯片的结构及用法,而通过微机课程设计,在我们在构建一个小型的微机系统时,而真正的去关注这些芯片的连接。
这不但要求我们对各个芯片要有一定的了解与认知。
而且要懂得怎么融会贯通。
这是我在这次微机实习中体会最深的。
其二,通过微机课程设计,培养了我们想问题的思维方式。
以前我们想问题时总是将一些问题孤立出来去思考,而这次实习,他引导我们以多维的方式去解析整个问题。
在课程设计中,我们不但要理解好系统的结构,进而画出硬件连接图、而且要写出程序流程图及源程序就,这些虽然是不同的表现形式,但他们必须用统一的思想去认识。
其三,通过对压力测试系统的设计,让我们更加了解了CPU8086、ADC0809、8255等芯片的用法,同时,也对汇编语言的编程有了更加深入的认识。
为以后单片机的学习奠定了一定的基础。
最后,我通过课程设计认知了团队合作的重要性。
通过与搭档的交流,让我对有些以前不是很熟悉的内容有了提高。
同时在与之合作中,让我对工程这个概念有了新的认识,因为在以后工作中我们都必须面对与团体的合作。
只有在平常,我们多去与人交流。
才能提升我们的这个能力。
总之,两周的微机的课程设计尽管很短,但让我们受益颇多。
最后感谢老师在此次设计中给予我们的精心指导,才有我们设计的成功。
七、参考文献
【1】冯博琴《微机原理与接口技术》2007清华大学出版社
【2】何克忠《计算机控制系统》2002清华大学出版社
【3】戴梅萼《微型计算机技术及应用》2007清华大学出版社
【4】沈美明温冬婵《IBM-PC汇编语言程序设计》2001清华大学出版社
【5】何小海严华《微机原理与接口技术》2006科学出版社
【6】楼顺天周佳社《微机原理与接口技术》2006科学出版社
【7】严永军《prote199电路设计与应用》2001国防工业出版社
【8】朱善君《汇编语言程序设计》1988清华大学出版社