SETB ET1 ;开定时器1允许 LOOP: AJMP LOOP ;无限循环 DIN0: CPL P1.0 ;产生一个高电平,
下次来就是低电平(因为取反),一个高电平和一个低电平形成一个周期
MOV TH1,#0F6H
MOV TL1,#3BH ;重置频率产生时间 RETI ;返回 END
5.4 200——250HZ变化频率输出
程序介绍:利用定时器定时时间的变化,由P1.0 口 产生200——250HZ变化的频率。实际应用例如:传感器 前级推动、频率发生器。 程序实例(F250.ASM): ORG 0000H AJMP MAIN ORG 001BH AJMP DIN1 MAIN:
;定义频率200和300////////////////////////////////// F2H EQU 30H F2L EQU 31H F3H EQU 32H
F3L EQU 33H 14
;////////////////////////////////////////////////// ;定义频率保持初值////////////////////////////////// MOV R1,#50 MOV R2,#02H
;//////////////////////////////////////////////////
;
频
率
赋
初
值
//////////////////////////////////////// MOV F2H,#0F6H MOV F2L,#3BH MOV F3H,#0F8H MOV F3L,#2FH
;////////////////////////////////////////////////// CLR P1.0 ;在P1.0口产生一个低 电平,一个脉冲是由一个高电平和一个低电平组成的 MOV TMOD,#00010000B ;定时器工作于方式1 MOV TH1,F2H
MOV TL1,F2L ;200HZ输出 SETB EA ;开总中断 SETB TR1 ;开定时器1运行 SETB ET1 ;开定时器1允许 LOOP: AJMP LOOP DIN1:
CPL P1.0 ;取反P1.0口,实际
是为了不断的将p1.0的电平关系转换,即产生了频率
;频率保持时间////////////////////////////////////// DJNZ R1,RE MOV R1,#50 DJNZ R2,RE MOV R2,#02H 15
;////////////////////////////////////////////////// MOV A,F2H CJNE A,F3H,XIA ;频率高位到300HZ 的高位了吗?
AJMP JIA ;频率高位没到
300HZ的高位值,直接将低位值加1 XIA: INC F2L MOV A,F2L CJNE A,#00H,RE INC F2H MOV A,F2H CJNE A,F3H,RE
;/////////////////////////////////////////////
;频率高位加到300HZ的高位值了,低位加一,到300HZ的低位值了吗,没到出去,到了关定时器 JIA:
INC F2L ;到了将200HZ频率的低位加1 MOV A,F2L
CJNE A,#F3L,RE CLR TR1
;///////////////////////////////////////////// RE:
MOV TH1,F2H MOV TL1,F2L RETI END 16 六、数显 0——9999显示
程序介绍:利用S51的串行口功能,实现数码管0— —9999 的循环显示。实际应用例如:电子计分牌。 程序实例(9999.ASM): ORG 0000H MAIN: GEE EQU 30H SHI EQU 31H BEI EQU 32H
QIAN EQU 33H ;定义个十百千 MOV GEE,#00H MOV SHI,#00H
MOV BEI,#00H
MOV QIAN,#00H ;赋初值
MOV SCON,#00H ;串行口工作于方式 0.同步移位
;显示个,十,百,千////////////////////////////////// DISPLAY: ACALL DELAY ;延时 MOV DPTR,#SETTAB MOV A,GEE
MOVC A,@A+DPTR MOV SBUF,A D1: JNB TI,D1 17 CLR TI
MOV DPTR,#SETTAB MOV A,SHI MOVC A,@A+DPTR MOV SBUF,A D2: JNB TI,D2 CLR TI
MOV DPTR,#SETTAB MOV A,BEI MOVC A,@A+DPTR MOV SBUF,A D3: JNB TI,D3 CLR TI
MOV DPTR,#SETTAB MOV A,QIAN MOVC A,@A+DPTR MOV SBUF,A D4: JNB TI,D4 CLR TI