文档库 最新最全的文档下载
当前位置:文档库 › 微机原理 交通灯实验报告

微机原理 交通灯实验报告

微机原理     交通灯实验报告
微机原理     交通灯实验报告

南通大学计算机科学与技术学院

微机原理课程设计

报告书

课题名(硬件)交通灯控制系统

课题名(软件)_______计算器________________

班级____建筑电气______________

姓名___________________

学号 ___________

指导教师

日期 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 200H

B_PORT EQU 202H

C_PORT EQU 204H

CTRL_PORT EQU 206H

CLK0 EQU 100H

CLK1 EQU 102H

CTRL EQU 106H

DA TA SEGMENT

BUF1 DB 09H,11H,21H,12H,0CH,4AH,89H,49H BUF2 DB 0C5H,0A3H,95H,93H,95H,13H,15H,23H,0H DA TA ENDS

STACK SEGMENT PARA STACK 'STACK'

DB 100 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV AL,10010000B

MOV DX,CTRL_PORT

OUT DX,AL

MOV AL,0

MOV DX,B_PORT

OUT DX,AL

MOV DX,C_PORT

OUT DX,AL

CALL PLAY

LEA SI,BUF1

LEA BX,BUF2

AAA1: MOV CH,[BX]

MOV CL,CH

AND CL,00001111B

CALL SHOW1

CALL DELAY

CALL SHOW2

CALL DELAY

JMP AAA6

AAA4: MOV DX,A_PORT

IN AL,DX

AND AL,00000001B

CMP AL,00000000B

JNZ AAA7

MOV AL,00001001B

MOV DX,B_PORT

OUT DX,AL

MOV AL,10010000B

MOV DX,C_PORT

OUT DX,AL

JMP AAA4

AAA7: MOV DX,A_PORT

IN AL,DX

AND AL,00000010B

CMP AL,00000000B

JNZ AAA4

CMP CL,0

JNZ AAA5

INC SI

INC BX

MOV AL,[BX]

CMP AL,0

JNZ AAA1

JMP START

AAA5: DEC CL

DEC CH

CALL SHOW2

CALL DELAY

AAA6: MOV DX,A_PORT

IN AL,DX

AND AL,00000010B

CMP AL,00000010B

JNZ AAA6

JMP AAA4

SHOW1 PROC

MOV AL,[SI]

MOV DX,B_PORT

OUT DX,AL

RET

SHOW1 ENDP

SHOW2 PROC

MOV AL,CH

MOV DX,C_PORT

OUT DX,AL

RET

SHOW2 ENDP

PLAY PROC

MOV AL,00110111B

MOV DX,CTRL

OUT DX,AL

MOV AX,10

MOV DX,CLK0

OUT DX,AL

MOV AL,AH

OUT DX,AL

MOV AL,01110111B

MOV DX,CTRL

OUT DX,AL

MOV AX,10

MOV DX,CLK1

OUT DX,AL

MOV AL,AH

OUT DX,AL

RET

PLAY ENDP

DELAY PROC

PUSH CX

MOV CX,0F5FH

LOOP1: LOOP LOOP1

POP CX

RET

DELAY ENDP

CODE ENDS

END 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 STACK

DB 200 DUP(0)

STACK ENDS

DA TA SEGMENT

OPS DB ?

OPD DB ?

OPER DB ?

TIT DB' _________________________________ ' ,0DH,0AH

DB'|_____________Welcome!____________|' ,0DH,0AH ;0DH代表回车

DB'| + - * / |' ,0DH,0AH ;0AH代表换行

DB'| Y,y:continue |' ,0DH,0AH

DB'| N,n: quit |' ,0DH,0AH

DB'|_________________________________|' ,0DH,0AH

DB'|____________Calculate____________|$',0DH,0AH

Tip1 DB 'Input the first operator (0---9):$',0DH,0AH

Tip2 DB 'Please input the oper (+,- ,*,/) :$',0DH,0AH

Error DB 'Error! Plese input the oper again:$',0DH,0AH

Tip3 DB 'Input the second operator (0---9):$',0DH,0AH

Result DB '--------------->the result is:$',0DH,0AH

Quit DB 'Choose repeat or quit? (Y/y/N/n) :$',0DH,0AH

Tsave DB ?

DA TA ENDS

CODE SEGMENT

ASSUME CS: CODE,DS:DATA,SS:STACK

START:

MOV AX,DA TA ;初始化DS:DX

MOV DS,AX

Remain:

MOV BL,0 ;Oper(恢复)初始状态

MOV OPS,BL

MOV OPER,BL

MOV OPD,BL

LEA SI,OPS ;OPS的偏移地址送给SI

LEA DI,OPD ;OPD的偏移地址送给DI

CALL Enter

LEA DX,TIT

MOV AH,9

INT 21H

CALL Input1 ;调用输入第一个操作数

