74HC595驱动数码管上显示数字

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*******************************************************************************

* 标题: 试验74HC595驱动数码管上显示数字(C语言)*

连接方法:JP12用条线冒短接JP3和JP2 用8PIN排线连接

********************************************************************************

* 通过本例程了解74HC595(串入并出)基本原理和使用*

请学员认真消化本例程,懂74C595在C语言中的操作*

********************************************************************************/

#include

#include

#define NOP() _nop_() /* 定义空指令*/

//SPI IO

sbit MOSIO =P3^4; //串行数据线

sbit R_CLK =P3^5; //数据并行输出控制

sbit S_CLK =P3^6; //串行时钟线

void delay(unsigned int i); //函数声名

void HC595SendData(unsigned char SendV al); //函数声名

// 此表为LED 的字模// 0 1 2 3 4 5 6 7 8 9 A b c d E - L P U Hidden _ (20) unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};

main()

{ unsigned char HC595SendVal;

unsigned int LedNumVal = 1;

while(1)

{

LedNumVal++;

HC595SendVal = LED7Code[LedNumV al%16]; //LED7;显示0-F LedNumVal%10 显示0-9

HC595SendData(HC595SendVal); //调用595驱动函数

delay(200);

}

}

/*******************延时函数************/

void delay(unsigned int i)

{

unsigned int j;

for(i; i > 0; i--) //CPU循环执行i*300次

for(j = 300; j > 0; j--);

}

/********************************************************************************************************* ** 函数名称: HC595SendData

** 功能描述: 向SPI总线发送数据

*********************************************************************************************************/ void HC595SendData(unsigned char SendV al)

{

unsigned char i;

for(i=0;i<8;i++)

{

if((SendVal<

else MOSIO=0; // 如果为真MOSIO = 1

S_CLK=0;

NOP(); //短暂延时产生一定宽度的脉冲信号

NOP(); //短暂延时

S_CLK=1;

}

R_CLK=0; //set dataline low

NOP(); //短暂延时

NOP(); //短暂延时

R_CLK=1; //

}

相关文档
最新文档