lesson6.lst

来自「PIC单片机的AD使用」· LST 代码 · 共 73 行

LST
73
字号
     1: #include<pic.h>

     2: #define uchar unsigned char

     3: #define uint  unsigned int

     4: __CONFIG(0x3B31);

     5: const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

     6: const uchar table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,

     7:                         0x87,0xff,0xef};

     8: void delay(uint x);

     9: void init();

    10: void xianshi(uchar a1,uchar a2,uchar a3,uchar a4);

    11: uint get_tem();

    12: void main()

    13: {

    14:         uint add1;

    15:         uchar a1,a2,a3,a4;

    16:         init();

    17:         while(1)

    18:         {

    19:                 add1=get_tem();

    20:                 a1=add1/1000;

    21:                 a2=add1%1000/100;

    22:                 a3=add1%100/10;

    23:                 a4=add1%10;

    24:                 xianshi(a1,a2,a3,a4);   

    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:         TRISB=0;

    37:         PORTD=0;

    38:         PORTB=0;

    39:         TRISA=0X01;

    40:         ADCON0=0X41;

    41:         ADCON1=0X8E;

    42:         delay(1);

    43: }

    44: void xianshi(uchar a1,uchar a2,uchar a3,uchar a4)

    45: {

    46:         TRISD=0X7f;     

    47:         PORTB=table1[a1];

    48:         delay(2);

    49:         

    50:         TRISD=0Xbf;

    51:         PORTB=table[a2];

    52:         delay(2);       

    53: 

    54:         TRISD=0Xdf;

    55:         PORTB=table[a3];

    56:         delay(2);       

    57: 

    58:         TRISD=0Xe7;

    59:         PORTB=table[a4];

    60:         delay(2);

    61: }

    62: uint get_tem()

    63: {

    64:         uint advale;

    65:         float add0;

    66:         ADGO=1;

    67:         while(ADGO);

    68:         advale=ADRESH;

    69:         advale=advale<<8|ADRESL;

    70:         add0=(advale/1023.0)*5.0;

    71:         advale=(int)(add0*1000);

    72:         return advale;

    73: }

⌨️ 快捷键说明

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