|
|
|
|
|
| |
| 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 ;////////////////////////////////////////////////// ;定义频率保持初值////////////////////////////////// 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 ;////////////////////////////////////////////////// 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 | | | 更新时间:2007-6-1 11:23:34 |  |
|
|
|
|
|
|