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

📄 lesson11.lst

📁 PIC单片机内部SPI通信接口的使用方法(与93c46EEPROM接口)
💻 LST
字号:
     1: #include<pic.h>

     2: #define uchar unsigned char

     3: #define uint  unsigned int

     4: #define cs RC2

     5: #define dout RC4

     6: #define nop() asm("nop")

     7: __CONFIG(0x3B31);

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

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

    10: uchar data_temp;

    11: void delay(uint x);

    12: void init();

    13: void didi(uchar num);

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

    15: void comm(uchar data);

    16: uchar read(uchar add);

    17: void write(uchar add,uchar wdata);

    18: void write_enable();

    19: void main()

    20: {

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

    22:         init();

    23: //      write_enable();

    24: //      for(i=6;i>0;i--)

    25: //      {

    26:         //      write_enable();

    27: //              write(i,i);

    28: //      }

    29:         a1=read(1);

    30:         a2=read(2);

    31:         a3=read(3);

    32:         a4=read(4);

    33:         a5=read(5);

    34:         a6=read(6);

    35:         while(1)

    36:         {

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

    38:         }       

    39: }

    40: void delay(uint x)

    41: {

    42:         uint a,b;

    43:         for(a=x;a>0;a--)

    44:                 for(b=110;b>0;b--);

    45: }

    46: void init()

    47: {

    48:         TRISD=0;

    49:         TRISA=0;

    50:         TRISC=0x10;//00010000

    51:         TRISE0=0;

    52:         SSPSTAT=0x80;

    53:         SSPCON=0x32;

    54:         cs=0;

    55: }

    56: 

    57: void write_enable()

    58: {

    59:         cs=1;

    60:         nop();

    61:         comm(0x02);

    62:         comm(0x60);

    63:         cs=0;   nop();  nop();

    64: }

    65: 

    66: void write(uchar add,uchar wdata)

    67: {

    68:         cs=1;

    69:         nop();

    70:         comm(0x02);

    71:         comm(add|0x80);

    72:         comm(wdata);

    73:         cs=0;

    74:         nop();  nop();

    75:         cs=1;   nop();  nop();

    76:         while(!dout);

    77:         cs=0;   nop();  nop();

    78: //      PORTD = 0Xff;

    79: //      PORTA = 0Xff;

    80: }

    81: 

    82: uchar read(uchar add)

    83: {

    84:         uchar rtemp;

    85:         cs=1;

    86:         nop();

    87:         comm(0x03);

    88:         comm(add);

    89:         comm(0);

    90:         cs=0;

    91:         rtemp=data_temp;

    92:         return (rtemp);

    93: }

    94: void comm(uchar data)

    95: {

    96:         SSPBUF=data;

    97:         while(!SSPIF);

    98:         SSPIF=0;

    99:         data_temp=SSPBUF;

   100: }

   101: 

   102: void didi(uchar num)

   103: {

   104:         uchar di_num;

   105:         for(di_num=num;di_num>0;di_num--)

   106:         {

   107:                 RE0=1;

   108:                 delay(50);

   109:                 RE0=0;

   110:                 delay(20);

   111:         }

   112: }

   113: 

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

   115: {

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

   117:         PORTA=0x20;//0010 0000

   118:         delay(2);

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

   120:         PORTA=0x10;//0001 0000

   121:         delay(2);

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

   123:         PORTA=0x08;//0000 1000

   124:         delay(2);

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

   126:         PORTA=0x04;//0000 0100

   127:         delay(2);

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

   129:         PORTA=0x02;//0000 0010

   130:         delay(2);

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

   132:         PORTA=0x01;//0000 0001

   133:         delay(2);

   134: }

⌨️ 快捷键说明

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