您的当前位置:首页正文

8051实验集锦 外扩实验模块部分

2023-08-30 来源:步旅网


外扩模块实验部分

实验1 P1口扩展键盘实验

一、实验目的:

掌握P1口的使用方法,行列式键盘的工作原理及编程方法。 二、所需设备

1、 CPU挂箱 2、 对象挂箱

3、 CPU模块(80C31) 4、 LED/数码管/键盘模块 三、实验内容

P1.4~P1.7接键盘的列,P1.0~P1.3接键盘的行。通过扫描键盘确定是否有键按下,如有则确定键值,并在CPU模块的数码管上显示(高位为行号,低位为列号)。 四、实验原理说明

本实验中键值的确定采用线反转法。 五、实验步骤

1、 实验连线

P1.4~P1.7接KEYY1~KEYY4,P1.0~P1.3接KEYX1~KEYX4。 2、 运行实验程序P1KEY.asm,按动键盘,查看显示键值。 六、实验结果

按动键盘时,数码管上显示出该键所在的行列号。如“12”表示第一行第二列。

51实验指导书 第1页

七、实验提示

在判断是否有键按下时,应有去抖动处理,以防止误操作。具体做法为延时10ms再次判断是否有键按下。只有两次判断均为有键按下才进行处理。 八、程序框图

开始N有键闭合?延时10ms延时10msN有键闭合?判断键值键值=>A

51实验指导书 第2页

实验2 P1、P3口控制数码管实验

一、实验目的:

掌握八段数码管的使用方法,及动态显示的编程方法。 二、所需设备

1、CPU挂箱 2、对象挂箱

3、CPU模块(80C31) 4、LED/数码管/键盘模块 三、实验内容

通过P1口输出段码,P3口输出位码。编程动态显示“012345”。 四、实验原理说明

P189C51CPU68驱动器88 位 数 码 管 P3驱动器6 由于P3口的RD、WR已被监控程序占用,故只有六个口用于位输出,且只能按位操作。LED/数码管/键盘模块上自带驱动电路,因此不须外加。 五、实验步骤 1、 实验连线

P1.0~P1.7接至段码A、B、C、D、E、F、G、DP;P3.0(RXD)接SLED3,P3.1(TXD)接SLED4,P3.2(INT0)接SLED5,P3.3(INT1)接SLED6,P3.4(T0)接SLED7,P3.5(T1)接SLED8。

2、 运行实验程序P1SEG.asm,观察数码管的显示情况。 六、实验结果

右边六位数码管显示“012345” 七、程序框图

51实验指导书 第3页

开始置初值R0=00H,R1=FEH查表取段码段码从P1口输出R1从P3口按位输出延时1msR0加1,R1左移一位YR0<6?N

51实验指导书 第4页

实验3 P1口扩展LCD实验

一、实验目的:

学习液晶显示的编程方法,了解液晶显示模块的工作原理。 掌握液晶显示模块与单片机的接口方法。 二、所需设备 1、CPU挂箱

2、CPU模块(80C31) 三、实验内容

编程实现在液晶显示屏上显示中文汉字“北京理工达盛科技有限公司”。 四、实验原理说明

五、实验步骤 1、实验连线

P1.0~P1.7接CPU挂箱上LCD模块的DB0~DB7,T0接BUSY,T1接REQ。 2、运行实验程序LCDDOT1.asm,观察液晶的显示状态。 六、实验结果

液晶屏上依次显示“北京理工达盛科技有限公司”。 七、程序框图

51实验指导书 第5页

开始初始化查表读数据NBUSY为0?Y数据输出REQ置位BUSY为1?YREQ复位NN数据读完?Y结束

51实验指导书 第6页

实验4 8255扩展并口实验

一、 实验目的

学习8255芯片的结构及编程方法。 掌握通过8255并行口读取开关数据的方法。 二、 所需设备

1、 CPU挂箱 2、 接口挂箱

3、 CPU模块(80C31) 4、 8251/8255扩展模块 三、 实验内容

设置好8255各端口的工作模式,使A口为输出,B口为输入。通过B口读入开关电平,A口输出驱动LED。 四、 实验原理说明

五、 实验步骤

1、实验连线

8255的PB0~PB7接开关K1~K8,PA0~PA7接LED1~LED8,用跳线帽选择8255的片选信号CS0。

2、运行实验程序8255.asm,拨动开关K1~K8,观察发光二极管的状态变化。 六、实验结果

K1~K8分别对应于L1~L8。Ki为高电平时,Li点亮,否则Li熄灭。 七、程序框图

51实验指导书 第7页

开始置8255控制字从PB口读入开关状态从PA口输出开关状态延时10ms

实验5 8255扩展键盘实验

51实验指导书 第8页

一、实验目的

学习8255芯片的结构及编程方法。 掌握行列式键盘接口电路的编程方法。 二、 所需设备

1、单片机CPU挂箱 2、接口挂箱 3、对象挂箱

4、CPU模块(80C31) 5、8251/8255扩展模块 6、LED/数码管/键盘模块 三、 实验内容

PA口连键盘的列线,PB口连键盘的行线,通过行扫描法或行反转法识别键的闭合(实验程序采用反转法)。然后读取键值,并在CPU模块的数码管上显示。 四、 实验原理说明

五、 实验步骤

1、实验连线

8255的PA0~PA3接开关KEYY1~KEYY4,PB0~PB3接KEYX1~KEYX4,CS8255选择CS0。

2、运行实验程序8255key.asm,按动键盘,观察数码管的显示变化。

51实验指导书 第9页

六、实验结果

按动键盘时,数码管上显示出该键所在的行列号。如“12”表示第一行第二列。 七、程序框图

一、 实验目的:开始置8255控制字(A出B入)PA口输出全低电平PB口输出全低电平从PB口读数,保存从PA口读数,保存PB低四位全为0?计算键值Y延时去抖动键值送显示缓冲区置8255控制字(A入B出)

实验6 8255扩展七段数码管实验

51实验指导书 第10页

学习8255芯片的结构及编程方法。

掌握八段数码管的使用方法,及动态显示的编程方法。 二、所需设备

1、单片机CPU挂箱 2、对象挂箱 3、接口挂箱

4、CPU模块(80C31) 5、LED/数码管/键盘模块 6、8251/8255扩展模块 三、实验内容

通过PA口输出段码,PB口输出位码。编程动态显示“01234567”。 四、实验原理说明

8驱动器8 PA82558段码8 位 数 码 管位码 PB驱动器8 五、实验步骤

1、 实验连线

PA0~PA7接A~DP,PB0~PB7接SLED1~SLED8,用跳线帽选择8255的片选信号CS0。

2、 运行实验程序8255seg.asm,观察数码管的显示情况。 六、实验结果

八位数码管上显示“01234567” 七、程序框图

51实验指导书 第11页

开始8255初始化R0=00H,R1=FEH查表取段码段码从PA口输出R1从PB口输出延时1msR0加1,R1左移一位Y8位移完?N

实验7 8255扩展LCD实验

51实验指导书 第12页

一、实验目的:

学习8255芯片的结构及编程方法。

掌握点阵式LCD的使用方法,及动态显示的编程方法。 二、所需设备

1、CPU挂箱 2、对象挂箱 3、接口挂箱

4、CPU模块(80C31) 5、点阵式LCD模块 6、8251/8255扩展模块 三、实验内容

编程实现在液晶显示屏上显示中文汉字“北京理工达盛科技有限公司”。 四、实验原理说明

五、实验步骤 1、实验连线

PA0~PA7接DB0~DB7,PC7接BUSY,PC0接REQ,CS8255选择CS0。 2、运行实验程序8255LCD.asm,观察液晶模块的显示情况。 六、实验结果

液晶屏上显示“北京理工达盛科技有限公司”。

51实验指导书 第13页

七、程序框图

开始初始化查表读数据NBUSY为0?

一、 实验目的:Y数据输出REQ置位BUSY为1?NYREQ复位N数据读完?Y结束

实验8 8255扩展LED点阵实验

51实验指导书 第14页

学习8255芯片的结构及编程方法。

掌握LED点阵的使用方法,及动态显示的编程方法。 二、所需设备

1、CPU挂箱 2、对象挂箱 3、接口挂箱

4、CPU模块(80C31) 5、LED点阵模块 6、8251/8255扩展模块 三、实验内容

用PC口控制LED点阵的行线,PA口控制列线。将LED逐行逐列地点亮,然后熄灭。

四、实验原理说明

PC0~PC23译码器驱动器8行线82558点阵LED列线PA

五、实验步骤 1、实验连线

PC0~PC2分别接DOT1K1~DOT1K3,PA0~PA7分别接DOT1A1~DOT1A8,DOT1EN接GND,CS8255选择CS0。

2、运行实验程序8255DOT.asm,观察点阵LED的显示状况。 六、实验结果

第一个点阵上的64个LED依次点亮。

七、程序框图

51实验指导书 第15页

开始8255初始化R1,R4置初值R0,R2置初值R0从PC口输出

一、实验目的

R1从PA口输出R0加1,R2减1NR0=0?YR1左移一位,R4减1NR4=0?Y实验9 8255扩展光电隔离实验

51实验指导书 第16页

学习8255芯片的结构及编程方法。 掌握光耦器件的使用方法。 二、所需设备

1、 CPU挂箱 2、 对象挂箱 3、 接口挂箱

4、 CPU模块(80C31) 5、 8251/8255扩展模块 6、 光耦隔离模块 三、 实验内容

利用PB作为输入口,读取开关状态,并用PA作为输出口,控制光耦,进而控制LED。 四、 实验原理说明

8255扩展并行输入输出口和光电隔离原理参见以上实验。 五、 实验步骤 1、实验连线

PB0~PB7接CPU挂箱上的开关K1~K8,PA0~PA7接光耦模块的1IN1~8IN,光耦模块的1OUT~8OUT接LED1~LED8,1VDD~8VDD接+5V,1GND~8GND接-12V,CS8255选择CS0。

2、运行实验程序8255OPTI.asm,拨动CPU挂箱上的开关K1~K8,观察发光二极管的状态变化。 六、实验结果

K1~K8分别对应于L1~L8。Ki为高电平时,Li点亮,否则Li熄灭。 七、程序框图

51实验指导书 第17页

开始8255初始化从PB口读入开关状态从PA口输出开关状态延时10ms

51实验指导书 第18页

实验10 8253多路定时/计数器实验

一、 实验目的

了解8253定时/计数器的的工作原理,掌握其编程方法。 二、所需设备

1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、定时器及并行I/O扩展模块 三、实验内容

将三个定时/计数器分别设为不同的工作方式,对同一输入信号计数,在三个输出端分别对输入信号进行2分频、4分频、8分频,用示波器观察其波形。 四、实验原理说明

五、实验步骤

1、 实验连线

CS8253接CS2,8253CLK0~8253CLK2接CPU挂箱的CLK2,GATE0~GATE2

接K1(高电平)。

2、 运行实验程序8253.asm,用示波器分别观察OUT1、OUT2、OUT3的波形。改变输入信号的频率,观察输出信号的变化。 六、实验结果

OUT1频率为1.5M,OUT2频率为750K,OUT3为375K。 七、程序框图

51实验指导书 第19页

开始计数器方式选择计数器0置初值计数器1置初值计数器2置初值等待

51实验指导书 第20页

实验11 8259中断扩展实验

一、实验目的

了解8259中断控制器的的工作原理,掌握其编程方法。 二、所需设备

1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、8259/8279扩展模块 三、实验内容

将单脉冲接至8259的外设中断请求端IR0~IR7,CPU接收8259发出的中断请求,执行相应的中断服务程序。中断服务程序通过P1口点亮相应的LED,指示中断请求由哪个外设发出。 四、实验原理说明

五、实验步骤 1、 实验连线

将CS8259跳线排上的片选CS1用跳线帽短接,外部设备中断请求信号为IR0~IR7,将IR0接到CPU挂箱单脉冲发生电路的P+(正脉冲),51INTX接到CPU模块上的INT1,P1.0~P1.7分别接至LED1~LED7。

51实验指导书 第21页

2、 运行实验程序8259.asm,按下单脉冲,观察被点亮的LED与中断源是否相

符,再将单脉冲接至不同的中断源进行实验。 六、实验结果

单脉冲接至IR0时,LED1点亮,其余熄灭;以下类推,接至IR7时,LED7点亮,其余熄灭。 七、程序框图

主程序 INT0中断服务程序

现场保护开始取向量地址8259初始化跳转至相应的服务程序开放中断向8259发送EOI指令空操作中断返回

实验12 8279键盘显示扩展实验

51实验指导书 第22页

一、实验目的

1、 了解8279键盘/显示控制器的的工作原理,掌握其编程方法。 2、 了解键盘电路工作原理及编程方法。 二、所需设备

1、CPU挂箱 2、接口挂箱 3、 对象挂箱

4、CPU模块(80C31) 5、8259/8279扩展模块 6、LED/数码管/键盘模块 三、实验内容

键盘操作时,CPU通过8279读取键值,并将键值送至数码管显示。 四、实验原理说明

五、实验步骤 1、 实验连线

8259/8279模块的OUTB0 ~ OUTB3接LED/数码管/键盘模块的A ~ D;OUTA0 ~ OUTA3接LED/数码管/键盘模块的E ~ DP;LED1 ~ LED2接SLED1 ~ SLED2;LED1 ~ LED4接KEYX1 ~ KEYX4; RL0 ~ RL3接KEYY1 ~ KEYY4;8279CLK接CPU挂箱的CLK2,CS8279接CS0。 2、 运行实验程序8279.asm,按动键盘,观察显示的键值与给定键值是否相符。

51实验指导书 第23页

六、实验结果

八位数码管的最左边两位显示键盘的键值(此处定义为行列号),如“12”表示第一行第二列。 七、程序框图

开始8279初始化读状态口,判断是否有键按下读取键值查表得到段选码Y写显示RAM

实验13 八位并行A/D实验

一、实验目的:

学习ADC0809的工作原理,掌握其编程方法。

51实验指导书 第24页

二、所需设备 1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、八位并行A/D、D/A模块 三、实验内容

编程实现用ADC0809进行模/数转换,转换结果显示在CPU挂箱的数码管上。 四、实验原理说明

POT1对应于模块上Vref.ADJ电位器,POT2对应于A.ADJ电位器。

五、实验步骤

1、将CS0809的片选排的片选CS3用跳线帽短接,即片选地址为CFB8H; 时钟CLK接CPU挂箱脉冲发生电路的CLK3,EOC接P1.0;

CPU挂箱上的可调电位器的输出AN0接V.OUT端;

2、运行实验程序0809.asm,调节基准电位器Vref.ADJ,使输入为最大和最小时,显示分别为“FF”和“00”。

3、 转动电位器V.ADJ改变输入电压,观察显示的变化。将显示值换算成电压,与万用表实测值进行比较。 六、实验结果

转动电位器V.ADJ,显示在00~FF之间变化。将显示值换算成电压(显示值*5/256),与万用表实测值基本相等。 七、程序框图

51实验指导书 第25页

开始置P1.0为输入口启动通道0转换等待P1.0变高读取转换值,送显示RAM

实验14 八位并行D/A实验

一、实验目的:

学习ADC0832的工作原理,掌握其编程方法。 二、所需设备

51实验指导书 第26页

1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、八位并行A/D、D/A模块 三、实验内容

编程实现用DAC0832进行数/模转换,输出正弦波(正弦波的波形数据已知)。 四、实验原理说明

POT2对应于VREF.ADJ,POT1对应于ZERO.ADJ,POT3对应于RANGE.ADJ。 五、实验步骤 1、 实验连线

用跳线帽选择0832的片选信CS3,0832下方的跳线1、2端短接。 2、 运行实验程序0832.asm,在断点1处,调节电位器ZERO.ADJ,使VOUT

为0V;在断点2处调节电位器RANGE.ADJ,使VOUT为5V。然后全速运行程序,用示波器在Vout端观察输出波形。 六、实验结果

全速运行程序时,VOUT端输出正弦波,幅度为5V。 七、实验提示

JP1为0832的方式选择。1、2短接时为双缓冲器同步方式,2、3短接时为单缓冲器方式,本实验程序为双缓冲器方式。ZERO.ADJ调节输出信号的直流电位,主要用于零位调节;RANGE.ADJ调节反馈度,主要用于满量程调节。开始实验时,应先调节电位器VREF.ADJ来调整基准电压为5V。往寄存器A送00H,若输出VOUT不为零,则通过调节电位器POT1来调零。往寄存器A送FFH,调节电位器RANGE.ADJ来调整输出VOUT为5V。

51实验指导书 第27页

八、程序框图

开始计数值送R4,表首址送DPTR从表中取一个数据输出至DAC寄存器启动D/ADPTR指向下一数据NR4减1,为0否?Y

实验15 12位并行A/D实验

一、实验目的:

学习ADS7852的工作原理,掌握其编程方法。 二、所需设备 1、CPU挂箱 2、接口挂箱

51实验指导书 第28页

3、CPU模块(80C31) 4、12位并行A/D、D/A模块 三、实验内容

编程实现用ADS7852进行模/数转换。 四、实验原理说明

模块上的IN0~IN7插孔对应于图中ADIN0~ADIN7引脚; 模块上的BUSY、CLK插孔分别对应于图中BUSY、CLK引脚;

CS7852、CS244插孔分别为ADS7852和74LS244的选通信号,也可通过跳线选择。

AOUT0、AOUT1插孔为两个模拟电压输出端,范围为0~5V,通过电位器K4、K5实现。

电位器K1为2.5V参考电压调节端。

注:由于ADS7852为12位并行输出,8位CPU必须分两次才能读入。第一次读低8位,同时将高4位送入外部锁存;第二次通过三态缓冲器将高4位读入。 五、实验步骤

51实验指导书 第29页

1、调整模块下边的10K电位器K1,用万用表测LM336中间脚的电压,将其调整到2.5V。

2、将AOUT1插孔和IN0插孔用导线连接,将CS7852片选排的CS0用跳线帽短接,CS244选择CS2,CLK接CPU挂箱时钟发生电路的CLK1,BUSY接CPU模块的P1.0。 3、运行实验程序ADS7852.asm,观察数码管显示的数据是否与输入电压相符。 六、实验结果

显示的数值(三位十六进制)与万用表实测的输入电压值基本相等。 七、实验提示

由于12位转换数据的精度远高于电源稳定度,所以低8位数据不等为正常现象。电源的稳定度越高,低8位数据波动越小。 八、程序框图

开始选择通道,启动转换N转换完成?Y读低8位数据读高4位数据

实验一、实验目的:

结束 16 12位并行D/A实验

学习TLV5613的工作原理,掌握其编程方法。 二、所需设备 1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31)

51实验指导书 第30页

4、12位并行A/D、D/A模块 三、实验内容

编程实现用TLV5613进行数/模转换,输出三角波(三角波的波形数据已知)。 四、实验原理说明

五、实验步骤

用跳线帽将CS5613选择为CS3。运行实验程序TLV5613.asm,用示波器在Vout端观察输出波形。 六、实验结果

VOUT端输出为三角波,调节K2,其幅度在0~5V之间变化。 七、程序框图

51实验指导书 第31页

开始禁止输出送高八位数据送低八位数据允许输出,启动转换

结束

51实验指导书 第32页

实验17 12位串行A/D实验

一、实验目的:

学习TLC2543的工作原理,掌握其编程方法。 二、所需设备 1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、12位串行A/D、D/A模块 三、实验内容

编程实现用TLC2543进行四通道模/数转换。 四、实验原理说明

五、实验步骤

1、 实验连线

12位串行A/D、D/A模块的EOC1接CPU模块的P1.0,IOCLK1接P1.1,DOUT1接P1.2,DIN1接P1.3,CS1(模块上)接P1.4。A/D、D/A模块上的AN1~AN4接ADIN1~ADIN4。2、 调节基准电位器POT1,使TLC2543的14脚输入参考电压为5.0V。

3、 运行实验程序AD2543.asm,观察数码管显示的数据是否与四通道的输入电压一致。 六、实验结果

数码管显示的数据,高位在前,低位在后。将每组数据换算成电压值(*5/4096),与四个通道万用表实测的输入电压值基本相等。

51实验指导书 第33页

七、实验提示

在CS有效期间,指令的输入和数据的输出是同时进行的。所以第一次发送采样指令时,所收到的16位数据是无效数据,它们存放在4EH、4FH单元中。 八、程序框图

开始发送8位控制字节,同时接收高8位转换结果接收低8位转换结果转换结果送内寸单元N5次转换结束?Y结束

实验

18 12位串行D/A实验

51实验指导书 第34页

一、实验目的:

学习TLV5616的工作原理,掌握其编程方法。 二、所需设备 1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、12位串行A/D、D/A模块 三、实验内容

编程实现用TLV5616进行数/模转换,输出三角波(三角波的波形数据已知)。 四、实验原理说明

五、实验步骤 1、接线方法

12位串行A/D、D/A模块的FS接CPU模块的P1.0,DIN2接P1.1,IOCLK2接P1.2,CS2接P1.3。

2、调节基准电位器POT2,使TLV5616的脚输入参考电压为2.5V。

3、运行实验程序DA5616.ASM,观察VOUT2端输出波形。调节POT7,观察VOUT1端的输出波形。 六、实验结果

VOUT2端输出为三角波。调节电位器POT7,使VOUT1端出现不失真的波形。(如失真或无波形,说明运放已经饱和)然后在此附近微调电位器,使其幅度在0~5V

51实验指导书 第35页

之间变化。 七、程序框图

开始发送高八位数据(高4位为方式控制)

一、 实验目的发送低八位数据

实验19 RS232总线实验51实验指导书 第36页

了解RS232总线的工作过程及电平转换原理,掌握RS232总线的编程方法。 二、所需设备

1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、RS232模块 三、实验内容

将RS232串口的RXD和TXD短接, 进行自发自收实验。实验过程中,使用MAX232接口。 四、实验原理说明

五、实验步骤

1、实验连线

CPU模块上的TXD、RXD分别接RS232模块上T2in、R1out,RS232模块的RXD1与TXD1相连,MAX232选通串口1。

2、 运行实验程序RS232.asm,设置断点,查看发送与接收数据是否一致。 六、实验结果

在断点处,累加器ACC中的值与发送值相同,为AAH。 七、实验程序

51实验指导书 第37页

CSEG AT 4000H LJMP START CSEG AT 4030H START: MOV TMOD, #20H MOV TH1, #0F3H MOV TH0, #0F3H

SETB TR1 ;启动定时器,设置波特率为2400 MOV SCON, #50H ;串口初始化,设为方式1 MOV PCON, #80H ;SMOD=1 MOV A, #0AAH ;发送数据为AA MOV SBUF, A

WAIT: JBC TI, CONT ;判断一桢是否发完 AJMP WAIT

CONT: JBC RI, READ ;判断一桢是否接收完 AJMP CONT READ: MOV A, SBUF

NOP ;设断点处,查看ACC中数据是否为AA NOP LJMP START END

实验20 RS485总线实验

一、 实验目的

了解485总线的工作过程,以及MAX485芯片的工作原理。 掌握485总线的编程方法。

51实验指导书 第38页

二、所需设备

1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、RS485模块 三、实验内容

模块上的收发器1和收发器2进行通讯。 四、实验原理说明

RS485模块有3个独立的收发器,每个收发器有一片MAX485芯片,两个传输线接口。 A、B和R1、R1’分别接至总线的发送端和接收端。R4、R5、R6、R7均为匹配电阻。 五、实验步骤 1、实验连线

/RE1接INT0,DE1接INT1,RO1接P1.6,DI1接P1.1;/RE2接TXD,DE2接

RXD,RO2接P1.2,DI2接P1.3;匹配电阻的插孔A连接收发器1的插孔A1、B连接B1,匹配电阻插孔R1和插孔R1’分别连接收发器2的A2、B2;用双绞线连接收发器1和收发器2。

3、 运行实验程序RS485.ASM,设置断点,查看寄存器R4与R3中的数是否相

等。

51实验指导书 第39页

六、实验结果

在断点处,R4和R3中的数相同,均为97H。 七、实验程序

ORG 0000H

LJMP START ORG 4100H START:RE1 EQU INT0 DE1 EQU INT1 RO1 EQU P1.6 DI1 EQU P1.1 RE2 EQU TXD DE2 EQU RXD RO2 EQU P1.2 DI2 EQU P1.3 ;设置控制位 setb DE1 setb RE1 clr DE2 clr RE2

;收发器1发送r3中的数据,收发器2将接收的数存入r4, sent: mov r2,#08h ;循环次数 mov r3,#97h ;要发送的数 mov a,r3

loop: rrc a ;先发最低位 mov r6,a mov DI1,c

mov c,RO2 ;收发器2接收的数存入R4 mov a,r4 rrc a mov r4,a mov a,r6

51实验指导书 第40页

djnz r2,loop nop end

实验21 接触式IC卡原理实验

一、 实验目的

了解接触式IC卡的工作原理及其与CPU的接口方式。 二、所需设备

1、CPU挂箱 2、对象挂箱

51实验指导书 第41页

3、CPU模块(80C31)

4、推拉式(或压入弹出式)IC卡模块 三、实验内容

将十六进制数“AB”写入IC卡的7F地址单元,然后采用随机读取的方式将7F地址单元中的数据读入CPU。 四、实验原理说明

五、实验步骤

1、 实验连线

CPU模块P1.0接IC卡模块CLK,P1.1接IO,P1.2接POWER,P1.3接SW。 2、 运行实验程序ICCARD.asm,查看数码管的显示值和写入的数据(见程序注

释)是否相等。当没有卡时,显示“00”。

六、实验结果

数码管的显示值和写入的数据相等。 七、程序框图

51实验指导书 第42页

开始N是否有卡?Y卡座加电开中断一、 实验目的单字节写入子程序延时10ms单字节读出子程序

实验22 非接触式IC卡原理实验

51实验指导书 第43页

了解接触式IC卡的工作原理及其与CPU的接口方式。 二、所需设备

1、CPU挂箱 2、对象挂箱

3、CPU模块(80C31) 4、非接触式IC卡模块 三、实验内容

检测IC卡是否存在,若有卡,则LED1灯闪烁,LED2灭;若无卡,则LED1灯灭,LED2闪烁。 四、实验原理说明

五、实验步骤

1、实验连线

P1.3接LED1,指示有卡。P1.4接LED2,指示无卡。 SCLOCK DIN DOUT

接 P1.0 接 P1.1 接 P1.2

2、全速运行实验程序uidtest.asm,用射频IC卡接近或远离感应天线,观察LED1、LED2的变化。

51实验指导书 第44页

六、实验结果

当IC卡靠近感应天线时,LED1闪烁,LED2灭。IC卡离开天线后,LED1灭,LED2闪烁。 七、程序框图

开始S6700初始化发送读卡指令启动T0LED2闪烁一次5ms内无回复信号?YN关闭T0启动T1读IC卡UID号Y10ms内无读完成信号?NLED1闪烁一次

实验23 8251扩展串口实验

一、实验目的

了解8251芯片的工作原理,掌握其编程方法。

51实验指导书 第45页

二、所需设备

1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、8251/8255扩展模块 三、实验内容

利用8251的TXD、RXD实现自发自收功能。 四、实验原理说明

8251工作时钟CLK由实验箱时钟发生电路提供,收发时钟TXCLK和RXCLK可由实验箱CLK4经8253分频后提供。注:TXCLK和RXCLK必须小于200KHz,才能保证正确收发。 五、试验步骤

1、 实验连线

将8251/8255模块上CS8251片选排上的片选CS0用跳线帽短接,8251CLK接到实验箱时钟发生电路的CLK3,RXCLK与TXCLK接到CPU挂箱8253的OUT0,RXD与TXD相接。CS8253接CS1,8253CLK0接CLK4,GATE0接K1(置高)。

2、 运行实验程序8251.asm,设置断点,查看内存单元50H~5FH中的接收数据

是否为00H—0FH。

六、实验结果

51实验指导书 第46页

内存单元50H~5FH中的值为00H~0FH。 七、实验提示

8251对接收、发送时钟RXCLK、TXCLK要求较高。8251A工作时钟CLK在同步方式工作时,必须大于RXCLK、TXCLK时钟频率的30倍;在异步工作方式时,必须大于输入时钟频率的4.5倍。 八、程序框图

开始8251初始化等待TXRDY有效发送数据等待RXTDY有效Y读取数据

结束 实验24 7279键盘显示实验

一、 实验目的

了解7279键盘显示接口芯片的工作原理及其与CPU的接口方式。 二、所需设备

51实验指导书 第47页

1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31) 4、7279键盘显示模块 三、实验内容

将7279芯片的所有指令循环测试一遍。 四、实验原理说明

五、实验步骤 1、接线说明

HD7279模块上的CS接CPU模块的P1.4,CLK接P1.5,DATA接P1.2,INT接P1.3 。将JUMP1最右端跳线短接,JUMP的右数第二个跳线短接。 2、运行测试程序7279test.asm,自动执行7279的所有指令,观察显示的变化与指令描述是否相符。 六、实验结果

发送测试指令后,数码管全亮,并处于闪烁状态; 发送复位指令后,数码管全灭;

测试段寻址指令,点亮的显示段在8只数码管间左往复8字运动3次;

测试下载数据但不译码指令,显示“3”字,再用循环指令使“3”字向右运动3次,再向左运动3次,重复2遍;

51实验指导书 第48页

测试译码方式0及左移指令,显示“0~F”; 测试译码方式1及右移指令,显示“0~F”;

测试键盘指令,S1~S16分别对应与显示字符“0~F”,20S无按键,即从头执行测试程序。 七、程序框图

开 始测试指令复位测试段寻址测试译码及循环测试键盘测试结束

实验25 CAN总线通讯实验1

备注:此实验仅在旧版本的接口挂箱上实现

一、 实验目的

掌握CAN总线的工作原理。 二、所需设备 1、CPU挂箱

51实验指导书 第49页

2、接口挂箱1

3、CPU模块(80C31) 4、CAN总线模块2块

注:此实验也可在两个实验台上实验,此时两个CAN总线模块要分别在两个实验台上。

三、实验内容

通过CAN模块,实现两个模块之间的数据通讯,在第一个模块中发送1桢数据,在第二个模块中收到这帧数据。 四、实验原理

见模块说明书。 五、实验步骤

1、实验连线

第一块模块(发送)跳线接LCS2,第二块模块(接收)跳线接LCS3,用双绞线将两块板连接起来,第一块板上的A接CANL,B接CANH。

2、两个实验台运行程序CAN.ASM,发送实验台全速运行程序,接收实验台要在程序中设置断点,查看40H~47H中的数与程序中发送的数据(见程序注释)是否一致。

备注:此实验也可在同一个实验台上实现,只需将两块CAN模块接在同一挂箱上,其他接线不变,运行CAN.ASM即可。

六、实验结果

40H~47H中的数与20H~27H中的数一致。 七、实验提示

1、 CAN总线的片选信号必须至少包括256个地址单元,LCS2:D300H—D3FFH和LCS3:D400H—D4FFH可满足以上要求。 六、程序框图

51实验指导书 第50页

开始CAN1初始化,验收代码为AAHCAN2初始化,验收代码为BBHCAN3初始化,验收代码为CCHCAN1向CAN2发送一桢数据CAN1向CAN3发送一桢数据CPU从CAN2读取一桢数据CPU从CAN3读取一桢数据结束

实验26 CAN总线通讯实验2

51实验指导书 第51页

备注:此实验仅能在新版本的接口挂箱上实现

一、 实验目的

掌握CAN总线的工作原理及其与CPU的接口方式。 二、所需设备 1、CPU挂箱 2、接口挂箱1

3、CPU模块(80C31) 4、CAN总线模块2块

注:此实验也可在两个实验台上实验,此时两个CAN总线模块要分别在两个实验台上。

三、实验内容

通过CAN模块,实现两个模块之间的数据通讯,在第一个模块中发送1桢数据,在第二个模块中收到这帧数据。 四、实验原理

见模块说明书。 五、实验步骤

1、实验连线

第一块模块(发送)跳线接LCS2,第二块模块(接收)跳线接LCS3,用双绞线将两块板连接起来,第一块板上的A接CANL,B接CANH。

2、两个实验台运行程序CAN.ASM,发送实验台全速运行程序,接收实验台要在程序中设置断点,查看40H~47H中的数与程序中发送的数据(见程序注释)是否一致。

备注:此实验也可在同一个实验台上实现,只需将两块CAN模块接在同一挂箱上,其他接线不变,运行CAN.ASM即可。

六、实验结果

40H~47H中的数与20H~27H中的数一致。 七、实验提示

CAN总线的片选信号必须至少包括256个地址单元,LCS2:D300H—D3FFH和LCS3:D400H—D5FFH可满足以上要求。 八、程序框图

51实验指导书 第52页

开始CAN1初始化,验收代码为AAHCAN2初始化,验收代码为BBHCAN3初始化,验收代码为CCHCAN1向CAN2发送一桢数据CAN1向CAN3发送一桢数据CPU从CAN2读取一桢数据CPU从CAN3读取一桢数据结束

实验27 USB总线通讯实验

51实验指导书 第53页

一、 实验目的:

1、 了解USB通讯协议的组成及原理。

2、 掌握C51程序的编译、连接方法及常见问题的处理。 3、 掌握C51的编程方法。

4、 了解计算机USB驱动的编写方法记载应用程序的调用方法。

二、 实验内容:

1、 学习C51的基本编程方法。 2、 练习实验USB的连接与断开。 3、 练习数据的上传功能及下传功能。

4、 *分析单片机程序的组成。找出几个按键、发光二极管控制位置 5、 *通过改变程序,改变数码管的显示方式和位置。 6、 *修改程序,改变USB接口在计算机中的属性。 注:带“*”者为选做实验项目。

三、 实验设备

1. 计算机两台:安装有Win98SE操作系统,其中一台A机安装运行公司软件,另

一台B机做USB通讯主机。

2. CPU挂箱及CPU模块(80C31),CPU换成89C52。 3. 接口挂箱

4. USB实验模块一块,USB连接线(一端为USB-A插头,另一端为USB-B插头)

一根。

四、 实验步骤

 软件的准备:将光盘上的USBEL文件夹复制到公司调试软件的运行目录下;

将光盘上USBSYS文件夹复制到USB通讯主机(B机)上的临时目录中。(复制完成后要注意去掉被复制文件的只读属性)  实验硬件的安装

1、 USB扩展模块正确安装在接口挂箱模块插槽中,要注意接口插针不要错

位。检查模块上的短路帽应短路短路排中右起第四对短路针(选择片选信号为CS0)。

2、 用串口线见实验箱的DB9插座与计算机的串口相连。

3、 用导线将模块上的插孔INT与或8051CPU板上的插孔INT0相连。 4、 用导线将8051CPU板上的插孔P1.0与接口挂箱上平推开关KK1的输出

51实验指导书 第54页

插孔K1相连。

5、 用导线将8051CPU板上的插孔P1.1与接口挂箱上平推开关KK2的输出

插孔K2相连。

6、 用导线将8051CPU板上的插孔P1.2与接口挂箱上发光二极管的输入插

孔LED1相连。

7、 用导线将8051CPU板上的插孔P1.3与接口挂箱上发光二极管的输入插

孔LED2相连。

8、用导线将8051CPU板上的插孔P1.4与接口挂箱上平推开关KK8的输出

插孔K8相连(默认开关KK8的输出为低电平)。

9、 用USB导线将USB模块的USB插座与USB通讯主机B机的USB接口

相连。

 启动两台计算机,计算机A运行编译调试软件MCS51.EXE,提示连接成功

后,装载USBEL文件夹下的文件USB.C,经编译、连接、下载无误后,全速运行程序,挂箱上的发光二极管L1、L2点亮约4秒钟后熄灭,此时观察挂箱的数码管的左两位显示“00”,其它各位无显示。USB模块上的LINK发光二极管闪动。当USB通讯主机B初次运行时,计算机会自动检测出发现新的USB硬件设备,要求安装它的驱动程序,可将安装路径映射到文件夹USBSYS,点击确认即可成功安装此USB模块的驱动程序。此时USB模块的LINK指示灯常亮,表示USB通讯正常。(有些计算机要求重新启动计算机)。

 连接/断开开关功能实验:当USB连接正常后,拨动开关KK8,使之输出高

电平,则USB模块上的LINK指示灯熄灭,表示USB通讯断开。拨动开关KK8,使之输出低电平,则实验箱上的发光二极管L1、L2点亮约4秒钟后熄灭,USB模块上的LINK指示灯点亮,表示USB通讯恢复。

 数据下传功能实验:当USB通讯主机的USB正常连接后,打开文件夹

USBSYS,运行程序USB.EXE文件,出现USB测试界面,在数码管显示(端点)下的输入框中任意输入两位数字,例如32,用鼠标单击“发送”按钮。实验箱上的数码管显示相应的数字,例如 32。

 数据上传功能实验:当USB通讯主机的USB正常连接后,打开文件夹

USBSYS,运行程序USB.EXE文件,出现USB测试界面。改变实验箱拨动开关KK1、KK2的输出状态,在USB的测试界面上按键中断输入(端点1)

51实验指导书 第55页

的状态框中显示KK1、KK2的当前状态他们的对应关系为

KK1输出高点平,KK2输出高电平时,计算机的界面显示“按键已释放”; KK1输出低点平,KK2输出高电平时,计算机的界面显示“按键1已按下”; KK1输出高点平,KK2输出低电平时,计算机的界面显示“按键2已按下”; KK1输出低电平,KK2输出低电平时,计算机的界面显示“按键1、2已按

下”;

实验28 8019以太网通信实验

一、实验目的

了解以太网通信的原理和RTL8019AS网卡模块的工作原理。 二、所需设备

51实验指导书 第56页

1、 CPU挂箱 2、 接口挂箱

3、 CPU模块(80C31) 4、 以太网通信模块 三、实验内容

用网线将8019以太网模块与PC机的网口相连,通过以太网实现试验系统与PC机的通讯。 四、实验原理说明

五、实验连线与步骤

实验连线:将以太网卡扩展模块插入试验箱的扩展槽中,并用以太网线将网卡模块与PC机连接起来;连接扩展模块上的插孔8019CS到系统的CS0;连接扩展模块上的插孔RESET到P1.2;连接P1.4到平推开关KK1的输出K1;连接P1.5到平推开关KK2的输出K2。

实验步骤:右键单击PC机上“网上邻居”,选择“属性”。双击网络配置里的“TCP/IP”项,修改PC机的IP地址为192.168.0.113,子网掩码为255.255.255.0,点击完成并重新启动PC机。进入MCS51实验系统,与实验台联机,编译连接前确保菜单“选项”→“编译器选项”→“C51链接选项”中的内容为“IX CODE(4030H) XDATA(6B00H)”。编译连接NET.C,下载程序并全速执行,此时数码管显示为00。在PC机“开始” →“运行”中输入PING命令,“PING 192.168.0.7 –T”,若操作无误,

51实验指导书 第57页

则网卡模块上的D4,D5两个二级管会闪烁,并在PC机上显示出REPLY信息。

在“NET”目录下找到IPTEST.EXE文件,并和MFC42D.DLL,MFCN42D.DLL,MFCO42D.DLL,MSVCRTD.DLL这四个文件放在同一个目录下。 六、实验结果

双击执行IPTEST.EXE,在弹出的对话框中填入一个01~99的数字,并按“发送”

键,则所填入数据会在实验箱上的数码管上显示出来。按下“K1”或者“K2”,则IPTEST.EXE对话框会显示“按键已按下”,再按一次,显示“按键已弹起”。 七、程序框图

复位RTL8019AS 设置网卡地址和网 卡、主机的IP地址 定时器,中断初始化 设网卡内寄存器初值 8279和数码管显示清零 tcp端口1024初始化 检查是否有数据包收到 N Y 将数据包复制到RXD缓冲区 并处理数据包

实验29 无线收发实验

一、实验目的:

掌握无线收发的原理及SC2262/6672编解码器件的应用。 二、所需设备

1、CPU挂箱

51实验指导书 第58页

2、接口挂箱

3、CPU模块(80C31) 4、无线收发模块(2块)

三、实验内容

将8位开关电平的值通过无线发射、无线接收,最终在数码管上显示出所表示的十六进制数。 四、实验原理说明

将4位开关电平通过74LS244读入CPU,由74LS273分两次发送给SC2262编码输出。SC2272将接收到的数据解码、锁存,分两次读回CPU,并送数码管显示。

8位开关电平74LS244(1)CPU74LS273SC2262无线发射数码管显示74LS244(2)SC2272无线接收

五、实验步骤 1、实验连线

发送实验台上的CPU挂箱上开关KK1—KK4的输出K1~K4接244的IN0—IN3,开关KK8的输出K8(低电平发送) 接IN7,CS244接CS0;273的O0~O3接无线收发模块1的SD0~SD3,O7接SEND,CS273接CS1;注意:上电前,SD0~SD3和SEND必须悬空。

无线收发模块1的发射跳线选择SA7—SA0:00010000(‘0’表示‘L’,‘1’表示‘H’);

接收实验台上的CPU挂箱上开关KK8的输出K8接244的IN7 (高电平接收),无线收发模块2的RECE接244的IN6,244的片选CS244接CS0,无线收发模块2

51实验指导书 第59页

的接收跳线选择RA7—RA0:00010000。板上244CS接CS2,JP1悬空。,

2、两个实验台运行实验程序WIRE.ASM,改变发送实验台上K1~K4的值,观察接收端数码管显示是否与K1—K4表示的16进制数相符。 六、实验结果

显示为K1~K4所表示的十六进制数。 七、程序框图

开始读开关电平发送高4位接收高4位发送低4位低接收4位

实验30 MODEM模块实验

一、实验目的:

掌握UART(16C450)的原理及Modem芯片MC145443的应用。 二、所需设备

1、CPU挂箱 2、接口挂箱

3、CPU模块(80C31)

51实验指导书 第60页

4、Modem模块(2块)

备注:两块MODEM模块可分别接在两个实验台上进行试验。

三、实验内容

将8位开关电平的值通过Modem模块1发射、Modem模块2接收,最终在数码管上显示出Modem模块2所接收的十六进制数。 四、实验原理说明

将8位开关电平通过74LS244读入CPU,CPU将数据送入UART 16C450,由MC145443调制输出。另一MC145443将接收到的信号解调后送入UART,CPU从UART中读出接收数据,并送数码管显示。

8位开关电平74LS244CPU数码管显示16C450MC145443(1)模拟信号输出MC145443(2)模拟信号输入

五、实验步骤 1、实验连线

发送端接口挂箱上开关K1~K8接244/273 PORT的IN0~IN7,CS244接CS2;Modem模块1的CS450接CS0,S1跳线接至“Origin”端,接在发送端实验台上;Modem模块2的CS450接CS1,S1跳线接至“Answer”端接在接收端的实验台上。用电话线连接两Modem模块。两Modem模块的RST均与各自模块上的GND相连。

2、两个实验台运行实验程序modem.asm,改变发送实验台K1~K7的值,观察接收实验台上数码管的显示是否与输入相符。

注:发送和接收也可在同一实验台上进行。此时只需将MODEM模块接在同一接口挂箱上,其他接线不变,运行modem.asm即可。

六、实验结果

51实验指导书 第61页

显示为K1~K7所表示的十六进制数。 七、程序框图

开始UART1、UART2初始化UART1发送完成?Y读开关电平N发送数据送入UART1UART2收到数据?Y从UART2读出数据N送显示缓冲区

实验31 用户CPLD译码实验1

备注:此实验仅在旧版本的接口挂箱上实现。

一、实验目的

1、熟悉CPLD译码的实现方法。

2、掌握EPM7064的编程及程序下载的方法。 二、所需设备

1、CPU挂箱

2、CPU模块(80C31)

51实验指导书 第62页

3、接口挂箱

4、ALTERA下载电缆 5、示波器 三、实验内容

对接口挂箱上的EPM7064编程,实现LCS0~LCS3分别为A100H~A400H,IO29、IO31、IO33、IO34分别为A500H、A600H、A700H、A800H。 四、实验原理说明

EPM7064各脚的定义是固定的。其中:

TDI、TDO、TCK、TMS为JTAG口。A15~A3为地址线输入,IOWR、IORD、ALE、PSEN、CON1、CON2为控制线输入。LCS0~LCS3、IO29、IO31、IO33、IO34,NC为输出,NC控制接口挂箱上74LS245的数据传送方向。 五、实验步骤 1.实验接线

将ALTERA下载电缆一端接PC机并口,一端接接口挂箱下载口。 2.在MAXPLUSⅡ上下载译码文件intercpld.pof到CPLD中。

3.运行测试参考程序cpldtest.asm,用示波器在LCS0~LCS3、IO29、IO31、IO33、IO34点观察是否有波形,如有则说明译码正常。 六、参考程序

51实验指导书 第63页

程序名:test.asm CSEG AT 4000H LJMP START CSEG AT 4080H

START:MOV DPTR, #0A100H ;可分别改为A200~A800H MOVX @DPTR, A LJMP START END

六、实验提示

以下提供的译码源文件中,将NC置为高电平,此时不允许通过数据总线从对象挂箱读数。如有需要可修改NC的控制逻辑。 七、译码文件参考程序清单(VHDL语言)

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; entity intercpld is

port (inputAH: in STD_LOGIC_VECTOR(7 downto 0); inputAL: in STD_LOGIC_VECTOR(7 DOWNTO 0); CON1,CON2,ALE,PSEN,IORD,IOWR: in STD_LOGIC; NC,IO29,IO31,IO33,IO34: OUT STD_LOGIC; LCS: out STD_LOGIC_VECTOR(3 downto 0)); end intercpld;

architecture choose1 of intercpld is begin

LCS<=\"1110\" when inputAH=\"10100001\" and con1='0' else \"1101\" when inputAH=\"10100010\" and con1='0' else \"1011\" when inputAH=\"10100011\" and con1='0' else \"0111\" when inputAH=\"10100100\" and con1='0' else \"1111\" ;

IO29<='0' when inputAH=\"10100101\" and con1='0' else '1';

51实验指导书 第64页

IO31<='0' when inputAH=\"10100110\" and con1='0' else '1';

IO33<='0' when inputAH=\"10100111\" and con1='0' else '1';

IO34<='0' when inputAH=\"10101000\" and con1='0' else '1'; NC<='1'; end choose1;

实验32 用户CPLD实验2

备注:此实验仅能在新版本的接口挂箱上实现。

一、实验目的:

1、学习CPLD芯片的工作原理。 2、学习MAXPLUS-II的编程方法。 二、实验设备:

1、CPU挂箱 2、接口挂箱*(new) 3、CPU模块(80C31)

三、实验内容:

51实验指导书 第65页

由PC机通过串口,与系统板的JTAG接口,下载编写的CPLD程序,通过试验加以验证。

四、实验原理图:

五、实验接线:

1、8255的片选CS8255与LCS0相连;

1、 PA.0--PA.7与发光二极管的输入LED1---LED8相连; 2、 PB.0--PB.7与平推开关的输出K1---K8相连;。 六、实验步骤

1、将附带的CPLD程序通过JTAG接口下载到CPLD芯片EPM7064.

2、编译、全速运行程序T19.ASM,拨动平推开关,相应的发光二极管有亮、灭变化。

七、程序框图:T19.ASM 八、实验提示:

可以在8000H----CFBF、CF0H---FFFFF任意选择LCS信号,用户可自行试验,要注意测试程序的片选信号要与CPLD的得知相一致。 九、CPLD参考配置:

51实验指导书 第66页

十、CPLD参考程序

TITLE \"8051_USER ADRESS ENCODER\"; library IEEE;

use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all;

entity user_el_iii is port (

Address : IN STD_LOGIC_VECTOR(15 DOWNTO 0); RD,WR,MIO,AEN : IN STD_LOGIC; IOWR,IORD,MEMW,MEMR : IN STD_LOGIC;

LCS : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );

end user_el_iii;

ARCHITECTURE archde1 OF user_el_iii IS BEGIN

--MEMW<='Z'; --MEMR<='Z'; --IOWR<='Z'; --IORD<='Z';

LCS<=\"11111110\" WHEN (Address>\"1100111111111111\")AND(Address<\"1101000010000000\") ELSE --FROM D000 TO D07F

\"11111101\" WHEN

51实验指导书 第67页

(Address>\"1101000001111111\")AND(Address<\"1101000100000000\") ELSE --FROM D080 TO D0FF

\"11111011\" WHEN (Address>\"1101000011111111\")AND(Address<\"1101000110000000\") ELSE --FROM D100 TO D17F

\"11110111\" WHEN (Address>\"1101000101111111\")AND(Address<\"1101001000000000\") ELSE --FROM D180 TO D1FF

\"11101111\" (Address>\"1101000111111111\")AND(Address<\"1101001010000000\") ELSE D200 TO D27F

\"11011111\" (Address>\"1101001001111111\")AND(Address<\"1101001100000000\") ELSE D280 TO D2FF

\"10111111\" (Address>\"1101001011111111\")AND(Address<\"1101010000000000\") ELSE D300 TO D3FF LARGE ADDRESS1 256 BYTES \"01111111\" (Address>\"1101001111111111\")AND(Address<\"1101011000000000\") ELSE D400 TO D5FF LARGE ADDRESS2 512 BYTES

\"11111111\"; END archde1;

实验33 74LS244/74LS273扩展I/O口实验

一、实验目的

学习单片机系统中扩展简单I/O口的方法。 学习输入、输出程序的编制方法 二、所需设备

1、CPU挂箱

51实验指导书 第68页

WHEN --FROM WHEN --FROM WHEN --FROM WHEN --FROM 2、接口挂箱

3、CPU模块(80C31) 4、定时器及并行I/O扩展模块 三、实验内容

利用74LS244作为输入口,读取开关状态,并用74LS273作为输出口,将此状态通过LED显示出来。 四、实验原理说明

五、实验步骤

1、 实验连线

74LS244的IN0~IN7接开关K1~K8,74LS273的O0~O7接LED1~LED8,用

跳线帽选择74LS244和74LS273的片选信号。本实验中,74LS244选择CS0,74LS273选择CS1。

2、 运行实验程序273_244.asm,拨动开关K1~K8,观察发光二极管的状态变化。 六、实验结果

Ki输出为高电平时,对应的Li熄灭,反之点亮Li。 七、程序框图

51实验指导书 第69页

开始置端口地址从244读入开关状态从273输出开关状态延时10ms 51实验指导书 第70页

因篇幅问题不能全部显示,请点此查看更多更全内容