非常感谢大家的积极帮助和建议,我在这边把我的结果奉上:
|
zhuls 发表于 2023-10-13 17:06 很感谢你的建议 |
殿堂之上 发表于 2023-10-14 09:52 有用无用不是纸上谈兵,实际试看就知道了。而且,鉴赏也需要会,这个代码其实未优化,也是很有意思的,能同步却也能完成16灯。 |
xianfajushi 发表于 2023-10-13 17:12 这个SY,MY好像都没啥作用啊 |
595的SDA数据是在SCK的上升沿才锁存的,所以,你把SMG_Write_Byte 中的SCL=1;SCL=0调一下? //595送出串行数据 void send_595(char dat) //595发送1字节数据 { char count1; //位计数器,单字节为8位 for (count1=8;count1>0;count1--) { hc595_sda=dat & 0x01; //取最低位数据做为串行数据位,低位先发,若高位先发,则dat & 0x80 hc595_sck=0; //置SCK为低 Delay10us(); //延时 hc595_sck=1; //置SCK为高 Delay10us(); //延时,输出一个位的数据 dat>>=1; //数据右移,下一个位的数据,若高位先发则dat<<=1 } } |
aide51 发表于 2023-10-13 12:26 74HC595级联的数码管是一个成品模块;不存在问题;引脚的设置,也没有问题。 |
xianfajushi 发表于 2023-10-13 14:04 我也感觉是void SMG_Write_Byte (u8 dat,u8 dat1)这段代码里出现问题了,因为这个是我STM32里用过的,移植修改的,结果出现了乱码。感谢你的建议,后面会按照你的想法测试一下。 |
dj3365191 发表于 2023-10-13 10:06 iDesigner4.1这个软件,国产的MCU,想学习学习 |
595这么友善的器件,一般是不会有问题的,即使有问题,单步跟踪一下,基本上就能排除问题了。 |
代码中用发送8个数据为一次,发送16个数据分为2次发送8个数据即可。 |
这个软件还真没用过,不过数码管显示乱,可能是引脚和程序不对,数码管真值不对等等,要先查查硬件电路 |
东软的软件是什么软件? |
void SMG_Write_Byte (u8 dat,u8 dat1)有错误 |