⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8254_a.c

📁 应用373进行地址锁存的操作8254的源代码
💻 C
字号:
#include "8254_A.h"
#include "Delay_T0.h"

/*

06.05.13完成了计数器的工作,开始扩展两片
计数器采用ReadBack命令,



CLK0----10M
,65536*0.1US
CLK1----OUT0中间接74ls04反相器
373锁存
A0			Q0
A1			Q1
CS_A		Q2
CS_B		Q3


要做的有以下工作

*/



#define C0_A XBYTE[0x08]
#define C1_A XBYTE[0x09]
#define C2_A XBYTE[0x0A]
#define CW_A XBYTE[0x0B]


extern tWord  idata	Buff_8254_A[3];
extern tByte  idata	Status_8254_A[3];




tByte Get8254_DATA_A(tByte xdata  *p0)
{

	tByte Rst;
	Rst	=*p0;
	return Rst;
	
}

// 读取状态,计数值,
void GetAll_A(void)
{
	tByte high,low;
	EA=0;

	CW_A=0XC8;

	Status_8254_A[2]=Get8254_DATA_A(&C2_A);
	low				=Get8254_DATA_A(&C2_A);
	high			=Get8254_DATA_A(&C2_A);
	Buff_8254_A[2]	=high*0x100+low;

	CW_A=0XC4;
	Status_8254_A[1]=Get8254_DATA_A(&C1_A);
	low				=Get8254_DATA_A(&C1_A);
	high			=Get8254_DATA_A(&C1_A);
	Buff_8254_A[1]	=high*0x100+low;

	CW_A=0XC2;
	Status_8254_A[0]=Get8254_DATA_A(&C0_A);
	low				=Get8254_DATA_A(&C0_A);
	high			=Get8254_DATA_A(&C0_A);
	Buff_8254_A[0]	=high*0x100+low;

	EA=1;
}
void Init_8254_A(void)
{

	CW_A=0X34;

	CW_A=0X74;

	CW_A=0XB4;

	C0_A=0X00;
	C1_A=0XFF;
	C2_A=0X00;
	
	C0_A=0X00;
	C1_A=0XFF;
	C2_A=0X00;

}

tLong  Get_A(void)
{
	tLong Rst;
	GetAll_A();

	_nop_();
//	Init_8254_A();

	if(Status_8254_A[1]==0xF4)//C1无效。
		Rst=0x10000-Buff_8254_A[0];
	if(Status_8254_A[1]==0xB4)//C1有效。
		Rst=(0XFFFF-Buff_8254_A[1])*0X10000+0X10000-Buff_8254_A[0]+0x10000;
	return Rst;

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -