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

📄 mzmfr.c

📁 不少单片机C代码
💻 C
字号:
/* This program is a example */
                             /* item1 */                       
#include <reg51.h>           /* item2 */
#define uint unsigned int
#define uchar unsigned char

uchar bdata FLAG;
sbit FLAG1 = FLAG^1;
sbit FLAG2 = FLAG^2;
sbit P1_1 = P1^1;
uchar data time,Dtime,Btime; /* item3 */
uint fetch_rate(void);       /* item4 */

main(){                      /* item5 */
  char bdata JFLAG;
  uint data state,Astate,Bstate,rate;
  do {
    P1=0xFF;                 /* item6 */
    FLAG=P1;
    TXD=0;     /* P3.1 */
    JFLAG=FLAG>>6;
    JFLAG=JFLAG&0x03;
    switch(JFLAG) {
      case 0:
	   time=2;Dtime=20;break;
      case 1:
	   time=4;Dtime=40;break;
      case 2:
	   time=6;Dtime=60;break;
      case 3:
	   time=8;Dtime=80;break;
    }
    Btime=Dtime;
    JFLAG=FLAG>>3;JFLAG=JFLAG&0x07;
    switch(JFLAG) {
      case 0:
	 state=50;break;     /* item7 */
      case 1:
	 state=100;break;
      case 2:
	 state=150;break;
      case 3:
	 state=200;break;
      case 4:
	 state=250;break;
      case 5:
	 state=300;break;
      case 6:
	 state=350;break;
      case 7:
	 state=400;break;
    }
    FLAG1=0;
    TMOD=0x51;
    TH1=0;
    TL1=0;
    TH0=0x3C;
    TL0=0xB0;
    TR0=1;
    TR1=1;
    ET0=1;
    EA=1;
    rate=fetch_rate();       /* item8 */
    if(!FLAG2) {
      Astate=state+2*state/10;
      if(rate<=state) {
        TXD=1;
        do {
          rate=fetch_rate();
        }while(rate<=Astate);
        TXD=0;
      }
    }
    else {
      Bstate=state-2*state/10;
      if(rate>=state) {
        TXD=1;
        do {
          rate=fetch_rate();
        }while(rate>=Bstate);
        TXD=0;
      }
    }
  }while(1);
}

unsigned int fetch_rate()    /* item9 */
{                            /* item10 */ 
  uint count;
  do{ }while(!FLAG1);
  FLAG1=0;
  count=TH1*256+TL1;
  TH1=0;
  TL1=0;
  Dtime=Btime;
  return(count/time);        /* item11 */
}                            /* item12 */

timer0 () interrupt 1 using 1
{
  TH0=0x3C;
  TL0=0xB0;
  Dtime=Dtime-1;
  if(Dtime==0) {FLAG1=1;}
}

⌨️ 快捷键说明

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