| 超级好的51单片机编程例程!工程师必看! | ||
| 单片机简介与单片机的发展历史 |
I/O
口功能实例 |
|
| 定时器实例
(1秒报警,200hz输出 200-250变化输出) |
||
| 软件滤波十六进制六位数加法(数码显示) |
求六位和中的最大值和最小值(数码显示) |
|
| 求减去最大和最小值后的值(数码显示) |
除4所得软件滤波值(数码显示) |
|
| 软件模拟一个振 |
在显示频率输出的同时显示AD值(数码显示) |
|
| 过程检定(数码显示) |
||
| 按键数显,数码管显示加一 | ||
| PWM码简介及解码原理 |
||
| 智能定时的4位电子钟(带定时控制) |
智能红外工业控制器 |
|
|
51单片机学习网热心版主单片东东,收集整理的单片机教学课程(例子程序, 特别推荐!)转载请保留连接! 2.2
智能红外工业控制器 程序介绍:这个产品是通过遥控器控制定时时间来决 电器后,从而控制电磁阀开和关,以达到对石油含水量的 本实验仪完全模拟了这个产品,它的详细操作请参照附一 程序实例(honwai.asm): ORG
0000H AJMP
MAIN ORG
000BH AJMP
DIN0 ;TIME ORG
00013H AJMP
INT 106 MAIN: ;DATA
DEFINE//////////////////////////////////////// ON_MINUTE_LOW
EQU 30H ON_MINUTE_HIGH
EQU 31H ON_HOUR_LOW
EQU 32H ON_HOUR_HIGH
EQU 33H OFF_MINUTE_LOW
EQU 34H OFF_MINUTE_HIGH
EQU 35H OFF_HOUR_LOW
EQU 36H OFF_HOUR_HIGH
EQU 37H DIS_MINUTE_LOW
EQU 38H DIS_MINUTE_HIGH
EQU 39H DIS_HOUR_LOW
EQU 40H DIS_HOUR_HIGH
EQU 41H TIMES_ADD_NUMBER
EQU 42H TIMEM_ADD_NUMBER
EQU 3FH INTERRUPT_NUMBER
EQU 43H INTSET_FLAG
EQU 44H ETTYPE_FLAG
EQU 4FH BL
EQU 3EH BL1
EQU 4EH SET_ON_MLOW
EQU 3AH SET_ON_MHIGH
EQU 3BH SET_ON_HLOW
EQU 3CH SET_ON_HHIGH
EQU 3DH SET_OFF_MLOW
EQU 4AH SET_OFF_MHIGH
EQU 4BH SET_OFF_HLOW
EQU 4CH 107 SET_OFF_HHIGH
EQU 4DH ;////////////////////////////////////////////////// ;DATA
GIVE FIRST NUMBER////////////////////////// MOV
ON_MINUTE_LOW,#00H MOV
ON_MINUTE_HIGH,#02H MOV
ON_HOUR_LOW,#00H MOV
ON_HOUR_HIGH,#00H MOV
OFF_MINUTE_LOW,#00H MOV
OFF_MINUTE_HIGH,#06H MOV
OFF_HOUR_LOW,#03H MOV
OFF_HOUR_HIGH,#00H MOV
DIS_MINUTE_LOW,#00H MOV
DIS_MINUTE_HIGH,#00H MOV
DIS_HOUR_LOW,#00H MOV
DIS_HOUR_HIGH,#00H MOV
TIMES_ADD_NUMBER,#00H MOV
TIMEM_ADD_NUMBER,#00H MOV
INTERRUPT_NUMBER,#00H MOV
INTSET_FLAG,#00H MOV
SETTYPE_FLAG,#00H MOV
BL,#00H MOV
BL1,#00H MOV
SET_ON_MLOW,#00H MOV
SET_ON_MHIGH,#00H MOV
SET_ON_HLOW,#00H MOV
SET_ON_HHIGH,#00H MOV
SET_OFF_MLOW,#00H MOV
SET_OFF_MHIGH,#00H 108 MOV
SET_OFF_HLOW,#00H MOV
SET_OFF_HHIGH,#00H ;////////////////////////////////////////////////// MOV
TMOD,#00010001B MOV
TL0,#0AFH MOV
TH0,#3CH SETB
IT1 SETB
EX1 SETB
TR0 SETB
ET0 SETB
PT0 SETB
EA CLR
P1.0 ;////////////////////////////////////////////////// ;DISPLAY/////////////////////////////////////////// DISPLAY: MOV
BL1,#00H MOV
A,DIS_MINUTE_LOW MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D1:
JNB TI,D1 CLR
TI MOV
A,DIS_MINUTE_HIGH MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D2:
JNB TI,D2 109 CLR
TI MOV
A,DIS_HOUR_LOW MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D3:
JNB TI,D3 CLR
TI MOV
A,DIS_HOUR_HIGH MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D4:
JNB TI,D4 CLR
TI LCALL
DELAY1 ;INTSETFLAG////////////////////////////////// MOV
A,INTSET_FLAG CJNE
A,#00H,AONFE AJMP
DISP AONFE:
CJNE A,#01H,AONSH AJMP
ONFE AONSH:
CJNE A,#02H,AOFFE AJMP
ONSH AOFFE:
CJNE A,#03H,AOFSH AJMP
OFFFE AOFSH:
AJMP OFFSH ;///////////////////////////////////////////// DISP:
JNB P1.0,DISON AJMP
DISOFF 110 DISON:
MOV A,#0ECH MOV
SBUF,A D8:
JNB TI,D8 CLR
TI MOV
A,#0FCH MOV
SBUF,A D7:
JNB TI,D7 CLR
TI MOV
A,#00H MOV
SBUF,A D6:
JNB TI,D6 CLR
TI MOV
A,#00H MOV
SBUF,A D5:
JNB TI,D5 CLR
TI LCALL
DELAY1 ;INTSETFLAG//////////////////////////////////////// MOV
A,INTSET_FLAG CJNE
A,#00H,BONFE AJMP
D1ISP BONFE:
CJNE A,#01H,BONSH AJMP
ONFE BONSH:
CJNE A,#02H,BOFFE AJMP
ONSH BOFFE:
CJNE A,#03H,BOFSH AJMP
OFFFE BOFSH:
AJMP OFFSH 111 ;///////////////////////////////////////////// D1ISP:
AJMP DISPLAY DISOFF: MOV
A,#8EH MOV
SBUF,A D12:
JNB TI,D12 CLR
TI MOV
A,#8EH MOV
SBUF,A D11:
JNB TI,D11 CLR
TI MOV
A,#0FCH MOV
SBUF,A D10:
JNB TI,D10 CLR
TI MOV
A,#00H MOV
SBUF,A D9:
JNB TI,D9 CLR
TI LCALL
DELAY1 LCALL
DELAY1 ;INTSETFLAG/////////////////////////////////// STATUS:
MOV A,INTSET_FLAG CJNE
A,#00H,CONFE AJMP
D2ISP CONFE:
CJNE A,#01H,CONSH AJMP
ONFE CONSH:
CJNE A,#02H,COFFE 112 AJMP
ONSH COFFE:
CJNE A,#03H,COFSH AJMP
OFFFE COFSH:
AJMP OFFSH ;///////////////////////////////////////////// D2ISP:
AJMP DISPLAY ;////////////////////////////////////////////////// ;STATUS
ONFEN/////////////////////////////////////// ONFE: MOV
A,#9EH MOV
SBUF,A DD1:
JNB TI,DD1 CLR
TI ;E MOV
A,#8EH MOV
SBUF,A DD2:
JNB TI,DD2 CLR
TI ;F MOV
A,#0ECH MOV
SBUF,A DD3:
JNB TI,DD3 CLR
TI ;N MOV
A,#0FCH MOV
SBUF,A DD4:
JNB TI,DD4 CLR
TI ;O LCALL
DELAY2 MOV
A,BL1 CJNE
A,#01H,ONFE 113 MOV
A,SETTYPE_FLAG CJNE
A,#01H,STA AJMP
SETONFEN STA:
AJMP STATUS ;////////////////////////////////////////////////// ;STATUS
ON SH///////////////////////////////////// ONSH: ;display
onus////////////////////////////////////// MOV
A,#6EH MOV
SBUF,A DD8:
JNB TI,DD8 CLR
TI ;H MOV
A,#0B6H MOV
SBUF,A DD7:
JNB TI,DD7 CLR
TI ;S MOV
A,#0ECH MOV
SBUF,A DD6:
JNB TI,DD6 CLR
TI ;N MOV
A,#0FCH MOV
SBUF,A DD5:
JNB TI,DD5 CLR
TI ;O LCALL
DELAY2 MOV
A,BL1 CJNE
A,#01H,ONSH MOV
A,SETTYPE_FLAG 114 CJNE
A,#01H,STA1 AJMP
SETONSH STA1: AJMP
STATUS ;////////////////////////////////////////////////// ;STATUS
OFF FE/////////////////////////////////// OFFFE: ;display
ofad/////////////////////////////////////// MOV
A,#09EH MOV
SBUF,A DD10
: JNB TI,DD10 CLR
TI ;E MOV
A,#8EH MOV
SBUF,A DD9:
JNB TI,DD9 CLR
TI ;F MOV
A,#8EH MOV
SBUF,A DD12:
JNB TI,DD12 CLR
TI ;F MOV
A,#0FCH MOV
SBUF,A DD11:
JNB TI,DD11 CLR
TI ;O LCALL
DELAY MOV
A,BL1 CJNE
A,#01H,OFFFE MOV
A,SETTYPE_FLAG 115 CJNE
A,#01H,STA2 AJMP
SETOFFEN STA2: AJMP
STATUS ;////////////////////////////////////////////////// ;STATUS
OFF SH/////////////////////////////////// OFFSH: MOV
A,#6EH MOV
SBUF,A DD14:
JNB TI,DD14 CLR
TI ;H MOV
A,#0B6H MOV
SBUF,A DD13:
JNB TI,DD13 CLR
TI ;S MOV
A,#8EH MOV
SBUF,A DD16:
JNB TI,DD16 CLR
TI ;F MOV
A,#0FCH MOV
SBUF,A DD15:
JNB TI,DD15 CLR
TI ;O LCALL
DELAY2 MOV
A,BL1 CJNE
A,#01H,OFFSH MOV
A,SETTYPE_FLAG CJNE
A,#01H,STA3 116 AJMP
SETOFFSH STA3: AJMP
STATUS ;///////////////////////////////////////////// SETONFEN: CLR
TR0 MOV
C,P1.0 JNC
FI AJMP
FI1 FI:
MOV DIS_MINUTE_LOW,#00H MOV
DIS_MINUTE_HIGH,#00H MOV
DIS_HOUR_LOW,#00H MOV
DIS_HOUR_HIGH,#00H FI1:
MOV SET_ON_MLOW,#00H MOV
SET_ON_MHIGH,#00H SETONFEN2: INC
SET_ON_MLO MOV
A,SET_ON_MLOW CJNE
A,#0AH,CJ MOV
SET_ON_MLOW,#00H INC
SET_ON_MHIGH MOV
A,SET_ON_MHIGH CJNE
A,#0AH,CJ MOV
SET_ON_MHIGH,#00H CJ: MOV
A,SET_ON_MLOW MOV
DPTR,#SETTAB MOVC
A,@A+DPTR 117 MOV
SBUF,A D13:
JNB TI,D13 CLR
TI MOV
A,SET_ON_MHIGH MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D14:
JNB TI,D14 CLR
TI MOV
A,SET_ON_HLOW MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D15:
JNB TI,D15 CLR
TI MOV
A,SET_ON_HHIGH MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D16:
JNB TI,D16 CLR
TI LCALL
DELAY1 LCALL
DELAY1 MOV
ON_MINUTE_LOW,SET_ON_MLOW MOV
ON_MINUTE_HIGH,SET_ON_MHIGH MOV
ON_HOUR_LOW,SET_ON_HLOW MOV
ON_HOUR_HIGH,SET_ON_HHIGH MOV
A,SETTYPE_FLAG 118 CJNE
A,#00H,SETONFEN1 SETB
TR0 AJMP
DISPLAY SETONFEN1: AJMP
SETONFEN2 SETONSH: CLR
TR0 MOV
C,P1.0 JNC
F2 AJMP
FI2 F2:
MOV DIS_MINUTE_LOW,#00H MOV
DIS_MINUTE_HIGH,#00H MOV
DIS_HOUR_LOW,#00H MOV
DIS_HOUR_HIGH,#00 FI2:
MOV SET_ON_HLOW,#00H MOV
SET_ON_HHIGH,#00H SETONSH2: INC
SET_ON_HLOW MOV
A,SET_ON_HLOW CJNE
A,#0AH,CJ1 MOV
SET_ON_HLOW,#00H INC
SET_ON_HHIGH MOV
A,SET_ON_HHIGH CJNE
A,#0AH,CJ1 MOV
SET_ON_HHIGH,#00H CJ1: MOV
A,SET_ON_MLOW MOV
DPTR,#SETTAB 119 MOVC
A,@A+DPTR MOV
SBUF,A D17:
JNB TI,D17 CLR
TI MOV
A,SET_ON_MHIGH MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D18:
JNB TI,D18 CLR
TI MOV
A,SET_ON_HLOW MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D19:
JNB TI,D19 CLR
TI MOV
A,SET_ON_HHIGH MOV
DPTR,#SETTAB MOVC
A,@A+DPTR MOV
SBUF,A D20:
JNB TI,D2 CLR
TI LCALL
DELAY1 |