欢迎光临MCUWAY! 本站网名:单片机之路  永久域名:www.mcuway.com

设为首页

加入收藏

电子基础 初学MCU 单片机类型 MCU程序 MCU应用 设计软件 测控电路 技术论坛
 您现在的位置: 单片机之路 >> 单片机程序 >> 单片机源码 >> 文章正文

利用74LS165扩展输入口的小程序

//利用74LS165扩展输入口,可以串联很多个
//不要小看这个小小程序,有时还会弄错,请看错误部分吧。

#include <reg51.h>
//165
sbit p_sl=P1^7;
sbit p_cp=P1^6;
sbit p_out=P1^5;

unsigned char input_165(void) {
a0=p_out;
p_cp=0;p_cp=1;a1=p_out;
p_cp=0;p_cp=1;a2=p_out;
p_cp=0;p_cp=1;a3=p_out;
p_cp=0;p_cp=1;a4=p_out;
p_cp=0;p_cp=1;a5=p_out;
p_cp=0;p_cp=1;a6=p_out;
p_cp=0;p_cp=1;a7=p_out;
p_cp=0;p_cp=1;
return(ACC);
}

//错误的,因为在p_sl从0到1跳变后,p_out已经输出Qh的值,如果再用p_cp=0;p_cp=1;驱动时钟线,a0读入的是Qg的值。
unsigned char input_165_error(void) {
p_cp=0;p_cp=1;a0=p_out;
p_cp=0;p_cp=1;a1=p_out;
p_cp=0;p_cp=1;a2=p_out;
p_cp=0;p_cp=1;a3=p_out;
p_cp=0;p_cp=1;a4=p_out;
p_cp=0;p_cp=1;a5=p_out;
p_cp=0;p_cp=1;a6=p_out;
p_cp=0;p_cp=1;a7=p_out;
return(ACC);
}

unsigned char check_165(void) {
unsigned char i,j,dat,b_break=0;
unsigned char code yes_bit[]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1};
p_out=1;p_cp=0;
p_sl=0;p_sl=1;
for (i=0;i<20;i++) {
dat=input_165();
for (j=0;j<8;j++) { //处理一个字节的每一个位
if (!(dat&yes_bit[j])) {b_break=1;break;}
n++;
}
if (b_break) break;
}
return(n);
}

void main(void) {
unsigned char d[20],i,dat;
//输入一个的情况,用dat记录
p_sl=0;p_sl=1;
dat=input_165();
//连续输入输入多个的情况(串联20个74ls165,共160个输入口)
p_sl=0;p_sl=1;
for (i=0;i<20;i++) {
d[i]=input_165();
}
//检查所有165的速入口有否按键按下(低电平),注意:只能检查一个按键按下的情况,多个按键的情况请聪明的你取完善吧。
i=check_165();
if (i<160) { //如果返还等于160,便是没有按键按下(全部为高电平)
switch (i) { //按键处理
case 0: //按键0
case 1: //按键1
//……
}
}
while (1) {}
}

普通文章28课:单片机音乐汇编程序设计
普通文章27课:单片机的一些基本概念
普通文章26课:单片机矩阵式键盘接口技术
普通文章51单片机教程(从原理开始基于汇编)
普通文章1课:单片机概述
普通文章2课:8051单片机引脚介绍
普通文章3课:单片机存储器结构结构分析
普通文章4课:第一个单片机小程序
普通文章5课:单片机延时程序分析
普通文章6课:单片机并行口结构
普通文章7课:单片机的特殊功能寄存器
普通文章8课:单片机寻址方式与指令系统
普通文章9课:单片机数据传递类指令
普通文章10课:单片机数据传送类指令
普通文章11课:单片机算术运算指令
普通文章12课:单片机逻辑运算类指令
普通文章13课:单片机逻辑与或异或指令祥解
普通文章14课:单片机条件转移指令
普通文章15课:单片机位操作指令
普通文章16课:单片机定时器与计数器
普通文章17课:单片机定时器/计数器的方式控制
普通文章18课:单片机的中断系统
普通文章19课:单片机定时器、中断试验
普通文章20课:单片机定时/计数器实验
普通文章21课:单片机串行口介绍

  • 上一篇文章:
  • 下一篇文章:
  • 更多精彩内容>>>

    普通文章电流单位
    普通文章功率单位
    普通文章什么是达林顿管?
    普通文章晶闸管的作用与原理

    学习单片机的必经之路——单片机之路,永久域名:www.mcuway.com