hc595.c

来自「51单片机驱动2相步进电机程序。 keil 开发软件。」· C语言 代码 · 共 59 行

C
59
字号
#include  "config.h"
//#include  "HC595.h" 
/***********************************************************/   
#define HC595_DAT   P1_0	 //14脚
#define HC595_CLK   P1_2  	 //11脚
#define HC595_RCLK  P1_1 	 //12脚

#include <INTRINS.H>
#define nop() _nop_();_nop_(); 

bit HC595_SET=1;

unsigned char code tab[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x00,0x40,0x5C};//字码  
//unsigned char code tab[]={0x3F,0x30,0x5B,0x79,0x74,0x6D,0x6F,0x38,0x7F,0x7D,0x00,0x40,0x5C};  //倒转
extern  uint8  	display[];  

 /***********************************************************/
void sendbyte1(unsigned char byte)
{    
	unsigned char num,c; 
	num=~(tab[byte]); 
   for(c=0;c<8;c++)
        {
	         HC595_CLK=0;
	         HC595_DAT=num&0x80;
	         num=num<<1;
	         
	         HC595_CLK=1;
         }  
}  
/***********************************************************/
void out595(void)
{
        HC595_RCLK=0;
        nop();
        HC595_RCLK=1;
} 

/***************************************************************/
//595显示:chu-显示个数。 
/***************************************************************/
//void display_595(uint8 chu) 
void display_595(void) 
{ 
	sendbyte1(display[0] );		 //0 
	sendbyte1(display[5]); 		 //5
	sendbyte1(display[6]);		 //6
	sendbyte1(display[7]);		 //7
	sendbyte1(display[8]);		 //8
 	sendbyte1(display[9]);		 //9 
 	sendbyte1(display[4] );		 //4
 	sendbyte1(display[3] ); 	 //3
	sendbyte1(display[2] );		 //2
 	sendbyte1(display[1] );		 //1  
 
	out595();	  				//锁存
} 
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?