?? wm1.lst
字號(hào):
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 ///////////////////////洗衣機(jī)控制器程序////////////////////////////// \
5 //////////////////////////////////////////////////////////////////// \
6 //////////作者:杜洋///////////////////http://doyoung.net////////// \
7 ////////////////////////////////////////////////////////////////// 口口 \
8 //////////測(cè)試版 V1.01-C51/////////////////////2007/02/05//////// 口口 \
9 //////////////////////////////////////////////////////////////// \
10 ===============================================================|--------------|
11 ///////////////////////////////////////////////////////////////|//////////////|
12 ///////////////////////////////////////////////////////////////|//////////////|
13 /////修改志////////////////////////////////////////////////////|//////////////|
14 ///////////////////////////////////////////////////////////////|//////////////|
15 ///////////////////////////////////////////////////////////////|//////////////|
16 //2007/02/07//00:15//完成編寫(xiě)并進(jìn)行調(diào)試(V1.01完成)//////////|//////////////|
17 //2007/02/05//21:08//編寫(xiě)程序大綱和驅(qū)動(dòng)程序///////////////////|//////////////|
18 ///////////////////////////////////////////////////////////////|//////////////|
19 ---------------------------------------------------------------|--------------|
20 ******************************************************************************/
21
22 /*****************************************************************************/
23 //初始定義//
24
25 //宏定義
26 #include <REG52.h>
27 #define uchar unsigned char//語(yǔ)法定義
28 #define uint unsigned int //
29
30 //引腳定義//
31 sbit led = P1 ^ 0;//LED指示燈(藍(lán)) __
32 sbit beep = P2 ^ 6;//揚(yáng)聲器 __
33 sbit j1 = P2 ^ 3;//繼電器1 ++
34 sbit j2 = P2 ^ 1;//繼電器2 ++
35 sbit r1 = P3 ^ 7;//無(wú)線(xiàn)鍵盤(pán)1 ++
36 sbit r2 = P3 ^ 6;//無(wú)線(xiàn)鍵盤(pán)2 ++
37 sbit r3 = P3 ^ 5;//無(wú)線(xiàn)鍵盤(pán)3 ++
38 sbit r4 = P3 ^ 4;//無(wú)線(xiàn)鍵盤(pán)4 ++
39 sbit rn = P3 ^ 2;//無(wú)線(xiàn)鍵盤(pán)N(中斷) ++
40
41 //寄存器定義//
42 uchar time=0,force=0,config=0;//定義時(shí)間、強(qiáng)度和設(shè)置變量
43 uchar t0_con,t0_con1,t0_con2;//T0計(jì)時(shí)器內(nèi)部累加
44 uchar led_con;//用于LED指示的標(biāo)記
45 uchar keys;//定義鍵盤(pán)輸入值
46 /*****************************************************************************/
47 //延時(shí)程序//
48 void delay(uint a){//延時(shí)限制在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指示燈驅(qū)動(dòng)程序//
C51 COMPILER V6.12 WM1 03/17/2007 00:11:09 PAGE 2
56 void led_on(void){//LED長(zhǎng)亮,不工作時(shí)狀態(tài)//
57 1 led = 0;
58 1 led_con = 0;
59 1 }
60 void led_1s(void){//LED每秒閃爍,用于定時(shí)等待狀態(tài)//
61 1 led_con = 1;
62 1 }
63 void led_50ms(void){//LED每50ms閃爍,用于電機(jī)運(yùn)行中//
64 1 led_con = 2;
65 1 }
66 //void led_off(void){//LED關(guān)//
67 // led = 1;
68 //}
69 /*****************************************************************************/
70 //揚(yáng)聲器驅(qū)動(dòng)程序//
71 void beep_off(void){//beep不響,無(wú)鍵值//
72 1 beep = 1;
73 1 }
74 void beep_on(void){//beep長(zhǎng)響//
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秒長(zhǎng)響,洗衣開(kāi)始//
88 1 beep_on();
89 1 delay(1000);
90 1 beep_off();
91 1 }
92 void beep_call(void){//beep長(zhǎng)響8聲,洗衣結(jié)束//
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 //無(wú)線(xiàn)鍵值處理程序(掃描)//
101 void key_init(void){//鍵盤(pán)初始化程序//
102 1 keys = 0;
103 1 }
104 void key_rxd(void){//鍵盤(pán)處理程序//
105 1 key_init();
106 1 if(rn == 1){//查看是否有鍵被按下
107 2 delay(10);//延時(shí)去干擾
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){//按鍵是否松開(kāi)
116 2 }
117 1 }
C51 COMPILER V6.12 WM1 03/17/2007 00:11:09 PAGE 3
118 /*****************************************************************************/
119 //斷電器控制程序//
120 void jj_off(void){//繼電器關(guān),不工作//
121 1 j1 = 0;
122 1 j2 = 0;
123 1 delay(800);
124 1 }
125 void j1_on(void){//繼電器1開(kāi),正轉(zhuǎn)//
126 1 j1 = 1;
127 1 j2 = 0;
128 1 }
129 void j2_on(void){//繼電器2開(kāi),反轉(zhuǎn)//
130 1 j1 = 0;
131 1 j2 = 1;
132 1 }
133 void jj_run(uchar i){//繼電器關(guān),不工作//
134 1 uchar a;
135 1 j1_on();
136 1 a = i;
137 1 while(a > 0) {
138 2 delay(800);//基數(shù)是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);//基數(shù)是1s
146 2 a--;
147 2 }
148 1 jj_off();
149 1 }
150 /*****************************************************************************/
151 //時(shí)間發(fā)生程序(計(jì)數(shù)器中斷T0)//
152 void t0_init (void) {//T0定時(shí)器初始化//
153 1 TH0 = 0x3c;//載入初值 50ms(12MHZ)
154 1 TL0 = 0xb0;
155 1 TMOD = 0x01;//定時(shí)計(jì)數(shù)器0工作方式1
156 1 ET0 = 1;//開(kāi)定時(shí)器中斷
157 1 TR0 = 1;//啟動(dòng)定時(shí)器
158 1 EA = 1;//開(kāi)總中斷
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{//定時(shí)器中斷處理程序//
164 1 TH0 = 0x3c;//載入初值
165 1 TL0 = 0xb0;
166 1 t0_con--;//到50ms計(jì)數(shù)減1
167 1 if(led_con == 2){//使用50ms閃爍的LED
168 2 led = ~led;
169 2 }
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -