/**************************************************************************************
* 单片机IO扩展--74HC165实验 *
实现现象:下载程序后,按下独立按键可以点亮对应的led
K1--led1
K2--led2
K3--led3
...
K8--led8
注意事项:必须将74HC165模块的JP165短接片短接,否则不会出现现象
***************************************************************************************/
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "intrins.h"
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
//--定义使用的IO口--//
#define GPIO_LED P0
sbit IN_PL = P1^6;
sbit IN_Data = P1^7; //数据通过P1.7脚移进单片机内处理
sbit SCK = P3^6;
/*******************************************************************************
* 函 数 名 : Read74HC165
* 函数功能 : 使用165读取一个字节数据
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
u8 Read74HC165(void)
{
u8 i;
u8 indata;
IN_PL = 0;
_nop_(); //短暂延时 产生一定宽度的脉冲
IN_PL = 1; //将外部信号全部读入锁存器中
_nop_();
indata=0; //保存数据的变量清0
for(i=0; i<8; i++)
{
indata = indata<<1; //左移一位
SCK = 0; //时钟置0
_nop_();
indata |= IN_Data;
SCK = 1; //时钟置1
}
return(indata);
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
u8 h165Value;
GPIO_LED = 0;
while(1)
{
h165Value = Read74HC165();
if(h165Value != 0xFF)
{
GPIO_LED = ~h165Value;
}
}
}
2401_87203737
- 粉丝: 0
- 资源: 2
最新资源
- CLLLC双向谐振变器变频控制(开环与PI闭环控制),开环做了准谐振和欠谐振情况下的仿真,还有ZVS的验证波形 正反向运行情况
- -with-ucrt-dll-dir指代VS Code安装Windows10 SDK产生的文件夹目录
- 电导增量法INC仿真模型,作为目前实际光伏发电系统中最常用的mppt算法,可以用于学习研究,才用了输出参考电压的方式来进行pwm
- 定时自动备份程序开发使用
- 基于Java的简单文章管理系统设计源码
- 基于湖北商贸学院Java实习的资料汇总设计源码
- #Mitsubishi 三菱 PLC张力控制通用程序模板 采用三菱伺服FX3U的速度与力矩模式,收料采 用锥度与恒张力两种控制
- 基于Python实现的实用Windows CMD小命令集设计源码
- 基于Html+JavaScript+CSS+Java的母婴商城设计源码
- 77.潜龙出海副图选股.tn6
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