CALL Operat ;调用输入操作符

CALL Input2 ;调用输入第二个操作数

CALL Calculate ;调用计算方法

CALL StrQuit ;调用判断程序再次执行

MOV AH,1

INT 21H

CMP AL,'Y'

JE Remain

CMP AL,'y' ;选择Y返回Remain继续执行

JE Remain

CMP AL,'N'

JE EXIT

CMP AL,'n'

JE EXIT

EXIT:MOV AH,4CH ;若不是Y则结束INT 21H

;输入操作数子程序---------------------------------------------------------

Input1 PROC NEAR

CALL Enter

LEA DX,Tip1 ;输入第一个操作数提示---------- MOV AH,9

INT 21H ;十进制输入提示

BCDin1:

MOV AH,1

INT 21H

CMP AL,0DH

JE EndBCDin1 ;等于回车则返回继续输入运算符CMP AL,30H

JB BCDin1 ; <0时转exitinD 退出

CMP AL,39H

JA BCDin1 ; >9时转exitinD 退出

AND AL,0FH ;清除高位

MOV [SI],AL

INC SI

LOOP BCDin1

EndBCDin1:

CALL Enter ;回车换行

RET

Input1 ENDP

Input2 PROC NEAR

CALL Enter

LEA DX,Tip3 ;输入第二个操作数提示----------

MOV AH,9

INT 21H ;十进制输入提示

BCDin2:

MOV AH,1

INT 21H

CMP AL,0DH

JE EndBCDin2 ;等于回车则返回继续输入运算符CMP AL,30H

JB BCDin1 ; <0时转exitinD 退出

CMP AL,39H

JA BCDin1 ; >9时转exitinD 退出

AND AL,0FH ;清除高位

MOV [SI],AL

INC SI

LOOP BCDin2

EndBCDin2:

CALL Enter ;回车换行

RET

Input2 ENDP

;输入操作符子程序-------------------------------------------------------

Operat PROC NEAR

ReOperat:

CALL Enter

LEA DX,Tip2 ;输入操作符提示

MOV AH,9

INT 21H

MOV AH,1

INT 21H

CMP AL,'+'

JE OperSave ;若为"+",则存在oper

CMP AL,'-'

JE OperSave

CMP AL,'*'

JE OperSave

CMP AL,'/'

JE OperSave

JMP OperError

OperError:

CALL Enter

LEA DX,Error ;输入操作符的错误提示

MOV AH,9

INT 21H

JMP ReOperat

OperSave:

MOV OPER,AL

RET

Operat ENDP

;计算方法子程序-----------------------------------------------------

Calculate PROC NEAR

CALL Enter ;回车换行

MOV BL,OPER

CMP BL,'+'

JZ ADCProc ;若为加法,则转到adcProc CMP BL,'-'

JZ SUBProc

CMP BL,'*'

JZ MULProc

CMP BL,'/'

JZ DIVProc

ADCProc:

CALL StrResult ;加法

MOV AL,OPS

ADC AL,OPD

CALL Displ

JMP endCalculate

SUBProc: ;减法

CALL StrResult

MOV AL,OPS

SUB AL,OPD

CALL Displ

JMP endCalculate

MULProc: ;乘法CALL StrResult

MOV AL,OPD

MUL OPS

CALL Displ

JMP endCalculate

DIVProc: ;除法CALL StrResult

MOV AH,0

MOV AL,OPS

DIV OPD

CALL Displ

JMP endCalculate

endCalculate:

RET

Calculate ENDP

Displ PROC NEAR

MOV Tsave,AL

MOV AH,0

MOV AL,Tsave

MOV BL,100

DIV BL ;除以100

CALL Output ;显示百位数

MOV AL,AH

MOV AH,0

MOV BL,10

DIV BL ;除以10

CALL Output ;显示十位数

MOV AL,AH

CALL Output ;显示个位数

RET

Displ ENDP

StrResult PROC NEAR

LEA DX,Result

MOV AH,9

INT 21H

RET

StrResult ENDP

Output PROC NEAR ;十进制输出PUSH AX

ADD AL,30H ;将AL中的十进制数变成ASCII码MOV DL,AL

MOV AH,2

INT 21H

POP AX

RET

Output ENDP

;回车换行子程序--------------------------------------------------

Enter PROC NEAR

MOV DL,0AH

MOV AH,2

INT 21H

MOV DL,0DH

MOV AH,2

INT 21H

RET

Enter ENDP

;判断程序再次执行子程序-----------------------------------------------

StrQuit PROC NEAR

CALL Enter ;回车换行

LEA DX,Quit

MOV AH,9

INT 21H

RET

StrQuit ENDP

CODE ENDS

END START

五、程序及硬件系统调试情况

用计算器实现了2*4=8计算,选择y则继续,选择n则停止

实验总体设计总结与体会

通过本次实验设计,我们熟悉了芯片8253,8255功能和应用,学会了用汇编语言设计实现具体功能程序的方法。在设计中,我们充分学会利用书籍、网络等各种渠道,来了解芯片功能,实现方法。本次实验我们分组进行小组准备,我们先进行流程图设计,然后进行程序的编写和硬件图的设计。每个人负责一部分进行实现,然后进行整体连接和仿真效果的检验。虽然刚开始出现各种错误,但最终集思广益问题迎刃而解。这次实验不但使我们体会到设计的过程和方法,而且也使我们了解到了团队协作的重要性。

同济大学微机原理实验报告

《微机原理与接口技术》上机实验报告

《微机原理与接口技术》上机实验报告

实验报告:(包括目的、方法、原理、结果或实验小节等)。 一、实验目的 掌握简单并行接口的工作原理及使用方法。 二、实验内容 1、按下面图一简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。 2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。 3、按下面图二简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。 4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。 图一图二 三、实验中使用到的程序 对于简单并行输出接口: stack1 segment stack 'stack' dw 32 dup(0) stack1 ends data segment baseport equ 0ec00h-280h;实际基址 port equ baseport+2a8h;基址+偏移地址 data ends code segment assume ss:stack1,ds:data,cs:code start: mov ax,data mov ds,ax again: mov ah,1 int 21h

微机原理课程设计报告交通灯

WORD格式微机原理课程设计 设计题目交通灯的设计 实验课程名称微机原理 姓名王培培 学号080309069 专业09自动化班级2 指导教师张朝龙 开课学期2011至2012学年上学期

一、实验设计方案 实验名称:交通灯的设计实验时间:2011/12/23 小组合作:是□否?小组成员:无 1、实验目的: 分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制。(红,黄,绿三色灯) 2、实验设备及材料: 微机原理和接口技术实验室的实验箱和电脑设备等。 3、理论依据: 此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255 的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的 三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK,2 OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。OUT2产生 1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本 输入输出方式,红绿灯的转换由软件编程实现。

4、实验方法步骤及注意事项: ○1设计思路 红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1 控制。 设8253各口地址分别为:设8253基地址即通道0地址为04A0H,通道1为04A2H,通道2 为04A4H,命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波,8255控制或门打开的时 间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。 由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方 式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方 式,理论设计输出周期为0.01s的方波。1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此 通道0的计数初值为10000=2710H。由此方波分别作为clock1和clock2的输入时钟脉冲,所以 通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H 既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测 到高电平既完成30s定时。通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086 共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态 反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态 变化,计9次状态变化可完成5次闪烁。 三个通道的门控信号都未用,均接+5V即可。 ○ 2硬件原理及电路图 由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的A1、A 0 线分别与 8086CPU的A2、A线相连,而将8086的 1 A 0 线作为选通信号。如果是按8255A内部地址来看, 则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),

微机原理与接口技术实验报告

微机原理与接口技术实验报告

2

3

实验一:数据传送 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 1.学习程序设计的基本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法; 学习用全屏幕编辑软件QEDIT.EXE建立源程序(.ASM文件); 学习用汇编软件MASM.EXE对源文件汇编产生目标文件(.OBJ文件); 学习用连接程序LINK.EXE对目标文件产生可执行文件(.EXE文件); 学习用调试软件TD.EXE调试可执行文件; 2.掌握各种寻址方法以及简单指令的执行过程。 二.实验器材 PC机 三.实验组织运行要求 1.利用堆栈实现AX的内容与BX的内容进行交换。堆栈指针SP=2000H,AX=3000H,BX=5000H; 2.汇编、调试、观察、记录结果; ⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘; ⑵用MASM对源程序进行汇编产生二进制目标文件(.OBJ文件),再用连接程序LINK产生可执行文件(.EXE文件); ⑶用调试软件TD调试、运行程序,观察、记录结果。 四.实验步骤 1.进入子目录E:>\SY86后,利用QEDIT.EXE(简称Q)送入以下汇编语言源程序,并以M1.ASM文件存盘 ⑴汇编语言程序的上机过程 ①进入\SY86子目录 E:>CD\SY86 E:\SY86> ②进入QEDIT.EXE 编辑界面 E:\SY86> Q ③输入文件名*.ASM(如M1.ASM)后,输入源程序 源程序 DATA SEGMENT PARA PUBLIC’DATA’ ;数据段定义 DB 512 DUP(0) DATA ENDS STACK SEGMENT PARA STACK’STACK’ ;堆栈段定义 DB 512 DUP( ?) 4

微机原理课程设计——交通灯控制系统

南通大学电子信息学院 微机原理课程设计 报告书 课题名交通灯控制系统 班级 _______ 学号 __________ 姓名 ____ 指导教师 ______ 日期 _________

