×
单片机 > 单片机程序设计 > 详情

单片机驱动74HC595的c51程序

发布时间:2020-09-02 发布时间:
|

//该子程序为74HC595发送字符的程序,该程序是先发送的是最低位!
//芯片74HC595的时钟引脚为第11脚
//芯片74HC595的数据引脚为第14脚
//芯片74HC595的锁存引脚为第12脚
//当有多片74HC595串联时,只有当所有数据都发送完成后,再锁存信号!
//同样74hc164与51单片机连接也可以由这个程序来驱动

 

#include
#define uchar unsigned char
#define uint unsigned int 
sbit clk=P3^5;
sbit dat=P3^6;
sbit shuo_cun=P3^7;
uchar volatile e,f;
uchar code tab[]={        0x03,/*0*/
        0x9F,/*1*/
        0x25,/*2*/
        0x0D,/*3*/
        0x99,/*4*/
        0x49,/*5*/
        0x41,/*6*/
        0x1F,/*7*/
        0x01,/*8*/
        0x09,/*9*/
};
void fa_shon(uchar k) //
{
 uchar i; //定义循环变量
  for(i=0;i<8;i++) //因为是1字节是8位,所以循环8次
  {
   dat=k&0x01; //将要发送的数据与上0X01送到数据引脚
   clk=0; //时钟引脚加低电平
   clk=1; //时钟引脚加高电平
   k>>=1; //将发送的数据右移1位
  } 
}

void main()
{
 TMOD=0x01;
 TH0=15535/256;
 TL0=15535%256;
 EA=1;
 ET0=1;
 TR0=1;
 while(1)
 { 
  uchar a;
  for(a=0;a<3;a++)
  {
   fa_shon(tab[e%10]);
   fa_shon(tab[e%100/10]);
   fa_shon(tab[e/100]);
  }
  shuo_cun=0; //锁存为低电平
  shuo_cun=1; //锁存为高电平
 }
}

void tt()interrupt 1
{
 TH0=15535/256;
 TL0=15535%256;
 f++;
 if(f>10)
 {
  f=0;
  e++;
  if(e>250)e=0;
 }
}
关键字:单片机驱动  74HC595  c51程序

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多