目录一.设计目的……………………………………3二.设计内容……………………………………3三.设计所用器材………………………………3四.设计原理……………………………………4五.原理图设计…………………………………7六.接口电路的端口地址……………………9七.程序流程图…………………………………9八.程序清单……………………………………12九.收获、体会和建议…………………………16微型计算机原理课程设计2一.设计目的1.通过本设计,使学生综合运用《微型计算机原理》的内容,为以后从事计算机检测与控制工作奠定一定的基础。2.主要掌握并行I/O接口芯片8253、8255A及中断控制芯片8259A等可编程器件的使用。3.学会用汇编语言编写一个较完整的实用程序。4.掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。二.设计内容1.打开电源后,先设定水温,水温分为八档(30℃~100℃,每10℃为一档)。2.按下启动键后,开始测量水温并采用数码管显示,控制电热管加热。3.上下限水位报警(声光报警)。4.提倡创新。三.所用器材此项目所用到器材如下:8088、ADC0803和译码器芯片SN54A74LS138、数据总路线缓冲器74LS245、27C020存储器各一片、可编程芯片8255A两片、地址锁存器SN74LS373三片、发光二极管8个、数码管3个、温度传感器、液位变送器等微型计算机原理课程设计3四.设计原理1.液位检测用液位检测仪,输出电压经处理后送至8259,当水位过高时,送信号给IRQ5,当水位过低时,送信号给IRQ6,由此产生中断信号,如图一所示。经8088处理后输出脉冲使锋鸣器报警,如图二所示。并使数码管(当水位正常时和于显示温度)显示水位过高(H)水位过低(L)。接第二片8255图一液位中断连线图图二锋鸣器连接图微型计算机原理课程设计42.温度设定,该控制器共有八档温度可供选择,我们选择了八个按键的键盘,当按按键时,8255相应的端口输入高电平,如图三所示。并送到8088,经8088处理后,发送信号到显示电路,点亮相应的二极管(一个二极管代表一种温度),如图四所示3.温度检测,用温度传感器检测温度并输出电压,经ADC转换成成数图三温度设定接数据总线接ADC输出图四实际温度显示微型计算机原理课程设计5字量后送到8255,如图五所示再传到8088,8088再输出信号让数码管显示实际温度,如图六所示4.加热器控制。将实际温度与设定温度比较,当设定温度比实际温度高出50度时,使大功率的加热器工作;当设定温度比实际温度高出20度时,使中等功率的加热器工作;当设定温度比实际温度高但没有高出20度时,使小功率的加热器工作;当设定温度低于实际温度图五温度检测并转换成数字量接8255图六温度显示接8255接8255接8255接3-8译码器输出微型计算机原理课程设计6时,使加热器全部停止工作。其实现在8255控制,如图七所示5.系统的整体框图如图八所示。五.原理图设计硬件的连线图用Protel2004设计,设计结果如图九所示图七加热器控制微型计算机原理课程设计7设定温度显示8088存储器存储设定温度设定温度液位报警温度检测并用ADC转换成数字量液位检测实际温度显示825582558259加热器控制图八系统整体框图微型计算机原理课程设计8六.接口电路的端口地址如下表表一接口电路的端口地址表地端址口芯片ABC控制端口8255(第一片)404142438255(第二片)80818283七.程序流程图8088图九硬件连接图27C020825582598255SN74LS373SN74LS373液位检测DM74LS245WMSN54ALS138AFKADC0803INSN74LS373温度检测微型计算机原理课程设计9除以100,商送数码管显示接收ADC的输出余数除以10,商送数码管显示开始余数送数码管显示返回温度显示流程图主程序流程图开始调用键盘检测子程序加热器控制温度比较检测温度开中断微型计算机原理课程设计10返回显示并存储设定值开始YESNO按键?键盘检测流程图NONONOYES开始开大功率加热管返回高出20°?设定温度高于实际温度高出50°?YESYES开中等功率加热管开低功率加热管加热管控制流程图开始显示过高或过低调用“响”子程序中断服务程序流程图中断返回微型计算机原理课程设计11八.程序清单DATASSEGMENTLEDDB00HTEMDB00HSETTEMDB00HDUANDB3FH06H5BH4FH66H6DH7DH07H7FH6FHDTEMBIAODB100BUP(?);用于查表DATASENDSSTACKSSEGMENTPARASTACK'STACK'STADB50(?)TOPEQULENGTHSTASTACKSENDSCODESSEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTACK:MOVAX,DATASMOVDS,AXMOVAX,STACKMOVSS,AXMOVSP,TOPPUSHDS;填中断MOVAX,0000HMOVDS,AXMOVAX,OFFSETIRQ7;温度AD转换ADDAX,2000HMOVSI,003CHMOV[SI],AXMOVAX,0000HMOVSI,003EHMOV[SI],AXMOVAX,OFFSETIRQ6;高水位中断ADDAX,2000HMOVSI,0038HMOV[SI],AXMOVAX,0000HMOVSI003AHMOV[SI],AXMOVAX,OFFSETIRQ5;低水位中断ADDAX,2000HMOVSI,0034HMOVAX,0000H微型计算机原理课程设计12MOVSI,0036HMOV[SI],AXPOPDSMOVAL,8BH;将8BH送到43H口(即键盘的控制端口)MOV43H,AL;初始化为0工作方式,A口输出,B口输入MOVAL,80H;将10000000送到83H口(显示8255A的控制口)MOV83H,AL;初始化为0工作方式,都为输出MOVAL,13H;将00010011送00H(8259A的ICW1)MOV00H,ALMOVAL,08H;设中断类型号(ICW2)MOV01H,ALMOVAL,0DH;设ICW4MOV01H,ALA:STI;开中断OUT40H,FFHINAL,41HCMPAL,FFHJEBCALLKEY;调用键盘子程序B:CALLTEMDT;调用温度检测子程序CALLCOMP;调用温度比较子程序LOOPAIRQ5:OUT80H07H;选中三个数码管,高水位中断OUT81H,76H;显示“H”字样,表示水位过高CALLXIANG;调用“响”子程序STI;开中断IRETIRQ6:OUT80H,07H;选中三个数码管,低水位中断OUT81H,38H;显示“L”字样,表示水位过低CALLSINAG;STIIRETKEYPROCFAR;键盘检测子程序MOVCX,2000;延时,去抖C:LOOPCOUT40H,FFHINAL,41HCMPAL,FFHJED;按下键盘时跳转OUT82H,AL;送到二极管显示微型计算机原理课程设计13MOVLED,AL;送到LED存储单元CMPAL,01HJNEE1MOVAL,1EH;30度E1:CMPAL,02HJNEE2MOVAL,28HE2:CMPAL,04HJNEE3MOVAL,32HE3:CMPAL,08HJNEE4MOVAL,3CHE4:CMPAL,10HJNEE5MOVAL,46HE5:CMPAL,20HJNEE6MOVAL,50HE6:CMPAL,40HJNEE7MOVAL,5AHE7;MOVAL,64HMOVSETTEM,ALD:RETKEYENDPTEMDTPROCFAR;温度检测子程序INAL,C0H;驱动ADC0803IN工作MOVCX,1000HF1:LOOPF1;等待温度转换完成后输出中断IRQ7:MOVBX,OFFSETTEMBIAO;温度表INAL,42HMOVCX,64HF:CMP[BX],ALJAEG;大于或等于时跳转INCBXLOOPFG:MOVAX,61HSUBAL,CLMOVTEM,ALMOVAH,00H微型计算机原理课程设计14DIV64H;除以100,取出百倍数OUT80H,04H;选中第一个数码管MOVBL,ALMOVBH,00HMOVSI,OFFSETDUANOUT81H,[SI+BX]显示温度的百位数MOVCX,2000HH:LOOPHMOVAL,AHMOVAH,00HDIV10MOVBL,ALMOVBH,00HOUT80H,02H;选中第二个数码管OUT81H,[SI+BX]MOVCX,2000HI:LOOPIMOVBL,AHMOVBH,00OUT80H,01H;选中第三个数码管OUT81H[SI+BX]STIIRETTEMDTENDPCOMPPROCFARMOVAL,TEMMOVBL,ALMOVAL,SETTEMCMPAL,BLJBEL;当设定温度大于或等于实际温度时,不加热SUBAL,BLMOVAL,08HCMPAL,14H当设定温度比实际温度高出20°时,开中等功率的加热管JAJADDAH,10HJMPKJ:CMPAL,32H当设定温度比实际温度高出50°时,开大功率加热管JAKADDAH,2DH微型计算机原理课程设计15K:OUT80,AHL:RETCOMPPROCENDP九.总结与体会1.在本次设计中,我们完成了设计任务,虽然没有条件调试,算不上成功地解决问题,但在此过程中,我们体会到了微型计算机技术和汇编语言的功能。懂得了用所学的知识解决遇到的实际问题。2.在合作的过程中,我们合作无间,先是一起讨论如何实现设计,做出了系统的整体框图。当一人在做硬(软)件时,另一个人帮忙上网找资料,解决其遇到的问题。使得我们出色地完成了任务。3.在设计的过程中,通过综合运用所学的知识,能过不断地上网查找相关资料,使我们更好地理解了微机原理,巩固所学的知识,学以至用。4.对于这样的设计,我们都觉得很有意思,以前总是不知道所学的知识有何用处,通过这样的设计,我们找到了学习的乐趣,有了更好的动力学习,相信以后我们会更努力地学习,以解决今后生活或工作所要面对的种种问题。