微机原理 交通灯实验报告
微机原理课程设计报告交通灯
ANDAL,0FH
MOV AH,AL
MOV DX,PTCON8255
MOV AL,88H
OUTDX,AL
MOV DX,PORTC
IN AL,DX
ANDAL,0FH
XORAL,AH
ADD CL,AL
CMP CL,9
JNZ TEST2;闪烁5次
CODE ENDS
END STA
连接实验箱电路,上机调试并对实验现象进行分析,完成实验报告。
MOV DX,PORTA
MOVAL,0
OUTDX,AL
MOV DX,PORTB
MOVAL,0FH
OUTDX,AL
MOV DX,PORTC
MOVAL,0FH
OUT DX,AL;灯初始化完成
STA:MOV DX,PORTA
MOVAL,0A0H
OUTDX,AL
MOV DX,PORTB
MOVAL,0F0H
OUTDX,AL
电路图如下所示:
程序流程图
初始化8255,8253
红灯全亮
绿灯黄灯全灭
南北绿灯亮
东西红灯亮
等待8253延时30s时间是否到?
Y
N
南北绿灯灭
东西红灯不变
南北黄灯闪烁
等待黄灯闪烁5次?
Y
N
南北红灯亮
东西绿灯亮
8253延时30s
东西绿灯灭
黄灯闪烁5次
程序清单
DATA SEGMENT;设置数据段,以及端口地址分配
MOV CX,0
TEST1:MOV DX,PTCON8255 ;检测PB7
MOV AL,82HOUTX,ALMOV DX,PORTB
IN AL,DX
微机原理自主设计交通灯
交通灯控制实验报告姓名:高晓玲班级:2010级通信工程一班学号:320100936990一、实验目的1、掌握并行接口8253的基本原理2、掌握8253的编程方法二、实验设备硬件:PC兼容机、微机实验仪、示波器、LED软件:操作系统MS-DOS,MASM.EXE、LINK.EXE三、实验内容如图所示,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通变化规律燃灭。
四、编程提示1、8255地址分析:控制寄存器地址: 0C40BHA口地址: 04C408HC口地址: 04C40AH2、十字路口交通灯的变化规律要求(1)南北路口的绿灯、东西路口的红灯同时亮三秒;(2)南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮;(3)南北路口的红灯、东西路口的绿灯同时亮三秒;(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次;(5)转(1)重复。
3、C口置数分析由于发光二极管是共阴极相连,所以若要其发亮应给高电平;黄灯闪烁是让其不断交替亮灭来实现;同时分析可知只要有绿灯亮,灯就会持续亮三秒,黄灯亮就会闪烁三次。
4、程序设计流程图开始设置8255C口南北路口的绿灯、东西路口的红灯亮长延时南北路口的黄灯闪烁,东西路口红灯亮南北路口的红灯、东西路口的绿灯亮长延时南北路口红灯亮、东西路口黄灯亮闪烁N有键按下吗?Y返回DOS五、程序STACKA SEGMENT STACKDB 100H DUP(?)STACKA ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AL,10000000B ;A口输出,C口输出MOV DX,021BHOUT DX,ALL0: MOV AL,00100100B ;南北绿灯亮,东西红灯亮MOV DX,021AHOUT DX,ALCALL DELAY ;长延时MOV CX,3 ;黄灯闪烁次数L1: MOV AL,01000100B ;南北黄灯闪烁,东西红灯亮NOT ALOUT DX,ALCALL DELAY1 ;短延时MOV AL,00000100BNOT ALOUT DX,ALCALL DELAY1 ;短延时LOOP L1MOV AL,10000001B ;南北红灯亮,东西绿灯亮NOT ALOUT DX,ALCALL DELAY ;长延时MOV CX,3L2: MOV AL,10000010B ;南北红灯亮,东西黄灯闪烁 NOT ALOUT DX,ALCALL DELAY1 ;短延时MOV AL,10000000BNOT ALOUT DX,ALCALL DELAY1 ;短延时LOOP L2MOV DL,0FFH ;有键按下吗?MOV AH,06HINT 21HJZ L0 ;无键按下则ZF=1,跳转重复 MOV AH,4CHINT 21H ;返回DOSDELAY PROC ;长延时程序PUSH DXPUSH CXPUSH AXMOV CX,0FFFFHT1: MOV AX,0FFFFHT2: DEC AXJNZ T2LOOP T1POP AXPOP CXPOP DXRETDELAY ENDPDELAY1 PROC ;短延时程序PUSH CXPUSH DXMOV CX,0FFFFHT3: MOV DX,4000HT4: DEC DXJNZ T4LOOP T3POP DXPOP CXRETDELAY1 ENDPCODE ENDSEND START六、总结交通灯实验程序编写的过程中,最常遇到的问题主要是由于延时时间的不确定所导致的闪烁不明显,因此必须设定足够长时间的延迟才能使人眼分辨。
微机原理实验四实验报告控制交通灯实验
D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD 5WR 36A09A18RESET 35CS68255U36D0D1D2D3D4D5D6D7WRRD RSTA0A1PC5PC6PC7PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678VCCDS42A0A1CSCS1(0F000H)510R111510R112510R113510R114510R115510R116510R117510R118.MODEL TINYCOM_ADD EQU 0F003HPA_ADD EQU 0F000HPB_ADD EQU 0F001HPC_ADD EQU 0F002H.STACK 100.DATALED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯DB 10111101B ;东西黄灯亮,南北红灯DB 11010111B ;东西红灯,南北绿灯DB 11011111B ;东西红灯,南北绿灯闪烁DB 11011011B ;东西红灯,南北黄灯亮.CODESTART: MOV AX,@DATAMOV DS,AXNOPMOV DX,COM_ADDMOV AL,80H ;PA、PB、PC为基本输出模式OUT DX,ALMOV DX,PA_ADD ;灯全熄灭MOV AL,0FFHOUT DX,ALLEA BX,LED_DataSTART1: MOV AL,0XLATOUT DX,AL ;东西绿灯,南北红灯CALL DL5SMOV CX,6START2: MOV AL,1XLATOUT DX,AL ;东西绿灯闪烁,南北红灯CALL DL500msMOV AL,0XLATOUT DX,ALCALL DL500msLOOP START2MOV AL,2 ;东西黄灯亮,南北红灯XLATOUT DX,ALCALL DL3SMOV AL,3 ;东西红灯,南北绿灯XLATOUT DX,ALCALL DL5SMOV CX,6START3: MOV AL,4 ;东西红灯,南北绿灯闪烁XLATOUT DX,ALCALL DL500msMOV AL,3XLATOUT DX,ALCALL DL500msLOOP START3MOV AL,5 ;东西红灯,南北黄灯亮XLATOUT DX,ALCALL DL3SJMP START1DL500ms PROC NEARPUSH CXMOV CX,60000DL500ms1: LOOP DL500ms1POP CXRETDL500ms ENDPDL3S PROC NEARPUSH CXMOV CX,6DL3S1: CALL DL500msLOOP DL3S1POP CXRETENDPDL5S PROC NEARPUSH CXMOV CX,10DL5S1: CALL DL500msLOOP DL5S1POP CXRETENDPEND START七、实验扩展及思考1、如何对8255的PC口进行位操作?控制字最高位写0,中间三位无关取0,接着三位是编码了对应的C口哪几位,最低一位为0是复位,为1是置位。
微机交通灯实验报告
微机交通灯实验报告微机交通灯实验报告摘要:本实验旨在通过设计和实现一个微机交通灯系统,探索微机控制在交通管理中的应用。
通过实验,我们成功地搭建了一个基于微机的交通灯控制系统,并对其进行了功能测试和性能评估。
实验结果表明,微机交通灯系统能够有效地提高交通流量的控制和管理效果,为城市交通运输提供了更高效、更安全的解决方案。
一、引言交通管理一直是城市发展中的重要问题之一。
为了提高交通效率和确保交通安全,交通灯作为一种重要的交通管理设施,被广泛应用于城市道路。
然而,传统的交通灯控制系统存在一些问题,如无法根据实际交通情况进行动态调整,容易导致交通堵塞和拥堵。
因此,设计一个基于微机的交通灯控制系统,能够更好地适应不同交通状况,提高交通流量的控制效果,具有重要的研究和应用价值。
二、实验设计本实验采用了基于微机的交通灯控制系统。
该系统由红灯、黄灯和绿灯三个信号灯组成,通过微机控制器实现对交通灯的控制。
系统根据预设的时间间隔,按照红-黄-绿的顺序进行信号灯切换。
同时,系统还可以根据交通流量和优先级设置进行动态调整,以提高交通效率。
三、实验过程1. 硬件搭建我们首先搭建了一个简单的电路,包括红灯、黄灯和绿灯的LED灯,以及与微机控制器相连的开关和传感器。
通过这些硬件设备,我们可以实现对交通灯的控制和监测。
2. 软件编程为了实现交通灯的控制,我们使用了C语言对微机控制器进行编程。
通过编写程序,我们可以根据预设的时间间隔和交通流量等参数,实现对交通灯的自动切换和调整。
同时,我们还可以通过传感器获取实时的交通流量数据,以便更好地进行交通管理。
3. 功能测试在完成硬件搭建和软件编程后,我们进行了功能测试。
通过模拟不同的交通情况,我们验证了交通灯系统的正常工作和切换效果。
实验结果表明,系统能够准确地按照预设的时间间隔进行信号灯切换,适应不同交通状况。
四、实验结果与讨论通过实验,我们得出了以下结论:1. 微机交通灯系统能够有效地提高交通流量的控制效果。
微机实验 交通灯实验报告
微机实验交通灯实验报告微机实验交通灯实验报告引言交通灯作为城市交通管理的重要组成部分,对于保障交通安全和顺畅起着至关重要的作用。
本次实验旨在通过微机控制,模拟交通灯的工作原理,并实现交通灯的自动控制。
一、实验目的本次实验的主要目的是通过搭建一套微机控制系统,实现交通灯的自动控制,并通过实验验证交通灯在不同道路情况下的工作原理和效果。
二、实验原理1. 交通灯的工作原理交通灯通常由红、黄、绿三个信号灯组成。
红灯表示停止,黄灯表示准备,绿灯表示可以通行。
交通灯通过不同颜色的灯光变化,指示车辆和行人何时可以通行,以保障交通的有序进行。
2. 微机控制系统微机控制系统是利用计算机和相应的软硬件实现对设备、机器等的控制和管理。
在交通灯实验中,我们可以通过编程控制计算机输出不同的信号,从而实现交通灯的自动控制。
三、实验器材和步骤1. 实验器材- 微机控制系统:包括计算机、编程软件和控制接口等。
- 交通灯模型:模拟真实的交通灯,包括红、黄、绿三个信号灯。
2. 实验步骤- 连接交通灯模型和微机控制系统。
- 编写程序,设置交通灯的工作时间和信号灯变化规律。
- 运行程序,观察交通灯的工作状态和变化过程。
四、实验结果和分析通过实验,我们成功地实现了交通灯的自动控制。
在程序中,我们设置了红灯亮10秒,黄灯亮3秒,绿灯亮15秒的时间间隔,模拟了真实交通灯的工作规律。
在实验过程中,我们观察到交通灯按照预设的时间间隔循环变化,红灯亮起时车辆停止,绿灯亮起时车辆可以通行。
这样的交通灯控制方式可以有效地维持交通的有序进行,减少交通事故的发生。
五、实验总结通过本次实验,我们深入了解了交通灯的工作原理和微机控制系统的应用。
微机控制系统作为一种高效、精确的控制手段,可以广泛应用于各个领域,提高设备的自动化程度和工作效率。
在今后的学习和工作中,我们将继续深入学习微机控制系统的原理和应用,掌握更多的编程技巧和控制方法,为实现更多实际问题的自动化解决方案做出贡献。
微机原理实验四实验报告8255控制交通灯实验
实验四8255控制交通灯实验一、实验目的与要求1、了解8255芯片的工作原理,熟悉其初始化编程方法以及输入、输出程序设计技巧。
学会使用8255并行接口芯片实现各种控制功能,如本实验(控制交通灯)等。
2、熟悉8255内部结构和与8088的接口逻辑,熟悉8255芯片的3种工作方式以及控制字格式。
3、认真预习本节实验内容,尝试自行编写程序,填写实验报告。
二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、编写程序:使用8255的PA0..2、PA4..6控制LED指示灯,实现交通灯功能。
2、连接线路验证8255的功能,熟悉它的使用方法。
四、实验原理图五、实验步骤1、连线说明:B4区:CS、A0、A1——A3区:CS1、A0、A1B4区:JP56(PA口)——G6区:JP652、观察实验结果,是否能看到模拟的交通灯控制过程。
六、演示程序.MODELTINYCOM_ADDEQU0F003HPA_ADDEQU0F000HPB_ADDEQU0F001HPC_ADDEQU0F002H.STACK100.DATALED_DataDB01111101B;东西绿灯,南北红灯DB11111101B;东西绿灯闪烁,南北红灯DB10111101B;东西黄灯亮,南北红灯DB11010111B;东西红灯,南北绿灯DB11011111B;东西红灯,南北绿灯闪烁DB11011011B;东西红灯,南北黄灯亮.CODESTART:MOVAX,@DATAMOVDS,AXNOPMOVDX,COM_ADDMOVAL,80H;PA、PB、PC为基本输出模式OUTDX,ALMOVDX,PA_ADD;灯全熄灭MOVAL,0FFHOUTDX,ALLEABX,LED_DataSTART1:MOVAL,0XLATOUTDX,AL;东西绿灯,南北红灯CALLDL5SMOVCX,6START2:MOVAL,1XLATOUTDX,AL;东西绿灯闪烁,南北红灯CALLDL500msMOVAL,0XLATOUTDX,ALCALLDL500msLOOPSTART2MOVAL,2;东西黄灯亮,南北红灯XLATOUTDX,ALCALLDL3SMOVAL,3;东西红灯,南北绿灯OUTDX,ALCALLDL5SMOVCX,6START3:MOVAL,4;东西红灯,南北绿灯闪烁XLATOUTDX,ALCALLDL500msMOVAL,3XLATOUTDX,ALCALLDL500msLOOPSTART3MOVAL,5;东西红灯,南北黄灯亮XLATOUTDX,ALCALLDL3SJMPSTART1DL500msPROCNEARPUSHCXMOVCX,60000DL500ms1:LOOPDL500ms1POPCXRETDL500msENDPDL3SPROCNEARPUSHCXMOVCX,6DL3S1:CALLDL500msLOOPDL3S1POPCXRETENDPDL5SPROCNEARPUSHCXMOVCX,10DL5S1:CALLDL500msLOOPDL5S1POPCXRETENDSTART七、实验扩展及思考1、如何对8255的PC口进行位操作?控制字最高位写0,中间三位无关取0,接着三位是编码了对应的C口哪几位,最低一位为0是复位,为1是置位。
微机原理十字路口交通灯实验报告1
一、课程设计(论文)题目十字路口交通灯模拟二、本次课程设计(论文)应达到的目的通过本次课程设计,使学生不仅更加深刻领会微型计算机从硬件组成到软件编程的基本原理和知识,而且更要学会应用,务必做到理论和实践相结合,掌握硬件分析、软件设计的基本思想和方法,提高分析问题、解决问题和工程实践的能力。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)本课程设计题目的主要内容是模拟十字路口交通灯(红、黄、绿三色)的显示控制。
设计要求为:1.主干道计时60秒,次干道计时45秒,时间到则切换红绿灯;2.红绿灯不变期间,在七段数码管上显示每秒倒计时;3.计时到最后5秒时,两个方向的黄灯同时闪烁直至计时到0。
四、应收集的资料及主要参考文献:1.《微型计算机基本原理与接口技术》陈红卫,科学出版社 2003.22.《8086实验指导书》张维琪、张晓群,信控学院实验中心3.其他与本课程设计题目相关的资料五、审核批准意见教研室主任(签字)摘要本设计以TDN86/51实验箱为载体,结合中断控制器8259A、并行接口8255、中断定时器8253、七段数码显示管LED及八个发光二极管的功能,用汇编语言编程实现了十字路口交通灯模拟的实验。
8255A的两个端口在本次实验中均有用处,A口为方式0用作输出,与七段数码管LED连接,用于向七段数码管输入数据的。
B 口为方式0用作输出,与八个发光二极管连接,用于向发光二极管输入数据。
C口低四位在本实验中做输出与LED数码管相连,高四位没有用到,但在初始化中将C口均初始化为输出。
8253A芯片在本实验中用了计数器2工作在方式3下,计数初值赋为59500,工作箱的时钟频率为1.19MHz,即计时50ms,它的OUT2接到8259A的IRQ7上,让IRQ7每隔50ms发一次中断,这样就可以通过控制发中断的次数来得到想要的时间。
8259A芯片在本实验中被用到了5个中断,作为计时或在特殊情况下的特殊功能。
微机原理课程设计报告---红绿灯
一、设计要求(1)南北路口的绿灯、东西路口的红灯同时亮5秒。
(2)南北路口的黄灯闪烁若干次,维持3秒,同时东西路口的红灯。
(3)南北路口的红灯、东西路口的绿灯同时亮5秒。
(4)南北路口的红灯、同时东西路口的黄灯亮烁若干次,维持3秒。
(5)转(1)重复。
(6)紧急情况可以手动控制红绿灯的变换。
一个开关控制南北绿,东西红,另一个按钮南北红,东西绿。
(7)黄灯闪烁时扬声器发声,提醒。
二、设计目的(1)了解红绿灯电路的基本工作原理;(2)了解8086微型计算机的工作过程;(3)学习8086CPU与外围设备的接口技术。
(4)运用微机原理与接口技术、数字电路、汇编语言程序设计等课程学到的知识,掌握微型计算机接口的方法和原理,具备一定的微机应用开发的实践能力,加深对理论课程的理解。
三、设计的具体实现原理框图3.1系统概述本次设计是模拟交通灯实时控制系统,以8086CPU为核心加以并行接口芯片8255、可编程计数器/定时器8253、LED灯、开关等组成的系统。
以LED灯模拟十字路口的红绿灯。
对交通灯控制的实现主要是通过编写汇编语言程序对8255的I/O及8253进行控制,从而实现对灯的亮与灭进行控制。
PC口做输入,读取定时,及应急开关状态。
用8253对扬声器的发声进行控制,利用软件编程给定8253芯片某一频率的方波信号,并且设定8255芯片的门控信号PB0 =1,则可控制扬声器发声。
利用8253的计数器1方式3、计数器0方式0实现对扬声器的控制,以及对于交通灯亮灭时间的精确延时。
3.2 8086CPU介绍8086由执行部件和总线接口部件组成(内部结构图如下图)外部设备8086内部结构图1. 执行部件EU由算术逻辑单元(ALU)、标志寄存器、通用寄存器组和EU控制器等部件组成。
主要功能是执行指令:一般顺序执行,EU不断地从指令队列中取指令连续执行,而省去访问存储器取指令的时间。
需要访问存储器取操作数时,EU将访问地址送给BIU后,将要等待操作数到来后才能继续操作;遇到转移类指令时,要将指令队列中的后续指令作废,等待BIU重新从存储器取出目标地址中的指令代码进入指令队列后,EU才能继续执行指令。
北京工业大学-微机原理-实验十二-交通灯控制实验-实验报告
微机原理实验报告——实验九交通灯控制实验姓名:学号:一、实验要求用8255、8253芯片模拟实现交通灯控制,要求亮灯时间用8253控制二、延时置数设计提供的时钟频率为1MHz,而8253最大工作频率为2MHz,所以无需分频。
延时5秒对应的计数初值为N=5秒/1MHz=5000000,因为8253有3个16位计数器,每个计数器最大计数初值为:65535<5000000,所以将两个计数器串联使用。
计数器0计数初值为1000,计数器1计数初值为5000。
三、实验内容1.实验电路原理图2.实际电路图2.实验流程图3.实验代码IOPORT EQU 5400H-280H ;定义CPU输出地址CODE SEGMENTASSUME CS:CODESTART: MOV AL, 00100101B ;设置8253用计数器0,只读高字节,方式2(自动重复),10进制MOV DX, IOPORT+293HOUT DX, ALMOV AL, 10H ;给计数器0置数1000(0001 0000 0000 0000)MOV DX, IOPORT+290HOUT DX, ALMOV AL, 10010000B ;初始化8255,1--控制字,A口方式0输入,C口输出,B口输出MOV DX, IOPORT+28BHOUT DX, ALINOUT: MOV AL, 00100100B ;南北路口绿灯亮,东西路口红灯亮MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电平OUT DX, ALMOV AL, 01100001B ;设置8253通道1,只读高字节,方式0(不自动重复),10进制MOV DX, IOPORT+293HOUT DX, ALMOV AL, 50H ;置数5000,与计数器0串联即:延时5秒MOV DX, IOPORT+291HOUT DX, ALLOP1: MOV DX, IOPORT+288H ;A口查询,判断延时是否结束IN AL, DXCMP AL, 0JE LOP1 ;延时结束,顺序执行,否则继续查询MOV AL, 01000100B ;南北路口黄灯亮,东西路口红灯亮MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电平OUT DX, ALMOV AL, 01100001B ;设置8253通道MOV DX, IOPORT+293HOUT DX, ALMOV AL, 30H ;延时3秒(1000*3000),原理与延时5秒一致MOV DX, IOPORT+291HOUT DX, ALLOP2: MOV DX, IOPORT+288H ;A口查询,判断延时是否结束IN AL, DXCMP AL, 0JE LOP2 ;延时结束,顺序执行,否则继续查询MOV AL, 10000001B ;南北路口红灯亮,东西路口绿灯亮MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电平OUT DX, ALMOV AL, 01100001B ;设置8253通道1MOV DX, IOPORT+293HOUT DX, ALMOV AL, 50H ;延时5秒MOV DX, IOPORT+291HOUT DX, ALLOP3: MOV DX, IOPORT+288HIN AL, DXCMP AL, 0JE LOP3MOV AL, 10000010B ;南北路口红灯亮,东西路口黄灯亮MOV DX, IOPORT+28AHOUT DX, ALMOV AL, 01100001B ;设置8253通道1MOV DX, IOPORT+293HOUT DX, ALMOV AL, 30H ;延时3秒MOV DX, IOPORT+291HOUT DX, ALLOP4: MOV DX, IOPORT+288HIN AL, DXCMP AL, 0JE LOP4MOV AH, 0BH ;检查键盘状态(不等待),AL=FFH 表示有键入,AL=00H表示无键入INT 21HCMP AL,0FFH ;有键入,程序退出JNZ INOUTMOV AH, 4CHINT 21HCODE ENDSEND START四、实验中遇到的问题地址书上要求定义的范围是从280H开始的,而我们在编写程序的时候是从288H开始使用的,再连线的时候,忘记了这一点,而致使结果一直出不来,后来再检查连线的时候发现了这个问题,即使进行了改正,出现了预计效果,试验成功。
微机原理接口与技术实验四、控制交通灯
姓名
学号
实验组
实验时间
指导教师
成绩
实验名称
实验四、控制交通灯
实验目的
1.掌握通过8255A并行口传输数据的方法,以控制发光二级管的亮与灭。
实验内容
用8255A作输出口,控制十二个发光二级管然灭,模拟交通灯管理
实验环境
1.硬件:PC一台、8255A实验箱
2.软件:32位的Windows操作系统、Masm50、emu8086
OUT DX,AL
CALL DELAY1
MOV DX, 0ffd8h
MOV AL, 10101110b//1,3红灯,2、4绿灯
OUT DX,AL
INC DX
MOV AL,00001011b
OUT DX,AL
CALL DELAY1
CALL DELAY1
MOV CX,0008H
P2: MOV DX, 0ffd8h
MOV CX,0030H
DELAY2: CALL DELAY3
LOOP DELAY2
POP CX
POP AX
RET
DELAY3: PUSH CX
MOV CX,8000H
LOOP $
POP CX
RET
CODE ENDS
END START
实验总结
本次实验达到了实验目的,通过汇编语言模拟了交通灯的工作过程。对汇编语言有了更进一步的认识,基本掌握了通过8255A并行口传输数据的方法。
(3)按复位键RESET返回“P”或按暂停键STOP+MON键返回“P”
(4)代码
CODE SEGMENT
ASSUME CS:CODE
ORG 32F0H
微机原理红绿灯实训报告
一、实训目的通过本次实训,使学生掌握微机原理的基本知识,了解微机原理在交通信号灯控制中的应用,提高学生动手实践能力,培养团队协作精神。
二、实训内容1. 红绿灯控制系统硬件设计(1)硬件组成红绿灯控制系统主要由微控制器、LED灯、传感器、按键、电源等组成。
(2)硬件连接将微控制器与LED灯、传感器、按键等通过相应的接口连接起来。
2. 红绿灯控制系统软件设计(1)软件组成红绿灯控制系统软件主要由主程序、中断服务程序、延时函数、按键扫描函数等组成。
(2)软件设计①主程序:负责初始化系统,设置定时器中断,进入主循环,检测按键输入,根据按键输入和传感器输入,控制LED灯的亮灭。
②中断服务程序:当定时器中断发生时,调用中断服务程序,更新LED灯的亮灭状态。
③延时函数:实现软件延时功能,用于控制LED灯的亮灭时间。
④按键扫描函数:扫描按键输入,实现红绿灯控制模式的切换。
3. 红绿灯控制系统测试与调试(1)测试①硬件测试:检查硬件连接是否正确,LED灯、传感器、按键等是否正常工作。
②软件测试:通过按键输入,观察LED灯的亮灭状态,确保软件设计符合预期。
(2)调试根据测试结果,对软件进行调试,确保红绿灯控制系统正常运行。
三、实训过程1. 硬件设计(1)选择合适的微控制器:根据实训要求,选择一款具有丰富外设接口的微控制器。
(2)设计电路原理图:根据微控制器和所需外设的连接关系,绘制电路原理图。
(3)制作PCB板:根据电路原理图,制作PCB板。
2. 软件设计(1)编写程序:使用C语言或汇编语言编写程序,实现红绿灯控制功能。
(2)编译程序:将编写好的程序编译成机器码。
(3)烧录程序:将编译好的程序烧录到微控制器中。
3. 测试与调试(1)硬件测试:检查硬件连接是否正确,LED灯、传感器、按键等是否正常工作。
(2)软件测试:通过按键输入,观察LED灯的亮灭状态,确保软件设计符合预期。
(3)调试:根据测试结果,对软件进行调试,确保红绿灯控制系统正常运行。
8086微机原理实验之十字路口交通灯
计算机硬件实验室实验报告课程名称:微机原理及应用
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
代码:
#start=Traffic_Lights.exe#
name "traffic"
mov ax, all_red
out 4, ax
mov si, offset situation
next: mov ax, [si]
out 4, ax
mov cx, 4Ch
mov dx, 4B40h
mov ah, 86h
int 15h
add si, 2
cmp si, sit_end
jb next
mov si, offset situation
jmp next
situation dw 0000_0011_0000_1100b
s1 dw 0000_0011_0000_1100b
s2 dw 0000_0110_1001_1010b
s3 dw 0000_1000_0110_0001b
s4 dw 0000_0100_1101_0011b
sit_end = $
all_red equ 0000_0010_0100_1001b
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)如图所示:即可实现对交通灯计时延时和控制。
循环此步骤即可。
五.结论
在本次实验中,使用了IO接口实现了,对南北、东西方向交通的分别计时延迟、分别控制等功能,将实验跟理论相结合,加深了对知识的理解。
报告提交日期。
微机原理实训报告交通指示灯
一、设计目的学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、设计思路1、通过8255A控制发光二极管,PB4-PB7对应黄灯,PC0-PC3对应红灯,PC4-PC7对应绿灯,以模拟交通路灯的管理。
2、设有一个十字路口1、3路口为南北方向2、4为东西方向,初始状态为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口的方向通车,延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后,重复上述过程。
三、实验原理在设计中采用的是软件定时实现的。
而灯的亮与灭以及闪烁是用8255的B口和C口控制的,工作方式0,B口和C口均为输出。
并行接口是以数据的字节的单位与I/O设备或控制对象之间传递信息。
CPU和接口之间的数据传送是并行的,即可以同时传递8位、16位、32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5单电源供电,能在以下三种方式下工作:方式0——基本输入/输出方式。
方式1——选通输入/输出方式。
方式2——双向选通工作方式。
由于实验中所用到的发光二级管是共阳极的,如图2-1所示,所以在为8255的B口和C口写数据时,对应的每一位有:0代表灯亮,1代表灯灭。
将8255A的RE和WR非信号端分别与8086的两个端口相对应连接起来,8255A的数据线和8086的数据端口相连接,RE和WR非信号都是8086发出的控制信号,当进行读数据时,从8255A传送到8086,如果为写信号时,由8086写向8255A。
交通灯微机原理实验报告
交通灯微机原理实验报告交通灯微机原理实验报告一、引言交通灯是城市交通管理中不可或缺的一部分。
它们通过指示灯的变化来引导车辆和行人的通行,确保交通的有序进行。
在这个实验报告中,我们将探讨交通灯背后的微机原理,并介绍我们的实验过程和结果。
二、实验目的本次实验的目的是通过使用微机原理,设计和实现一个交通灯控制系统。
我们将使用微机芯片和相应的电路,以及适当的编程来模拟交通灯的工作原理。
通过这个实验,我们可以更好地理解交通灯的工作原理,并学习如何应用微机技术来实现交通管理。
三、实验设备和材料本次实验使用的设备和材料包括:1. 微机芯片:我们选择了一款功能强大的微机芯片,具有高性能和稳定性。
2. 电路板:用于连接微机芯片和其他电子元件。
3. LED灯:用于模拟交通灯的红、黄、绿灯。
4. 电阻、电容和其他电子元件:用于构建电路和实现功能。
四、实验步骤1. 设计电路:我们首先根据交通灯的工作原理,设计了相应的电路。
电路包括微机芯片、LED灯、电阻和电容等元件。
我们根据电路图,将这些元件连接在一起,确保电路的正常工作。
2. 编程:接下来,我们使用C语言编写程序,实现交通灯的控制逻辑。
我们将编程代码烧录到微机芯片中,并通过连接电路板和计算机,将程序加载到芯片中。
3. 调试和测试:完成编程后,我们进行了一系列的调试和测试。
我们通过观察LED灯的亮灭情况,来验证程序的正确性。
如果灯光按照预期的顺序变化,我们就可以确认程序的正确性。
4. 优化和改进:在测试过程中,我们发现了一些问题和改进的空间。
我们根据实际情况,对程序进行了优化和改进,以提高交通灯系统的性能和稳定性。
五、实验结果经过一系列的实验和测试,我们成功地实现了一个交通灯控制系统。
我们的交通灯系统能够按照预定的时间间隔和顺序,控制红、黄、绿灯的变化。
通过观察LED灯的亮灭情况,我们可以清晰地看到交通灯的状态变化,模拟真实的交通场景。
六、实验总结通过这个实验,我们深入了解了交通灯背后的微机原理。
微机原理十字路口红绿灯闪烁实验
实验三 十字路口红绿灯闪烁实验实验目的通过对红绿黄灯的控制,熟练掌握 8255A 接口芯片的编程方法实验内容对8255A 接口芯片进行编程,使红黄绿发光二级管按照十字路口交通灯的 形式点亮或者熄灭。
三、线路连接发光二级管共8个,其中两组红黄绿灯用六个,L2、L3、L4为一组,L5、L7、为一组;试验台连接如图所示。
高电平时,灯点亮8255A四、编程提示1、 红、黄、绿灯变化规律设有一个十字路口,两组灯分别代表东西和南北两个方向,其红黄绿灯变化 规律为:(1) 两个路口红灯全亮(2) 南北路口绿灯亮,东西路口红灯亮(3) 南北路口绿灯灭,东西路口红灯亮(4) 两个路口黄灯闪烁(5) 两个路口红灯全亮(6) 东西路口绿灯亮,南北路口红灯亮(7) 东西路口绿灯灭,南北路口红灯亮 L6、 DO --- JD1 ---- —D2—計 D D5——— net 烦 D7——J IQR ——— IOT 孙A0 ---- ^― A1 ---- ^―RESET 坊280IT287H 一--亠 RESRTPGOPC1 PC2PC3 PC415(8)两个路口黄灯闪烁(9)转向(2)循环执行2.设置8255A方式控制字设置8255A的端口C工作在方式0,为输出。
DO、D1控制绿灯,D2、D3 控制黄灯,D4、D5控制红灯。
需要点亮哪一位指示灯时,8255A相应端口对应为就输出“ 1”。
五、流程图六、实验程序DATA SEGMENTIOPORT EQU 0D880H-280HIO8255C EQU IOPORT+282HIO8255T EQU IOPORT+283HPB DB ?MESS DB 'ENTER ANY KEY CAN EXIT TO DOS!',0DH,0AH,'$' DATA ENDS STACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET MESSINT 21HMOV DX,IO8255TMOV AL,81HOUT DX,ALMOV DX,IO8255CIN AL,DXMOV PB,ALMOV DX,IO8255TMOV AL,80HOUT DX,ALMOV DX,IO8255CMOV AL,PBOR AL,0CHOUT DX,ALMOV AL,30HOUT DX,ALCALL DELAY10LLL: MOV DX,IO8255CMOV AL,12HOUT DX,ALCALL DELAY10CALL DELAY10CALL DELAY10CALL DELAY10MOV AL,10HOUT DX,ALMOV CX,0040H TTT: MOV AL,0CHOUT DX,ALPUSH CXMOV CX,80HLOP1: CALL DELAY1 LOOP LOP1MOV AL,00HOUT DX,ALMOV CX,80HLOP2: CALL DELAY1 LOOP LOP2POP CXLOOP TTTMOV AL,30HOUT DX,ALCALL DELAY10MOV AL,21HOUT DX,ALCALL DELAY10CALL DELAY10CALL DELAY10CALL DELAY10MOV AL,20HOUT DX,ALMOV CX,0040H GGG: MOV AL,0CH OUT DX,ALPUSH CXMOV CX,80HLOP3: CALL DELAY1 LOOP LOP3MOV AL,00HOUT DX,ALMOV CX,80HLOP4: CALL DELAY1 LOOP LOP4POP CXLOOP GGGMOV AL,30HOUT DX,ALCALL DELAY10 MOV AH,06HMOV DL,0FFHINT 21HJNZ PPPJMP LLLPPP: MOV AX,4C00HINT 21HDELAY1 PROC NEARPUSH CXMOV CX,0FFFFHCCC: LOOP CCCPOP CXRETDELAY1 ENDPDELAY10 PROC NEARPUSH AXPUSH CXMOV CX,0F00HUUU: CALL DELAY1LOOP UUUPOP CXPOP AXRETDELAY10 ENDPCODE ENDSEND START七、实验步骤1、在windows 环境下,打开“开始”菜单,选择“运行”项,然后输入” CMD” , 按“确定”进去DOS^境。
《微机原理与接口技术》交通灯控制实验
2.4实验详细步骤首先接线,8255C口的0、1、2、5、6、7号管脚接LED显示电路L0、L1、L2、L5、L6、L7,D0~D7接JD1,RD*、WR*、A0、A1、RESET、CS*接IOR、IOW、A0、A1、RST、Y1,各模块接电。
然后运行DVCC软件,替换I/O基址,汇编、链接、运行,查看结果。
2.5实验结果LED显示电路的L0、L1、L2、L5、L6、L7按照十字路口交通灯的变化规律显示。
2.6实验过程遇到的问题与解决方案当出现红绿灯交换闪烁时,老师说体现不了交叉路口的灯的感觉(灯的排布的问题),后来我们把两个控制线叠加连接,使相同的灯闪烁。
江西理工大学《微机原理与接口技术》课实验报告实验二交通灯控制实验专业班级实验人学号实验日期同组人2.1 实验目的通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
2.2实验内容1.如图16-1,L8、L7、L6作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。
编程使六个灯按交通灯变化规律亮灭。
2.L0对应东西路口绿灯,L1对应东西路口黄灯,L2对应东西路口红灯;L6对应南北路口绿灯,L7对应南北路口黄灯,L8 对应南北路口红灯。
D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710R D5W R36A09A18R ESET35C S6U18255D0D1D2D3D4D5D6D7/R D/W RA0A1R STPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC7R14.7KVCCD0D1D2D3D4D5D6D7JD1IORIOWA0A1RST(288H)Y1L6L7L8L0L1L28255C S图2-12.3实验整体思路实验时,首先根据实验手册连线,待连好后检查无误时,打开电脑中的程序,修改其地址,然后运行程序。
微机原理课程设计交通灯,温控系统实验报告
序号山东理工大学计算机学院课程设计(微机原理及接口技术)班级姓名学号指导教师二○一二年一月九日课程设计任务书及成绩评定课题名称直流电机速度控制器的设计,I、题目的目的和要求:学习和掌握计算机中常用接口电路的应用和设计技术,熟悉和掌握微机系统的软硬件的设计方法和步骤,熟悉微机汇编程序编写和应用软硬件调试的基本流程,进一步加强理论知识和应用相结合的实践和锻炼,加深对专业知识的学习和理解,掌握8253,,8259等芯片的连线及使用方式。
使自己的设计水平和对所学的知识的应用能力以及分析问题和解决问题的能力得到全面提高。
一、利用按键控制直流电动机的转速。
按键定义如下:0 停止,1 1/10转速,2 2/10转速……9 最高速(D/A输出满量程),键号每加1,D/A 输出增加0.5V 。
二、II、设计进度及完成情况III、主要参考资料及文献IV、成绩评定:设计成绩:(教师填写)指导老师:(签字)年月日目录一、电机速度控制器的设计 (2)(一) (2)(二) (3)(三) (4)(四) (5)(五) (9)二、 (10)(一) (10)(二) (11)(三) (15)(四) (16)(五) (20)三、设计总结 (21)1一、直流电机速度控制器的设计(一)系统概述(二)系统分析与设计芯片8255并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。
8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0:基本输入输出方式1:选通输入输出方式2:双线传送2芯片8255功能及引脚图三种工作方式由工作方式控制字决定,方式控制字由CPU通过输入/输出指令来提供。
三个端口中C口被分为两个部分,上半部分随A口称为A组,下半部分随B口称为B组.其中A口可工作与方式0、1和2,而B口只能工作在方式0和1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南通大学计算机科学与技术学院微机原理课程设计报告书课题名(硬件)交通灯控制系统课题名(软件)_______计算器________________班级____建筑电气______________姓名___________________学号 ___________指导教师日期 2011.6.11 ~ 2012.6.21一、硬件设计题一、设计目的1.利用8253定时,8255设计电路,实现十字路口交通灯模拟控制。
2.实现能自动控制和手动应急控制。
(◆)3.实现能随时可以调整自动模式的绿灯和红灯时间。
(☆)二、设计原理与硬件图8255的PA端口输出数码管计时显示数值所对应的段码。
8255的PB,PC端口控制发光二极管,即红、黄、绿的亮灭。
8253的3个计时器同时工作,计时器0和1工作于方式3,计时器2工作于方式0,计时器0输入1MHZ时钟信号,输出1KHZ到计时器1的时钟端,计时器输出1HZ到计时器2,利用分频作用实现。
三、程序流程图四、程序代码A_PORT EQU 200HB_PORT EQU 202HC_PORT EQU 204HCTRL_PORT EQU 206HCLK0 EQU 100HCLK1 EQU 102HCTRL EQU 106HDA TA SEGMENTBUF1 DB 09H,11H,21H,12H,0CH,4AH,89H,49H BUF2 DB 0C5H,0A3H,95H,93H,95H,13H,15H,23H,0H DA TA ENDSSTACK SEGMENT PARA STACK 'STACK'DB 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AL,10010000BMOV DX,CTRL_PORTOUT DX,ALMOV AL,0MOV DX,B_PORTOUT DX,ALMOV DX,C_PORTOUT DX,ALCALL PLAYLEA SI,BUF1LEA BX,BUF2AAA1: MOV CH,[BX]MOV CL,CHAND CL,00001111BCALL SHOW1CALL DELAYCALL SHOW2CALL DELAYJMP AAA6AAA4: MOV DX,A_PORTIN AL,DXAND AL,00000001BCMP AL,00000000BJNZ AAA7MOV AL,00001001BMOV DX,B_PORTOUT DX,ALMOV AL,10010000BMOV DX,C_PORTOUT DX,ALJMP AAA4AAA7: MOV DX,A_PORTIN AL,DXAND AL,00000010BCMP AL,00000000BJNZ AAA4CMP CL,0JNZ AAA5INC SIINC BXMOV AL,[BX]CMP AL,0JNZ AAA1JMP STARTAAA5: DEC CLDEC CHCALL SHOW2CALL DELAYAAA6: MOV DX,A_PORTIN AL,DXAND AL,00000010BCMP AL,00000010BJNZ AAA6JMP AAA4SHOW1 PROCMOV AL,[SI]MOV DX,B_PORTOUT DX,ALRETSHOW1 ENDPSHOW2 PROCMOV AL,CHMOV DX,C_PORTOUT DX,ALRETSHOW2 ENDPPLAY PROCMOV AL,00110111BMOV DX,CTRLOUT DX,ALMOV AX,10MOV DX,CLK0OUT DX,ALMOV AL,AHOUT DX,ALMOV AL,01110111BMOV DX,CTRLOUT DX,ALMOV AX,10MOV DX,CLK1OUT DX,ALMOV AL,AHOUT DX,ALRETPLAY ENDPDELAY PROCPUSH CXMOV CX,0F5FHLOOP1: LOOP LOOP1POP CXRETDELAY ENDPCODE ENDSEND START五、程序及硬件系统调试情况二、软件程序设计题一、设计目的编辑程序可以实现键盘输入数据与运算符,进行“加减乘除”运算。
(提示:先输入数据与运算符,保存,再按照运算符选择对应的子程序;输入的数据是用字符表示的,需要转换;要有良好的界面(提示信息))(字符逐行提示型▲)(字符表达式交互型◆)(图形交互型★☆)二、设计原理与硬件图观察ASCII字符码表,可发现“+、-、*”等的ASCII码由28H到2FH,而“0~9”ASCII 码由30H到39H,因此只需观察是否在28H~39H这个范围内,可区分输入表达式是否合法。
其流程图为:要进行数值ASCII码到补码,首先就得判断输入字符是数值还是符号。
根据“+、-、*”等的ASCII码由28H到2FH,而“0~9”ASCII码由30H到39H,因此只需观察是否在28H~39H 这个范围内,只需比较是否小于等于2FH(或小于30H)即可判断是否为符号,否则为数值。
把一个ASCII码数值转换为二进制补码形式,只需对其减去30H即可实现。
但如果输入为多位,列如123,那么计算获得的是31H、32H、33H三字节,分别减去30H,只获得1、2、3三数而已。
实际可利用加权方法合并几个数:123=1*100+2*10+3*1.流程图为:三、程序流程图四、程序代码STACK SEGMENT STACKDB 200 DUP(0)STACK ENDSDA TA SEGMENTOPS DB ?OPD DB ?OPER DB ?TIT DB' _________________________________ ' ,0DH,0AHDB'|_____________Welcome!____________|' ,0DH,0AH ;0DH代表回车DB'| + - * / |' ,0DH,0AH ;0AH代表换行DB'| Y,y:continue |' ,0DH,0AHDB'| N,n: quit |' ,0DH,0AHDB'|_________________________________|' ,0DH,0AHDB'|____________Calculate____________|$',0DH,0AHTip1 DB 'Input the first operator (0---9):$',0DH,0AHTip2 DB 'Please input the oper (+,- ,*,/) :$',0DH,0AHError DB 'Error! Plese input the oper again:$',0DH,0AHTip3 DB 'Input the second operator (0---9):$',0DH,0AHResult DB '--------------->the result is:$',0DH,0AHQuit DB 'Choose repeat or quit? (Y/y/N/n) :$',0DH,0AHTsave DB ?DA TA ENDSCODE SEGMENTASSUME CS: CODE,DS:DATA,SS:STACKSTART:MOV AX,DA TA ;初始化DS:DXMOV DS,AXRemain:MOV BL,0 ;Oper(恢复)初始状态MOV OPS,BLMOV OPER,BLMOV OPD,BLLEA SI,OPS ;OPS的偏移地址送给SILEA DI,OPD ;OPD的偏移地址送给DICALL EnterLEA DX,TITMOV AH,9INT 21HCALL Input1 ;调用输入第一个操作数CALL Operat ;调用输入操作符CALL Input2 ;调用输入第二个操作数CALL Calculate ;调用计算方法CALL StrQuit ;调用判断程序再次执行MOV AH,1INT 21HCMP AL,'Y'JE RemainCMP AL,'y' ;选择Y返回Remain继续执行JE RemainCMP AL,'N'JE EXITCMP AL,'n'JE EXITEXIT:MOV AH,4CH ;若不是Y则结束INT 21H;输入操作数子程序---------------------------------------------------------Input1 PROC NEARCALL EnterLEA DX,Tip1 ;输入第一个操作数提示---------- MOV AH,9INT 21H ;十进制输入提示BCDin1:MOV AH,1INT 21HCMP AL,0DHJE EndBCDin1 ;等于回车则返回继续输入运算符CMP AL,30HJB BCDin1 ; <0时转exitinD 退出CMP AL,39HJA BCDin1 ; >9时转exitinD 退出AND AL,0FH ;清除高位MOV [SI],ALINC SILOOP BCDin1EndBCDin1:CALL Enter ;回车换行RETInput1 ENDPInput2 PROC NEARCALL EnterLEA DX,Tip3 ;输入第二个操作数提示----------MOV AH,9INT 21H ;十进制输入提示BCDin2:MOV AH,1INT 21HCMP AL,0DHJE EndBCDin2 ;等于回车则返回继续输入运算符CMP AL,30HJB BCDin1 ; <0时转exitinD 退出CMP AL,39HJA BCDin1 ; >9时转exitinD 退出AND AL,0FH ;清除高位MOV [SI],ALINC SILOOP BCDin2EndBCDin2:CALL Enter ;回车换行RETInput2 ENDP;输入操作符子程序-------------------------------------------------------Operat PROC NEARReOperat:CALL EnterLEA DX,Tip2 ;输入操作符提示MOV AH,9INT 21HMOV AH,1INT 21HCMP AL,'+'JE OperSave ;若为"+",则存在operCMP AL,'-'JE OperSaveCMP AL,'*'JE OperSaveCMP AL,'/'JE OperSaveJMP OperErrorOperError:CALL EnterLEA DX,Error ;输入操作符的错误提示MOV AH,9INT 21HJMP ReOperatOperSave:MOV OPER,ALRETOperat ENDP;计算方法子程序-----------------------------------------------------Calculate PROC NEARCALL Enter ;回车换行MOV BL,OPERCMP BL,'+'JZ ADCProc ;若为加法,则转到adcProc CMP BL,'-'JZ SUBProcCMP BL,'*'JZ MULProcCMP BL,'/'JZ DIVProcADCProc:CALL StrResult ;加法MOV AL,OPSADC AL,OPDCALL DisplJMP endCalculateSUBProc: ;减法CALL StrResultMOV AL,OPSSUB AL,OPDCALL DisplJMP endCalculateMULProc: ;乘法CALL StrResultMOV AL,OPDMUL OPSCALL DisplJMP endCalculateDIVProc: ;除法CALL StrResultMOV AH,0MOV AL,OPSDIV OPDCALL DisplJMP endCalculateendCalculate:RETCalculate ENDPDispl PROC NEARMOV Tsave,ALMOV AH,0MOV AL,TsaveMOV BL,100DIV BL ;除以100CALL Output ;显示百位数MOV AL,AHMOV AH,0MOV BL,10DIV BL ;除以10CALL Output ;显示十位数MOV AL,AHCALL Output ;显示个位数RETDispl ENDPStrResult PROC NEARLEA DX,ResultMOV AH,9INT 21HRETStrResult ENDPOutput PROC NEAR ;十进制输出PUSH AXADD AL,30H ;将AL中的十进制数变成ASCII码MOV DL,ALMOV AH,2INT 21HPOP AXRETOutput ENDP;回车换行子程序--------------------------------------------------Enter PROC NEARMOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HRETEnter ENDP;判断程序再次执行子程序-----------------------------------------------StrQuit PROC NEARCALL Enter ;回车换行LEA DX,QuitMOV AH,9INT 21HRETStrQuit ENDPCODE ENDSEND START五、程序及硬件系统调试情况用计算器实现了2*4=8计算,选择y则继续,选择n则停止实验总体设计总结与体会通过本次实验设计,我们熟悉了芯片8253,8255功能和应用,学会了用汇编语言设计实现具体功能程序的方法。