给下面程序每一句添加注解

来源:1-6 程序解释——注释

qq_慕婉清5152529

2019-12-31 11:29

#include <reg51.h>

#include <absacc.h>                         

#include <intrins.h>

#define uchar unsigned char

#define uint unsigned int   

sbit RS = P1^7;                               

sbit RW = P1^6;

sbit EN = P1^5;

sbit ST = P3^7;                           

sbit OE = P3^6;

sbit EOC = P1^3;

sbit CLK = P1^4;

sbit key1 = P1^0;                           

uchar data chnumber;                         

uchar disbuffer[4] = {0, '.', 0, 0};        

uchar data ad_data[8] = {0,0,0,0,0,0,0,0};    

 

void fbusy()

{

    P0 = 0xff;

RS = 0;

RW = 1;

EN = 1;

EN = 0;

while((P0 & 0x80))

{

   EN=0;   EN=1;

}

}

 

void wc51r(uchar j)

{

    fbusy();

EN = 0;

RS = 0;

RW = 0;

    EN = 1;

P0 = j;

EN = 0;

}

 

void wc51ddr(uchar j)

{

fbusy();        

EN = 0;

RS = 1;

RW = 0;

    EN = 1;

P0 = j;

EN = 0;

}

void init()

{    

   wc51r(0x01);     

   wc51r(0x38);

   wc51r(0x0c);

   wc51r(0x06);

}

 

test()

{

   uchar m;

   for (m=0; m<8; m++)

   {

      P3 = m;          

  ST=0;_nop_();_nop_();  ST=1;_nop_();_nop_(); ST=0;

  _nop_();_nop_();_nop_();_nop_();

  while (EOC==0);                

  OE=1; ad_data[m]=P2; OE=0;    

   }

}

 

void delay(uint i)    

{

   uint y, j;

   for (j=0; j<i; j++) {

       for (y=0; y<0xff; y++) {;}

   }

}

 

void TOX(void) interrupt 1 using 0

{ CLK =~CLK; }

 

void main(void)

{

   uchar  i;

   SP=0X50; TMOD=0x02; TH0=246; TL0=246;

   ET0=1; EA=1; TR0=1;

 

   delay(10);

   init();

 

   wc51r(0x81);     

   wc51ddr('A');

   wc51ddr('D');

   wc51ddr('D');

   wc51ddr('R');    

   wc51ddr(':');    

   wc51r(0xC0);  

   wc51ddr('V');  

   wc51ddr('A');

   wc51ddr('L');

   wc51ddr('U');  

   wc51ddr('E');

   wc51ddr(':');

 

   while(1)

   {

      test();       

  if (key1 == 0) {

     while(key1==0); chnumber++;

 if (chnumber==8) chnumber=0;

  }

 

  temp = ad_data[chnumber];   

  temp = (temp*100)/51;

  disbuffer[0] = temp/100+0x30; temp = temp%100;

  disbuffer[2] = temp/10 + 0x30;

  disbuffer[3] = temp/10 + 0x30;

  wc51r(0x88);

  wc51ddr(chnumber + 0x30);

  wc51r(0xc8);     

  for (i=0; i<4; i++) wc51ddr(disbuffer[i]); 

   }

}

 

写回答 关注

2回答

  • 慕哥7060576
    2020-05-28 08:29:06

    51单片机?

  • qq_慕丝5243137
    2019-12-31 19:50:04

    这他妈绝对是来捣乱的

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926027 学习 · 20793 问题

查看课程

相似问题