PIC单片机SPI通信的设计

来源:本站
导读:目前正在解读《PIC单片机SPI通信的设计》的相关信息,《PIC单片机SPI通信的设计》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《PIC单片机SPI通信的设计》的详细说明。

#include

#define uchar unsigned char

#define uint unsigned int

#define cs RC2

#define dout RC4

#define nop() asm(“nop”)

__CONFIG(0x3B31);

const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

uchar data_temp;

void delay(uint x);

void init();

void didi(uchar num);

void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6);

void comm(uchar data);

uchar read(uchar add);

void write(uchar add,uchar wdata);

void write_enable();

void main()

{

uchar a1,a2,a3,a4,a5,a6,i;

init();

//write_enable();

//for(i=6;i》0;i--)

//{

//write_enable();

//write(i,i);

//}

a1=read(1);

a2=read(2);

a3=read(3);

a4=read(4);

a5=read(5);

a6=read(6);

while(1)

{

disp(a1,a2,a3,a4,a5,a6);

}

}

void delay(uint x)

{

uint a,b;

for(a=x;a》0;a--)

for(b=110;b》0;b--);

}

void init()

{

TRISD=0;

TRISA=0;

TRISC=0x10;//00010000

TRISE0=0;

SSPSTAT=0x80;

SSPCON=0x32;

cs=0;

}

PIC单片机SPI通信的设计

void write_enable()

{

cs=1;

nop();

comm(0x02);

comm(0x60);

cs=0;nop();nop();

}

void write(uchar add,uchar wdata)

{

cs=1;

nop();

comm(0x02);

comm(add|0x80);

comm(wdata);

cs=0;

nop();nop();

cs=1;nop();nop();

while(!dout);

cs=0;nop();nop();

}

uchar read(uchar add)

{

uchar rtemp;

cs=1;

nop();

comm(0x03);

comm(add);

comm(0);

cs=0;

rtemp=data_temp;

return (rtemp);

}

void comm(uchar data)

{

SSPBUF=data;

while(!SSPIF);

SSPIF=0;

data_temp=SSPBUF;

}

void didi(uchar num)

{

uchar di_num;

for(di_num=num;di_num》0;di_num--)

{

RE0=1;

delay(50);

RE0=0;

delay(20);

}

}

void disp(uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6)

{

PORTD=table[num1];//显示第一个数码管

PORTA=0x20;//0010 0000

delay(2);

PORTD=table[num2];//显示第二个数码管

PORTA=0x10;//0001 0000

delay(2);

PORTD=table[num3];//显示第三个数码管

PORTA=0x08;//0000 1000

delay(2);

PORTD=table[num4];//显示第四个数码管

PORTA=0x04;//0000 0100

delay(2);

PORTD=table[num5];//显示第五个数码管

PORTA=0x02;//0000 0010

delay(2);

PORTD=table[num6];//显示第六个数码管

PORTA=0x01;//0000 0001

delay(2);

}

提醒:《PIC单片机SPI通信的设计》最后刷新时间 2024-03-14 00:51:21,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《PIC单片机SPI通信的设计》该内容的真实性请自行鉴别。