给你个思路吧
要实现亮度调节,建议使用共阳极的点阵,单片机输出PWM控制三极管不断导通关断,进而控制点阵共阳极的供电电压,来控制亮度;
不过AT89S52貌似只能用软件模拟PWM。
个人感觉,要调节亮度有两个简单的办法:一是通过硬件去调节点阵回路中的电阻,但是这个估计有点麻烦;二是通过软件里面改变扫描间隔时间,也是可以调节的,如果这个扫描时间想随时调整,可以在外部弄个可调电阻,再加一个AD采集芯片(89C52本身不带AD),通过采集电阻上的电压变化来实现亮度,这样就可以很方便的随时调节亮度了……给你个参考程序,不过这个是使用的单片机内部AD,但思路是一样的:
这个程序是通过采集外部可变电压来调节延时的……仅供参考……
也可以尝试用软件模拟控制IO产生PWM控制 然后把595想成IO口就可以了。
可能是兼容性问题