扩展8255课程设计

扩展8255课程设计
扩展8255课程设计

一、课设目的及内容:

目的:

(1)在构成一台完整的模型机的基础上,控制真实的外围接口芯片,进行基本的8255并行口实验。

(2)熟悉用微过程控制模型机的数据通路,使学生掌握系统各功能模块的基本工作原理。

(3)培养学生单片机应用系统的设计能力;

(4)使学生较熟练地应用电子线路CAD工具完成单片机系统的硬件设计任务;(5)学习设计与调试计算机的基本步骤及方法。

(6)将预习时编写的五条机器指令的微程序上机调试,通过执行机器指令,掌握各部联机运行情况,进一步建立整机概念。

内容:

(1)分析所设计系统中各功能模块的工作原理;

1.设计两条端口读写指令,以二进制数码开关作为8255的输入口,LED 显示灯作为8255的输出口。

2.根据数据通路实现实验连线

3.熟悉系统数据通路,包括原理框图与实验箱布置。

4.编写一段程序,验证指令执行的正确性。

(2)选用合适的器件(芯片);

(3)提出系统的设计方案(要有系统电气原理图);

1.根据系统流程图,编写程序与微程序并调试通过

2.记录运行情况

(4)对所设计电路进行调试。

1.将指令做适当的修改操作并调试通过

2.验收,完成相应的实验报告

二、程序设计基本原理:

(1)实验模型机CPU结构

[1] 运算器单元(ALU UINT)

运算器单元由以下部分构成:两片74LS181构成了并-串型8位ALU;

两个8位寄存器DR1和DR2为暂存工作寄存器,保存参数或中间运

算结果。ALU的S0~S3为运算控制端,Cn为最低进位输入,M为状

态控制端。ALU的输出通过三态门74LS245连到数据总线上,由

ALU-B控制该三态门。

[2] 寄存器堆单元(REG UNIT)

该部分由3片8位寄存器R0、R1、R2组成,它们用来保存操作数

用中间运算结构等。三个寄存器的输入输出均以连入数据总线,由

LDRi和RS-B根据机器指令进行选通。

[3] 指令寄存器单元(INS UNIT)

指令寄存器单元中指令寄存器(IR)构成模型机时用它作为指令译码

电路的输入,实现程序的跳转,由LDIR控制其选通。

[4] 时序电路单元(STATE UNIT)

用于输出连续或单个方波信号,来控制机器的运行。

[5] 微控器电路单元(MICRO-CONTROLLER UNIT)

微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相

应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释

或执行的工作。由输入的W/R信号控制微代码的输出锁存。由程序计

数器(PC)和地址寄存器(AR)实现程序的取指功能。

[6] 逻辑译码单元(LOG UNIT)

用来根据机器指令及相应微代码进行译码使微程序转入相应的微地

址入口,从而实现微程序的顺序、分支、循环运行,及工作寄存器R0、

R1、R2的选通译码。

[7] 主存储器单元(MAIN MEM)

用于存储实验中的机器指令。

[8] 输入输出单元(INPUT/OUTPUT DEVICE)

输入单元使用八个拨动开关作为输入设备,SW-B控制选通信号。输

出单元将输入数据置入锁存器后由两个数码管显示其值。

数据通路框图图(1)

扩展8255并行口实验

这个实验的原理图如上图(1)所示。部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应与一个微程序。

本实验采用4条机器指令:IN(输入)、COUT(端口写指令)、CIN(端口读指令)、JMP(无条件转移)其指令格式如下(前4位为操作码):

助记符机器指令码说明

IN 0000 0000 “外部开关量输入”的开关状态→R0 CIN addr 0010 0000 xxxxxxxx BUS→[addr]

COUT addr 0011 0000 xxxxxxxx [addr ] →BUS

JMP addr 0100 0000 xxxxxxxx addr → PC

其中IN为单字长(8位),其余为双字长指令,xxxxxxxx为addr对应的二进制地址码:

为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。

存储器读操作(KRD):拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。

存储器写操作(KWE):拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START微动开关,可对RAM进行连续手动写入。

启动程序:拨动总清开关CLR后,控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。

上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:

其中UA5-UA0 为6位的后续微地址,A、B、C三个译码字段,分别由三个控制位译码出多位。C字段中的P(1)-P(4)是四个测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行。B 字段中的 RD-B、R0-B、RI-B、分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号其功能是根据机器指令来进行三个工作寄存R0、R1、R2 的选通译码。A8、A9为控制选通信号,当A8 A9为00时,选通SW-B;为01时,选通CE;为10时,选通LED-B;为11时,表示均未选通。S0~S3为运算控制控制信号,Cn为进位控制信号,M为状态控制控制信号。原理如下图(图2),图中 I0~I3 为指令寄存器的第0~3位,LDRi 打入工作寄存器信号的译码器使能控制位。

