Board logo

标题: 求82c54 用三个计数器同时计数的代码 [打印本页]

作者: lishan0546    时间: 2006-1-16 21:41     标题: 求82c54 用三个计数器同时计数的代码

请教82c54 用三个计数器同时计数的用法或代码

[此贴子已经被作者于2006-1-16 21:41:18编辑过]


作者: 一通百通    时间: 2006-1-17 08:48

给一点提示:

  1)定义控制口地址变量和计数器0高低字节变量

unsigned short U24CtrlPort;
unsigned int i1L, i1H;
//计数器0高低字节变量
并在类的构造函数中赋命令口地址值及初值
usCtrlPort=0x163;
i1L=0;
i1H=0;
  2) 初始化82C54时,给本芯片的控制口地址赋操作命令字并赋初值
Initialize82C54()
{
//在本文中芯片的读写操作均为先读低字节,
再读高字节
_outp(usCtrlPort,0x30);//写命令字
_outp(0x160,0x00); //计数器0赋初值
_outp(0x160,0x00);
}
  3) 用_inp函数读出各地址的值,读数之前先锁存计数值再读数
void Read82C54Data()
{
//锁存82C54计数器的通道
_outp(CtrlPort1,0x00); //锁存82C54计数器0
//读出计数值,先读取低字节,再读取高字节
//读取82C54计数器0
i1L=_inp(0x160);
i1H=_inp(0x160);
_outp(0x160,0x00); //计数器0重赋初值
_outp(0x160,0x00);
}




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0