搜档网
当前位置:搜档网 › 微机原理十字路口交通灯实验报告1

微机原理十字路口交通灯实验报告1

微机原理十字路口交通灯实验报告1
微机原理十字路口交通灯实验报告1

CENTRAL SOUTH UNIVERSITY

题目交通灯

学生姓名张伟榕

学号0909091129

指导教师王海波

学院信息科学与工程学院专业自动化0903

完成时间2011.12.21

一、课程设计(论文)题目

十字路口交通灯模拟

二、本次课程设计(论文)应达到的目的

通过本次课程设计,使学生不仅更加深刻领会微型计算机从硬件组成到软件编程的基本原理和知识,而且更要学会应用,务必做到理论和实践相结合,掌握硬件分析、软件设计的基本思想和方法,提高分析问题、解决问题和工程实践的能力。

三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)

本课程设计题目的主要内容是模拟十字路口交通灯(红、黄、绿三色)的显示控制。

设计要求为:

1.主干道计时30秒,次干道计时27秒,时间到则切换红绿灯;

2.红绿灯不变期间,在七段数码管上显示每秒倒计时;

3.计时到最后3秒时,两个方向的黄灯同时闪烁直至计时到0。

四、应收集的资料及主要参考文献:

1.《微型计算机基本原理与接口技术》陈红卫,科学出版社 2003.2

2.《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个中断,作为计时或在特殊情况下的特殊功能。IRQ0是在遇到特殊情况,主干道一直保持通行(绿灯),次干道保持禁止通行(红灯)状态;LED显示‘SP'表示‘STOP'由按键KK1-控制。IRQ2是在午夜车流量较少时,黄灯每隔0.5秒亮一次;LED显示‘LS'表示'LOW SPEED'由按键KK2-控制。IRQ5是完成复位从45秒(即次干道通行)开始进入正常状态的由开关K0控制。IRQ6是完成复位从60秒(即主干道通行)开始进入正常状态的由开关K1控制。IRQ7是用于控制计时的。

此交通等模拟系统具有以下功能:

1.装入程序运行后,先是主干道绿灯,次干道红灯,LED显示60-5秒的倒计时;其次主干道黄灯闪,次干道红灯仍然亮,LED显示5-0秒倒计时;再次主干道红灯,次干道绿灯,LED显示45-5秒倒计时;最后主干道仍然红灯次干道黄灯闪,LED显示5-0秒。这时一个周期结束,再次跳入进入起始状态,再次循环一遍。

2.在上述正常状态中,特殊情况由8259A发中断。

(1)遇到特殊情况,主干道一直保持通行(绿灯),次干道保持禁

止通行(红灯)状态;LED显示‘SP'表示‘STOP',由按键KK1-

控制。

(2)在午夜车流量较少时,可由按键KK2-发中断,黄灯每隔0.5

秒闪一次,LED显示LS'表示'LOW SPEED'。

(3)上述两种特殊情况结束后,可由开关K0完成复位从45秒开

始进入正常状态;也可由开关K1完成复位从60秒开始进入正

常状态。

目录

摘要---------------------------------------------3 一.题目要求及设计方案-------------------------------5 二.方案设计-----------------------------------------5

1.硬件连线图-------------------------------------6

2.软件流程图-------------------------------------7 三.实现程序-----------------------------------------13 四.设计结果及分析-----------------------------------22 五.设计过程中出现的问题及解决方案-------------------23 六.心得体会-----------------------------------------23 七.致谢---------------------------------------------24 八.参考资料-----------------------------------------24

一.题目要求及方案分析

1.题目要求:

设计题目的主要内容是模拟十字路口交通灯(红、黄、绿三色)的显示控制。并要求主干道计时60秒,次干道计时45秒,时间到则切换红绿灯;红绿灯不变期间,在七段数码管上显示每秒倒计时;计时到最后5秒时,两个方向的黄灯同时闪烁直至计时到0。

2.方案分析:

本实验用到了8253A,8255A,8259A芯片,用8253A来计时,8255A的A、B口来做输出与七段数码管和发光二极管相连,8255A 来发中断控制计时和特殊情况。

二.方案设计

1. 硬件连线图:

+5V

1.19MHz

K1 统

K0

kk2-

kk1-

线

GATE2

CLK2

8253

OUT2

IR7 IR6

IR5 8259 IR4

IR3

IR2

IR1 IR0

PB7 l l PB0

8255

PA7

PC3 PC2 PC1 PC0 l PA0

LED X4 X3 X2 X1 h

l

2.软件流程图

主程序流程图

START

填写中断向量表

8255A、8255A初始化

开中断

进入FANS1状态,主干道绿灯,次干道红灯。LED显示60-5秒倒计时

进入FANS21和FANS22状态。两状态交替显示一秒,实现次干道一直红灯,主干道黄灯每隔一秒闪烁一次。LED显示5-0秒倒计时

进入FANS3状态,主干道红灯,次干道绿灯。LED显示45-5秒倒计时

进入FANS41和FANS42状态。两状态交替显示一秒,实现主干道一直红灯,次干道黄灯每隔一秒闪烁一次。LED显示5-0秒倒计时

调用显示子程序

调用延时子程序

子程序流程图:

IRQ0:主干道一直保持通行(绿灯),次干道保持禁止通行(红灯)状态;LED显示'SP'表示'STOP'

中断入口

[DI+1]送5,[DI]送10,在LED上显示‘SP’

把0B7H送到B口,发光二极管显示黄灯

调用显示子程序

IRQ2:黄灯每隔0.5秒亮一次;LED 显示'LS'表示'LOW SPEED'

N

Y

Y N

中断入口 [DI+1]送11,[DI]送5,在LED 上显示‘LS ’ 把0CCH 送到B 口,发光二极管显示黄灯 调用显示子程序 count=10?

Count 值赋为0 把0FFH 送到B 口,发光二极管灯都不亮 调用显示子程序 count=10?

IRQ5:完成复位从45秒开始进入NORMAL状态

中断入口

[DI+1]送4,[DI]送5

8255A、8255A初始化

count值赋为0

开中断

跳入FANS3状态

中断出口

IRQ6:完成复位从60秒开始进入NORMAL状态

中断入口

[DI+1]送6,[DI]送0

跳入NORMAL状态

IRQ7:每隔50ms 发一次中断,让COUNT 值加1

显示子程序DISP PROC

Y

N

中断入口 计数器count 值加1 中断出口 入口 让下一位LED 灯管显示 把数据送到A 口在LED

上显示数据 调用延时子程序 判断是否显

示到最高位

延时子程序DELAY PROC

Y

N

出口

入口

保护寄存器 把CX 赋值为2000

CX=0? 把CX 值减1

恢复寄存器

出口

以下即是功能流图:

总的界面

信号灯图三.实现程序

STACK SEGMENT STACK

DB 200 DUP(0)

STACK ENDS

DATA SEGMENT

TIME DB 00H,06H

LEDTAL DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,73H,38H COUNT DW 0

DATA ENDS

CODE SEGMENT

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

START:MOV AX,DATA

MOV DS,AX

;填IR0中断向量

PUSH DS

MOV AX,0000H

MOV DS,AX

MOV AX,OFFSET IRQ0

ADD AX,2000H

MOV SI,0020H

MOV [SI],AX

MOV AX,0000H

MOV SI,0022H

MOV [SI],AX

CLI

POP DS

IN AL,21H

AND AL,0FEH;清除对IRQ0的中断

OUT 21H,AL

;填IR2中断向量

PUSH DS

MOV AX,0000H

MOV DS,AX

MOV AX,OFFSET IRQ2

ADD AX,2000H

MOV SI,0028H

MOV [SI],AX

MOV AX,0000H

MOV SI,002AH

MOV [SI],AX

CLI

POP DS

IN AL,21H

AND AL,0FBH;清除对IRQ2的中断 OUT 21H,AL

;填IRQ5中断向量

PUSH DS

MOV AX,0000H

MOV DS,AX

MOV AX,OFFSET IRQ5

ADD AX,2000H

MOV SI,0034H

MOV [SI],AX

MOV AX,0000H

MOV SI,0036H

MOV [SI],AX

CLI

POP DS

IN AL,21H

AND AL,0DFH;清除对IRQ5的中断 OUT 21H,AL

;填IRQ6中断向量

PUSH DS

MOV AX,0000H

MOV DS,AX

MOV AX,OFFSET IRQ6

ADD AX,2000H

MOV SI,0038H

MOV [SI],AX

MOV AX,0000H

MOV SI,003AH

MOV [SI],AX

CLI

POP DS

IN AL,21H

AND AL,0BFH;清除对IRQ6的中断

OUT 21H,AL

;填IRQ7中断向量

PUSH DS

MOV AX,0000H

MOV DS,AX

MOV AX,OFFSET IRQ7

ADD AX,2000H

MOV SI,003CH

MOV [SI],AX

MOV AX,0000H

MOV SI,003EH

MOV [SI],AX

CLI

POP DS

IN AL,21H

AND AL,7FH;清除对IRQ7的中断

OUT 21H,AL

;NORMAL表示正常情况下的倒计时

NORMAL:MOV AL,80H ;8255A初始化,A,B口方式0输出,C口输出 OUT 63H,AL

MOV AL,0B6H ;8253A初始化,计数器2方式3

OUT 43H,AL

MOV AX,59500

OUT 42H,AL

MOV AL,AH

OUT 42H,AL

MOV COUNT,0

STI

FANS1:MOV AL,0B7H ;FANS1表示主干道绿灯,次干道红灯。LED

显示60-5秒

OUT 61H,AL

CALL DISP

CMP COUNT,20

JL FANS1

MOV COUNT,0

MOV DI,OFFSET TIME

MOV AL,[DI+1]

CMP AL,00H

JZ A5

MOV AL,[DI]

CMP AL,00H

JZ A6

DEC AL

MOV [DI],AL

JMP FANS1

