历史上的今天
返回首页

历史上的今天

今天是:2025年04月12日(星期六)

2018年04月12日 | P89LPC932A1测脉冲宽度汇编程序

2018-04-12 来源:eefocus

/********************CCU_Capture.asm***************************
;程序功能:对一方波的每一次电平跳变进行捕获,并用捕获值计算方波
的脉冲宽度,占空比,周期或其他。
;************************************************************/

$NOMOD51
$INCLUDE(REG932.INC)


ICRAH_DAT1 DATA 41H  ;第一次捕获值高字节
ICRAL_DAT1 DATA 42H  ;第一次捕获值低字节
ICRAH_DAT2 DATA 43H  ;第二次捕获值高字节
ICRAL_DAT2 DATA 44H  ;第二次捕获值低字节
ICRAH_DAT3 DATA 45H  ;第三次捕获值高字节
ICRAL_DAT3 DATA 46H  ;第三次捕获值低字节

CAP_FLAG1 BIT 10H   ;第一次捕获标志位
CAP_FLAG2 BIT 11H   ;第二次捕获标志位

KEY  BIT P0.0

  ORG 0000H
  AJMP MAIN
  ORG 005BH
  AJMP CCU_ISR
;---------------------------------------
;功能:主函数
;---------------------------------------
  ORG 0080H
MAIN:
  MOV P2M1,#40H  ;端口设置
  MOV P2M2,#40H

  MOV ICRAL_DAT1,#00H
  MOV ICRAH_DAT1,#00H
  MOV ICRAL_DAT2,#00H
  MOV ICRAH_DAT2,#00H
  MOV ICRAL_DAT3,#00H
  MOV ICRAH_DAT3,#00H 
MAIN_LOOP: 
  JB KEY,$   ;等待按键
  JNB KEY,$   ;等待按键松开
  ACALL INI_CCU   ;初始化CCU并设置中断
  ACALL DISP   ;将捕获的值输出显示
  SJMP MAIN_LOOP
  RET
;--------------------------------------
;功能:CCU初始化
;--------------------------------------
INI_CCU:
  MOV TOR2H,#00H  ;设置CCU重装高字节
  MOV TOR2L,#00H  ;设置CCU重装低字节
  MOV TPCR2H,#00H  ;设置CCU预分频控制器
  MOV TPCR2L,#5
 
  MOV CCCRA,#10H  ;设置捕获比较A通道工作方式,为上升沿捕获
  MOV TICR2,#81H  ;设置CCU中断使能控制器
  SETB ECCU   ;开CCU中断
  SETB EA   ;开所有中断
  MOV TCR20,#00000001B ;设置CCU工作方式,递增记数
  RET
;--------------------------------------
;功能:CCU中断服务程序
;--------------------------------------
CCU_ISR:
  CLR  EA

  MOV A,TISE2
  ANL A,#07H
  CJNE A,#07H,CAP  ;判断是否是CCU定时器中断
  ANL TIFR2,#7FH  ;是则清TIFR2(中断标志位)为0
  MOV A,TISE2 
CAP:  CJNE A,#06H,INTS_CEXT ;判断是否为输入捕获事件A的中断,不是则退出
  JB CAP_FLAG1,CAP2  ;判断是第二次中断么,是则跳
;------------------
CAP1:
  PUSH ACC
  MOV A,ICRAL
  MOV ICRAL_DAT1,A
  MOV A,ICRAH
  MOV ICRAH_DAT1,A
  SETB CAP_FLAG1  ;第一次捕获中断完成
  MOV CCCRA,#00H  ;设置捕获比较A通道工作方式,为下降沿捕获
  POP ACC
  AJMP INTS_CEXT
;------------------
CAP2: 
  PUSH ACC
  JB CAP_FLAG2,CAP3  ;判断是第三次中断么?是则跳到CAP3。
  MOV A,ICRAL   ;保存第二次捕获的值
  MOV ICRAL_DAT2,A
  MOV A,ICRAH
  MOV ICRAH_DAT2,A

  SETB CAP_FLAG2  ;第二次捕获中断完成
  MOV CCCRA,#10H  ;设置捕获比较A通道工作方式,为上升沿捕获
  POP ACC
  AJMP INTS_CEXT
;-------------------
CAP3:
  MOV TCR20,#00H  ;停止CCU定时器计数
  PUSH ACC
  MOV A,ICRAL   ;保存第三次捕获的值
  MOV ICRAL_DAT3,A
  MOV A,ICRAH
  MOV ICRAH_DAT3,A

  CLR CAP_FLAG1  ;清除捕获完成位
  CLR CAP_FLAG2
  POP ACC
;  AJMP INTS_CEXT
;--------------------
INTS_CEXT:
  MOV TIFR2,#00H  ;捕获中断标志位清0
  SETB EA
  RETI
;-------------------------------------
;功能:请在这里添加您的数据处理程序
;-------------------------------------
DISP:
  ;......   这里请添加你自己的语句,例 高电平脉宽=(ICRAH_DAT2,ICRAL_DAT2)-(ICRAH_DAT1,ICRAL_DAT1)
  ;......   对得到的数据进行处理,获取所需的值
  ;......   并显示或者传送给上位机

  RET
;-------------------------------------
  END 
