PIC16F72 -74HC595控制程序

发布者:清新时光最新更新时间:2016-09-05 来源: eefocus关键字:PIC16F72  74HC595  控制程序 手机看文章 扫描二维码
随时随地手机看文章
PIC16F72控制4个74HC595程序

/*************PIC16F72单片机程序******************************/
/*********************************************************************/
/*****File  Function :  74HC595控制程序                  *****/
/*****Program Author :  ZhengWen(ClimberWin)     *****/
/*****MCU            : PIC16F72 外部晶振12MHZ    *****/
/*****Compile Date   :  2011/04/13                       *****/
/*****Edition Info   :  V1.0                                   *****/
/*************************************************************/

#include
#include "binary.h"


#define uchar unsigned char
#define uint unsigned int

 void Init(void);     //初始化子程序
 void LockOut(void);
 void Write(void);   //写8位数据
 void LockOut(void);

 

#define  HC595_SCLK       RB2    //移位时钟脉冲  
#define  HC595_RCK      RB3    //输出锁存器控制脉冲
#define  HC595_SI         RB4    //串行数据输入    
#define  HC595_EN         RB5

uchar temp; 

/*********************************************/  
void delayms(unsigned int count)
{
 uint i,j;
 for(i=0;i  for(j=0;j<120;j++);
}
/*********************************************/ 

/////////////////74HC595部分程序////////////////////////

/********存数据到移位寄存器*******/
void Write(void)   //写8位数据
{
     uchar j;

      for (j=0;j<8;j++)
     {
       
    if  (temp & 0x80) //读取
     {
      HC595_SI=1;
     }
    else
     {
      HC595_SI=0;
     }
      temp=temp<<1;           
      HC595_SCLK=1;                    
      asm("NOP"); 
      asm("NOP"); 
      HC595_SCLK=0;
   LockOut();     //数据移位完毕后锁存输出
     }        
}

/********************************************************/                                               
/*寄存器内的数据锁存到输出寄存器并输出显示*/                                        

 void LockOut(void)
{
    HC595_RCK=0; 
    asm("NOP"); 
    asm("NOP"); 
    HC595_RCK=1;                      
    asm("NOP"); 
    asm("NOP"); 
    HC595_RCK=0;
}
/*********************************************************/

void Init(void)
 { 
     PORTB = 0B00000000;
     TRISB = 0B00000000;//设置RB0为输入,作为按键口
     RBPU=0;//PORTB上拉使能
}


////////////主程序/////////////////////////
void main (void)
{

 uchar i;
 Init();//初始化程序

  PORTB=0XFF;

   HC595_SCLK=0;
   HC595_RCK=1;
   HC595_EN=0;


        temp=0x55; 
     Write();

     temp=0xaa; 
     Write();

     temp=0x01; 
     Write();

           temp=0x22; 
     Write(); 
         while(1);


}

关键字:PIC16F72  74HC595  控制程序 引用地址:PIC16F72 -74HC595控制程序

上一篇:PIC16F72-AT24C02读写
下一篇:PIC16F72 Timer1 使用

推荐阅读最新更新时间:2024-03-16 15:08

ATmega16开发板教程(3)——74HC595驱动数码管显示
4、数码管显示 数码管驱动电路采用2片74HC595芯片进行IO扩展,仅仅只需3Pin即可驱动需要16位引脚的数码管。74HC595是一个8位串行输入、并行输出的位移缓存器。 只有对74HC595的工作原理和时序要了解清楚,才能更好的理解和编程。 工作原理: Ø1、74HC595是串行输入,即将一个字节Byte的数据通过8次以高低电平的形式送到数据引脚DS,且高字节先入,低字节后入,类似于堆栈; Ø2、那么数据什么时候进入呢?需要SCK(SH_CP)时钟上升沿来讲8位bit数据移入到移位寄存器中; 直接编程讲解: 如图,首先假设wei变量=01101001,然后取出最高位,那么&0x80,得到0,那么执行e
[单片机]
ATmega16开发板教程(3)——<font color='red'>74HC595</font>驱动数码管显示
【51单片机快速入门指南】2.4:74HC595、LED点阵屏及其SPI控制
普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 选自《普中51单片机开发攻略_V1.2》 IO 口扩展方式-串转并 使用的芯片是 74HC595。开发板板载 1 个 74HC595 芯片,仅需单片机 3 个 IO 口即可扩展 8 个,如果需要还可以将 2 个 74HC595 级联扩展出 16 个 IO,这就实现用少数 IO 资源控制多个设备。 74HC595 芯片介绍 74HC595 是一个 8 位串行输入、并行输出的位移缓存器,其中并行输出为三 态输出(即高电平、低电平和高
[单片机]
【51单片机快速入门指南】2.4:<font color='red'>74HC595</font>、LED点阵屏及其SPI控制
74HC595驱动8段数码管的程序
//使用STM32F103作为MCU,74HC595驱动8段数码管的程序 #define HC595_OE_H() GPIO_SetBits(GPIOB, GPIO_Pin_12) #define HC595_OE_L() GPIO_ResetBits(GPIOB, GPIO_Pin_12) #define HC595_RCK_H() GPIO_SetBits(GPIOB, GPIO_Pin_13) #define HC595_RCK_L() GPIO_ResetBits(GPIOB, GPIO_Pin_13) #define HC595_SCK_H() GPIO_SetBits(GPIOB, GPIO_Pin_14) #de
[单片机]
单片机步进电机转速控制程序(速度LED显示)
单片机源程序如下: //数码管位 高位-----低位 //四个按键控制步进电机:正转,反转,加1,减1 //上电时电机启动,数码管上显示速度最小档1,加减档位均能通过数码管显示出来,电机采用单双八拍方式 //电机转速一共10档,通过按键调节转速 //电机正转时最高位数码管显示0,反转时显示1 #include reg51.h #define uchar unsigned char #define uint unsigned int #define led P0//数码管段选 #define haha P2 sbit s1 = P1^0; sbit s2 = P1^1; sbit s3 = P3^0; sbit s4 = P
[单片机]
单片机步进电机转速<font color='red'>控制程序</font>(速度LED显示)
两片74HC595级联动态驱动8位数码管 51单片机
功能 : 用2片74HC595驱动8位数码管, 级联的最低1片595控制位选,那么第一片控制段选 时间 : 2013-3-28 21:11:59 作者 : Stone 版本 : REV1 平台 : STC89C52 11.0592MHz 现象 : 8位数码管从第一位开始从0计数,满10进位 版本说明 : 第0版本没有使用定时器中断,同时定义了一个 unsigned long int 变量计数 再把这个数的每位分离出来显示,所以导致有点闪屏,此版本使用定时器中断, 而且没有用 unsigned long int 之类的变量,而是用数组 Val 来计数,
[单片机]
基于STC15W系列的板载LED灯控制程序讲解
前言 Hello,大家好,我是STC15W系列单片机的初学者,很高兴能在这个平台上和大家分享我的学习经验~ 言归正传,现在我们就开始对STC15W4K56S4单片机进行学习吧! 一.对STC15W4K56S4单片机的介绍 本次的学习是以STC15W4K56S4单片机为例子。单片机板载带有两个LED灯,分别为红色和蓝色,对应的引脚是P06(蓝色)和P07(红色)。在本次的实验中我还加入了板载S3开关,也就是P54引脚。通过对两个LED灯和开关的协同控制来完成此次的学习。 二.程序实现开关控制流水灯 普通流水灯的实现很简单,就是对P06和P07两个IO口进行高低电平设置。再加入延时来呈现流水灯的效果。 定义
[单片机]
基于STC15W系列的板载LED灯<font color='red'>控制程序</font>讲解
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved