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

📄 lesson12.lst

📁 天祥的所有pic 源程序
💻 LST
字号:
     1: #include<pic.h>

     2: #define uchar unsigned char

     3: #define uint  unsigned int

     4: #define add 0xaa

     5: __CONFIG(0x3B31);

     6: const uchar ee_data[]={1,2,3,4,5,6};

     7: uchar read_data[6];

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

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

    10: void delay(uint x);

    11: void init();

    12: void didi(uchar num);

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

    14: void write();

    15: void read();

    16: void main()

    17: {

    18:         init();

    19:         write();

    20:         delay(100);

    21:         read();

    22:         while(1)

    23:         {

    24:                 disp(read_data[0],read_data[1],read_data[2],read_data[3],read_data[4],read_data[5]);

    25:         }       

    26: }

    27: void delay(uint x)

    28: {

    29:         uint a,b;

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

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

    32: }

    33: void init()

    34: {

    35:         TRISD=0;

    36:         TRISA=0;

    37:         TRISE0=0;

    38: //      ADCON1=0x07;

    39:         RE0=0;

    40:         PORTD=0;

    41:         PORTA=0;

    42:         TRISC=0xff;

    43:         SSPSTAT=0x80;

    44:         SSPCON=0x38;

    45:         SSPCON2=0;

    46:         SSPADD=0x09;

    47: }

    48: void write()

    49: {

    50:         uchar i;

    51:         SSPIF=0;

    52:         SEN=1;

    53:         while(!SSPIF);

    54:         SSPIF=0;

    55:         SSPBUF=0xA0;

    56:         while(!SSPIF);

    57:         SSPIF=0;

    58:         SSPBUF=add;

    59:         while(!SSPIF);

    60:         SSPIF=0;

    61:         for(i=0;i<6;i++)

    62:         {

    63:                 SSPBUF=ee_data[i];

    64:                 while(!SSPIF);

    65:                 SSPIF=0;

    66:         }

    67:         PEN=1;

    68:         while(!SSPIF);

    69:         SSPIF=0;

    70: }

    71: void read()

    72: {

    73:         uchar i;

    74:         SSPIF=0;

    75:         SEN=1;

    76:         while(!SSPIF);

    77:         SSPIF=0;

    78:         SSPBUF=0xA0;

    79:         while(!SSPIF);

    80:         SSPIF=0;

    81:         SSPBUF=add;

    82:         while(!SSPIF);

    83:         SSPIF=0;

    84:         SSPIF=0;

    85:         RSEN=1;

    86:         while(!SSPIF);

    87:         SSPIF=0;

    88:         SSPBUF=0xA1;

    89:         while(!SSPIF);

    90:         SSPIF=0;

    91:         for(i=0;i<6;i++)

    92:         {

    93:                 RCEN=1;

    94:                 while(!SSPIF);

    95:                 read_data[i]=SSPBUF;

    96:                 while(!SSPIF);

    97:                 SSPIF=0;

    98:                 if(i>=5)

    99:                 {

   100:                         ACKDT=1;

   101:                 }

   102:                 else

   103:                 {

   104:                         ACKDT=0;        

   105:                 }

   106:                 ACKEN=1;

   107:                 while(!SSPIF);

   108:                 SSPIF=0;                

   109:         }

   110:         PEN=1;

   111:         while(!SSPIF);

   112:         SSPIF=0;

   113: }

   114: void didi(uchar num)

   115: {

   116:         uchar di_num;

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

   118:         {

   119:                 RE0=1;

   120:                 delay(50);

   121:                 RE0=0;

   122:                 delay(20);

   123:         }

   124: }

   125: 

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

   127: {

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

   129:         PORTA=0x20;//0010 0000

   130:         delay(2);

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

   132:         PORTA=0x10;//0001 0000

   133:         delay(2);

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

   135:         PORTA=0x08;//0000 1000

   136:         delay(2);

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

   138:         PORTA=0x04;//0000 0100

   139:         delay(2);

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

   141:         PORTA=0x02;//0000 0010

   142:         delay(2);

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

   144:         PORTA=0x01;//0000 0001

   145:         delay(2);

   146: }

⌨️ 快捷键说明

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