用AT89C51制作八位数字频率计
文件大小: 38k
源码售价: 10 个金币 积分规则     积分充值
资源说明:《用AT89C51制作八位数字频率计》一文的完整程序清单及注释 ORG 00H ;指定下条指令的地址 AJMP MAIN ;跳转至MAIN 50M INC 23H RETI ORG 001BH ;定时器T1中断入口,T1作定时,T0作计数 PUSH A ;累加器A压入堆栈 PUSH PSW ;状态寄存器压入堆栈 DJNZ 40H,JJ ;产生1s定时时标 MOV 40H,#0C8H DJNZ 41H,JJ CLR P3.1 ;关闭闸门 ANL 88H,#0AFH ;1s末,关闭T0和T1 MOV 20H,P1 MOV 21H,TL0 ;T0计数值送21H和22H MOV 22H,TH0 SETB P3.0 ;LS393清零 ACALL COUNT ;调用二进制转BCD码程序 JJ: POP PSW POP A RETI ORG 50H ;以下程序从地址50H开始 MAIN: MOV SP,#50H ;将初始值赋予SP MOV TH1,#06H ;将初始值赋予TH0 MOV TL1,#06H ;将初始值赋予TL0 MOV TMOD,#25H ;设定时器方式 SETB TR0 ;启动计数器0 SETB TR1 SETB EA SETB ET1 SETB ET0 MOV 40H,#0C8H MOV 41H,#28H MOV 30H,#78H MOV 31H,#56H MOV 32H,#34H MOV 33H,#12H MOV R2,#00H MOV 23H,#00H HERE: MOV DPTR,#TABLE ;动态扫描程序 CLR C MOV A,R2 RLC A JMP @A+DPTR TABLE: AJMP PG0 AJMP PG1 AJMP PG2 AJMP PG3 AJMP PG4 AJMP PG5 AJMP PG6 AJMP PG7 PG0: MOV A,33H ;显示最高位 SWAP A ANL A,#0FH ;屏蔽高四位 GG: MOV DPTR,#BOOK MOVC A,@A+DPTR MOV P2,#0FFH ;关闭段显示 MOV P0,#01H MOV P2,A AJMP GO PG1: MOV A,33H ANL A,#0FH MOV DPTR,#BOOK MOVC A,@A+DPTR MOV P2,#0FFH MOV P0,#02H MOV P2,A AJMP GO PG2: MOV A,32H SWAP A ANL A,#0FH MOV DPTR,#BOOK MOVC A,@A+DPTR MOV P2,#0FFH MOV P0,#04H MOV P2,A AJMP GO PG3: MOV A,32H ANL A,#0FH MOV DPTR,#BOOK MOVC A,@A+DPTR MOV P2,#0FFH MOV P0,#08H MOV P2,A AJMP GO PG4: MOV A,31H SWAP A ANL A,#0FH MOV DPTR,#BOOK MOVC A,@A+DPTR MOV P2,#0FFH MOV P0,#10H MOV P2,A AJMP GO PG5: MOV A,31H ANL A,#0FH MOV DPTR,#BOOK MOVC A,@A+DPTR MOV P2,#0FFH MOV P0,#20H MOV P2,A AJMP GO PG6: MOV A,30H SWAP A ANL A,#0FH MOV DPTR,#BOOK MOVC A,@A+DPTR MOV P2,#0FFH MOV P0,#40H MOV P2,A AJMP GO PG7: MOV A,30H ANL A,#0FH MOV DPTR,#BOOK MOVC A,@A+DPTR MOV P2,#0FFH MOV P0,#80H MOV P2,A MOV R2,#00H AJMP GO1 GO: INC R2 GO1: ACALL DELAY AJMP HERE ;多(四)字节二转十,经验证运行正确 ;入口R0为二进制低位字节地址指针,R7为字节数 ;出口R1为BCD码结果低位字节地址指针 COUNT: MOV R0,#20H MOV R1,#30H MOV R7,#04H BMBCD: MOV A,R0 MOV R5,A MOV A,R1 MOV R6,A MOV A,R7 MOV R3,A INC R3 CLR A CLBCD: MOV @R1,A INC R1 DJNZ R3,CLBCD MOV A,R7 MOV B,#08H MUL AB MOV R3,A LP0: MOV A,R5 MOV R0,A MOV A,R7 MOV R2,A CLR C LP1: MOV A,@R0 RCL A MOV @R0,A INC R0 DJNZ R2,LP1 MOV A,R6 MOV R1,A MOV A,R7 MOV R2,A INC R2 LP2 MOV A,@R1 ADDC A,@R1 DA A MOV @R1,A INC R1 DJNZ R2,LP2 DJNZ R3,LP0 MOV A,R6 MOV R1,A MOV 41H,#28H MOV 40H,#0C8H MOV TH1,#06H MOV TL1,#06H MOV TH0,#00H MOV TL0,#00H MOV 23H,#00H ORL 88H,#50H ;启动T1/T0 CLR P3.0 NOP ;时间微调 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP SETB P3.1 ;开闸门 RET DELAY: MOV 70H,#05H ;延时子程序 DDE: MOV 71H,#55H DE: DJNZ 71H,DE DJNZ 70H,DDE RET BOOK: DB 0C0H,0F9H,0A4H,0B0H,99H ;字段代码 DB 92H,82H,0F8H,80H,90H END
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。