《74HC595驱动数码管上显示数字》由会员分享,可在线阅读,更多相关《74HC595驱动数码管上显示数字(2页珍藏版)》请在金锄头文库上搜索。
1、连接方法:JP12用条线冒短接JP3和JP2用8PIN排线连接*通过本例程了解74HC595(串入并出)基本原理和使用*请学员认真消化本例程,懂74C595在C语言中的操作*#include#include#defineNOP()_nop_()/*定义空指令*/SPIIOsbitMOSIO=P3A4;串行数据线sbitR_CLK=P3A5;数据并行输出控制sbitS_CLK=P3A6;串行时钟线voiddelay(unsignedinti);/函数声名voidHC595SendData(unsignedcharSendVal);/函数声名/此表为LED的字模/0123456789AbcdE-L
2、PUHidden_(20)unsignedcharcodeLED7Code=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71;main()unsignedcharHC595SendVal;unsignedintLedNumVal=1;while(1)LedNumVal+;HC595SendVal=LED7CodeLedNumVal%16;LED7;显示0-FLedNumVal%10显示0-9HC595SendData(HC595SendVal);/调用595驱动函数delay(200)
3、;voiddelay(unsignedinti)unsignedintj;for(i;i0;i-)/CPU循环执行i*300次for(j=300;j0;j-);*函数名称:HC595SendData*功能描述:向SPI总线发送数据voidHC595SendData(unsignedcharSendVal)unsignedchari;for(i=0;i8;i+)if(SendVali)&0x80)MOSIO=1;/setdatalinehigh0X80最高位与SendVal左移的最高位进行逻辑运算elseMOSIO=0;/如果为真MOSIO=1S_CLK=0;NOP();/短暂延时产生一定宽度的脉冲信号NOP();/短暂延时S_CLK=1;R_CLK=0;/setdatalinelowNOP();/短暂延时NOP();/短暂延时R_CLK=1;/