当拟定“取指”微指令时,该微指令的判别测试字段为P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P(1)测试结果出现多路分支。本机用指令寄存器的前4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。控制台操作为P(4)测试,它以控制台开关SWB、SWA 作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填本系统有两种I/O外部设备,一种是二进制代码开关,它作为输入设备(INPUT DEVICE);另一种是数码块,它作为输出设备(OUTPUT DEVICE)。输入时,二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到外部数据总线上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码块显示。

(注意:微程序流程图上的单元地址为8进制。)

三、二进制微代码表设计:

(1)、基本的设计和实现的程序设计如下:

A、IN 0000 0000 “外部开关量输入”的开关状态→R0

B、CIN addr 0010 0000 BUS→[addr]

C、COUT addr 0011 0000 [addr ] →BUS

D、JMP addr 0100 0000 addr → PC

机器指令程序微指令程序

$P0044 $M00088105 $M1EB7ED05

$P01F0 $M0182ED05 $M1FB9ED05

$P0203 $M0250C004 $M20019004

$P03E0 $M0304A004 $M21018406

$P0400 $M04A0E004 $M2281DB05

$P05F0 $M0506E004 $M23E48005

$P0601 $M0607A004 $M24018005

$P0708 $M07A0E004 $M25A0AA95 $P0800 $M088AED05 $M2627A004

$M098CED05 $M2728BC05

$M0A3BA004 $M29A0AA95

$M0B018005 $M2A2BB405

$M0C3C2004 $M2B419B95

$M0D0EA004 $M2C2DA405

$M0E0FB605 $M2D6EAB05

$M0F25EA95 $M2E2FAA0D

$M1083ED05 $M2F30AA05

$M1185ED05 $M3071810D

$M128DED05 $M31419B95

$M13A6ED05 $M32019A05

$M14011004 $M3335B405

$M15010407 $M3481DB05

$M16168005 $M35419BBD

$M17019A3D $M36019A0D

$M18019205 $M3738E004

$M192AA205 $M38011005

$M1A2CB205 $M393AE004

$M1B32A205 $M3A010207

$M1C33A205 $M3B080A07

$M1D36A205 $M3C098A06

(4)、用ABLE语言设计控制逻辑,源程序如下:

ORG 00H

PORTA EQU 7CFFH ;A口

PORTB EQU 7DFFH ;B口

PORTC EQU 7EFFH ;C口

CADDR EQU 7FFFH ;控制字地址

SJMP START

ORG 30H

START: MOV A,#82H ;方式0,PA,PC输出,PB输入

MOV DPTR,#CADDR

MOVX @ DPTR,A

MOV DPTR,#PORTB

MOVX A,@ DPTR ;读入B口

MOV DPTR,#PORTA

MOVX @DPTR,A ;输出到A口

CALL DELAY

LJMP START

DELAY: MOV R6,#0

MOV R7,#0

DELAYLOOP:

DJNZ R6,DELAYLOOP

DJNZ R7,DELAYLOOP

RET

END

按照规定格式,将机器指令及微指令二进制表编辑成十六进制的如下格式文件。机器指令格式说明:

$ P ????例:$P 00 00

机器指令代码

十六进制地址

0 微指令格式说明:

$ M ????????例:$M 00 018110

十六进制地址微指令代码

注意:因系统文件格式要求,微指令代码的第一个字节(前8位)与第三字节(后8位)对换一下。

(3)、当完成上述全部微程序设计后,对每条微指令进行代码化,即将微程序流程图按微指令格式转化而成的,转化成为如下的“二进制微代码表”:

四、 机器指令程序:

(1)、为本实验设计两条指令 a 、端口读指令 助记符 CIN D ,R

指令格式

其中第一字节前四位为操作码,D 为端口地址,其功能是将端口地址为D 的端口内容写入至寄存器Ri 中。

b 、端口写指令 助记符 COUT R ,D

指令格式

其功能是将Ri 寄存器的内容写至以D 为端口地址的端口中。 (2)、两条指令的微程序流程可设计为:

CIN COUT

01 01

(3)根据以上的微程序流程图编写微程序。

(5)、本实验设计机器指令程序如下指令程序。

地址(二进制) 内容(二进制) 助记符说明00000000 01000100 IN R0 ; “输入开关量”→R0

; 输入开关置数10010000 00000001 11110000 COUT R0 ,[03]; R0→以03H为地址的端口00000010 00000011

00000011 11100000 CIN [00],R0; 将端口A(PA5~PA0)的内容读至R0 00000100 00000000

00000101 11100000 COUT R0,[01];将R0的内容写至端口B(PB5~PB0)00000110 00000001

00000111 00001000 JMP 00H

00001000 00000000

其中,第一条指令从输入设备置数10010000,是将8255置成方式0,且A口输入,B口输

出的控制字。将机器指令写入主存,二进制开关uA5~uA0作为8255的输入,LZD13~LZD8显示灯作为8255的输出口显示,给输入开关置任意一数,运行程序,检查输出口显示灯指示是否和输入一致。

五、线路连接:

(1)、实验内部连线:

a、跳线器J1~J12全部拨在右边(自动工作方式);

b、跳线器J16、J18、J23、J24全部拨在左边;

c、跳线器J15、J19、J25全部拨在右边,跳线器J13、J14拨在左边;

d、跳线器J20~J22、J26、J27连上短路片;

e、J SE1连JSE2,SJ1连SJ2;

f、MBUS连BUS2;

g、REGBUS连BUS5;

h、PCBUS连EXJ2;

i、ALUBUS连EXJ3;

j、ALUO1连BUS1;

k、EXJ1连BUS3;

l、ALUO2连BUS4;

m、IJ1连IJ2;

(2)、外部连线说明:

·I/O扩展数据总线KJ1用8芯排线连至数据总线BUS6;

·I/O扩展区KJ2用5芯排线连至外部总线区的KZ;

·I/O扩展区KJ3(右1~6)用6芯排线连UJ2;

·I/O扩展区KJ4(右1~6)用6芯排线连KBUS1(右1~6);

·I/O扩展区GND和VCC用单针线与主控区GND和VCC相连;

·I/O扩展区短路片DL1、DL2连左边。

六、微程序流程及说明

以下是扩展8255并行口模型的设计和实现的调试的基本步骤:

①连续运行

A、将编程开关置为RUN(运行)状态,“STEP”置为“STEP ”,“STOP”置为“RUN”。

B、使CLR1→0→1 ,微地址寄存器清零,程序计数器清零。按动START键,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。

C、停机后,可检查存数单元(0B)中的结果是否和理论值一致。

D、在联机运行程序时,进入DEBUG调试界面,使CLR1→0→1,序的首地址为00H,按相应功能键即可联机运行、调试程序。

②单步运行程序

1、运用联机软件的传送文件功能(F4)将该格式文件传入实验系统。

2、使编程开关处于“RUN”状态,STEP处于“STEP”状态,STOP处于(STOP)状态。

3、拨动总清开关CLR(0->1),微地址清零,PC计数器清零,程序首地址为00H。

4、按F6进入DEBUG界面,再按相应的功能键可以进入分步调试。以下是一些运行过程中的截图:

实验 并行IO口8255扩展

实验三并行I/O口8255扩展 一、实验目的 1、了解8255A芯片的结构以及编程方法 2、掌握通过8255A并行口读取开关数据的方法 二、实验说明 本次实验用通过8255扩展接口,仅通过P0端口控制8只集成式7段数码管的显示控制。8255A的PA、PB 端口分别连接8位数码管的段码和位码,程序控制数码管滚动显示一串数字。 三、实验线路图 四、实验步骤 1、先建立文件夹“ex3”,然后建立“ex3”工程项目,最后建立源程序文件“ex3.c”,输入如下源程序;/******************************************* 实验3:用8255实现接口扩展 ******************************************/ #include #include #define uchar unsigned char

#define uint unsigned int //PA,PB,PC端口及命令端口地址定义 #define PA XBYTE[0x0000] //定义8255A地址 #define PB XBYTE[0x0001] //定义8255B地址 #define PC XBYTE[0x0002] //定义8255B地址 #define COM XBYTE[0x0003] //定义8255B控制寄存器地址 //待显示字符队列编码 uchar code DSY_CODE_Queue[ ]= {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xA4,0xC0,0xC0,0x80,0xC0,0x80,0xF9,0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; //共阳极的7段集成式数码管对应编码 // 0:0xc0 // 1:0xcf // 2:0xa4 // 3:0xb0 // 4:0x99 // 5:0x92 // 6:0x82 // 7:0xf8 // 8:0x80 // 9:0x90 // A:0x88 // B:0x83 // C:0xc6 // D:0xa1 // E:0x86 // F:0x8e // DOT:0x7f //数码管选通 uchar DSY_Index[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //延时 void DelayMS (uint ms) {uchar i; while(ms--) for (i=0;i<120;i++); } /********主程序********/ void main( ) { uchar i,j,k; //8255工作方式选择:PA,PB均输出,工作方式0 COM=0x80; while(1)

实验6.1_8255并行接口与交通灯控制

8255端口地址: 控制寄存器地址28BH A口的地址288H B口的地址289H C口的地址28AH 实验程序: DATA SEGMENT BUF1 EQU 00100100B ;南北绿灯亮东西红灯亮BUF2 EQU 01000100B ;南北黄灯亮东西红灯亮BUF3 EQU 00000100B ;南北灯灭东西红灯亮BUF4 EQU 10000001B ;南北红灯亮东西绿灯亮BUF5 EQU 10000010B ;南北红灯亮东西黄灯亮BUF6 EQU 10000000B ;南北红灯亮东西灯灭DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,80H MOV DX,28BH OUT AX,AL ALL: MOV AL,BUF1 MOV DX,28AH OUT DX,AL CALL DELAYL MOV CX,5 YEL1: MOV AL,BUF2 MOV DX,28AH OUT DX,AL CALL DELAYS MOV AL,BUF3 MOV DX,28AH OUT DX,AL CALL DELAYS LOOP YEL1 MOV AL,BUF4 MOV DX,28AH OUT DX,AL CALL DELAYL MOV CX,4 YEL21: MOV AL,BUF5 MOV DX,28AH

OUT DX,AL CALL DELAYS MOV AL,BUF6 MOV DX,28AH OUT DX,AL CALL DELAYS LOOP YEL2 JMP ALL MOV AH,4CH INT 21H DELAYL PROC NEAR ;长延时 PUSH CX PUSH DI Y1:MOV CX,2000H X1:MOV DI,2000H DEC DI JNE X1 LOOP Y1 POP DI POP CX RET DELAYL ENDP DELAYS PROC NEAR ;短延时 PUSH CX PUSH DI Y2:MOV CX,500H X2:MOV DI,1000H DEC DI JNE X2 LOOP Y2 POP DI POP CX RET DELAYS ENDP CODE ENDS END START 桂林电子科技大学信息与通信学院

单片机8255并行口扩展控制系统设计

单片机最小应用系统 设 计 报 告 指导老师: 学生: 学号: 机电工程学院 年月日

目录 一、设计题目 (3) 二、设计内容与要求 (3) 三、设计目的意义 (3) 四、系统硬件电路图 (3) 五、程序流程图与源程序 (4) 六、系统功能分析与说明 (6) 七、设计体会 (11) 八、参考文献 (12)

一、设计题目 8255并行口扩展控制系统设计。利用单片机AT89S51控制实现8255的PB口输出数据等于PA口输入数据。 二、设计内容与要求 (1)利用单片机AT89S51与8255A设计一个扩展控制系统设计。 (3)要求使用的元器件数目最少,电路尽可能简单。 (4)电源电压为+5V。 三、设计目的意义 1、通过8255并行口扩展控制,进一步熟悉和掌握单片机的结构及工作原理,加 深对单片机理论知识的理解; 2、掌握单片机内部功能模块的应用; 3、掌握单片机的接口及相关外围芯片的特性、使用与控制方法; 4、掌握单片机的编程方法,调试方法; 5、掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下 良好的基础。 四、系统硬件电路图

(2) PCB图如下: 图2:PCB图 五、程序流程图与源程序 5.1 程序流程图

图3:程序流程图5.2 源程序 #include #define RD P0_3 #define WR P3_7 #define A0 P0_0 #define A1 P0_1 #define REST P3_6 #define CS P0_2 void main(void) { unsigned char get_data; CS=0; REST=1; REST=0; RD=1; P2=0x90; A0=1; A1=1; WR=0; WR=1; ///////////////////////////////////////// 以前是初始化 P2=0xff; A0=0; A1=0; WR=0; WR=1; P2 = 0xff; while(1) { A0=0; A1=0; RD=0;

用8255扩展并行输入输出接口(流水灯程序)

用8255A扩展并行输入输出接口(流水灯程序)+作者:杜康 #include #include #include //头文件 #define PA8255 XBYTE[0x0000] /*定义8255A口地址*/ #define PB8255 XBYTE[0x2000] /*定义8255B口地址*/ #define COM8255 XBYTE[0x6000] /*定义8255控制口地址*/ void time(unsigned int ucMs);//延时单位:ms void main(void) { unsigned char led; P1=0xef; led=P1; COM8255=0x82;//初始化8255 time(50); //延时50ms while(1) { PA8255=led;

led=_crol_(led,1); time(500); //延时0.5s } } void delay_5us(void)//延时5us { _nop_(); _nop_(); } void delay_50us(void)//延时50us { unsigned char i; for(i=0;i<4;i++) { delay_5us(); } } void delay_100us(void)//延时100us { delay_50us(); delay_50us(); }

void time(unsigned int ucMs)//延时单位:ms { unsigned char j; while(ucMs>0) { for(j=0;j<10;j++) delay_100us(); ucMs--; } }

单片机并行I-O口的扩展方法

单片机并行I/O口的扩展方法 摘要:由于在MCS-51单片机开发中P0口经常作为地址/数据复用总线使用,P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等)使用,所以对于51单片机的4个I/O口,其可以作为基本并行输入/输出口使用的只有P1口。因此在单片机的开发中,对于并行I/O口的扩展十分重要,主要分析3种扩展并行I/O口的方法。关键词: MCS-51单片机; 并行I/O口; 扩展 MCS-51单片机有4个并行的I/O口,分别为P0口、P1口、P2口和P3口,4个并行I/O 口在单片机的使用中非常重要,可以说对单片机的使用就是对这4个口的使用。这4个并行I/O口除了作为基本的并行I/O口使用,还常作为其他功能使用,如P0口经常作为地址/数据复用总线使用[1], P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等等)使用。这样,单片机只有P1口作为基本的并行I/O口使用,如果在单片机的使用中对并行I/O口需求较多,对于并行I/O口的扩展就非常重要了。下面通过具体的实例(8位流水灯设计)来给出几种不同的并行I/O口扩展方法。为了更好地说明以下几种不同的并行I/O口扩展方法,假设利用单片机实现流水灯的设计。采用单片机的P1口设计流水灯,电路。 由图1可知,8只LED直接连接在单片机的P1口上,通过对单片机进行编程即可以实现8只发光二极管产生流水灯。1 使用单片机的串行口扩展并行I/O口单片机有一个全双工的串行口[2],这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为移位寄存器使用。当单片机的串行口工作在模式0时,若外接一个串入/并出的移位寄存器(74LS164),就可以扩展一个8 bit并行输出口;若外接一个并入/串出的移位寄存器(74LS165),就可以扩展一个8 bit并行输入口。,单片机外接一个串入/并出的移位寄存器(74LS164),这样就可以扩展8 bit并行输出口。 当单片机的串行口工作在模式0(作为移位寄存器使用)时需要注意:单片机原来的串行通信引脚RXD和TXD在这种工作方式下给出新的定义,原来用于串行接收数据的引脚RXD在这种工作模式下既可以接收也可以发送数据; 原来的串行发送引脚TXD在这种工作模式下则作为移位寄存器的脉冲输入端使用(通常接时钟端)。单片机和串入/并出移位寄存器74LS164的连接:单片机的串行通信接收引脚RXD连接到串入/并出移位寄存器74LS164的输入引脚;单片机的串行通信发送引脚TXD连接到串入/并出移位寄存器74LS164的脉冲输入端;串入/并出移位寄存器74LS164的输出引脚连接8只发光二极管。这样,选择单片机的串行口工作模式0,通过通信引脚RXD发送实现流水灯的串行数据,然后通过74LS164转换成并行数据后传送给发光二极管,即可实现流水灯。这里需要注意74LS164数据的转换时间问题。从图2可以看出,同样设计一个8位流水灯,采用上述方法只需要使用单片机的两个串行通信引脚RXD和TXD就可以完成。此时,对于P3口的其他位可以作为第二功能使用(定时、中断等)。2 使用8255A(或8155)扩展并行I/O口可编程并行接口芯片8255A[3]有3个并行的I/O口,分别为PA、PB和PC,这3个并行I/O口都可以通过编程决定它们的工作情况。8255A与单片机的连接。 从图3中可以看出单片机与8255A的连接情况,利用单片机的P0口来分时传送地址和数据:P0口与8255A的8 bit数据线连接,用来传送数据和8255A的编程控制字;P0口连接地址锁存器74LS373输入端,74LS373的输出端连接8255A 的地址线A0、A1和片选信号CS。通过A0、A1(即P0.0、P0.1)的4种不同组合(00~11)选择8255的3个并行的I/O口之一和控制口。这样,通过对单片机和8255A编程,即可实现流水灯。从图3可知,利用这种方法

扩展8255并行口实验(组成与结构实验)

南京晓庄学院 信息与技术学院 计算机组成原理与结构课题 实 验 报 告 实验名称:扩展8255并行口实验 年级专业班级:级专业班级 学号:姓名: 学号:姓名: 学号:姓名: 时间:2013 年11 月23 日

一、实验目的、要求: 1)在构成一台完整的模型机的基础上,控制真实的外围接口芯片,进行基本的8255并行口实验。 2)熟悉用微过程控制模型机的数据通路,使学生掌握系统各功能模块的基本工作原理 3)培养学生单片机应用系统的设计能力; 4)使学生较熟练地应用电子线路CAD工具完成单片机系统的硬件设计任务 5)学习设计与调试计算机的基本步骤及方法。 6)将预习时编写的五条机器指令的微程序上机调试,通过执行机器指令,掌握各部联机运行情况,进一步建立整机概念。 二、实验仪器设备、器件及环境: 仪器设备名称规格型号编号备注 DVCC-C8J 20112037 计算器组成原理实验系统 H20110598 PC00112E42 三、实验方法、原理: 实验模型机CPU结构 [1] 运算器单元(ALU UINT) 运算器单元由以下部分构成:两片74LS181构成了并-串型8位ALU;两个8位寄存器DR1和DR2为暂存工作寄存器,保存参数或中间运算结果。ALU的S0~S3为运算控制端,Cn 为最低进位输入,M为状态控制端。ALU的输出通过三态门74LS245连到数据总线上,由ALU-B控制该三态门。 [2] 寄存器堆单元(REG UNIT) 该部分由3片8位寄存器R0、R1、R2组成,它们用来保存操作数用中间运算结构等。三个寄存器的输入输出均以连入数据总线,由LDRi和RS-B根据机器指令进行选通。 [3] 指令寄存器单元(INS UNIT) 指令寄存器单元中指令寄存器(IR)构成模型机时用它作为指令译码电路的输入,实现程序的跳转,由LDIR控制其选通。 [4] 时序电路单元(STA TE UNIT) 用于输出连续或单个方波信号,来控制机器的运行。 [5] 微控器电路单元(MICRO-CONTROLLER UNIT) 微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释或执行的工作。由输入的W/R信号控制微代码的输出锁存。由程序计数器(PC)和地址寄存器(AR)实现程序的取指功能。

8255A可编程并行口使用方法

8255A并行接口 1.课程设计的目的 为了巩固《微型计算机技术》课程学到的相关知识,通过对本课程所学知识的综合运用,使学生融会贯通课程中所学的理论知识,加深对计算机系统各个部分的工作原理及相互联系的认识,加深对接口的理解,清晰地建立计算机系统的概念,培养学生进行微机应用系统硬件和软件开发的实践工作能力。 2.设计方案论证 2.1设计方案的选择 在进行系统设计之前,必须先熟悉被控制对象的生产过程和工艺要求,对控制对象的工作过程进行深入的调查,根据实际应用中的问题提出具体的控制要求,以确定系统所要完成的任务;然后提出不同的总体方案进行比较论证,确定出系统的总体方案。在确定系统的总体方案时,对系统的硬件和软件功能应进行综合性考虑,因为系统的一个控制功能一般是既可以用硬件来完成,也可以由软件来完成,究竟采用什么方式,则要根据系统的实时性及硬件系统的性能价格比综合平衡后加以确定。一般情况下,用硬件来完成速度快,可节约CPU的大量时间,但这会使系统非常复杂,而且价格会高一些;用软甲实现价格便宜,但要占用CPU 较多的时间。所以一般的原则是在CPU时间允许的情况下,尽量采用软件,如果控制回路较多或者有些软件设计比较困难,则可考虑用硬件来完成,总之,一个控制系统哪一部分用硬件来实现,哪一部分用软件来实现,要结合具体情况进行比较后再确定。 2.1.2设计目的 随着社会的发展,城市规模的不断扩大,城市交通成为制约城市发展的一大因素。人口和汽车日益增长,市区交通也日益拥挤,人们的安全问题当然也日益重要。因此,红绿交通信号灯成为交管部门管理交通的重要工具之一。有了交通灯,人们的安全出行也有了很大的保障。自从交通灯诞生以来,其内部的电路控制系统就不断的被改进,设计方法也开始多种多样,从而使交通灯显得更加智能化。尤

8255可编程并行接口实验实验报告

微机原理实验报告 实验名称8255可编程并行接口实验 一、实验目的 1、掌握8255芯片结构及工作方式, 2、熟悉8255并行口扩展的编程。 二、实验设备 1、Lab6000p实验教学系统; 2、IBM-PC机 三、系统中的8255模块 Lab6000p实验箱中的8255模块连线如下图所示: 图1 8255模块的连线 AD0~AD7、A0、A1、RESET、/WR、/RD已分别连至系统 总线DB0~DB7、AB0、AB1、RESET、/IOW、/IOR;8255_CS、 PA口、PB口、PC口引出留给用户连接。 三、实验内容和实验步骤 1、8255基本输入输出方式――开关控制LED显示 1)实验要求 开关拨上LED亮,开关拨下LED灭。

2)电路连接 图2 电路连接图 8255_CS连至地址译码/CS0,PA口连至LED电平显示模块,PB口连至开关电路。 3)程序框图 图4 程序框图 4)程序代码 见附录程序2.1 5)实验步骤 1、在Lab6000p实验箱上完成连接电路;

2、开启计算机电源,开启Lab6000p实验箱电源; 3、启动WAVE6000软件; 4、确认WAVE6000与Lab6000p连接; 5、输入源代码; 6、编译源代码(F9); 7、单步运行源代码(F8),观察每条指令执行结果; 8、连续运行程序,上下拨动开关观察LED显示情况。 2、8255选通输入方式――开关控制LED显示 1)实验要求 开关上的逻辑信号在选通信号有效时读入微处理器,并送到LED显示。 2)电路连接 将选通信号(单脉冲)接到PC2,其余连线和实验1中的相同。 3)程序框图

微机原理与接口技术8255并行IO扩展实验

C H A N G Z H O U U N I V E R S I T Y 微机原理与接口技术 实验报告 学 院: 信息数理学院 学生姓名: 胡贵杨 专业班级: 计算机162 学号: 16416215 实验名称: 8255并行I/O 扩展实验 2018 ~ 2019 学年第 二 学期第 3 次实验 实验日期: 2019.04.20 指导老师: 潘操 成 绩: 批阅老师:

一、实验目的 (1)了解8255芯片结构及编程方法。 (2)了解8255输入、输出实验方法。 二、实验设备 PROTEUS教学实验系统(8086/8051) 三、实验原理 1. 当所有开关都闭合时,灯实现左流水效果

2.当开关都闭合时,所有灯同时闪烁(亮一秒灭一秒) 四、实验内容 1.当所有开关都闭合时,灯实现左流水效果 1.1硬件设计

图3 系统硬件电路原理图1.2 软件设计 软件设计程序代码及分析 CODE SEGMENT ; ASSUME CS:CODE IOCON EQU 8006H IOA EQU 8000H IOB EQU 8002H IOC EQU 8004H START: MOV AL,90H MOV DX,IOCON OUT DX,AL NOP START1: NOP NOP

MOV AL,0 MOV DX,IOA IN AL,DX CMP AL,00H JZ LSD NOP NOP MOV DX,IOB OUT DX,AL JMP START1 LSD: MOV CX,8 MOV AL,07FH; AA1: MOV DX,IOB OUT DX,AL MOV BL,10 AA2: NOP NOP DEC BL JNZ AA2 ROR AL,1 LOOP AA1 JMP START1 CODE ENDS END START

扩展8255课程设计

一、课设目的及内容: 目的: (1)在构成一台完整的模型机的基础上,控制真实的外围接口芯片,进行基本的8255并行口实验。 (2)熟悉用微过程控制模型机的数据通路,使学生掌握系统各功能模块的基本工作原理。 (3)培养学生单片机应用系统的设计能力; (4)使学生较熟练地应用电子线路CAD工具完成单片机系统的硬件设计任务;(5)学习设计与调试计算机的基本步骤及方法。 (6)将预习时编写的五条机器指令的微程序上机调试,通过执行机器指令,掌握各部联机运行情况,进一步建立整机概念。 内容: (1)分析所设计系统中各功能模块的工作原理; 1.设计两条端口读写指令,以二进制数码开关作为8255的输入口,LED 显示灯作为8255的输出口。 2.根据数据通路实现实验连线 3.熟悉系统数据通路,包括原理框图与实验箱布置。 4.编写一段程序,验证指令执行的正确性。 (2)选用合适的器件(芯片); (3)提出系统的设计方案(要有系统电气原理图); 1.根据系统流程图,编写程序与微程序并调试通过 2.记录运行情况 (4)对所设计电路进行调试。 1.将指令做适当的修改操作并调试通过 2.验收,完成相应的实验报告

二、程序设计基本原理: (1)实验模型机CPU结构 [1] 运算器单元(ALU UINT) 运算器单元由以下部分构成:两片74LS181构成了并-串型8位ALU; 两个8位寄存器DR1和DR2为暂存工作寄存器,保存参数或中间运 算结果。ALU的S0~S3为运算控制端,Cn为最低进位输入,M为状 态控制端。ALU的输出通过三态门74LS245连到数据总线上,由 ALU-B控制该三态门。 [2] 寄存器堆单元(REG UNIT) 该部分由3片8位寄存器R0、R1、R2组成,它们用来保存操作数 用中间运算结构等。三个寄存器的输入输出均以连入数据总线,由 LDRi和RS-B根据机器指令进行选通。 [3] 指令寄存器单元(INS UNIT) 指令寄存器单元中指令寄存器(IR)构成模型机时用它作为指令译码 电路的输入,实现程序的跳转,由LDIR控制其选通。 [4] 时序电路单元(STATE UNIT) 用于输出连续或单个方波信号,来控制机器的运行。 [5] 微控器电路单元(MICRO-CONTROLLER UNIT) 微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相 应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释 或执行的工作。由输入的W/R信号控制微代码的输出锁存。由程序计 数器(PC)和地址寄存器(AR)实现程序的取指功能。 [6] 逻辑译码单元(LOG UNIT) 用来根据机器指令及相应微代码进行译码使微程序转入相应的微地 址入口,从而实现微程序的顺序、分支、循环运行,及工作寄存器R0、 R1、R2的选通译码。 [7] 主存储器单元(MAIN MEM) 用于存储实验中的机器指令。 [8] 输入输出单元(INPUT/OUTPUT DEVICE) 输入单元使用八个拨动开关作为输入设备,SW-B控制选通信号。输 出单元将输入数据置入锁存器后由两个数码管显示其值。

第14讲:MCS-51单片机系统的并口IO扩展(8255)

单片机与控制技术
电气学院:易先军

第05章:存储器与并行 口的扩展 章 存储器与并行I/O口的扩展
本章主要内容: MCS51单片机的扩展总线(3总线结构与驱动能力) 在总线上扩展程序存储器和数据存储器的方法实例 串行存储器的扩展(了解) 用8255扩展单片机的I/O口(硬件与编程)【本讲内 容】

4、用8255来扩展单片机的并行I/O端口
在MCS51系列单片机中,提供给用户的I/O线只有P1 口和P3口的某些位线可作为输入、输出口线使用。因 此,在较复杂的应用中仅仅依靠单片机本身的这些端 口资源并不够用。为了解决这一问题,需要我们设计 人员来利用通用的接口芯片(8255、8155、8253等) 来扩展并行I/O、定时器等外部接口。 本节以可编程并行接口芯片 可编程并行接口芯片8255A为例来介绍接口 可编程并行接口芯片 芯片与MCS51单片机的接口技术。

(1)8255A可编程并行I/O接口的片内结构 )
8255A具有三个 位并行 口, 具有三个8位并行 具有三个 位并行I/O口 称为PA口 口和PC口 称为 口、PB口和 口,其中 口和 PC口又分为高 位和低 位口。通 口又分为高4位和低 位口。 口又分为高 位和低4位口 过控制字设定可以选择三种工作 方式:基本输入/输出 选通输入/ 输出、 方式:基本输入 输出、选通输入 输出、 口为双向总线 口为双向总线。 输出、PA口为双向总线。 8255A与单片机和外设连接时, 与单片机和外设连接时, 与单片机和外设连接时 由不同的初始化编程可用于无条 件传送,查询或中断传送, 件传送,查询或中断传送,以完 成单片机和外设的信息交换。 成单片机和外设的信息交换。

8255并行口扩展控制

桂林电子科技大学微机单片机接口 设 计 报 告 指导老师:吴兆华 学生:史海玲 学号:092011110 桂林电子科技大学机电工程学院

《微机综合设计》设计报告 一、设计题目 (1) 二、设计内容与要求 (1) 三、设计目的意义 (1) 四、系统硬件电路图 (1) 五、程序流程图与源程序 (2) 5.1 程序流程图 (2) 5.2 源程序 (3) 六、系统功能分析与说明 (3) 6.1 总体功能实现说明 (3) 6.2 元器件的选择及功能介绍 (3) 6.2.1 元器件的选择 (3) 6.2.2 元器件的功能介绍 (4) 七、设计体会 (8) 八、参考文献 (9)

《8255并行口扩展控制》设计报告 一、设计题目 8255并行口扩展控制 二、设计内容与要求 用8051单片机控制实现8255的PB口输出数据等于PA口输入数据 三、设计目的意义 1、通过8255并行口扩展控制,进一步熟悉和掌握单片机的结构及工作原理,加深对单片机理 论知识的理解; 2、掌握单片机内部功能模块的应用; 3、掌握单片机的接口及相关外围芯片的特性、使用与控制方法; 4、掌握单片机的编程方法,调试方法; 5、掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下良好的基础。 四、系统硬件电路图 (1) 8255并行口扩展控制硬件电路原理图如下: 图1:电路原理图

(2)8255并行口扩展控制硬件电路仿真图: 图2:电路仿真图(3) PCB图如下: 图3:PCB图五、程序流程图与源程序

5.1 程序流程图 5.2 源程序 ORG 0000H ;程序入口 MOV DPTR,#7FFFH ;送控制口地址 MOV A,#90H ;送8255状态字至控制口 MOVX @DPTR,A LOOP:MOV DPTR,#7CFFH ;送PA口地址 MOVX A,@DPTR ;读PA口状态 MOV DPTR,#7DFFH ;送PB口地址 MOVX @DPTR,A ;把PA口状态送至PB口 JMP LOOP ;循环 END 六、系统功能分析与说明 6.1 总体功能实现说明 本次设计单片机采用89S51,它是一种低功耗、高性能的8位CMOS微控制器。片内含有4KB 的存储器(EPEROM),与8031引脚和指令系统完全兼容。 89S51的VCC接+5V,VSS接地。复位引脚RESET外接RC电路和复位开关,可以实现人工复位。本系统采用按键电平复位,如硬件图所示。XTAL1和XTAL2引脚外接12MHZ晶振和

相关文档
最新文档