2009-06-28 星期天晴:编写程序对3组电源进行控制,程序无法实现P0.0~P0.3的输出发生变化。电源也就无法控制。通过查阅AT89C51AC2的说明书,发现P0的上拉电阻只有在存储器写周期才发挥作用。需要用锁存器才能锁定P0的输出。于是将P0.0~P0.3到电源控制插座的走线全部割断,更改成P1.4~P1.7的输出作为电源控制信号。通过走4根飞线将P1.4~P1.7的输出连接到电源控制插座上。修改程序后进行测试,发现P1.4~P1.7的输出正常,可以正常控制三组电源工作。
之后编程序通过中断INT0和INT1触发电源的开和关。测试发现INT0可以实现电源导通,但INT1导致整个程序死机,并且按下电源开按钮不放时串口停止输出。再一次查阅AT89C51AC2的说明书,将中断改成下降沿触发模式。串口输出停止的问题得到解决。但INT1导致死机的问题还是存在。对说明书进一步查阅,发现问题出在中断号上。INT0和INT1的中断号分别是0和2。而我弄成了1和3。中断号修改后电源可以正常控制了。很奇怪的是刚开始中断号根本就不对,为什么程序可以响应INT0和INT1中断?
https://m.sciencenet.cn/blog-39626-241374.html
上一篇:
智能电源板调试与编程日记(4)下一篇:
智能电源板照片与功能说明