目录 1 设计目的 (1) 2 设计内容 (1) 3 设计要求 (1) 4 设计原理与硬件电路 (2) 5 程序流程图 (4) 6 程序代码 (4) 7 程序及硬件系统调试情况 (8) 8 设计总结与体会 (9) 9 参考文献 (9)

1 设计目的 电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。交通灯能保证行人过马路的安全,控制交通状况等优点受到人们的欢迎,在很多场合得到了广泛的应用。 交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。 要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义。 2 设计内容 交通灯控制系统 利用8253定时器、8255等接口,设计一电路,模拟十字路口交通灯控制。要求能实现自动控制和手动应急控制。 3 设计要求 在Proteus环境下,结合课程设计题目,设计硬件原理图,搭建硬件电路 软件设计

微机原理及应用实验报告

微机原理及其应用上机实验报告 实验一 程序调试实验(顺序结构程序设计) 一、实验目的: 1.学习及掌握汇编语言源程序的基本结构,明确程序中各段的功能和相互之间的关系。 2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。 3、熟悉和掌握DEBUG 常用命令的使用 二、实验要求: 1、上机前,要认真阅读前言和课本相关章节 2、上机前,画好流程图,编写好程序 3、上机时,注意出现的错误,记录下出错信息,翻译之 4、完成好实验报告 三、实验内容: 在内存TAB 开始的16个单元连续存放了0-15的平方值(0-225),任给一个数X(0 ≤ X ≤ 15),求X 的平方值,并把结果存放在Y 单元中。 (2).分析 X 平方的值是tab 为首地址且x 的值为有效地址中的值。 data segment x db 8 y db data ends stack segment para'stack' db 100 dup(0) stack ends code segment assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax xor ax,ax

mov al,x lea si,tab add si,ax mov al,[si] mov y,al mov ah,4ch int 21h code ends end start (3).程序调试: 4.心得体会 了解了顺序结构,掌握了程序的运行,调试。 实验二分支程序设计 一、实验目的: 熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法;掌握条件转移、无条件转移指令的使用方法。掌握分支程序设计、编写、调试和运行的方法。 二、实验要求: 1、上机前认真分析题意,找出算法,画出流程图,依据流程图,编好程序。 2、认真调试程序,对程序可能存在的所有分支都要进行运行,只有这样才能证明程序的正确性。 二、实验内容

微机原理实验报告

汇编语言程序设计实验 一、实验内容 1.学习并掌握IDE86集成开发环境的使用,包括编辑、编译、链接、 调试与运行等步骤。 2.参考书例4-8,P165 (第3版161页)以单步形式观察程序的 执行过程。 3.修改该程序,求出10个数中的最大值和最小值。以单步形式观 察,如何求出最大值、最小值。 4.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态。 二、实验目的 1.学习并掌握IDE86集成开发环境的使用 2.熟悉汇编语言的基本算法,并实际操作 3.学会利用IDE86进行debug的步骤 三、实验方法 1.求出10个数中的最大值和最小值 (1)设计思路:利用冒泡法,先对数据段的10个数字的前2个比 较,把二者中大的交换放后面。在对第二个和第三个数比较,把 二者中较大的交换放后面,依此类推直到第十个数字。这样第十 位数就是10个数里面最大的。然后选出剩下9个数字里面最大 的,还是从头开始这么做,直到第九个数字。以此类推直到第一 个数字。

(2)流程图 2.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态

(1)设计思路:结果存放在sum里面,加数是i(初始为1),进行 100次循环,sum=sum+I,每次循环对i加1. (2)流程图: 四、 1.求出10个数中的最大值和最小值

DSEG SEGMENT NUM DB -1,-4,0,1,-2,5,-6,10,4,0 ;待比较数字 DSEG ENDS CODE SEGMENT ASSUME DS:DSEG,CS:CODE START:MOV AX,DSEG MOV DS,AX LEA SI,NUM MOV DX,SI MOV CL,9 ;大循环计数寄存器初始化 NEXT1:MOV BL,CL ;大循环开始,小循环计数器初始化MOV SI,DX NEXT2:MOV AL,[SI+1] CMP [SI],AL ;比较 JGGONE ;如果后面大于前面跳到小循环末尾CHANGE:MOV AH,[SI] ;交换 MOV [SI+1],AH MOV [SI],AL JMP GONE GONE:add SI,1 DEC BL JNZ NEXT2

微机原理十字路口红绿灯闪烁实验

实验三十字路口红绿灯闪烁实验 一、实验目的 通过对红绿黄灯的控制,熟练掌握8255A接口芯片的编程方法 二、实验内容 对8255A接口芯片进行编程,使红黄绿发光二级管按照十字路口交通灯的形式点亮或者熄灭。 三、线路连接 发光二级管共8个,其中两组红黄绿灯用六个,L2、L3、L4为一组,L5、L6、L7、为一组;试验台连接如图所示。高电平时,灯点亮。 四、编程提示 1、红、黄、绿灯变化规律 设有一个十字路口,两组灯分别代表东西和南北两个方向,其红黄绿灯变化规律为: (1)两个路口红灯全亮 (2)南北路口绿灯亮,东西路口红灯亮 (3)南北路口绿灯灭,东西路口红灯亮 (4)两个路口黄灯闪烁 (5)两个路口红灯全亮 (6)东西路口绿灯亮,南北路口红灯亮 (7)东西路口绿灯灭,南北路口红灯亮

(8)两个路口黄灯闪烁 (9)转向(2)循环执行 2. 设置8255A 方式控制字 设置8255A 的端口C 工作在方式0,为输出。D0、D1控制绿灯,D2、D3控制黄灯,D4、D5控制红灯。需要点亮哪一位指示灯时,8255A 相应端口对应为就输出“1”。 五、流程图 Y N 两个路口红灯亮 延时 南北路口绿灯亮,东西路口红灯亮 有键按下? 延时 南北路口绿灯灭 两个路口黄灯闪烁 两个路口红灯亮 延时 显示提示信息 东西路口绿灯灭 读端口C 数据并保存 两个路口红灯亮 延时 设控制字为80H(端口C 均为输出) 东西路口绿灯亮,南北路口红灯亮 延时 两个路口黄闪烁 设控制字为81H(端口C 低四位为输入) 读/写 结束 开始

六、实验程序 DATA SEGMENT IOPORT EQU 0D880H-280H IO8255C EQU IOPORT+282H IO8255T EQU IOPORT+283H PB DB ? MESS DB 'ENTER ANY KEY CAN EXIT TO DOS!',0DH,0AH,'$' DATA ENDS STACK SEGMENT STACK STA DW 50 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AH,09H MOV DX,OFFSET MESS INT 21H MOV DX,IO8255T MOV AL,81H OUT DX,AL MOV DX,IO8255C IN AL,DX MOV PB,AL MOV DX,IO8255T MOV AL,80H OUT DX,AL MOV DX,IO8255C MOV AL,PB OR AL,0CH OUT DX,AL MOV AL,30H OUT DX,AL CALL DELAY10 LLL: MOV DX,IO8255C MOV AL,12H OUT DX,AL CALL DELAY10 CALL DELAY10 CALL DELAY10 CALL DELAY10

微机原理实验报告

微机原理 实验报告 学校:湖北文理学院、班级:电子1413 姓名:杨仕浩 学号:2014111347 指导老师:吉向东

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 四、实验程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?)

TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL A DDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: M OV AL,[SI] MOV BL,[DI] ADC AL,BL AAA MOV [SI],AL DEC SI DEC DI LOOP AD2 MOV SI,DX MOV DI,BP MOV BX,05H AD3: ADD BYTE PTR [SI],30H ADD BYTE PTR [DI],30H DEC SI

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

微机原理交通灯控制实验及其详细

交通灯信号控制实验 一、实验目的 1、掌握并行接口8253的基本原理 2、掌握8253的编程方法 二、实验内容 如图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通变化规律亮灭。 三、编程提示 1、8255控制寄存器地址:28BH—0C40BH A口地址:288H—04C408H C口地址:28AH—04C40AH 2、十字路口交通灯的变化规律要求 (1)南北路口的绿灯、东西路口的红灯同时亮三秒; (2)南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮; (3)南北路口的红灯、东西路口的绿灯同时亮三秒; (4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次; (5)转(1)重复。 3、程序设计流程 开始 设置8255C口输出 南北路口的绿灯、东西路口的红灯亮 长延时 南北路口的黄灯闪烁,东西路口红灯亮 南北路口的红灯、东西路口的绿灯亮

四、程序设计及实验调试 程序设计的思想及注意事项: 1.首先是在选择程序时是选用软件延时还是硬件延时。我采用的是C口方式0输入,所以选用了软件延时。 2.在选择循环的时间上,老师上课时说过,长延时可以采用双层嵌套,外层嵌套为0FFFFH,内层嵌套为4000H,我在编程时外层送进了0,相当于初值为65536,内层送进了4000H。为了达到闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值3000H,内层0100H(这是我通过实验的结果)。人眼感觉闪烁的效果只是短延时的结果。 实验程序: CODE SEGMENT ASSUME CS:CODE START: MOV DX,0C40BH MOV AL,10010000B ;C口方式0输入 OUT DX,AL

微机原理及应用实验报告

微机原理及应用实验报告标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

微机原理及应用实验报告 班级: 姓名: 学号: 中南大学 机电工程学院精密测控实验室

实验二软件程序设计 1.实验目的: 1、掌握MCS-51单片机指令系统及用汇编语言编程技巧; 2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。 2.实验内容: 1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。 2.、编写多字节加法程序并上机调试通过。 8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结 果存入以20H为起始地址的区域中(低字节在前)。 3.实验设备名称、型号: 4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单: 程序1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。

解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次 后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如 果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列 了。则可以退出循环,结束程序。 程序结构框图和程序代码如下:

微机原理实验报告6

8254定时/计数器应用实验 1.实验目的: (1)、掌握8254的工作方式及应用编程。 (2)、掌握8254的典型应用电路接法。 2.实验设备: PC微机一台、TD-PIT+ 实验系统一套。 3.实验内容: (1)、计数应用实验。编写程序,应用8254的计数功能,用开关模拟计数,使每当按动KK1-五次后,产生一次计数中断,并在屏幕上显示一个字符‘5’。 (2)、定时应用实验。编写程序,应用8254的定时功能,实现一个秒表计时并在屏幕上显示。 4.实验说明及步骤: (1)定时应用实验: 编写程序,将8254的计数器2设置为方式3,用1.8432MHz作为CLK2时钟,计数值为64H,OUT2输出为18.432KHz的时钟。将OUT2连接到计数器0的CLK0,设置计数器0也工作在方式3,计数值为18432,相当于18432分频,则在OUT0得到1Hz的输出。参考程序流程如图5-2所示。 图5-2 8254定时应用实验接线图 实验步骤如下: a确认从PC机引出的两根扁平电缆已经连接在实验平台上。 b首先运行CHECK程序,查看I/O空间始地址。

c利用查出的地址编写程序,然后编译链接。 d参考图5-2所示连接实验线路。 e运行程序,看数据灯显示是否正确。 8254定时应用实验代码输出1Hz ;*** *********根据查看端口资源修改下列符号值******************* IOY0 EQU 9C00H ;************************************************************** **** MY8254_COUNT0 EQU IOY0+00H*4 ;8254计数器0端口地址MY8254_COUNT1 EQU IOY0+01H*4 ;8254计数器1端口地址MY8254_COUNT2 EQU IOY0+02H*4 ;8254计数器2端口地址MY8254_MODE EQU IOY0+03H*4 ;8254控制寄存器端口地址 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE START: MOV DX,MY8254_MODE ;初始化8254工作方式MOV AL,0B6H ;计数器2,方式3 OUT DX,AL MOV DX,MY8254_COUNT2 ;装入计数初值 MOV AL,64H ;100分频 OUT DX,AL MOV AL,00H OUT DX,AL MOV DX,MY8254_MODE ;初始化8254工作方式

微机原理综合实验-交通灯

华北科技学院计算机系综合性实验 实验报告 课程名称微机原理与接口技术 实验学期2011至2012学年第二学期学生所在系部电子信息工程学院 年级09级专业班级自动化B091班学生姓名戴子昱学号15 任课教师王德志 实验成绩 计算机系制

实验报告须知 1、学生上交实验报告时,必须为打印稿(A4纸)。页面空间不够,可以顺延。 2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、 内容、结果及分析等。 3、教师应该填写的内容包括:实验成绩、教师评价等。 4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合 性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。 5、未尽事宜,请参考该课程的实验大纲和教学大纲。

《微机原理与接口技术》课程综合性实验报告 开课实验室:接口实验室2012年06月12日 实验题目 交通信号灯的控制 一、实验目的 (1)通过8255并行接口来控制LED发光二极管的亮灭,并精确延时。 (2)实现黄灯闪烁。 (3)通过8255并口控制,人工进行交通灯的转换。 二、设备与环境 PC机(windows XP) 实验箱(TPC-386EM) 8255A、8253 三、实验内容 1需要完成的基本控制要求概览: (1)南北路口的绿灯、东西路口的红灯同时亮5秒。 (2)南北路口的黄灯闪烁若干次,维持3秒,同时东西路口的红灯。 (3)南北路口的红灯、东西路口的绿灯同时亮5秒。 (4)南北路口的红灯、同时东西路口的黄灯亮烁若干次,维持3秒。 (5)转(1)重复。 (6)紧急情况可以手动控制红绿灯的变换。一个开关控制南北绿,东西红,另一个按钮南北红,东西绿。 (7)黄灯闪烁时扬声器发声,提醒。 2交通红绿的设计基本端口规划 8255A口作为灯控制输出,PA0-PA5分别对应东西红黄绿,南北红黄绿,P6与P7口不用;8253B口作为输入,PB0-PB3分别对应启动,停止,东西方向交通管制,南北方向交通管制(高电平有效)。 8253C口最低位作为输入,接入8253通道1的产生的。1s方波上下降沿来定时;8253通道0输入时钟为1Mhz,通道0用来分频,通道1用来产生1s方波,通道2不用。接线图1所示

微机原理实验报告

微 机 原 理 实 验 报 告 班级: 指导老师:学号: 姓名:

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 图3-1

四、参考程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,[SI] MOV BL,[DI] ADC AL,BL

微机原理实验报告

大学 科技学院 实 验 报 告 课程名称:微机原理实验

实验一数据转换实验 一、实验目的 (1)初步掌握在PC机上建立、汇编、链接和运行8086/88汇编语言程序的过程。 (2)通过对两个验证性试验的阅读、调试、掌握不同进制数及编码相互转换的程序设计方法。 (3)完成程序设计题,加深对数码转换的理解,了解简单程序设计方法。 二、实验内容 1.十六进制数转换为ASCII码 设二字节十六进制数存放于其实地址为3500H的内存单元中,把他们转换成ASCII码后,再分别存入起始地址为350A的四个内存单元中。从书上ASCII码表中可知十六进制数加30H即可得到0H~9H的ASCII码,而要得到AH~FH 的ASCII码,则需再加7H。 请根据所给流程图理清思路,总结出对应的若干要点。将流程图与参考程序相互。根据分析的结果将运行时内存的变化列写出来。 学习并使用MASM或WAVE仿真软件分析程序运行过程中相关寄存器及相应内存的变化情况来验证自己的猜想,以巩固命令的学习,提高编程能力。

图1-1-1

DATAS SEGMENT ;此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX ;此处输入代码段代码 MOV CX,0004H;根据转换个数设定循环次数 ;(两字节十六进制数如6B2C对应有四个用十六进制表示的ASCII码表示,即四个字节) MOV DI,3500H;指向该两字节十六进制数起始地址,此时在调试窗口修改内存字节 MOV DX,[DI];将地址3500H中的内容(6B2C)给DX A1: MOV AX,DX;第一次时DX=6B2C, ;因为想顺序取C、2、6、B,所以需要一个中间变量AND AX,000FH;取低四位,第一次取到C, CMP AL,0AH;判断AL属于0~9,还是A~F JB A2;如果是0~9,则跳转到A2 ADD AL,07H;若属于A~F,再加上07H后也是再加上30H即得到转换。 A2: ADD AL,30H;0~9的ASCII码对应的十六进制比其 ;本身(注意:亦是十六进制)大30H MOV [DI+0AH],AL;将转码后的C,即43H给350A INC DI;将DI指向下一字节,用于存储转码后的值,第一次自增后要存‘2’ PUSH CX;功能是接下来要用到CX作为一个中间变量, ;而刚才已经使用并且接下来还会用到CX的值, ;也可以不用CX,用其他不用的寄存器或者直接立即数形式的。 MOV CL,04H;若直接用立即数,可能不稳定,(原因不详)用一个中间变量。

四川大学微机原理实验报告..

微机原理实验报告 学院: 专业班级: 姓名 学号

实验一汇编语言编程基础 1.3汇编语言程序上机操作和调试训练 一.功能说明 运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。 运用LINK.EXE文件进行连接,形成*.EXE文件。 仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。 运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。 二.程序流程图 设置被除数、商的地址指针 设置单位除法次数计数器 取被除数一位作十进制调整 作字节除法、存商 N 被除数各位已除完? Y 显示运算结果 结束 三.程序代码 修改后的程序代码如下: DATA SEGMENT A D B 9,6,8,7,5 B DB 5 C DB 5 DUP (0) N EQU 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX

MOV ES,AX CLD LEA SI,A LEA DI,C MOV CX,N MOV AH,0 LP1: LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C LP2: MOV DL,[DI] ADD DL,30H MOV AH,2 INT 21H INC DI LOOP LP2 MOV AH,4CH INT 21H CODE ENDS END START 四.实验感想和收获 通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。 在这次试验中我也遇到了一些困难。在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。我这才想起来我的操作系统是64位的,和该软件版本不兼容。不过我并没有放弃,经过我的摸索之后,我发现用DOSBOX这个程序可以解决我的电脑运行不了该程序的问题。在解决了第一个难题后,我开始着手改正试验1.3中的语法错误和逻辑错误,但是无论我怎么修改却始终都无法通过编译,并且基本上每句话都有编译错误。根据我多年编程的经验来看,这应该是中文输入法在搞鬼,之后我耐心地把程序重新输了一遍,果然通过了编译,并且之后的连接也进行的很顺利。在用DEBUG调试时发现得出的结果也很正确。 尽管这次的实验内容非常简单,仅仅是教会我们一些基本的操作,但我却明显感觉到了汇编语言和C语言等高级语言所不同的地方。越是底层,基础的东西就越不人性化,用C语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

微机原理 交通灯

宿迁学院 《微机原理与接口技术》课程设计 题目:交通灯系统设计 学院(系):三系 年级专业: 学号: 学生姓名: 指导教师:张兵

一、设计条件: 1.运用所学的微机原理和接口技术知识; 2.微机原理和接口技术实验室的实验箱设备。 二、设计思路: 该课程设计采用8255A和8253进行控制,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。具体要求如下: 1.东西方向车辆放行15秒钟。即东西方向绿灯和南北方向的红灯同时 点亮15秒; 2.15秒后,东西方向的黄灯闪烁3秒钟,以警示车辆将切换红绿灯。 此时南北方向仍维持红灯点亮。 3.东西方向的黄闪烁3秒钟后,转为南北方向放行15秒钟。即东西方 向的红灯和南北方向的绿灯同时点亮15秒钟; 4.南北方向放行15秒钟后,转为南北方向的黄灯闪烁3秒钟,以警示 将切换红绿灯。此时东西方向仍维持红灯点亮。 5.南北方向的黄灯闪烁3秒钟后转为东西方向放行15秒。如此循环重 复。 6.严格按照课程设计说明书要求撰写课程设计说明书。 三、时间安排: 指导教师签名:年月日

目录 摘要........................................ 错误!未定义书签。 第一部分概论............................... 错误!未定义书签。1.1课题:交通灯设计........................ 错误!未定义书签。1.2课题介绍................................ 错误!未定义书签。1.3实验目的................................ 错误!未定义书签。1.4实验内容................................ 错误!未定义书签。1.5交通信号灯实时控制和管理的总体设计.. (2) 第二部分硬件设计........................... 错误!未定义书签。2.1硬件原理及线路示意图.................... 错误!未定义书签。2.2硬件连接图:............................ 错误!未定义书签。 第三部分软件设计........................... 错误!未定义书签。3.1流程如下................................ 错误!未定义书签。3.2实验环境及条件.......................... 错误!未定义书签。3.3程序清单. (6) 3.4 分工详情 (7) 第四部分调试记录及结果分析 (7) 4.1调试记录 (7) 4.2结果分析 (8) 第五部分芯片资料 (8) 5.1 8255的内部结构 (8) 5.1.1 口电路 (9) 5.1.2总线接口电路 (9) 5.2 8255A的工作方式 (10) 5.2.1方式0 基本输入/输出方式 (10) 5.2.2 方式1 选通输入/输出方式.......... 错误!未定义书签。 5.2.3 方式2 双向数据传送方式........... 错误!未定义书签。5.3 8253定时计数器......................... 错误!未定义书签。 5.3.1控制字寄存器...................... 错误!未定义书签。 5.3.2 8253有6种工作方式,由方式控制字确定错误!未定义书签。第六部分总结 (13) 第七部分参考资料 (13)

北京理工大学微机原理实验报告

微机原理与接口技术 实验报告 实验内容:汇编语言程序设计实验 组别:12 姓名: 班级: 学号:

一、实验目的 1、熟悉IDE86集成开发环境的使用。 2、通过编程、上机调试,进一步理解汇编语言的设计思路与执行过程。 3、熟悉DOS命令调用,以达到输入输出、返回DOS系统等目的。 4、掌握利用汇编实现求和与求最值的方法。 5、掌握利用汇编实现数制转换的方法。 6、巩固理论知识,锻炼动手编程,独立思考的能力。 二、实验内容(具体内容) 1、求从TABLE开始的10个无符号字节数的和,并将结果放在SUM字单元中。并查看前5个,前8 个数之和以及各寄存器和内存的状态。 2、在1的基础上修改程序,求出10个数中的最大值和最小值,最后将最大最小值分别赋给MAX及 MIN。 3、求1到 100 的累加和,并用十进制形式将结果显示在屏幕上。要求实现数据显示,并返回DOS 状态。 三、实验方法 1、设计思路 (1)实验1的设计思路:先将10个要相加的数存在以TABLE为首的10个连续的存储单元中,然后利用循环结构依次取出数值放在AL中并累加,若有进位则加到AH中直至循环10次累加结束,将累加的结果放在SUM中并返回DOS状态。 (2)实验2的设计思路:先将10个要比较的数放在以TABLE为首的10个连续的存储单元中。 将第一个数首先赋给AL和AH(分别存储相对最小和最大值)在利用LOOP循环结构,依次和下面的数进行比较,每次把相对的最大值与最小值存储到AH和AL中直至循环9次比较结束,将AH和AL里面的最大值与最小值赋给MAX和MIN,返回DOS状态 (3)实验3的设计思路:先在内存中定义COUNT=100,表示1-100求和,若相求1-n的和并显示只需COUNT的值为n即可,同时定义一块以DNUM为首地址的数据区用于存储累加和的十进制数对应的ASCII码。先利用AX和LOOP求出1-COUNT的累加和存在AX中;在进行数值转化,AX 依次除10取余数保存,将16进制数转化为10进制ASCII码值并存在DUNM中。最后在屏幕上显示并返回DOS状态。 2程序流程图 实验一、二和三的流程图分别如图1、图2和图3所示

相关文档