×
嵌入式开发 > 详情

单片机驱动74HC595的c51程序

发布时间:2020-06-29 发布时间:
|

//该子程序为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;i8;i++) //因为是1字节是8位,所以循环8次
{dat=k0x01; //将要发送的数据与上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;a3;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;}}


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

热门文章 更多
寻找半导体产业未来10年的驱动力