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

📄 x3c.c

📁 一个基于LPC935的步进电机细分驱动程序
💻 C
字号:
//测试双通道对比双DPTR----okey
#include <reg51.h>
//#include<tabb.h>
#include <hex_bin.H>
#include<intrins.h>
#pragma optimize(9,speed)
#define	uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define NOP	_nop_();
#define	DAPORT P1	//DA51
sbit	CP=P3^2;//INT0--51
sbit	LOCK=P2^5;
sbit	A_B=P2^6;
sbit	WWR=P2^7;
uchar code * data tabpa1;//CP输出时的数组指针	A相
uchar code * data tabpb1;//CP输出时的数组指针	B相
uchar	data	m;
uchar	data	outa;
uchar	data	outb;
bit	bdata	cp_b;
void init(void);
uchar code tab12[]={//12--0010
0x80,0xBF,0xEE,0xFF,0xEE,0xBF,0x80,0x40,0x11,0x0,
0x11,0x3F,0x7F};
uchar code tabb12[]={//12--0010
0xEE,0xBF,0x80,0x40,0x11,0x0,0x11,0x40,0x7F,0xBF,
0xEE,0xFF,0xEE};
uchar code tab24[]={//24--0101
0x80,0xA0,0xBF,0xDA,0xEE,0xFB,0xFF,0xFB,0xEE,0xDA,
0xBF,0xA1,0x80,0x5F,0x40,0x26,0x11,0x4,0x0,0x4,
0x11,0x25,0x3F,0x5E,0x7F};
uchar code tabb24[]={//24--0101
0xEE,0xDA,0xBF,0xA1,0x80,0x5F,0x40,0x25,0x11,0x4,
0x0,0x4,0x11,0x25,0x40,0x5E,0x7F,0xA0,0xBF,0xD9,
0xEE,0xFB,0xFF,0xFB,0xEE};
uchar data t1_h1;//本次插值定时器
uchar data t1_l1;
uchar data t1_h2;//下次插值定时器
uchar data t1_l2;
uchar data th0_o;//旧的计数值
uchar data tl0_o;
//**********************************************************
void main(void)
{
	init();//定时器和外部中断初始化,以及A相B相端口的初始值
	tabpa1=tab12;
	tabpb1=tabb12;
	m=0;
	outa=*tabpa1;
	outb=*tabpb1;
	cp_b=0;
	EA=1;
	while(1)
	{
		//cp_b=1;//****测试用
		if(cp_b)
		{
			cp_b=0;
			if(++m==12)
			{
				m=0;
				tabpa1=tab12;
				outa=*tabpa1;
				tabpb1=tabb12;
				outb=*tabpb1;
			}
			else
			{
				outa=*(++tabpa1);
				outb=*(++tabpb1);
			}
		}
	}
}

//**********************************************************
void init(void)//
{
	A_B=0;
	DAPORT=0x80;
	NOP;
	WWR=0;WWR=1;//A相
	A_B=0;DAPORT=0xEE;WWR=0;WWR=1;//A相
	IT0=1;EX0=1;//INT0下降沿--cp
}

//**********************************************************
void 	pix0(void) interrupt 0//----cp---INT0
{
	A_B=0;DAPORT=outa;WWR=0;WWR=1;
    A_B=0;DAPORT=outb;WWR=0;WWR=1;
    cp_b=1;
    TR0=0;
	th0_o=TH0;//保存本次CP脉宽
	tl0_o=TL0;
	TH0=0;
	TL0=0;
	TR0=1;//开启T0开始测
}

⌨️ 快捷键说明

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