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

📄 h5bjdjtest.txt

📁 这是一个DSP5416控制步进电机的程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
#pragma CODE_SECTION(vect,"vect")
unsigned int *pmem=0;
#define IMR    *(pmem+0x0000)
#define IFR    *(pmem+0x0001)
#define PMST   *(pmem+0x001d)
#define SWCR   *(pmem+0x002b)
#define SWWSR  *(pmem+0x0028)
#define CLKMD  *(pmem+0x0058)
#define ST1    *(pmem+0x007)
#define PRD0  *(pmem+0x0025)  /* timer0 period register */
#define TCR0  *(pmem+0x0026)  /* timer0 control register */
#define uchar unsigned char
#define ulong unsigned long
#define uint unsigned int
uchar flag=0x0;
uchar flag1=0x0;
uint count=0x0;
uint count1=0x0;
uint count2=0x0;
uint k=0x0;
ioport    unsigned portc001; //键盘地址
ioport    unsigned port8003; //液晶屏CS1地址读指令
ioport    unsigned port8004; //液晶屏CS1地址写指令
ioport    unsigned port8005; //液晶屏CS1地址写数据 

ioport    unsigned port8000; //液晶屏CS2地址
ioport    unsigned port8001; //液晶屏CS2地址
ioport    unsigned port8002; //液晶屏CS2地址
#define   cs1    port8003
#define   cs1rd  port8004
#define   cs1wd  port8005
#define   cs2    port8000
#define   cs2rd  port8001
#define   cs2wd  port8002

ioport    unsigned port4001; 
#define   zlcs    port4001
ioport    unsigned portc005; //步进电机地址
#define   bjcs    portc005

static const uchar table4[]={
//;--  0  --  **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0x80,0x3F,0x00,0xE0,0xFF,0x01,0xE0,0xFF,0x01,0x70,0x80,0x03,0x10,
0x00,0x02,0x10,0x00,0x02,0x70,0x80,0x03,0xE0,0xFF,0x01,0xE0,0xFF,0x01,0x80,0x3F,
0x00,0x00,0x00,0x00,
//;--  1  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0xE0,
0xFF,0x03,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
//;--  2  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0xC0,0x01,0x03,0xE0,0xC1,0x03,0xF0,0xE1,0x03,0x30,0xF0,0x02,0x10,
0x78,0x02,0x30,0x1C,0x02,0xF0,0x0F,0x02,0xE0,0x07,0x02,0xC0,0x03,0x02,0x00,0x00,
0x00,0x00,0x00,0x00,
///;--  3  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0xC0,0xE0,0x00,0xE0,0xE0,0x01,0xF0,0xE0,0x03,0x30,0x04,0x03,0x10,
0x04,0x02,0x30,0x0E,0x03,0xF0,0xFF,0x03,0xE0,0xFB,0x01,0xC0,0xF1,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
//;--  4  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x3C,0x00,0x00,0x2E,0x00,0x80,0x27,0x00,0xE0,
0x21,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0x00,0x20,0x00,0x00,0x20,
0x00,0x00,0x00,0x00,
//;--  5  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0x00,0xC0,0x00,0xF0,0xC7,0x01,0xF0,0xC7,0x03,0xF0,0x07,0x03,0x10,
0x03,0x02,0x10,0x03,0x03,0x10,0xFF,0x03,0x10,0xFF,0x01,0x10,0xFC,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
//;--  6  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0x80,0x7F,0x00,0xE0,0xFF,0x01,0xE0,0xFF,0x03,0x70,0x06,0x03,0x10,
0x02,0x02,0x30,0x06,0x03,0x70,0xFE,0x03,0x70,0xFC,0x01,0x60,0xF8,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
//;--  7  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x03,0x10,0xE0,0x03,0x10,
0xFC,0x03,0x90,0xFF,0x00,0xF0,0x1F,0x00,0xF0,0x03,0x00,0x70,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
//;--  8  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0xC0,0xF1,0x00,0xE0,0xFB,0x01,0xF0,0xFB,0x03,0x30,0x0E,0x03,0x10,
0x04,0x02,0x10,0x04,0x02,0x30,0x0E,0x03,0xF0,0xFB,0x03,0xE0,0xFB,0x01,0xC0,0xF1,
0x00,0x00,0x00,0x00,
//;--  9  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0xC0,0x87,0x01,0xE0,0x8F,0x03,0xF0,0x9F,0x03,0x30,0x18,0x03,0x10,
0x10,0x02,0x30,0x98,0x03,0xF0,0xFF,0x01,0xE0,0xFF,0x00,0x80,0x3F,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,


//;--  A  --  **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x03,0x00,0xE0,0x03,0x00,0xFC,0x03,0x80,0xFF,0x00,0xF0,0x3F,0x00,0xF0,
0x21,0x00,0xF0,0x3F,0x00,0x80,0xFF,0x00,0x00,0xFC,0x03,0x00,0xE0,0x03,0x00,0x00,
0x03,0x00,0x00,0x00,
//;--  B  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0x10,0x04,0x02,0x10,
0x04,0x02,0x10,0x04,0x02,0x30,0x0E,0x03,0xF0,0xFF,0x03,0xE0,0xFB,0x01,0xC0,0xF1,
0x00,0x00,0x00,0x00,
//;--  C  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0x00,0x7F,0x00,0xC0,0xFF,0x01,0xE0,0xFF,0x01,0x70,0x80,0x03,0x10,
0x00,0x02,0x10,0x00,0x02,0x30,0x00,0x03,0xF0,0xF1,0x03,0xE0,0xF1,0x01,0xC0,0x71,
0x00,0x00,0x00,0x00,
//;--  D  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0x10,0x00,0x02,0x10,
0x00,0x02,0x30,0x00,0x03,0x70,0x80,0x03,0xE0,0xFF,0x01,0xC0,0xFF,0x00,0x80,0x7F,
0x00,0x00,0x00,0x00,
//;--  E  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0x10,0x04,0x02,0x10,
0x04,0x02,0x10,0x04,0x02,0x10,0x04,0x02,0x10,0x04,0x02,0x10,0x00,0x02,0x00,0x00,
0x00,0x00,0x00,0x00,
//;--  F  -- **  黑体, 16  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=12x21,  调整后为: 12x24
0x00,0x00,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0x10,0x08,0x00,0x10,
0x08,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x10,0x00,0x00,0x10,0x00,
0x00,0x00,0x00,0x00,
};
static const uchar table7[]={
//;--  步进电机正转  --  **  楷体_GB2312, 14  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=120x19,  调整后为: 120x24
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x02,0x80,
0x18,0x02,0xF8,0x0E,0x02,0x80,0x00,0x01,0x80,0x00,0x01,0xB7,0x9F,0x00,0x4E,0x41,
0x00,0x48,0x20,0x00,0x48,0x18,0x00,0x44,0x0F,0x00,0x40,0x02,0x00,0x40,0x00,0x00,
0x40,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x40,0x00,0x00,0x21,0x00,0x84,0x24,0x00,0x88,0x3B,0x00,0x80,0x20,0x00,0x00,0x60,
0x00,0x00,0x62,0x00,0x20,0x59,0x00,0xFC,0x87,0x00,0x20,0x81,0x00,0x20,0x81,0x00,
0x7E,0xFF,0x00,0x92,0x80,0x01,0x90,0x80,0x01,0x90,0x80,0x00,0x80,0x80,0x00,0x00,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xC0,0x01,0x00,0x40,0x1F,0x00,0x40,0x08,0x00,0x40,0x09,0x00,0xFE,0x3F,0x00,
0x2E,0xC9,0x00,0x20,0x89,0x00,0x20,0x88,0x00,0x20,0x8C,0x00,0xE0,0x87,0x00,0x60,
0x80,0x00,0x00,0x80,0x00,0x00,0xF0,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x40,0x08,0x00,0x40,0x04,0x00,
0x40,0x03,0x00,0xFE,0xFF,0x01,0x60,0x02,0x00,0x20,0x42,0x00,0x00,0x20,0x00,0x10,
0x1C,0x00,0xE0,0x03,0x00,0x10,0x00,0x00,0x90,0x0F,0x00,0x70,0x30,0x00,0x00,0x60,
0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x80,0x00,0x00,0x40,0x00,0x80,0x40,0x00,0x00,
0x7F,0x00,0x10,0x40,0x00,0x10,0x40,0x00,0x10,0x40,0x00,0xF8,0x7F,0x00,0x28,0x42,
0x00,0x08,0x61,0x00,0x08,0x21,0x00,0x08,0x21,0x00,0x00,0x21,0x00,0x00,0x20,0x00,
0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x30,0x00,0x20,0x17,0x00,0xE0,0x12,0x00,0x30,0x12,0x00,0xAE,0xFF,0x01,0x20,0x09,
0x00,0x10,0x01,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x40,0x5E,0x00,0xE0,0x8B,0x00,
0x3E,0xC9,0x01,0x20,0x29,0x01,0x20,0x19,0x00,0x20,0x09,0x00,0x00,0x01,0x00,0x00,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};

static const uchar table8[]={
//;--  步进电机反转  --  **  楷体_GB2312, 14  **
//; 当前所选字体下一个汉字对应的点阵为:  宽度x高度=120x19,  调整后为: 120x24
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x02,0x80,
0x18,0x02,0xF8,0x0E,0x02,0x80,0x00,0x01,0x80,0x00,0x01,0xB7,0x9F,0x00,0x4E,0x41,
0x00,0x48,0x20,0x00,0x48,0x18,0x00,0x44,0x0F,0x00,0x40,0x02,0x00,0x40,0x00,0x00,
0x40,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x40,0x00,0x00,0x21,0x00,0x84,0x24,0x00,0x88,0x3B,0x00,0x80,0x20,0x00,0x00,0x60,
0x00,0x00,0x62,0x00,0x20,0x59,0x00,0xFC,0x87,0x00,0x20,0x81,0x00,0x20,0x81,0x00,
0x7E,0xFF,0x00,0x92,0x80,0x01,0x90,0x80,0x01,0x90,0x80,0x00,0x80,0x80,0x00,0x00,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xC0,0x01,0x00,0x40,0x1F,0x00,0x40,0x08,0x00,0x40,0x09,0x00,0xFE,0x3F,0x00,
0x2E,0xC9,0x00,0x20,0x89,0x00,0x20,0x88,0x00,0x20,0x8C,0x00,0xE0,0x87,0x00,0x60,
0x80,0x00,0x00,0x80,0x00,0x00,0xF0,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x40,0x08,0x00,0x40,0x04,0x00,
0x40,0x03,0x00,0xFE,0xFF,0x01,0x60,0x02,0x00,0x20,0x42,0x00,0x00,0x20,0x00,0x10,
0x1C,0x00,0xE0,0x03,0x00,0x10,0x00,0x00,0x90,0x0F,0x00,0x70,0x30,0x00,0x00,0x60,
0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x00,0x80,0x00,0x00,0x40,0x00,0x00,0x30,0x00,0x10,0x9E,0x00,0xF0,
0x83,0x00,0x10,0x83,0x00,0x10,0x45,0x00,0x08,0x2D,0x00,0x88,0x38,0x00,0x8C,0x3C,
0x00,0xC6,0x27,0x00,0x84,0x40,0x00,0x00,0xC0,0x00,0x00,0x80,0x01,0x00,0x80,0x01,
0x00,0x80,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x30,0x00,0x20,0x17,0x00,0xE0,0x12,0x00,0x30,0x12,0x00,0xAE,0xFF,0x01,0x20,0x09,
0x00,0x10,0x01,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x40,0x5E,0x00,0xE0,0x8B,0x00,
0x3E,0xC9,0x01,0x20,0x29,0x01,0x20,0x19,0x00,0x20,0x09,0x00,0x00,0x01,0x00,0x00,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};


void cpu_init()             /*初始化DSP*/
{
   asm(" ssbx intm");
   PMST=0xe8;
   SWWSR=0x7fff;
   SWCR=0x0001;
   IMR=0x010c; 
   IFR=0xffff;  
   CLKMD=0x000;
   asm(" rsbx intm"); 
}

void delay100ms()
{int  i,j,k;
for (i=0;i<140;i++)
for (j=0;j<120;j++)
for (k=0;k<20;k++);
}

void delay10ms()
{int  i,j,k;
for (i=0;i<2;i++)
for (j=0;j<2;j++)
for (k=0;k<2;k++);
}

void dicenga(void)     /*片选1的查询函*/
{uchar d;
  d=cs1;
  while(d&0x80==0);
{ d=cs1;}
  delay10ms();
}

void dicengb(void)     /*片选2的查询函数*/
{ uchar d;
  d=cs2;
 while(d&0x80==0);
 { d=cs2;}
 delay10ms();
}

void lcdwc1(uchar dat) /*片选1的写控制?*/
{
dicenga();
cs1rd=dat;
delay10ms();
}

void lcdwc2(uchar dat)  /*片选2的写控制字函数*/
{
dicengb();
cs2rd=dat;
delay10ms();
}

void lcdwd1(uchar dat)  /*片选1的写数据函数*/
{
dicenga();
cs1wd=dat;
delay10ms();
zlcs=0x0;
}

void lcdwd2(uchar dat)  /*片选2的写数据函数*/
{
dicengb();
cs2wd=dat;
delay10ms();
zlcs=0x0;
}

void lcdreset(void)   /*lcd reset */
{uchar dat;
 dat=0x3f;
 lcdwc1(dat);
 lcdwc2(dat);
 dat=0xc0;
 lcdwc1(dat);
 lcdwc2(dat);
}

void lcdwd(uchar dat,uchar ypos,uchar xpos)  /* lcd write data*/
{
uchar bbb;
bbb=dat;
dat=xpos;
if(dat<64)
   {
dat=bbb;
 lcdwd1(dat);
    }
else
   {
dat=bbb;
  lcdwd2(dat);
   }
}

void lcdpos(uchar ypos,uchar xpos)
{
uchar bbb;
bbb=xpos;
if(bbb<64)
  {
bbb=ypos;
bbb=bbb&0x07;
bbb=bbb+0x0B8;
lcdwc1(bbb);
bbb=xpos;
bbb=bbb&0x3f;
bbb=bbb+0x40;
lcdwc1(bbb);
   }
else
    {
bbb=ypos;
bbb=bbb&0x07;
bbb=bbb+0x0b8;
lcdwc2(bbb);
bbb=xpos;
bbb=bbb&0x3F;
bbb=bbb+0x40;
lcdwc2(bbb);
   }
}

⌨️ 快捷键说明

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