(九)串行口方式0 拓展并行输入端口 74LS165 芯片
74LS165芯片讲解:
外接一个同步移位寄存器 74LS165芯片,拓展一个 8 位 并行输入端口的电路, 可将接在74LS165芯片的8个开关 S0——S7 的状态 通过 串行口方式 0 读到 单片机内。
SH/LD : (一) 控制端
低电平: 74LS165芯片可以并行输入数据,且串行输入口关闭
高电平: 并行输入关闭,串行输入口打开,可以向 单片机串行传送数据。
当 P1.0引脚连接的开关S合上的时候,可以进行 S0-S7的状态数字量的并行输入。
单片机采用中断的方式来对状态进行读取,并从 P2 端口通过 LED 显示输出。 (也就是对应LED 灯点亮)
仿真电路图:

参考代码:
#include<reg52.h>
#include"intrins.h"
#include<stdio.h>
#define uint16 unsigned int
#define uchar8 unsigned char uchar8 nRxByte ; sbit P1_0=P1^;
sbit P1_1=0x91; void delay ( uint16 i)
{
uchar8 j;
for( ; i>;i--)
for(j=;j<;j++) ; } main()
{
SCON = 0x10; // 这里设置了 对应 REN =1, 允许了串行口接受数据
ES=; // 允许串行口中断
EA=; // 允许全局中断 for( ; ; ) ; } void Serial_Port( ) interrupt // 串行口中断服务子程序
{ if(P1_0 == ) // 解释: P1^0 =0 表示开关S 按下, 可读开关 S0~S7 的状态,如果不按下,就没法输入低电平
{ P1_1=; // 165芯片允许并行读入开关的状态,串行口关闭
delay(); P1_1=; // 将 开关的状态 串行 读入到 串口中 RI= ; // 接收中断标志 RI 清 0 nRxByte = SBUF ; // 开关状态从 SBUF 读入到 nRxByte 单元 P2= nRxByte; // 开关状态数据送到 P2 端口, 驱动 发光二极管 发光 } }
总结: 可以先 按下 S ,然后选 按下 s1 S4 S6 S7 ,按下总运行开关,数据会像 8位 一样传输到 SBUF
当然你也可以按下 总开关,然后随便怎么按, LED 也会对应 点亮,只是分了几次串行通讯而已。 也就是执行了 好几次 串行口中断程序。
(九)串行口方式0 拓展并行输入端口 74LS165 芯片的更多相关文章
- (九)串行口方式0 拓展并行输出端口 02 74LS164芯片
1.先讲解74LS164 移位芯片: 74HC164.74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出. 数据通过两个输入端(DSA 或 DSB)之一串行输入:任一输入端可 ...
- 80C51串行口
串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度 单工.半双工.全双工 单工数据传输只支持数据在一个方向上传输 半双工数据传输允许数据在两个方向上传输,但是,在 ...
- setserial - 取得/设置 Linux 串行口的信息
总览 setserial [ -abqvVWZ] 设备 [ 命令参数一 [ 设备变元参数 ] ] ... setserial -g [-abGv ] 设备一 ... 描述 setserial 是一个用 ...
- 十天学会单片机Day4串行口通信
并行与串行基本通信方式 1.并行通信方式 通常是将数据字节的各位用多条数据线同时进行传送. 并行通信控制简单.传输速度快:由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难. 2.串行通 ...
- STM32学习笔记(五) USART异步串行口输入输出(轮询模式)
学习是一个简单的过程,只要有善于发掘的眼睛,总能学到新知识,然而如何坚持不懈的学习却很困难,对我亦如此,生活中有太多的诱惑,最后只想说一句勿忘初心.闲话不多扯,本篇讲诉的是异步串行口的输入输出,串口在 ...
- DC平衡双向控制串行器 转接IC GM8913:LVTTL转FPD-LINK III芯片
1 概述 GM8913型DC平衡双向控制串行器,其主要功能是实现将10或12位并行控制信号和一路时钟信号串行为一路2.8Gbps高速串行数据:同时接收低速通道信号实现模式配对的功能.芯片内部集 ...
- windows 2003 server 远程桌面禁用本地资源,磁盘驱动器,串行口,复制文件
首先进入组策略编辑器(开始-运行-gpedit.msc) 不要让用户在远端桌面和本地直接拷贝文件在远端桌面上进入它的组策略编辑器在 计算机配置->管理模板->Windows组件->终 ...
- 基于51的串行通讯原理及协议详解(uart)
串行与并行通讯方式并行:控制简单,传输速度快.线多,长距离成本较高且同时接受困难.串行:将数据字节分成一位一位的行驶在一条传输线上进行传输.如图: 同步与异步串行通讯方式同步串行通讯方式:同步通讯 ...
- COM口,串行通讯端口,RS-232接口 基础知识
COM口即串行通讯端口. COM口的接口标准规范和总线标准规范是RS-232,有时候也叫做RS-232口.电脑上的com口多为9针,最大速率115200bps.通常用于连接鼠标(串口)及通讯设备(如连 ...
随机推荐
- Maven的第一个小程序
这里是介绍关于maven的第一个小程序 关于maven的安装 : Install Maven in your computer 先看看目录结构: 这是本来的项目目录结构,由于maven有自己的目录结构 ...
- Solr5.0配置中文分词包
Solr中默认的中文分词是用Lucene的一元分词包. 现在说明在Solr5.0中配置Lucene的SmartCN中文分词包. 1,进入Solr的安装目录,我这里是:/root/nutch/solr- ...
- 使用command对象操作数据库
1.Command对象查询数据库 protected void Button1_Click(object sender, EventArgs e) { //读取web.config节点配置 strin ...
- MyBatis调用存储过程,含有返回结果集、return参数和output参数
Ibatis是我们经常使用的O/R映射框架,mybats是ibatis被Google收购后重新命名的一个工程,当然也做了大量的升级.而调用存储过程也是一次额C/S架构模式下经常使用的手段,我们知道,i ...
- java基础--java静态代码块和静态方法的区别、static用法
转载自: http://blog.sina.com.cn/s/blog_afddb8ff0101aqs9.html 静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时, ...
- [LintCode] Create Maximum Number 创建最大数
Given two arrays of length m and n with digits 0-9 representing two numbers. Create the maximum numb ...
- webGL
WebGL: 是 OpenGL 和 JavaScript 之间的结晶.HTML5 的 canvas 元素里.利用和OpenGL同样的API.可以绘制高精度的三维图像. (OpenGL 能够从任意视点 ...
- .net 设置导航的当前状态
1.静态地址共用母版页时,加当前页的状态(使用加参数的方法实现): a: main.Master为链接设参数 MenuId <li> <a <%=MenuId==?" ...
- 使用文件模拟ASM磁盘
尽管Oracle缺省都是使用裸设备来创建ASM磁盘,但其实Oracle也允许使用普通文件来创建ASM磁盘, 当然这种方法最好只用在测试环境下或者学习环境下,不能用在生产环境下.之所以必须要用裸设备, ...
- 输出单向链表中倒数第k个结点
描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int m_nKey; ListNode* ...