脉冲频率测量程序清单.doc_第1页
脉冲频率测量程序清单.doc_第2页
脉冲频率测量程序清单.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

频率测量实际上就是在1s内对脉冲个数进行计数,计数值就是信号频率。利用已有的电路可以实现脉冲信号的频率测量。令定时器T0工作在方式1,得到50ms的定时间隔,在进行软件计数20次,形成一个1s的测量闸门信号,在测量闸门信号期间响应INT0中断,对脉冲信号加1计数来完成对输入信号的频率计数,计数值存入COUNT和COUNT+1单元,计数值通过6位动态数码管显示出来。程序如下: ; 频率计程序清单 ORG 0000H LJMP START ORG 0003H LJMP PINT0 ;INT0中断入口 ORG 000BH ; T0中断入口 LJMP T0INT ORG 0040H COUNT EQU 40H ; 定义计数单元 ;COUNT , COUNT+1 对脉冲个数计数, 高位在前 ; COUNT+2 为秒计数单元START ; MOV SP , #40H ; 主程序AGAIN ; MOV COUNT, #00H ; 计数单元清0 MOV COUNT+1, #00H MOV COUNT+2 , #00H MOV TMOD , #01H ; 初始化T0 MOV TH0, #3CH ; 计数初值,50ms的定时间隔 MOV TL0 , #0B0H SETB TR0 ; 启动T0 SETB ET0 ; 允许T0中断 SETB EX0 SETB IT0 ; INT0 为负沿触发方式 SETB EA WAIT: JNB F0, WAIT ; 不到1s则等待 LCALL WDISBUF ; 将双字节计数值转换成6位非压缩型BCD码 LCALL DISPLAY LCALL DISPLAY LJMP AGAIN ; 写WDISBUF子程序HEX EQU 40H DISBUF EQU 70H WDISBUF: CLR A ; 压缩BCD码初始化 MOV R3 , A ; R3R4R5暂存压缩BCD码 MOV R4 , A MOV R5 , A MOV R2 , #16HB1: MOV R6 , HEX ; 数据高字节暂存于R6 中 MOV R7 , HEX+1 ; 数据低字节暂存于R7 中HB2: MOV A , R7 ; 从高端移出待转换的一位到CY中 RLC A MOV R7 , A MOV A , R6 RLC A MOV R6 , A MOV A , R5 ; BCD 码带进位自身相加, 相当于乘2 ADDC A , R5 DA A ; 十进制调整 MOV R5 , A MOV A , R4 ADDC A , R4 DA A MOV R4 , A MOV A , R3 ADDC A , R3 MOV R3 , A ; 双字节十六进制数的万位数不超过6, 不用调整 DJNZ R2 , HB1 ; 处理完十六位 MOV R0 , DISBUF+5 ; 转换成分离BCD码存于70H75H单元中 MOV A, #00H MOV R0 , A MOV A , R3 : R3不超过6,不用转换 DEC R0 MOV R0 , A MOV A , R4 SWAP A ANL A ,#0FH DEC R0 MOV R0 , A MOV A , R4 SWAP A ANL A , #0FH DEC R0 MOV R0 , A MOV A ,R4 ANL A , #0FH DEC R0 MOV R0 , A MOV A , R5 ANL A ,#0FH DEC R0 MOV R0 , A RET;DISPLAY显示子程序DISPLAY : MOV R0 , #70H ; R0 指向DISBUF 首地址 MOV R3 , #01H ;右起第一个LED 的选择字NEXT: MOV A , #00H ; 取位选控制字为全灭 MOV P1 , A ; 瞬时关显示器 MOV A, R0 ; 从DISBUF中取出字符 MOV DPTR , #DSEG ; 取段码表首地址 MOVC A , A+DPTR ; 查表,取对应的字形码 MOV P0 , A ; 输出字形码 MOV A , R3 ; 取当前位选控制字 MOV P1 , A ; 点亮当前LED显示位 LCALL DELAY ; DELAY 延时1ms INC R0 ; R0 N指向下一个字符 JB ACC.5 , EXIT ; 诺当前显示位是第六位则结束 RL A ; 下一个LED 的选择字 MOV R3 , A SJMP NEXT EXIT: RET ; 返回 ;定时器T0中断服务程序T01NT: PUSH A MOV TH0,#3CH ; 再次启动计数器 MOV TL0,#0B0H INC COUNT+2 ; 秒计数单元加1 MOV A, COUNT+2 CLR C SUBB A, #20 JC EXIT SETB F0 ; 闸门时间到 CLR EA ; 关中断 POP A EXIT: RETI ; INT0中断服务程序PINT0: PUSH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论