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

📄 wm1.lst

📁 洗衣机控制器的程序及编译文件CCCCC(C语言)
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  WM1                                                                    03/17/2007 00:11:09 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE WM1
OBJECT MODULE PLACED IN wm1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE wm1.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /**********************************************************************
   2          ///////////////////////////////////////////////////////////////////////\
   3          //////////////////////////////////////////////////////////////////////	\
   4          ///////////////////////洗衣机控制器程序//////////////////////////////	 \
   5          ////////////////////////////////////////////////////////////////////	  \
   6          //////////作者:杜洋///////////////////http://doyoung.net//////////		   \
   7          //////////////////////////////////////////////////////////////////	 口口	\
   8          //////////测试版 V1.01-C51/////////////////////2007/02/05////////    口口    \
   9          ////////////////////////////////////////////////////////////////			  \
  10          ===============================================================|--------------|
  11          ///////////////////////////////////////////////////////////////|//////////////|
  12          ///////////////////////////////////////////////////////////////|//////////////|
  13          /////修改志////////////////////////////////////////////////////|//////////////|
  14          ///////////////////////////////////////////////////////////////|//////////////|
  15          ///////////////////////////////////////////////////////////////|//////////////|
  16          //2007/02/07//00:15//完成编写并进行调试(V1.01完成)//////////|//////////////|
  17          //2007/02/05//21:08//编写程序大纲和驱动程序///////////////////|//////////////|
  18          ///////////////////////////////////////////////////////////////|//////////////|
  19          ---------------------------------------------------------------|--------------|
  20          ******************************************************************************/
  21          
  22          /*****************************************************************************/
  23          //初始定义//
  24          
  25          //宏定义
  26          #include <REG52.h>
  27          #define  uchar unsigned char//语法定义
  28          #define  uint  unsigned int //
  29          
  30          //引脚定义//
  31          sbit	led		=	P1 ^ 0;//LED指示灯(蓝) __
  32          sbit	beep	=	P2 ^ 6;//扬声器 __
  33          sbit	j1		=	P2 ^ 3;//继电器1 ++ 
  34          sbit	j2		=	P2 ^ 1;//继电器2 ++
  35          sbit	r1		=	P3 ^ 7;//无线键盘1 ++
  36          sbit	r2		=	P3 ^ 6;//无线键盘2 ++
  37          sbit	r3		=	P3 ^ 5;//无线键盘3 ++
  38          sbit	r4		=	P3 ^ 4;//无线键盘4 ++
  39          sbit	rn		=	P3 ^ 2;//无线键盘N(中断) ++
  40          
  41          //寄存器定义//
  42          uchar	time=0,force=0,config=0;//定义时间、强度和设置变量
  43          uchar	t0_con,t0_con1,t0_con2;//T0计时器内部累加
  44          uchar	led_con;//用于LED指示的标记	
  45          uchar	keys;//定义键盘输入值
  46          /*****************************************************************************/
  47          //延时程序//
  48          void delay(uint a){//延时限制在1 < a < 65535 ms//
  49   1      	unsigned char i;
  50   1      	while( --a != 0){
  51   2      		for(i = 0; i < 125; i++);
  52   2      	}
  53   1      }
  54          /*****************************************************************************/
  55          //LED指示灯驱动程序//
