基于51单片机之74HC165实验例程_第1页
基于51单片机之74HC165实验例程_第2页
基于51单片机之74HC165实验例程_第3页
基于51单片机之74HC165实验例程_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.* Copyright(C)CaKe *=*文件名 : main.c =*作者 : CaKen =*版本号 : V1.0 =*时间 : 2014.08.16 =*功能描述 : 74HC165实验测试 =*#include #include /SPI 接口sbit CLK = P36; /串行时钟sbit IN_PL = P16; /把数据加载到锁存器中sbit IN_Dat = P17; /数据通过P1.7脚移进单片机内处理sbit RELAY = P14; /继电器sbit BEEP = P15; /蜂鸣器unsigned char bdata Key;sbit K0=Key0; /位定义

2、sbit K1=Key1; /位定义sbit K2=Key2; /位定义sbit K3=Key3; /位定义sbit K4=Key4; /位定义sbit K5=Key5; /位定义sbit K6=Key6; /位定义sbit K7=Key7; /位定义bit M0 ,K0J; /位定义*函数名:调 用:beep();参 数:返回值:结 果:备 注:蜂鸣器 (让蜂鸣器发出动听声音)*void beep() unsigned char i,j; for (i=0;i2;i+) for (j = 0; j255; j+) _nop_(); BEEP=!BEEP; /BEEP取反 BEEP=1; /关

3、闭蜂鸣器*函数名:74HC165函数初始化调 用:HC165_Init();参 数:返回值:结 果:备 注:IN_PL上升沿,CLK上升沿*unsigned long HC165_Init(void) unsigned char i; unsigned int indata; IN_PL=0; /上升沿 _nop_(); /短暂延时 产生一定宽度的脉冲 IN_PL=1; /将外部信号全部读入锁存器中 _nop_(); indata=0; /保存数据的变量清0 for(i=0; i8; i+) indata=indata1; /左移一位 if(IN_Dat=1) indata=indata+1;

4、 /如果IN_Dat检测到高电平 保存数据的变量加1 CLK=0; /时钟置0 _nop_(); /上升沿 CLK=1; /时钟置1 return(indata); /将保存数据的变量取反后返回*函数名:主函数调 用:main参 数:返回值:结 果:备 注:74HC165控制八个按键*main() while(1) unsigned long Input=HC165_Init(); /调用165驱动程序 Key=Input&0xff; /将数据传给位变量 RELAY = 1; P2 = 0xff; /清除 if(K0&K0J) M0=M0; /实现脉冲输入 大家仔细体会 K0J=K0; if(M0) RELAY = 0; P2 = 0x7f; /实现脉冲输入if(K1) beep(); P2 = 0xbf; /K1 为1时开启蜂鸣器和2个灯if(K2) beep(); P2 = 0xdf; if(K3) beep(); P2 = 0xef; if(K4) beep(); P2 = 0xf7; if(K5) b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论