HC6800-ES-V2.0 发表于 2018-12-15 00:01 你有这个板子的电子钟(C语言)的程序没有?只要求能调节时间就可以 |
file:///C:/Users/Administrator/Desktop/595-2-seg.gif |
595-2-seg.gif (63.98 KB, 下载次数: 93)
48.24 KB, 下载次数: 17
74hc595是串入并出的芯片,利用51单片机模拟串行接口使用,简单使用如下 sbit data_595 = P3^4; sbit clk_595 = P3^6; sbit LATCH_595 = P3^5; void wr_bits(uchar num) { uchar i; for(i=0;i<8;i++) { if(num&0x80) //′ó¸ßλËí data_595 =1; else data_595 =0; clk_595 =0; _nop_(); clk_595 =1; //½«êy¾YD′èë595 num<<=1; //Ïò×óòƶˉò»Î» } LATCH_595=0; _nop_(); LATCH_595=1;//éÏéyÑØËø′æ } void main() { while(1) wr_bits(0xfe); } |
jefelee 发表于 2018-12-15 08:22 能给我写段程序看看吗?就点亮两个灯就可以 |
看一下这段程序 void led(u16 dat) { u8 a; SRCLK=0; RCLK=0; for(a=0;a<8;a++) { SER=dat>>7; dat<<=1; SRCLK=1; _nop_(); _nop_(); SRCLK=0; } RCLK=1; _nop_(); _nop_(); RCLK=0; } |
1. 打开百度 2. 搜对应的数据手册 3. 仔细看数据手册 4. 可以开始画流程图了 5. 写程序 6. 测试 适用所有外围电路 |
哈哈哈,你发的问题,正是我有的板子,程序也有啊。 #include<reg51.h> #include<intrins.h> sbit SRCLK=P3^6; sbit RCLK=P3^5; sbit SER=P3^4; void Hc595SendByte(unsigned char dat); void Delay10ms(unsigned int ) ; void main() { unsigned char ledNum; ledNum=0xfe; while(1) { Hc595SendByte(ledNum); ledNum=_cror_(ledNum,1); Delay10ms(50); } } /******************************************************************************* * 函数名 : Hc595SendByte(unsigned char dat) * 函数功能 : 想74H595发送一个字节的数据 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void Hc595SendByte(unsigned char dat) { unsigned char a; SRCLK=0; RCLK=0; for(a=0;a<8;a++) { SER=dat>>7; dat<<=1; SRCLK=1; _nop_(); _nop_(); SRCLK=0; } RCLK=1; _nop_(); _nop_(); RCLK=0; } /******************************************************************************* * 函数名 : Delay10ms * 函数功能 : 延时函数,延时10ms * 输入 : c * 输出 : 无 *******************************************************************************/ void Delay10ms(unsigned int c) //误差 0us { unsigned char a,b; for(;c>0;c--) for(b=38;b>0;b--) for(a=130;a>0;a--); } 注意:需要将JOE跳线帽J13接GND,595模块的JP595跳线帽J14接上,595的LED才会亮!! |