A5: MOV AL,[DI]

CMP AL,06H

JZ A0

DEC AL

MOV [DI],AL

JMP FANS1

A6: MOV AL,9

MOV [DI],AL

MOV AL,[DI+1]

DEC AL

MOV [DI+1],AL

JMP FANS1

A0: MOV AL,05H

MOV [DI],AL

JMP FANS21

;FANS21和FANS22表示次干道红灯,主干道隔一秒黄灯亮一次。LED 显示5-1秒,再由1秒跳为45秒

FANS21:MOV AL,9DH ;FANS21表示主干道黄灯,次干道红灯

OUT 61H,AL

CALL DISP

CMP COUNT,20

JL FANS21

MOV COUNT,0

MOV DI,OFFSET TIME

MOV AL,[DI]

CMP AL,01H

JZ A7

DEC AL

MOV [DI],AL

JMP FANS22

A7: MOV AL,4

MOV [DI+1],AL

MOV AL,5

MOV [DI],AL

JMP FANS3

FANS22:MOV AL,0BFH ;FANS22表示次干道红灯,主干道不亮灯 OUT 61H,AL

CALL DISP

CMP COUNT,20

JL FANS22

MOV COUNT,0

MOV DI,OFFSET TIME

MOV AL,[DI]

CMP AL,01H

JZ A7

DEC AL

MOV [DI],AL

JMP FANS21

FANS3:MOV AL,7BH ;FANS3表示主干道红灯,次干道绿灯。LED

显示45-5秒

OUT 61H,AL

CALL DISP

CMP COUNT,20

JL FANS3

MOV COUNT,0

MOV DI,OFFSET TIME

MOV AL,[DI+1]

CMP AL,00H

JZ A8

MOV AL,[DI]

CMP AL,00H

JZ A9

DEC AL

MOV [DI],AL

JMP FANS3

A8: MOV AL,[DI]

CMP AL,06H

JZ A1

DEC AL

MOV [DI],AL

JMP FANS3

A9: MOV AL,9

MOV [DI],AL

MOV AL,[DI+1]

DEC AL

MOV [DI+1],AL

JMP FANS3

A1: MOV AL,05H

MOV [DI],AL

JMP FANS41

;FANS41和FANS42表示主干道红灯,次干道隔一秒黄灯亮一次。LED 显示5-1秒,再由1秒跳为60秒

FANS41:MOV AL,6EH ;FANS41表示主干道红灯,次干道黄灯

OUT 61H,AL

CALL DISP

CMP COUNT,20

JL FANS41

MOV COUNT,0

MOV DI,OFFSET TIME

MOV AL,[DI]

CMP AL,01H

JZ A10

DEC AL

MOV [DI],AL

JMP FANS42

PLC实验报告(交通灯控制系统)

交通灯控制系统 一、实验目的 (1)用PLC构成十字路口交通灯控制系统。 (2)掌握程序调试的步骤和方法。 (3)掌握构建实际PLC控制系统的能力。 二、实验要求 (1)复习PLC常用指令的功能及用法。 (2)复习PLC程序设计的一般方法。 (3)根据实验要求提前编写程序,待上机验证调试修改。 三、实验环境 软件:STEP 7-Micro_WIN V40+ SP9:S7-200的编程软件 STEP 7-Micro_WIN V32指令库 硬件:THSMS-2A型PLC实验箱(西门子)、电脑、连接导线、USB-PPI 通信电缆 四、实验内容及步骤 交通灯控制系统面板图如上图所示,控制要求如下: 交通信号灯受一个总控制开关控制,当总控制开关接通时,信号灯系统开始工作。 开始工作后,南北红灯和东西绿灯同时点亮,4秒后东西绿灯开始闪烁,闪烁2秒后熄灭,熄灭同时切换成东西黄灯亮,2秒后东西黄灯和南北红灯同时熄灭,东西红灯和南北绿灯同时点亮。4秒后南北绿灯开始闪烁,闪烁2秒后熄灭,熄灭同时切换成南北黄灯亮,2秒后南北黄灯和东西红灯同时熄灭,再次切换成南北红灯和东西绿灯同时点亮。如此循环,周而复始。 当总控制开关断开时,所有信号灯都熄灭。

(1)确定I/O点数。列出详细的I/O地址分配表。如(该表仅为举例, (3)输入编好的PLC控制程序。 (4)运行程序,按控制要求设置各输入量,观察PLC运行情况,记录南北、东西各灯顺序亮、灭的运行情况。调试程序直至正确为止。 解:由题目要求得,

②梯形图如下图①,语句表如下图②,时序图如下图③: 图①图① 图②图② 图③ 五、注意事项

数字系统课程设计-交通灯控制器实验报告

交通灯控制器 ——数字系统设计报告 姓名: 学号:

一.实验目的 1.基本掌握自顶向下的电子系统设计方法 2.学会使用PLD和硬件描述语言设计数字电路,掌握 Quartus II等开发工具的使用方法 3.培养学生自主学习、正确分析和解决问题的能力 二.设计要求 我所选择的课题是用Verilog HDL实现交通灯控制器。该课题的具体内容及要求如下: 主干道与乡村公路十字交叉路口在现代化的农村星罗棋布,为确保车辆安全、迅速地通过,在交叉路口的每个入口处设置了红、绿、黄三色信号灯。红灯禁止通行;绿灯允许通行;黄灯亮则给行驶中的车辆有时间行驶到禁行线之外。主干道和乡村公路都安装了传感器,检测车辆通行情况,用于主干道的优先权控制。 (1)当乡村公路无车时,始终保持乡村公路红灯亮,主干道绿灯亮。 (2)当乡村公路有车时,而主干道通车时间已经超过它的最短通车时间时,禁止主干道通行,让乡村公路通行。主干道最短通车时间为25s 。 (3)当乡村公路和主干道都有车时,按主干道通车25s,乡村公路通车16s交替进行。 (4)不论主干道情况如何,乡村公路通车最长时间为16s。 (5)在每次由绿灯亮变成红灯亮的转换过程中间,要亮5s时

间的黄灯作为过渡。 (6)用开关代替传感器作为检测车辆是否到来的信号。用红、绿、黄三种颜色的发光二极管作交通灯。 (7)要求显示时间,倒计时。 (C表示乡村道路是否有车到来,1表示有,0表示无;SET用来控制系统的开始及停止;RST是复位信号,高电平有效,当RST=1时,恢复到初始设置;CLK是外加时钟信号;MR、MY、MG分别表示主干道的红灯、黄灯和绿灯;CR、CY、CG分别表示乡村道路的红灯、黄灯和绿灯,1表示亮,0表示灭) 系统流程图如下:(MGCR:主干道绿灯,乡村道路红灯;MYCR:主干道黄灯,乡村道路红灯;MRCG:主干道红灯,乡村道路绿灯;MRCY:主干道红灯,乡村道路黄灯;T0=1表示主干道最短通车时间到,T1=1表示5秒黄灯时间到,T2=1表示乡村道路最长通车时间到。)

微机原理实验报告

汇编语言程序设计实验 一、实验内容 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

EDA实验报告实验五:交通灯控制器设计

实验五十字路口交通灯控制器设计一.实验目的 1.进一步加强经典状态机的设计 2.学会设计模可变倒计时计数器 二.实验要求 一条主干道,一条乡间公路。组成十字路口,要求优先保证主干道通行。有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;交通灯由绿→红有4秒黄灯亮的间隔时间,由红→绿没有间隔时间;系统有MRCY、MRCG、MYCR、MGCR四个状态; 乡间公路右侧各埋有一个传感器,当有车辆通过乡间公路时,发出请求信号S=1,其余时间S=0; 平时系统停留在MGCR(主干道通行)状态,一旦S信号有效,经MYCR(黄灯状态)转入MRCG(乡间公路通行)状态,但要保证MGCR的状态不得短于一分钟;一旦S信号无效,系统脱离MRCG状态。随即经MRCY(黄灯状态)进入MGCR 状态,即使S信号一直有效,MRCG状态也不得长于20秒钟。 三.实验设计: 1.一条主道,一条乡道,组成十字路口,要求优先保证主道通行。 2.当主道没有车通行,且乡道友车要通行时,并且此时主道通行时间大于1分钟,则主道变黄灯,乡道保持红灯,经过4秒倒计时时间进入主道为红灯乡道为绿灯的状态。再倒计时20秒钟。在倒计时过程中,若乡道突然没有车通行,马上进入主道红灯,乡道黄灯状态,倒计时4秒。 3.之后主道变为绿灯,乡道为红灯,这时无论乡道有无车通行都要倒计时60秒,然后若乡道有车通行则主道为黄灯,乡道为红灯,若乡道一直没有车要通行则保持主道通行,若乡道友车通行则按照上面的状态依次进行转换。 按照以上的思路,设计两个底层文件和一个顶层文件: 1.模块1是状态改变控制6盏灯的亮与灭。

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 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循环右移四位

交通灯控制器课程设计实验报告

2011级课程设计实验报告 交 通 灯 控 制 器 院(系):计算机与信息工程学院 专业年级: 2011级通信工程一班 姓名: 谢仙 学号: 指导教师: 杨菊秋 2013年06月25日

目录 1 引言 (3) 2 任务与要求 (3) 3 课程设计摘要及整体方框图 (3) 4 课程设计原理 (4) 555定时器 (5) 七位二进制计数器4024 (6) 二进制可逆计数器74LS193 (8) 数码显示电路 (9) 结论 (10) 体会与收获 (10) 附录: 1、整体电路原理图 (11) 2、元件表 (12) 3、焊接与调试 (12) 1引言

交通信号灯常用于交叉路口,用来控制车辆的流量,提高交叉路口车辆的通行能力,减少交通事故。本交通灯设计主要由秒脉冲发生器、计数器、译码显示电路组成。秒脉冲发生器由NE555产生脉冲,计数器由74LS193和4024实现,译码电路采用74LS48和七段数码管来显示。 2设计任务与要求 交通灯控制信号的应用非常广泛。本电路设计一个交通灯控制器,需要达到的目的如下; 一个周期64秒,平均分配,前32秒红灯亮,后32秒绿灯亮。 在红灯亮的期间的后8秒与红灯在一起的黄灯闪烁(注意:红灯同时亮)。为了显示效果明显,设计闪烁频率为1。 在绿灯亮的期间的后8秒与绿灯在一起的黄灯闪烁(注意:绿灯同时亮),为了显示效果明显,设计闪烁频率为1。 在黄灯闪烁期间,数码管同时倒计时显示,在此期间以外,数码管不亮。 3课程设计摘要及整体方框图 为了完成交通灯控制电路的设计,方案考虑如下: 一个脉冲信号发生器,一个二进制加法计数器,一个十进制减法计数器,红灯与绿灯以及黄灯是否亮是由二进制加法计数器的输出端状态来决定的,因此,设计一个组合逻辑电路,它的输入信号就是二进制加法计数器的输出信号,它的输出就是发光二极管的控制信号,因此,需要一个组合逻辑电路,六个发光二极管(二个红色发光二极管,二个绿色发光二极管,二个黄色发光二极管)电路,一个数码管显示电路。结构图如下: 4 课程设计原理分析及相关知识概述

微机原理实验报告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工作方式

微机原理与单片机实验报告

北京联合大学信息学院实验报告 课程名称:微型计算机原理学号: 姓名: 2012 年 6 月 9 日

目录 实验1 EMU8086模拟器的使用 (3) 实验2 数据传送指令的使用 (5) 实验3 多位十六进制加法运算实验 (9) 实验5 循环程序实验 (11) 实验6 由1 到100 求和实验 (13) 实验7 求表中正数_负数_0 的个数实验 (14) 实验8 数据排列实验(冒泡排序) (16) 实验9 系统功能调用(大小写转换) (18) 实验10 阶乘(递归运算) (20) 实验11 ProteusIO工程文件的建立 (21) 实验12 IO口读写实验(245、373) (22) 实验13 8255 接口实验 (24) 实验14 声光报警 (25) 实验总结 (28)

实验1 EMU8086模拟器的使用 一实验要求 利用EMU8086模拟器环境,完成创建源程序文件,运行调试,实验结果的查看二实验目的: 熟悉EMU8086实验环境 三EMU8086环境: 1 模拟器编辑窗口 2 模拟器调试窗口

四实验内容 实验内容1:新建文件。 运行emu8086 1. 新建文件:单击“新建”按钮,选择COM模板,在模拟器编辑窗口中输入如下程序代码: MOV AX, 1020H MOV BX, 2030H MOV AX, BX ADD AX, BX MOV [BX], AX MOV [2032H], AX HLT 2. 编译:单击“编译”按钮,对程序段进行编译; 3. 保存:编译通过,单击“完成”按钮,将其以文件名“EXP1”保存在本地磁盘上。 4. 仿真:单击“仿真”按钮,打开模拟器调试窗口和源文件窗口。 5.在模拟器调试窗口中的寄存器组区,查看数据寄存器AX,BX,CX,DX;段寄存器CS,ES,SS,DS;指令指针寄存器IP;指针寄存器SP,BP;变址寄存器SI,DI;标志寄存器的值。 6.单击“单步前”按钮,单步执行程序,并观察每次单步执行后,相关寄存器值的变化。 7.单击“重载”按钮,将程序重载,并调整指令运行步进时延为400毫秒,单击“全速”按钮,运行程序, 8.程序运行之后,在程序调试窗口中,选择[view]/[memory],查看模拟器环境中,内存单元0700:0100开始的连续10个单元的内容 9.将“存储器”中的地址改为0700:2030,查看开始的四个字节的内容,并思考其内容与程序

交通灯控制逻辑电路设计实验报告

《数字设计》课程实验报告 实验名称:交通灯控制逻辑电路的设计与仿真实现 学员:学号: 培养类型:年级: 专业:所属学院: 指导教员:职称: 实验室:实验日期:

交通灯控制逻辑电路的设计与仿真实现 实验目的: 1. 熟悉Multisim仿真软件的主要功能和使用。 2. 熟悉各种常用的MSI时序逻辑电路的功能和使用。 3. 运用逻辑设计知识,学会设计简单实用的数字系统。 二、实验任务及要求: 1.设计一个甲干道和乙干道交叉十字路口的交通灯控制逻辑电路。每个干道各一组指示灯(红、绿、黄)。要求:当甲干道绿灯亮16秒时,乙干道的红灯亮;接着甲干道的黄灯亮5秒,乙干道红灯依然亮;紧接着乙干道的绿灯亮16秒,这时甲干道红灯亮;然后乙干道黄灯亮5秒,甲干道红灯依然亮;最后又是甲干道绿灯亮,乙干道变红灯,依照以上顺序循环,甲乙干道的绿红黄交通指示灯分别亮着。 2.要求: (1)分析交通灯状态变换,画出基于格雷码顺序的交通灯控制状态图。 (2)设计时序逻辑电路部分,写出完整的设计过程,画出逻辑电路图。在Multisim 仿真平台上,搭建设计好的该单元电路,测试验证,将电路调试正确。 (3)设计组合逻辑电路部分,写出完整的设计过程,画出逻辑电路图。在Multisim 仿真平台上,搭建设计好的该单元电路,测试验证,将电路调试正确。 (4)用74LS161计数器构造16秒定时和5秒定时的定时电路,画出连线图。在Multisim仿真平台上,选用74LS161芯片连线,测试验证,将电路调试正确。(5)在Multisim仿真平台上形成整个系统完整的电路,统调测试结果。 三、设计思路与基本原理: 依据功能要求,交通灯控制系统应主要有定时电路、时序逻辑电路及信号灯转换器组合逻辑电路组成,系统的结构框图如图1所示。其中定时电路控制时序逻辑电路状态的该表时间,时序逻辑电路根据定时电路的驱动信号而改变状态,进而通过组合逻辑电路控制交通灯系统正常运行。 在各单元电路的设计顺序上,最先设计基础格雷码顺序的交通灯控制状态图,由此确定时序逻辑电路的设计,并完成该部分电路的调试。接着在设计好时序路逻辑电路的基础上,根据状态输出设计组合逻辑电路,并完成该部分的调试。最后完成定时电路的设计与调试。整合电路,形成整个系统完整的电路,统调测试结果。

微机原理实验报告

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

实验一数据转换实验 一、实验目的 (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-4

微机原理实验报告 学院:算机科学与软件教育学院 1. 掌握存储器读写方法 2. 了解存储器的块操作方法 二、实验原理 存储器读写和块操作 三、实验设备仪器及材料 计算机,WA VE 6000软件 四、实验过程 S1.asm 代码流程图 data segment Block db 256 dup(55h) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov bx, offset Block ; 起始地址 mov cx, 256 ; 清256 字节Again: mov [bx], byte ptr 0 inc bx ; 地址+1 Loop Again ; 记数减一jmp $ ;死循环code ends end start

五、实验步骤 (1) 进入Wave6000,输入程序并检查,保存程序。 (2) “编译”程序。 (3) “全速执行”程序。 (4) “暂停”程序运行,在“数据窗口(MEMOREY)”查看0400H起始的单元内容,并记录。 (5) 在指令“jmp $”处设断点。“全速执行”程序。 (6) 在“数据窗口(MEMOREY)”查看0400H起始的单元内容,记录并分析实验结果。 六、实验结果及总结 运行前:运行后: 2、调试:如何将存储器块的内容置成某固定值(例全填充为0FFH)? 总结:通过本实验,我了解到单片机读写存储器的读写方法,同时也了解到单片机编程,调试方法。学会内存的移动方法,也加深对存储器读写的认识。

微机原理实验报告 学院:算机科学与软件教育学院 实验 课程 名 微机原理实验成绩实验 项目名称实验二、二进制到BCD码转换 指导老 师 1. 了解BCD值和ASCII值的区别。 2. 了解如何将BCD值转换成ASCII值。 3. 了解如何查表进行数值转换及快速计算。 二、实验原理 ASCII码表 三、实验设备仪器及材料 计算机,WA VE 6000软件 data segment Result db 3 dup(?) data ends code segment assume cs:code, ds:data start proc near mov ax, data mov ds, ax mov ax, 123 mov cl, 100 div cl mov Result, al ; 除以 100, 得百位数 mov al, ah mov ah, 0 mov cl, 10 div cl mov Result+1, al ; 余数除以 10, 得十位数 mov Result+2, ah ; 余数为个位 数 jmp $ code ends end start 代码流程图

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

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

实验一汇编语言编程基础 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语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

交通灯控制器的设计

EDA实验报告 一、课程设计题目及要求 题目: 十字路口交通灯 具体要求: 设计一个十字路口得交通灯控制器,能显示十字路口东西、南北两个方向红、黄、绿灯得指示状态。用两组红、黄、绿三种颜色得灯分别作为东西、南北两个方向红、黄、绿等。变化规律为:东西绿灯亮,南北红灯亮——东西黄灯亮,南北红灯亮——东西红灯亮,南北绿灯亮——东西红灯亮,南北黄灯亮——东西绿灯亮,南北红灯亮······,这样循环下去。南北方向每次通行时间为45秒,东西方向每次通行时间为45秒,要求两条交叉道路上得车辆交替运行,时间可设置修改。绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。并要求所有交通灯得状态变化在时钟脉冲上升沿处。 二、实验编程环境 QuartusII 8、0 三、课程设计得详细设计方案 (一)、总体设计方案得描述 1、1、根据交通灯系统设计要求,可以用一个有限状态机来实现这个交通灯控制器。首先根据功能要求,明确两组交通灯得状态,这两组交通灯总共共有四种状态,我们用ST0,ST1,ST2,ST3 来表示: St0表示东西路绿灯亮,南北路红灯亮; St1表示东西路黄灯亮,南北路红灯亮; St2表示东西路红灯亮,南北路绿灯亮; St3表示东西路红灯亮,南北路黄灯亮; 1、2、根据上述四种状态描述列出得状态转换表 1、3、根据状态转换表得到交通灯控制器得状态转移图如图所示。

交通灯控制器得状态转移图 (二)各个模块设计 2、1、控制器模块 控制器模块示意图 其中,clk 为时钟信号,时钟上升沿有效。hold 为紧急制动信号,低电平有效。ared,agreen,ayellow 分别表示东西方向得红灯,黄灯,绿灯显示信号,高电平有效。 bred,bgreen,byellow 分别表示南北方向得红灯,黄灯,绿灯显示信号,高电平有效。 用于控制红绿黄灯得亮暗情况。 2、2、45秒倒计时计数器模块 45秒倒计时计数器模块示意图 其中,CLK 为时钟信号,时钟上升沿有效。EN 为使能端,高电平有效。CR 为紧急制动信号低电平有效。QL{3、、0}就是计数低位。QH{3、、0}就是计数高位。 用于45秒得倒计时计数。 2、3、7位译码器模块 7位译码器模块示意图 其中dat{3、、0}为要译码得信号。a,b,c,d,e,f,g 为译码后得信号。 用于将45秒倒计时计数得信号译码成数码管可以识别得信号。 2、4、50MHZ 分频器模块 50MHZ 分频器模块示意图 其中clk 为50MHZ 时钟信号,时钟上升沿有效。输出clk_out 为1HZ 时钟信号,时钟上升CLK EN CR QL[3、、0] QH[3、、0] OC m45 inst2

微机原理实验四实验报告

实验报告

实验四 8251可编程串行口与PC机通信实验一、实验要求 利用实验箱内的8251A芯片,实现与PC机的通信。 二、实验目的 1.掌握8251A芯片结构和编程方法; 2.了解实现串行通信的硬件环境,数据格式和数据交换协议; 3.了解PC机通信的基本要求。 三、实验原理 (一)8251A芯片工作方式配置: 1. 8个数据位; 2.无奇偶校验位; 3.1个停止位; 4.波特率因子设为16; 5. 波特率设为9600。 (二)8251A主要寄存器说明 图4-1 模式字 图4-2 命令字

CO MMAN D I NSTR UCT ION FO RMA T 图4-3 状态字 (三)8251编程 对8251 的编程就是对8251 的寄存器的操作,下面分别给出8251 的几个寄存器的格式。(1)方式控制字 方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图4-4所示。 图4-4 方式控制字说明 (2)命令控制字 命令控制字用于指定8251 进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。图4-5 所示的是8251 命令控制字各位的定义。 图4-5命令控制字说明 (3)状态字 CPU 通过状态字来了解8251 当前的工作状态,以决定下一步的操作,8251 的状态字如 图4-6所示。 图4-6 状态字说明 四、实验电路连接: 1.CS8251接228H,CS8279已固定接至238H; 2.扩展通信口18中的232RXD连8251RXD ,232TXD连8251TXD;

3.计算机的两个RS232通信口,一个连至仿真机通信口,一个连至扩展通信口18(所有通信口均为DB9)。注意:RS232通信口必须在设备断电状态下插拔! 图4-7 连线图 五、实验内容及要求 1. 将例程从PDF文档中导入到WMD86软件编辑环境中,调试通过。使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。将结果截图保存,贴入实验报告。 2.剔除例程中冗余部分,实现对例程的精简和优化。将精简内容与相应理由写入实验报告。 3.将自己学号的后三位数字通过RS232端口的Txd管脚输出。使用软件自带的示波器,观察Txd管脚的输出,验证结果的正确性。将结果截图保存,贴入实验报告。 4.通过读状态寄存器的方法,获得发送移位寄存器是否为空的信息,实现学号后三位数字的循环发送。将结果截图保存,贴入实验报告。 5.给每帧数据间添加固定的时间间隔,时间间隔为10000个指令周期。将结果截图保存,

微机原理实验报告

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

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在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

微机原理实验报告

目录 软件实验部分: 实验一清零程序 实验二拆字程序 实验三拼字程序 实验四数据区传送子程序 实验五数据排序实验 实验六查找相同数个数 实验七无符号双字节快速乘法子程序 实验八多分支程序 实验九脉冲计数(定时/计数器实验) 实验十电脑时钟(定时器、中断综合实验) 硬件实验部分: 实验一 P1口亮灯实验 实验二 P1口转弯灯实验 实验三 P3.3口输入,P1口输出 实验四工业顺序控制 实验五继电器控制 实验六 8255控制交通灯 实验七 LED16×16点阵显示实验 实验八串并转换实验 实验九 A/D转换实验 实验十 D/A转换 实验十一电子音响 实验十二步进电机控制 实验十三 8032串行口应用实验㈠——双机通信 实验十四小直流电机调速实验 软件实验部分 本节共编了十个软件实验,通过这些实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。 本节提供的软件实验,涉及外部数据存储器扩展寻址操作,因此需按下图连接实验线路。

1.将存储器单元的D0—D7总线接口用8芯扁平线与数据总线单元D0—D7的任一接口相连,存储器单元的A0—A7地址接口与地址总线单元(低8)A0—A7的任一接口相连,存储器单元的A8—A12地址接口与地址总线单元(高8)A8—A12的任一接口相连。注意外部扩充的数据区的有效范围。 2.存储器单元的WE/PGM插孔与六位LED左下方的IOWE插孔相连。 3.存储器单元的OE插孔与六位LED左下方的IORD插孔相连。 4.存储器单元的CS1插孔与六位LED右下方的IOWE插孔相连。 实验一清零程序 一、实验目的 掌握汇编语言设计和调试方法,熟悉键盘操作。 二、实验内容 把2000H-20FFH的内容清零 三、程序框图 四、实验步骤 用连续或单步方式运行程序,检查2000-20FF中执行程序前后的内容变化。 五、思考 假使把2000H-20FFH中的内容改成FF,如何修改程序。 接P1.0到L1,试编写程序,对片外数据存储器6264进行读写操作,若L1闪动则表示6264RAM读写正常。(此思考题也可留在硬件实验中做) ORG 0640H

微机原理 实验报告

微机原理与接口技术 实验指导书 班级 学号099074 姓名 安徽工业大学计算机学院

实验一存贮器读写实验 一、实验内容 对指定地址区间的RAM(4000H~4FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~5FFH中。 二、实验步骤 l、将实验系统与PC机连接; 2、在PC机上启功DJ-8086k软件,实验系统进入联机状态; 3、在DJ-8086k软件环境下编辑、调试程序,将程序调试、编译通过; 4、运行程序。 5、稍后按RST键退出,用存贮器读方法检查4000H~43FFH中的内容和5000~53FFH中的内容应都是55AA。 三、实验程序清单 CODE SEGMENT ; ASSUME CS:CODE PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 1850h START: JMP START0 BUF DB ,,,,, data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1 h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: MOV AX,0H MOV DS,AX MOV BX,4000H MOV AX,55AAH MOV CX,0200H RAMW1: MOV DS:[BX],AX ADD BX,0002H LOOP RAMW1 MOV AX,4000H MOV SI,AX MOV AX,5000H MOV DI,AX

交通灯FPGAEDA实验报告

EDA 实验报告 实验七 交通灯控制电路的设计 一、实验目的: 进一步学习复杂数字电路的设计方法,提高利用硬件描述语言进行电路设计的技巧和熟练程度。 二、实验要求及原理: 1、 满足图1顺序工作流程。图中设南北方向的红、黄、绿灯分别为NSR 、NSY 、NSG ,东西方向的红、黄、绿灯分别为EWR 、EWY 、EWG 。它们的工作方式有些必须是并行进行的,即南北方向绿灯亮,东西方向红灯亮;南北方向黄灯亮,东西方向红灯亮;南北方向红灯亮,东西方向绿灯亮;南北方向红灯亮,东西方向黄红灯亮。 图1 交通灯顺序工作流程图 2、 应满足两个方向的工作时序:即东西方向亮红灯时间应等于南北方向亮黄、绿灯时间之和,南北方向亮红灯时间应等于东西方向亮黄、绿灯时间之和。时序流程图2所示。 图2中,假设每个单位时间为3秒,则南北、东西方向绿、黄、红灯亮时间分别15秒、3秒、18秒,一次循环为36秒。其中红灯亮的时间为绿灯、黄灯亮的时间之和。 图2 交通灯时序工作流程图 3、 十字路口要有数字显示,作为时间提示,以便人们更直观地把握时间。具体为:当 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 NSG t

某方向红灯亮时,置显示器为某值,然后以每秒减1计数方式方式工作,直至减到数为“0”,十字路口红、绿灯交换,一次工作循环结束,进入下一步某方向地工作循环。 例如:当南北方向从黄灯转换成红灯时,置南北方向数字显示为24,并使数显计数器开始减“1”计数,当减到“0”,时,此时红灯灭,而南北方向的绿灯亮;同时,东西方向的红灯亮,并置东西方向的数显为24。 三、实验内容 1、根据实验要求及原理1、2画出交通指示灯控制电路原理框图。 提示:两个方向的控制电路可以共用一个24进制计数器实现。 2、用VHDL硬件描述语言层次化设计方法进行顶层文件和各模块电路的设计。 产生1秒信号输出文件 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY miao IS PORT( CLK:IN STD_LOGIC; 时钟信号输入 EN:OUT STD_LOGIC); 2分频使能信号输出 END miao; ARCHITECTURE one OF miao IS SIGNAL CNT:INTEGER RANGE 0 TO 1; SIGNAL FOUT:STD_LOGIC; BEGIN P1:PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN IF CNT=1 THEN FOUT<='1'; CNT<=0; ELSIF CNT<1 THEN CNT<=CNT+1;

相关主题