;****************************************************************


推荐阅读

史海拾趣

Cygnal Integrated Products Inc公司的发展小趣事

随着市场的不断发展和竞争的加剧,Cygnal意识到需要通过收购来加速其技术和市场的布局。经过一系列谈判和协商,Cygnal成功收购了另一家专注于嵌入式系统技术的公司。这次收购不仅为Cygnal带来了更多的技术和市场资源,还使其能够更好地满足客户的需求并提供更全面的解决方案。收购后,Cygnal通过内部整合和优化,将两家公司的优势融合在一起,形成了更强大的市场竞争力。

Apex Tool Group公司的发展小趣事

随着市场的不断发展和竞争的加剧,Cygnal意识到需要通过收购来加速其技术和市场的布局。经过一系列谈判和协商,Cygnal成功收购了另一家专注于嵌入式系统技术的公司。这次收购不仅为Cygnal带来了更多的技术和市场资源,还使其能够更好地满足客户的需求并提供更全面的解决方案。收购后,Cygnal通过内部整合和优化,将两家公司的优势融合在一起,形成了更强大的市场竞争力。

General Instrument公司的发展小趣事
对于计算机、服务器等需要持续供电的设备,突然断电可能导致数据丢失。
Barnbrook Systems Limited公司的发展小趣事

为了保持技术上的领先地位,Barnbrook积极寻求与高校、研究机构的合作。通过与这些机构的深入合作,Barnbrook不仅获得了最新的科研成果和人才支持,还成功研发出了一系列具有创新性的电子产品。这些产品不仅提升了公司的技术实力,也为公司的长期发展注入了新的活力。

EOZ Secme公司的发展小趣事

随着国内市场的饱和,EOZ Secme开始积极寻求海外市场的拓展。公司制定了详细的国际化战略,通过参加国际展会、建立海外销售渠道等方式,逐步打开了国际市场的大门。同时,EOZ Secme还积极与国际知名企业开展合作,共同研发新产品,拓展业务领域。这些努力使得EOZ Secme在国际市场上的影响力不断增强。

Delock公司的发展小趣事

在快速发展的同时,Delock公司始终将产品质量放在首位。公司建立了严格的质量控制体系,从原材料采购到生产流程,再到产品出厂,每一个环节都经过严格的检验。这种对品质的坚持让Delock公司的产品赢得了用户的信赖和好评。同时,公司还积极参与各类国际认证和评测,不断提升产品的品质水平。这些努力让Delock公司逐渐在电子行业中树立起了品质卓越的品牌形象。

问答坊 | AI 解惑

关于FPGA的就业

在网上看资料,都说FPGA的发展前景很好,例如在逐渐吞食ASIC的市场等等,但为什么在招聘网站搜索FPGA是只有十来个职位呢?(本人只搜了广州的) 小菜鸟坐等高手指导.......…

查看全部问答>

解析几种有效的开关电源电磁干扰的抑制措施.pdf (40.4 KB)

解析几种有效的开关电源电磁干扰的抑制措施…

查看全部问答>

2450 bootloader编译出错,请教高手

编译2450 bootloader出错,编译driver没错, 编译Eboot错误如下: BUILD: [01:0000000039:PROGC ] Compiling .\\debug.c BUILD: [01:0000000042:PROGC ] Compiling .\\ether.c BUILD: [01:0000000045:PROGC ] Compiling .\\flash.c BUILD: [01 ...…

查看全部问答>

Returnil,windows驱动开发,急急急

Returnil于2006年在芬兰成立,于2008年获得欧洲银行的2亿元的风险投资,是全球领先的安全软件开发商,总部位于美国费城,执行总部位于俄罗斯圣彼得堡。公司成立2年来在芬兰赫尔辛基,美国北卡罗纳, 乌克兰基辅,俄罗斯圣彼得堡,法国巴黎开设了研 ...…

查看全部问答>

GPIO问题

请教一下。我将GPIO设置成如下:  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_8;   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  GPIO_InitStructure.GPIO_Mode&nbs ...…

查看全部问答>

玩转MSP430 LaunchPad

很想玩玩MSP430 LaunchPad,可惜没有人教…

查看全部问答>

stm32 fsmc 读写NAND Flash的性能问题

本人首次使用stm32f103做项目,由于有大容量存储的需求,准备用fsmc来外扩nand flash。有一个问题不大确定,特请教各位大侠fsmc外扩nand的读写速度如何?nand的ecc这些是fsmc硬件就支持,还是需要我软件来做?多谢了!…

查看全部问答>

IAR进行DEBUG时提示FATEL ERROR

求各位大神帮忙解决啊…

查看全部问答>

【项目外包】车载3G视频监控GPS一体机开发

车载3G视频监控GPS一体机开发 项目预算:¥ 10,000~100,000 开发周期: 30天 项目分类: 嵌入式 竞标要求: 项目标签: linux 3G网 ...…

查看全部问答>

机器视觉在汽车行业中的应用

 机器视觉在汽车行业有着广泛的应用,可大大提高工作效率,保证工作质量。下面介绍机器视觉在汽车行业应用的一些实例: (1)汽车总装和零部件检测1.     零部件尺寸、外观、形状2.     总成部件错 ...…

查看全部问答>