📄 dspdemo.c
字号:
#include <Reg52.h>
#include <absacc.h>
#include <stdio.h>
#include <intrins.h>
#include <dspcode.h>
#define uint unsigned int
#define uchar unsigned char
#define HPICL XBYTE[0xe000]
#define HPICH XBYTE[0xe100]
#define WR_HPIL0_D XBYTE[0xe200]
#define WR_HPIH0_D XBYTE[0xe300]
#define WR_HPIL_A XBYTE[0xe400]
#define WR_HPIH_A XBYTE[0xe500]
#define WR_HPIL1_D XBYTE[0xe600]
#define WR_HPIH1_D XBYTE[0xe700]
#define RD_HPIL0_D XBYTE[0xeA00]
#define RD_HPIH0_D XBYTE[0xeB00]
#define RD_HPIL1_D XBYTE[0xeE00]
#define RD_HPIH1_D XBYTE[0xeF00]
sbit NRST =P1^2;
sbit LED =P1^0;
void delay(uint wu)
{
for(wu;wu>0;wu--);
}
void led_light()
{
delay(30000);
LED=~LED;
delay(30000);
LED=~LED;
delay(30000);
LED=~LED;
delay(30000);
LED=~LED;
}
void main()
{
uchar code *dspptr,*temp;
uchar len;
char i;
uint addr;
NRST=0;
delay(100);
NRST=1;
delay(100);
HPICL=0x08;
HPICH=0x08;
led_light();
dspptr=dspcode;
while(1)
{
len=*dspptr++;
if(len==0) break;
else
{
addr=((*dspptr++)*256)+(*dspptr++);
addr--;
temp=dspptr;
again:
WR_HPIL_A=addr/256;
WR_HPIH_A=addr%256;
for(i=0;i<len/2;i++)
{
WR_HPIL0_D=*dspptr++;
WR_HPIH0_D=*dspptr++;
}
dspptr=temp;
addr++;
WR_HPIL_A=addr/256;
WR_HPIH_A=addr%256;
for(i=0;i<len/2;i++)
{
if(RD_HPIL0_D!=*dspptr++) goto again;
if(RD_HPIH0_D!=*dspptr++) goto again;
}
}
}
WR_HPIL_A=0x00;
WR_HPIH_A=0x7f;
WR_HPIL1_D=0x00;
WR_HPIH1_D=0x80;
while(1) led_light();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -