基于一种单片机对电机转速测量的程序设计

未知 发表于 2019-12-01 13:58

基于一种单片机对电机转速测量的程序设计

未知 发表于 2019-12-01 13:58
控制/MCU
+关注
#include
#defineucharunsignedchar
#defineuintunsignedint
//定义注册地址8253
基于一种单片机对电机转速测量的程序设计
#defineCOMXBYTE [0x6000] //控制字寄存器地址8253的定义
Definec0xbyte[0x0000]//定义8253的计数器0寄存器地址
#defineC0IXBYTE[0x1000]
SbitP1_7= P1 ^ 7;
uintBUF810;
它是基于电机速度微控制器编程的测量
ucharh,l,a,b,c,sendflag,频率;
//主要功能,初始化定时器和片外寄存器
voidmain(void)
{
EA=1;PT0=1;
ET0=1;
IT0=1;IT1=1;
EX0 = 1; EX1 = 1; ET2 = 1;
T2CON=0x08;
Tmod=0x21;//使用定时器0产生2S中断信号,提供8253计数的门控制。
TH0=-1000/256;
TL0 = -1000% 256;
//从8253r的控制字寄存器中选择计数器0,并设置其初始值0;
COM=0x30;
C0=0;C0=0;
TR0=1;
sendflag=1;
while(1){}
}
/*定时计数器0*的中断服务子程序
voidtimer0 (invalid) interrupt1using1
{
Th0=-1000/256;//定时器T0的高位四位赋值
TL0 = -1000% 256;
FREQ = FREQ + 1; //低四位定时器T0分配
If(freq==1000)//1秒判断
{
FREQ=0;
P1/7/信号输出端口反向/反向/信号输出端口反向
COM = 0×00; // 0计数器锁存操作
L=C0;//分别读取高、低8位数据
h=C0;
BUF810=- (h ≤ 256 l);)
COM=0x30;
C0=0;C0I=0;