数字频率计设计(PCB图+电路图+源程序) 第9页

数字频率计设计(PCB图+电路图+源程序) 第9页
图4-5 1602LCD显示程序流程图
附录1:电路图
附录2: PCB图
附录3:频率计总程序
Q0000:MOV SP,#60H ;堆栈设置
Q0003:SETB P3.3 ;打开定时器开关
 SETB P3.5 ;启动定时器
 MOV P1,#01H ;清屏,PI口接1602的DB7-DB0,P1写入控制字
 ACALL  Q01DC ;等待LCD不忙
 MOV P1,#0CH ;显示器开、光标开、闪烁开,即为P1写入控制字
 ACALL  Q01DC
 MOV R0,#EFH
Q0013: NOP ;延时
 DJNZ R0,Q0013 ;延时R0个周期
 MOV TMOD,#05H ;定时器方式一,启动了T0
Q0019: MOV P0,#FFH ;P0置高
 MOV P2,#FFH ;P0\P2端口赋值,P2置高电平
 MOV TL0,#00H ;清计数器
 MOV TH0,#00H
 CLR P3.3  ;INT1=0有效
 SETB TR0 ;启动计数器0
 SETB P3.2 ;开计数开关
 MOV R0,#0AH
 MOV R1,#32H
 MOV R2,#50H
 MOV R3,#02H
 NOP ;延时
 NOP
 NOP
 NOP
 NOP
Q0038: MOV R1,#32H ;延时R0*32H*50H*02H
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
Q0040: MOV R2,#50H
Q0042: MOV R3,#02H
Q0044: NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 NOP
 DJNZ R3,Q0044
 DJNZ R2,Q0042
 DJNZ R1,Q0040
 DJNZ R0,Q0038
 CLR P3.2 ;INT0=0,关闭计数器开关,停止计数值更新
 NOP
 NOP
 NOP
 CLR TR0 ;关闭计数器,在R0*32H*50H*02H延时内计数
 ;读入计数值
MOV 20H,P0 ;读P0口数值
 MOV 21H,P2 ;读P2口数值
 MOV 22H,TL0 ;取计数值低位
 MOV 23H,TH0 ;取计数值高位
 SETB P3.3 ;INT1=1,打开定时器开关
;多(四)字节二转十,入口R0为二进制低位字节地址指针,R7为字节数,出口R1为BCD码结果低位字节地址指针
MOV R0,#20H
 MOV R1,#30H
 MOV R7,#04H
 MOV A,R0
 MOV R5,A
 MOV A,R1
 MOV R6,A
 MOV A,R7
 MOV R3,A
 INC R3
 CLR A ;累加器清零
Q0077: MOV @R1,A
 INC R1
 DJNZ R3,Q0077
 MOV A,R7
 MOV B,#08H ;将立即数8送入B中
 MUL AB ;A、B相乘,结果送入A中,A=32
 MOV R3,A
Q0081: MOV A,R5
 MOV R0,A
 MOV A,R7
 MOV R2,A
 CLR C
Q0086: MOV A,@R0
 RLC A

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有