#include <pic18.h>
#include <math.h>
#define DIR RD0
#define HAS RE7
#define HCS RE6
#define HDS1 RE0
#define HDS2 RE1
#define HCNTL0 RE2
#define HCNTL1 RE3
#define HBIL RE4
#define HRW RE5
void HPI_init(void);
void HPI_Write_add(unsigned int add1);
void HPI_Write_dat(unsigned int dat1_write);
unsigned int HPI_Read(void);
void delay(unsigned int temp);
unsigned int dspda1,dspda2;
unsigned long temp1;
void main(void)
{
unsigned int i=0;
//TRISC= 0x80;
//TRISC6=0;
ADCON1= 0x0f;
CMCON= 0x07;
TRISD0= 0;
TRISE= 0x00;
HPI_init();
HPI_Write_add(0x0801);
HPI_Write_dat(0x3824);
HPI_Write_add(0x0801);
asm("nop");
i= HPI_Read();
HPI_Write_add(0x0803);
HPI_Write_dat(i);
asm("nop");
asm("nop");
while(1){
asm("nop");}
}
void delay(unsigned int temp)
{
unsigned int i;
for(i=0;i<temp;i++)
asm("nop");
}
/*********/
/*HPI通讯*/
/*********/
void HPI_init(void)
{
DIR= 0;
TRISF= 0x00;
HCS= 0;
HDS2=1;
HAS=1;
HBIL= 0; //写控制命令
HRW= 0;
HCNTL1= 0;
HCNTL0= 0;
HDS1= 1;
PORTF= 0x08;
HDS1=0;//
HDS1=1;
HBIL= 1;
HDS1= 1;
PORTF= 0x08;
HDS1= 0;
HDS1= 1;
}
void HPI_Write_add(unsigned int add1)
{
DIR= 0;
TRISF= 0x00;
HBIL= 0; ////写地址
HRW= 0;
HCNTL1= 1;
HCNTL0= 0;
HDS1= 1;
PORTF= add1/256;
HDS1=0;//
HDS1=1;
HBIL= 1;
HDS1= 1;
PORTF= add1&0xff;
HDS1= 0;
HDS1= 1;
}
void HPI_Write_dat(unsigned int dat1_write)//,unsigned int dat2_write)
{
DIR= 0;
TRISF= 0x00;
HBIL= 0; //写数据
HRW= 0;
HCNTL1= 1;
HCNTL0= 1;
HDS1= 1;
PORTF= dat1_write/256;
HDS1=0;//
HDS1=1;
HBIL= 1;
HDS1= 1;
PORTF= dat1_write&0xff;
HDS1= 0;
HDS1= 1;
}
unsigned int HPI_Read(void)
{
unsigned int dspdata;
DIR=1; //读数据
TRISF= 0xff;
HDS1= 1;
HRW= 1;
HDS1= 1;
HBIL= 0;
HCNTL1= 0;
HCNTL0= 1;
HDS1= 0;
dspda1=PORTF;
HDS1=1;
HDS1= 1;
HBIL= 1;
HDS1= 0;
dspda2=PORTF;
HDS1= 1;
dspdata=dspda1*256+dspda2;
return(dspdata);
}
HPI.rar_XXX18_hpi
版权申诉
9 浏览量
2022-09-24
14:46:31
上传
评论
收藏 773B RAR 举报
小波思基
- 粉丝: 74
- 资源: 1万+
评论0