单片机晶振12MHz,因此下面函数中,没有做延时处理. m82c54WR的作用是写控制字,写初值. 82c54有三路16位计数器,分别为计数器0,1,2 现在遇到的问题是,计数器0 计数器1完全正常计数,而计数器2不正常,个人猜测可能初值没有被写入的几率比较大(不确定). 即使单独测试三路计数器,结果依然一样,依然是计数器2不正常. 以下是Main代码: - //初始化略过
- //写控制字
- m82c54WR(1,1,0X16);//计数器0方式3
- m82c54WR(1,1,0X56);//计数器1方式3
- m82c54WR(1,1,0X96);//计数器2方式3
- //写初值
- m82c54WR(0,0,0x04);
- m82c54WR(0,1,0x04);
- m82c54WR(1,0,0x04);
复制代码
以下是电路图和时序图:
|