MCS-51测量输入脉冲宽度,精度1ms
2012-06-11 16:55
162 查看
View Code
FLAG BIT 00H PULSE DATA 40H ORG 0000H AJMP RESET ORG 0013H AJMP EINT1 ORG 001BH AJMP TINT1 ORG 0040H RESET: MOV TMOD,#010H SETB PX1 ; 一定要设外部中断优先 SETB IT1 SETB EX1 SETB ET1 SETB EA AJMP MAIN EINT1: CLR TR1 ; 停止定时器,以免使PULSE额外增加 SETB FLAG ; 设置显示标志位 RETI TINT1: ; 每1ms让PULSE增加1 MOV TH1,#0FCH MOV TL1,#0B0H INC PULSE RETI ORG 0100H MAIN: JNB P3.3,$ ; 主程序查询P3.3引脚状态 ; 直到高电平产生才执行到下一条语句,即启动1ms定时器 MOV TH1,#0FCH MOV TL1,#0B0H SETB TR1 JNB FLAG,$ ; 主程序在定时计数期间一直在这条指令处等待 ; 直到外部中断产生后置位FLAG CLR FLAG MOV A,PULSE ; 读取定时值n毫秒,然后转化成十位和个位 MOV B,#10 ; 最后通过查表显示到两个数码管上 DIV AB MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,B MOVC A,@A+DPTR MOV P2,A SJMP MAIN ORG 0200H TABLE: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H END
相关文章推荐
- 利用51系列单片机定时器功能实现测量脉冲宽度
- 单片机笔记---测量计算输入的脉冲宽度
- 【STM库应用】stm32 之 TIM (详解二 脉冲宽度、周期测量)
- 【方法】STM32F103C8单片机通过定时器DMA测量脉冲宽度,无需CPU干预(以DHT11传感器为例)
- [置顶] STM32 输入捕获的脉冲宽度及频率计算
- 【STM库应用】stm32 之 TIM (详解二 脉冲宽度、周期测量)
- 【STM库应用】stm32 之 TIM (详解二 脉冲宽度、周期测量)
- 利用定时方式0,测量外部脉冲宽度(5到250ms),74HC595输出显示
- 进阶之路(基础篇) - 007 脉冲宽度测量
- [STM32F10x] 利用定时器测量脉冲宽度
- 基于MCS-51内核的汇编操作符笔记
- C#如何测量字符串的高度宽度和精确取得字符串的高度宽度
- printf宽度控制和精度控制
- 算法习题51:输入一个正数n,输出所有和为n连续正数序列
- 常用MCS-51系列(8位)单片机引脚功能说明
- MCS-51单片机存储器结构
- PIC单片机与MCS-51系列单片机的区别
- Android中测量Text的宽度和高度
- stm32寄存器版学习笔记06 输入捕获(ETR脉冲计数)
- Verilog HDL 测量输入信号的正、负脉宽