C51 COMPILER V6.12  WM1                                                                    03/17/2007 00:11:09 PAGE 2   

  56          void led_on(void){//LED长亮,不工作时状态//
  57   1      	led		=	0;
  58   1      	led_con	=	0;	
  59   1      }
  60          void led_1s(void){//LED每秒闪烁,用于定时等待状态//
  61   1      	led_con	=	1;	
  62   1      }
  63          void led_50ms(void){//LED每50ms闪烁,用于电机运行中//
  64   1      	led_con	=	2;	
  65   1      }
  66          //void led_off(void){//LED关//
  67          //	led		=	1;	
  68          //}
  69          /*****************************************************************************/
  70          //扬声器驱动程序//
  71          void beep_off(void){//beep不响,无键值//
  72   1      	beep	=	1;	
  73   1      }
  74          void beep_on(void){//beep长响//
  75   1      	beep	=	0;	
  76   1      }
  77          void beep_s1(void){//beep单响一声//
  78   1      	beep_on();
  79   1      	delay(250);
  80   1      	beep_off();	
  81   1      }
  82          void beep_s2(void){//beep连响2声//
  83   1      	beep_s1();
  84   1      	delay(100);
  85   1      	beep_s1();	
  86   1      }
  87          void beep_2s(void){//beep2秒长响,洗衣开始//
  88   1      	beep_on();
  89   1      	delay(1000);
  90   1      	beep_off();			
  91   1      }
  92          void beep_call(void){//beep长响8声,洗衣结束//
  93   1      	uchar i;
  94   1      	for(i = 0; i < 5; i++){
  95   2      		beep_2s();
  96   2      		delay(250);
  97   2      	}			
  98   1      }
  99          /*****************************************************************************/
 100          //无线键值处理程序(扫描)//
 101          void key_init(void){//键盘初始化程序//
 102   1      	keys	=	0;
 103   1      }
 104          void key_rxd(void){//键盘处理程序//
 105   1      	key_init();
 106   1      	if(rn == 1){//查看是否有键被按下
 107   2      		delay(10);//延时去干扰
 108   2      		if(rn == 1){
 109   3      			if(r1 == 1 && r2 == r3 == r4 == 0){keys = 1;}//查找键值并放入寄存器
 110   3      			if(r2 == 1 && r1 == r3 == r4 == 0){keys = 2;}
 111   3      			if(r3 == 1 && r1 == r2 == r4 == 0){keys = 3;}
 112   3      			if(r4 == 1 && r1 == r2 == r3 == 0){keys = 4;}
 113   3      		}
 114   2      	}
 115   1      	while(rn == 1){//按键是否松开
 116   2      	}
 117   1      }
C51 COMPILER V6.12  WM1                                                                    03/17/2007 00:11:09 PAGE 3   

 118          /*****************************************************************************/
 119          //断电器控制程序//
 120          void jj_off(void){//继电器关,不工作//
 121   1      	j1	=	0;
 122   1      	j2	=	0;
 123   1      	delay(800);
 124   1      }
 125          void j1_on(void){//继电器1开,正转//
 126   1      	j1	=	1;
 127   1      	j2	=	0;
 128   1      }
 129          void j2_on(void){//继电器2开,反转//
 130   1      	j1	=	0;
 131   1      	j2	=	1;
 132   1      }
 133          void jj_run(uchar i){//继电器关,不工作//
 134   1      	uchar	a;
 135   1      	j1_on();
 136   1      	a	=	i;
 137   1      	while(a > 0) {
 138   2      		delay(800);//基数是1s
 139   2      		a--;
 140   2      	}
 141   1      	jj_off();
 142   1      	j2_on();
 143   1      	a	=	i;
 144   1      	while(a > 0) {
 145   2      		delay(800);//基数是1s
 146   2      		a--;
 147   2      	}
 148   1      	jj_off();		
 149   1      }
 150          /*****************************************************************************/
 151          //时间发生程序(计数器中断T0)//
 152          void t0_init (void) {//T0定时器初始化//
 153   1      	TH0		=	0x3c;//载入初值 50ms(12MHZ)
 154   1       	TL0		=	0xb0;
 155   1      	TMOD	=	0x01;//定时计数器0工作方式1
 156   1      	ET0		=	1;//开定时器中断
 157   1      	TR0		=	1;//启动定时器
 158   1      	EA		=	1;//开总中断
 159   1      	t0_con	=	20;//1s
 160   1      	t0_con1	=	0;
 161   1      	t0_con2	=	0;//
 162   1      }
 163          void t0 (void) interrupt 1 using 1{//定时器中断处理程序//
 164   1      	TH0		=	0x3c;//载入初值
 165   1      	TL0		=	0xb0;
 166   1      	t0_con--;//到50ms计数减1
 167   1      	if(led_con == 2){//使用50ms闪烁的LED
 168   2      		led	=	~led;
 169   2      	}

⌨️ 快捷键说明

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