您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 第13章-工程应用与课程设计
第14章工程应用与课程设计14.1.1项目要求与目的(1)项目要求:在工程应用中,常常需要进行数据采集和处理。本项目用ADC0809进行2路循环数据采集,8086CPU以中断方式读取每次采集的A/D结果,如果转换后的数字量为零,扬声器便发出频率为1000Hz的音响信号,持续时间为100ms;如果转换后的数字量大于2.5V,使发光二极管LED7闪烁;如果转换后的数字量小于等于2.5V,又将其转换为模拟电压输出,去控制直流电机转速。数据采集的工作灯用发光二极管LED0指示。(2)项目目的:●了解8259A、8255、8253、ADC0809、DAC0832的工程应用设计方法。●掌握8086CPU与8259A、8255、8253、ADC0809、DAC0832的连线方法。●掌握8259A的连线和编程方法。●掌握8255的连接和编程方法。●掌握8253的连接和编程方法。●掌握ADC0809的连接和编程方法。●掌握DAC0832的连接和编程方法。14.1项目1:数据采集工程应用•14.1.2项目电路连接与说明•(1)项目电路连接:如图14-1所示的粗线为要接的线。接线描述如下:8259A的片选连至地址译码处的210H~217H插孔,8259A的IR0中断源连接至ADC0809的EOC;8255A的片选连至地址译码处的200H~207H插孔,PB0接发光二极管LED0,PC7接LED7;DAC0832的片选连至地址译码处的218H~21FH插孔,输出AOUT连接至直流电机的输入DCIN;ADC0809的片选连至地址译码处的208H~20FH插孔,CLOCK连接至2MHz;8253的片选连至地址译码处的220H~227H插孔,CLK1连接至1MHz,OUT1连接至音响及合成VIN1,GATE1连接PA0。•(2)项目说明:此项目是一个综合应用项目,只有在8259A、8255、8253、ADC0809、DAC0832各芯片都能正确掌握的基础上才能进行综合应用,因此需要先复习这些芯片的连线和编程方法。•在中断服务程序中,由8255A的PA0启动8253计数通道1工作,由OUT1端输出1000Hz的方波信号给扬声器驱动电路,持续100ms后停止输出。•计数通道1工作于方式3(方波发生器),其门控信号GATE1由8255A的PA0控制,输出的方波信号经过驱动电路送给扬声器。计数通道1的时钟输入端CLK1接2MHz的外部时钟电路。计数通道1的计数初值应为n1=TOUT/TCLK=fCLK1/fOUT1=2×106Hz/1000Hz=2000。14.1.3项目电路原理框图项目电路原理框图如图14-1所示。电路由8086CPU、8255A芯片、8253芯片、8259A芯片、ADC0809、DAC0832和3只发光二极管LED0、LED1、LED7组成。图14-1数据采集电路图14.1.4项目程序设计(1)程序流程图数据采集程序流程图如14-2所示。图14-2数据采集程序流程图(2)程序清单数据采集程序清单如下所示。DATASEGMENTDATAENDSSTACKSEGMENTSTACKSTADW50DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAL,13H;00010011B,ICW1:边沿触发,单片,要ICW4MOVDX,210H;8259地址OUTDX,ALMOVAL,8;ICW2中断类型号为8MOVDX,211HOUTDX,ALMOVAL,01H;ICW4不用缓冲方式,正常中断结束,非特殊的全嵌套方式OUTDX,ALMOVAX,0;清零MOVDS,AX;数据段清零LEAAX,INT0;写8259中断程序的入口地址MOVDS:[4*8],AX;把中断服务程序的入口地址偏移量送中断矢量表MOVAX,CSMOVDS:[4*8+2],AX;把中断服务程序的入口地址段地址送中断矢量表INAL,DX;读中断屏蔽寄存器IMR,ANDAL,0FEH;屏蔽IR1~IR7,允许IR0中的中断请求OUTDX,ALMOVDX,203H;8255初始化MOVAL,80H;PA口输出,PB口输出,PC口输出,方式0OUTDX,ALMOVDX,200H;8255初始化MOVAL,00H;PA0清零(GATE1=0)OUTDX,ALMOVDX,201H;PB口地址MOVAL,0FEH;PB口输出LED0亮(工作灯)OUTDX,ALNEXT:MOVBL,1;置通道数MOVCX,208H;置ADC0809的地址AGAIN:MOVAL,0MOVDX,CX;ADC0809转换器IN0地址OUTDX,AL;启动A/DSTI;开中断HLT;等待中度CMPBL,2;判断一轮循环是否已完JZNEXT;已经采集过一轮,从IN0重新开始INCCX;ADC0809的地址加1INCBL;否则,采集下一个IN2通道JMPAGAIN;转INT0PROCNEAR;8259中断程序INAL,DX;读入结果,使ADC0809的OE有效CMPAL,0;判AL结果是否为零JZDDD;AL=0,转报警处理CMPAL,80H;与2.5V比较JBEDAC0832;低于等于,转D/A转换MOVAL,00H;大于2.5V,使DAC0832输出0VMOVDX,218H;DAC0832地址OUTDX,ALMOVDX,202H;PC口地址BG1:MOVAL,7FH;低电平LED7亮OUTDX,ALCALLDELAY;调延时子程序MOVAL,0FFH;高电平LED7灭OUTDX,ALCALLDELAY;调延时子程序JMPBG2DAC0832:MOVDX,218H;DAC0832地址OUTDX,AL;把数字量转换成模拟量控制直流电机JMPBG2;转返回DDD:MOVDX,200HMOVAL,01H;8255A的PA0输出高电平,启动8253计数通道1工作OUTDX,ALMOVDX,223H;8253地址MOVAL,01110111B;8253计数通道1初始化:先写低8位,后写高8位OUTDX,AL;方式3,BCD计数MOVDX,221H;8253计数通道1地址MOVAL,00HOUTDX,AL;写计数初值低8位MOVAL,20HOUTDX,AL;写计数初值高8位CALLDELAY;延迟子程序MOVDX,200HMOVAL,00H;8255A的PA0输出低电平,停止8253计数通道1工作OUTDX,ALBG2:MOVDX,210HMOVAL,20H;OCW2发结束命令EOI=1OUTDX,ALIRETINT0ENDPDELAYPROCNEAR;延时子程序PUSHCX;保护现场PUSHBXDEL100MS:MOVBL,100DEL1MS:MOVCX,374DEL1:PUSHFPOPFLOOPDEL1DECBLJNZDEL1MSPOPBXPOPCXRET14.2项目2:模拟交通灯控制14.2.1项目要求与目的(1)项目要求:设A车道与B车道交叉组成十字路口,A是主道,B是支道,直接对车辆进行交通管理,设计要求如下所示。①用发光二极管模拟交通信号灯。②正常情况下,A、B两车道轮流放行,A车道放行50s,其中5s用于警告;B车道放行30s,其中5s用于警告。③有紧急车辆通过时,按下K1(用单脉冲按钮UP代替)开关使A、B车道均为红灯,禁行20s,紧急情况解除后,恢复正常控制。DELAYENDPCODEENDSENDSTART14.2.2项目电路连接与说明(1)项目电路连接:如图14-3所示的粗线为要接的线。接线描述如下:8259A的片选连至地址译码处的210H~217H插孔,8259A的IR0中断源连接至开关UP上;8255A的片选连至地址译码处的200H~207H插孔,PA0~PA5接发光二极管LED0~LED5(颜色要两绿、两黄、两红)模拟交通信号灯。(2)项目说明:利用实验箱上的8255A电路、LED显示电路、8259电路和单脉冲发生器电路,按图14-3所示构成实验电路。正常情况下运行主程序,采用0.5秒延时子程序的反复调用来实现各种定时时间;有紧急车辆通过时,采用中断IR0执行中断服务程序。①硬件设计说明:用12只发光二极管模拟交通信号灯(实验用6只就可以),以8255A的PA口控制这12只发光二极管,由于8255带负载能力有限,因此,在PA口与发光二极管之间用74LS245(或74LS07)作驱动电路,PA口输出低电平时,信号灯亮;输出高电平时,信号灯灭。在正常情况下,A、B两车道的6只信号灯的控制状态有五种形式,即PA口控制功能及相应控制码如表14-1所示。(2)项目目的:●了解工程应用的设计方法和步骤。●了解8259A、8255芯片的工程应用设计方法。●掌握8086CPU与8259A、8255的连线方法。●掌握8259A的连线和编程方法。●掌握8255的连接和编程方法。②软件设计说明:先初始化8259、8255,主程序采用查询方式定时,由CX寄存器确定调用0.5秒延时子程序的次数,从而获取交通灯的各种时间。紧急车辆出现时的中断服务程序需保护现场,然后执行相应的服务,待交通灯信号出现后延时20秒,确保紧急车辆通过交叉路口,然后,恢复现场,返回主程序。表14-1交通信号灯与控制状态的对应关系控制状态PA口控制码PA7PA6PA5PA4PA3PA2PA1PA0未用未用B道绿灯B道黄灯B道红灯A道绿灯A道黄灯A道红灯A道放行,B道禁止F3H11110011A道警告,B道禁止F5H11110101A道禁止,B道放行DEH11011110A道禁止,B道警告EEH11101110A道禁止,B道禁止F6H1111011014.2.3项目电路原理框图模拟交通灯控制电路原理框图如图14-3所示。电路由8086CPU、8255A芯片、8259A芯片和6只发光二极管LED0~LED5组成图14-3模拟交通灯控制电路图14.2.4项目程序设计(1)程序流程图模拟交通灯控制程序流程图如14-4所示。图14-4模拟交通灯控制程序流程图(2)程序清单模拟交通灯控制程序清单如下所示。DATASEGMENTDATAENDSSTACKSEGMENTSTACKSTADW50DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAL,13H;00010011B,ICW1:边沿触发,单片,要ICW4MOVDX,210H;8259地址OUTDX,ALMOVAL,8;ICW2中断类型号为8MOVDX,211HOUTDX,ALMOVAL,01H;ICW4不用缓冲方式,正常中断结束,非特殊的全嵌套方式OUTDX,ALMOVAX,0;清零MOVDS,AX;数据段清零LEAAX,INT0;写8259中断程序的入口地址MOVDS:[4*8],AX;把中断服务程序的入口地址偏移量送中断矢量表MOVAX,CSMOVDS:[4*8+2],AX;把中断服务程序的入口地址段地址送中断矢量表INAL,DX;读中断屏蔽寄存器IMR,ANDAL,0FEH;屏蔽IR1~IR7,允许IR0中的中断请求OUTDX,ALMOVDX,203H;8255初始化MOVAL,80H;PA口输出,方式0OUTDX,ALLOOP1:MOVDX,200H;8255的PA口地址MOVAL,0F3H;A道绿灯放行,B道红灯禁止OUTDX,ALMOVCX,90;置0.5秒循环次数(0.5×90=45S)DIP1:CALLDELAY;调用0.5秒延时子程序LOOPDIP1;45秒不到继续循环MOVAL,0F7H;A绿灯熄OUTDX,ALCALLDELAYMOVAL,0F3H;A绿灯亮OUTDX,ALCALLDELAYMOVAL,0F7H;A绿灯熄OUTDX,ALCALLDELAYMOVAL,0F3H;A绿灯亮OUTDX,ALCALLDELAYMOVAL,0F7H;A绿灯熄OUTDX,ALCALLDELAYMOVAL,0F3H;A绿灯亮OUTDX,ALCALLD
本文标题:第13章-工程应用与课程设计
链接地址:https://www.777doc.com/doc-6228189 .html