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 + -
显示快捷键?