⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 微机原理课程设计报告之四--红绿灯设计- 青苹乐 - 新浪blog.htm

📁 我们做微机硬件综合实验做的一个交通信号灯实时控制系统设计
💻 HTM
📖 第 1 页 / 共 4 页
字号:
                        方式1是选通型输入/输出方式。工作在方式1的时候,端口本身有中断工作,也能提供状态信息,因此CPU和端口之间可以用查询方式,也也可以用中断方式交换数据。工作在方式1的时候,端口与外设之间有联络线,在联络线信号的控制下,完成端口与外设之间的数据传送。</P>
                        <P>3)&nbsp; 
                        方式2是双向数据传送方式,仅A口由此功能。当A口在方式2下工作时,A口具备中断功能,也能提供状态信息,因此A口和CPU之间可以用查询方式,也可以用中断方式交换数据。当A口工作在方式2时,A口与外设之间有联络线,在联络线信号的控制下,可以利用完成数据输入/输出。</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        当A口在方式2下工作时,B口还可以在方式0或方式1下工作,但此时B口的方式1只能用查询方式与CPU交换数据。</P>
                        <P>4)8255A的控制字</P>
                        <P>8255A有两个控制字,即方式选择控制字和C口置0/置1控制字。其格式如图2-1和2-2所示。</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>2、&nbsp; 电路说明</P>
                        <P>本实验电路如图2-3所示。</P>
                        <P>L ~ L接PB ~ PB,控制黄灯。</P>
                        <P>L ~ L接PC ~ PC,控制红灯。</P>
                        <P>L ~ L接PC ~ PC,控制绿灯。</P>
                        <P>CS接地址译码器218—21FH插孔。</P>
                        <P>其他电路已接好。</P>
                        <P>3、编程提示</P>
                        <P>1)8255初始化编程的步骤如下:</P>
                        <P>a.向8255A控制寄存器写入“方式选择控制字”,预置端口的工作方式。</P>
                        <P>b.当端口预置为方式1或者方式2时,再向控制寄存器写入“C口置0/置1控制字”。</P>
                        <P>&nbsp;&nbsp; 
这一操作的目的是使响应端口的中断允许触发器置1,从而允许端口提出中断请求。</P>
                        <P>&nbsp;&nbsp; 
                        “C口置0/置1控制字”虽然是对C口进行操作,但是该控制字是命令字,所以要将其写入控制寄存器,而不是写入C口数据寄存器。</P>
                        <P>2)要完成本实验,首先必须了解交通信号灯的亮灭规律。假设有一个十字路口,1、3为南北方向,2、4为东西方向。</P>
                        <P>a.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        初态为4个红灯全亮,禁止通行。</P>
                        <P>b.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        1、3路口绿灯亮,2、4为红灯亮。</P>
                        <P>c.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、3路口绿灯灭。</P>
                        <P>d.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、3路口黄灯闪烁。</P>
                        <P>e.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4个路口红灯全亮。</P>
                        <P>f.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        2、4路口绿灯亮,同时1、3路口红灯亮。</P>
                        <P>g.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、4路口绿灯灭。</P>
                        <P>h.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、4路口黄灯闪烁。</P>
                        <P>i.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        转向步骤a循环执行</P>
                        <P>3)发光二极管阳极通过电阻接+5V。因此,要使其亮点应使8255A相应端口位清零。例如,要使四个红灯亮,四个绿灯灭,应往PC口送F0H。</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>4)在程序运行过程中,按下任意一个键,可返回DOS状态。要返回DOS,可以用6H号系统功能调用来识别有无键按下。这是直接控制台I/O调用。是输入还是输出,要视DL寄存器的内容而定。当DL=FF时,表示可以进行输入。如果要输入的字符已经准备好,就从标准输入设备上输入字符。调用返回时,该字符放在AL寄存器中,并清除零标志位;如果字符没有准备好,零标志位将被置1。当DL=FF时,表示要进行输出,此时把DL的内容作为一个要输出的有效字符,输出到标准的输出设备上。注意,这个功能调用不对Ctrl+Break进行检查。也就是说,在这个功能调用期间,系统对Ctrl+Break不予响应。因此可用以下指令来判断是否有键按下,有键按下则转向执行PPP,无键按下顺序执行。</P>
                        <P>MOV AH,06H</P>
                        <P>MOV DL,0FFH</P>
                        <P>INT 21H</P>
                        <P>JNZ PPP</P>
                        <P>5)8255A可编程并行接口方式选择控制字如图所示。控制LED发光二极管应采取方式0。</P>
                        <P>程序的流程图见图3-4。</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>&nbsp;</P>
                        <P>【相应程序】</P>
                        <P>;FILENAME:PC8255L.ASM;</P>
                        <P>;内容:交通红绿灯控制</P>
                        <P>PAGE&nbsp; &nbsp; 60,78</P>
                        <P>DATA&nbsp; &nbsp; SEGMENT</P>
                        <P>PB&nbsp;&nbsp;&nbsp;&nbsp; DB ?</P>
                        <P>MESS&nbsp; &nbsp; DB' ENTER ANY KEY CAN EXIT TO 
                        DOS!', 0DH, 0AH,'$'</P>
                        <P>DATA&nbsp; &nbsp; ENDS</P>
                        <P>STACK &nbsp; SEGMENT STACK</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; DW 5O 
                        DUP(?)</P>
                        <P>STACK &nbsp; ENDS</P>
                        <P>CODE&nbsp; SEGMENT</P>
                        <P>ASSUME&nbsp; CS:CODE, DS:DATA, ES:DATA, SS:STACK</P>
                        <P>START:&nbsp;&nbsp; MOV AX, DATA</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV DS, 
                        AX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;建立DATA段</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV ES, 
                        AX</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MOV 
                        AH, 09H</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        DX,OFFSET MESS</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; INT 
                        21H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;显示信息</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV DX, 
                        21BH</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        AL,82H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;方式0,B口输入,A,C口输出</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; OUT 
                        DX, AL</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        DX,219H</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; IN 
                        AL,DX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;读B口存PB单元</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV PB, 
                        AL</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV DX, 
                        21BH</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        AL,80H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;方式0均输出</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OUT DX, 
                        AL</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        DX,219H</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV AL, 
                        PB</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OR 
                        AL,0F0H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;置位PB口高4位,灭黄灯</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OUT DX, 
                        AL</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV DX, 
                        21AH</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        AL,0F0H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;4个红灯亮,4个绿灯灭</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OUT DX, 
                        AL</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; CALL 
                        DELAY10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;延迟</P>
                        <P>LLL : &nbsp;&nbsp;&nbsp;&nbsp; MOV AL, 
                        10100101B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;1,3绿灯亮,2,4红灯亮</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV DX, 
                        21AH</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; OUT 
                        DX, AL</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
                        CALL 
                        DELAY10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;延迟</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
                        CALL DELAY10</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OR 
                        AL,0F0H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;灭1,3绿灯</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OUT DX, 
                        AL</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        CX,0008H&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;置计数值8</P>
                        <P>TTT : &nbsp;&nbsp;&nbsp; MOV DX, 219H</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        AL,PB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;亮1,3黄灯</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; AND 
                        AL,10101111B</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OUT DX, 
                        AL</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; CALL 
                        DELAY1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;延迟短时间</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OR 
                        AL,01010000B</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OUT 
                        DX,AL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;灭1,3黄灯</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; CALL 
                        DELAY1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;延迟短时间</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; LOOP 
                        TTT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;黄灯闪烁8次</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        DX,21AH</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        AL,0F0H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;4个红灯亮,4个绿灯灭</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OUT DX, 
                        AL</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; CALL 
                        DELAY1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;延迟</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; MOV 
                        AL,01011010B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                        ;2,4绿灯亮,1,3红灯亮</P>
                        <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; OUT 
                        DX,AL</P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -