电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx

上传人:b****2 文档编号:20119385 上传时间:2023-04-25 格式:DOCX 页数:11 大小:395.25KB
下载 相关 举报
电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx_第1页
第1页 / 共11页
电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx_第2页
第2页 / 共11页
电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx_第3页
第3页 / 共11页
电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx_第4页
第4页 / 共11页
电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx

《电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx》由会员分享,可在线阅读,更多相关《电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx(11页珍藏版)》请在冰豆网上搜索。

电气化自动技术 实验10 74LS165并入串出移位实验指导书.docx

电气化自动技术实验1074LS165并入串出移位实验指导书

实验十74LS165并入串出移位实验

一、实验概述

通过AT89C52接收来自74LS165的串行数据,再用LED显示出。

二、实验目的

掌握串口用于并行输入端口扩充的编程方法;理解74LS165的工作原理。

三、实验预习要求

1、主要知识点概述:

本实验用到了两个主要知识点是:

74LS165的工作机制、简单的单片机串口输入。

2、实验结果说明:

通过74LS165来读取8位键值并通过LED显示。

四、实验原理

图:

74LS165

主要引脚介绍:

SO:

串行数据输出端

QH:

反相串行数据输出端

D0~D7:

并行数据输入端

CLK:

时钟输入端(需要接时钟源,51单片机串口工作在方式0时接TXD(P3.1口))

INH:

时钟禁止端(高电平有效,使用时设为低电平)

SH/LD:

移位与置位控制端

SI:

串行输入端(用于拓展多个74LS165)

74LS165是八位并行输入、串行输出移位寄存器,74LS165芯片上电后,首先设置SH/LD端为低电平,此时芯片将D0~D7脚上的高低电平数据存入芯片内寄存器Q0~Q7,然后设置SH/LD端为高电平,此时芯片将寄存器内数据通过SO串行发送(QH也会发送反相数据)。

查阅74LS165的datasheet可以找到它的时序图和真值表。

图:

74LS165时序图

图:

74LS165真值表

上面的真值表和时序图中我们要特别注意几个端口的变化,真值表中SH/LD只有在高电平的时候方才有效;CLK、INH只有当其中一个为低电平的时候,另一个时钟才能正确的输入(一般的我们在使用时,可以将其中的一个直接接地,另一个做时钟输入端口使用)。

五、Proteus使用的元器件

1.74LS165//八位并行输入,串行输出移位寄存器。

2.AT89C52//51单片机。

3.BUTTON//按键,用于最小系统复位。

4.CAP//电容,用于搭建复位电路。

5.CAP-ELEC//电解电容,用于搭建复位电路。

6.CRYSTAL//晶振,给单片机提供时钟信号。

7.LED-GREEN//绿色LED灯。

8.RES//电阻。

六、实验要求

利用74LS165、8个按键和8个LED,实现并转串的输入扩充实验。

七、硬件连接图

1.硬件电路

图:

74LS165并入串出移位

图:

8位独立开关

图:

8位独立LED

2.硬件连接表

MCU-AT89S52

74LS165并入串出移位

8位独立开关

8位独立LED

P30

SO

P31

CP

P32

SH

P10~P17

D1~D8

QA~QH

SW1~SW8

3.Proteus仿真图

图:

Proteus仿真图

八、实验程序

/*******************************************************************************

文件名称:

main.c

作者:

版本:

V1.00

说明:

74LS165并入串出移位实验

修改记录:

--------------------------------------------------------------------------------

功能描述:

*控制74LS165

*实现并行数据输入,串行数据输出

--------------------------------------------------------------------------------

*接线说明:

P30-SO,P31-CP,P32-SH,P10~P17——D1~D8,SW1~SW8——QA~QH,

*******************************************************************************/

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineDoutP1

sbitSH=P3^2;

/*********主函数***************************************************************/

voidmain(void)

{

SCON=0X10;//设定UART方式0,允许接收数据

while

(1)

{

SH=0;//载入数据

_nop_();

_nop_();

_nop_();

SH=1;//数据输出

RI=0;

while(!

RI);//判断是否接收完数据

RI=0;

Dout=SBUF;//输出接收到的数据

}

}

九、实验步骤

1、打开Proteus8环境,在快捷工具栏中点击源代码按纽,然后在菜单栏选择系统-编译器配置。

找到Keilfor8051,点击下载,下载完成后点击OK退出。

2、点击源码选择新建工程,出现新固件项目对话框,在系列一栏中选择8051,在控制器一栏选择AT89C52,编译器一栏中选择Keilfor8051,然后点击确定,新工程创建完成。

3、然后在工程对话框下,右键单击AT89C52,在出现的下拉列表中选中工程设置,将工程选项下EmbedFiles后的勾选去掉,然后点击确定完成工程设置。

4、在快捷工具栏中的下拉列菜单Debug/Release/配置选项中,选择Release。

5、将需要编译的程序代码输入到main.c文件中,输入好程序代码后,然后在工程中,右键单击AT89C52,在出现的下拉列表中选中构建工程,编译完成返回

LINK/LOCATERUNCOMPLETE.0WARNING(S),0ERROR(S)

编译成功。

表示工程编译成功。

6、编译成功后,切换到原理图状态下点击运行按纽,可通过人机接口观察程序的仿真结果。

7、连接ISP下载器一端到USB接口,另一端连到目标板。

打开实验台电源,参考产品说明书中的ISP下载软件使用方法对程序进行下载。

8、接下来大家就可以按照硬件连接表连线了,然后测试程序,观察实验现象,理解程序,最后自己修改程序提高编程能力。

 

视频

十、实验现象

点击开始仿真运行,按下按键(K1-K8)开关,相应的LED(LED1-LED8)灯亮。

图:

实验现象

十一、实验总结

1.使用Proteus仿真,可以观察到,8按下按键,相应的LED就会点亮。

和程序是相符合的。

while

(1)

{

SH=0;//载入数据

_nop_();

_nop_();

_nop_();

SH=1;//数据输出

RI=0;

while(!

RI);//判断是否接收完数据

RI=0;

Dout=SBUF;//输出接收到的数据

}

上面这段代码是main里面的,不难看出,程序初始化之后,P1不断输出特殊寄存器SBUF的值,而单片机的TXD是连接着74LS165的SO,所以SBUF的值就是输入74LS165的值。

2.点击Proteus的左下角的

,此时就会显示下图的页面。

图:

单步执行

在这个页面点击菜单栏Debug-3.8051CPU-Variables,页面下方会弹出一个窗口,可以观察到各个变量的值的变化。

而点击菜单栏的Debug-3.8051CPU-Registers弹出的窗口则可以观察到各个寄存器的值。

继续点击

会直行下一条指令,观察寄存器的变化,感受74LS165的使用方法。

3.将程序烧进实验箱内,观察与仿真结果是否有差异。

十二、作业

本实验使用的是轮询的方法,尝试改成使用中断的方法来进行读取数据。

【提示】中断服务函数如下:

voidDateGet()interrupt4//串口数据接收完成中断

{

SH=0;//数据载入位设为低电平,将按键数据存入74LS165寄存器

DelayMS(50);//延时一会等待存入完成

DOUT=SBUF;//变更LED端口

SH=1;//数据载入位设为高电平,将74LS165寄存器数据写入串口寄存器

/*一定要在串口复位前将数据载入位设为高电平,使得在串口开始接收前发送74LS165寄存器内数据

如果先进行串口复位,串口寄存器因为通讯线路上无信号导致串口寄存器全部被写0,

寄存器误以为数据接收完成使得RI位置1,无法接收数据载入位设为高电平时发送的数据*/

RI=0;//复位串口开始接收74LS165寄存器数据

/*跳出中断,执行主函数中while(!

RI)等待数据接收完成*/

}

十三、实验思考题

思考74LS165适应的情况和场合。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1