导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求助[luvkcer]

 *第20958篇: 求助

  
楼 主:luvkcer 2004年4月13日13:56
 求助
本人采用8253做计数器,想实现8253的t1和t2口做为计数器,其中当编码器产生2000个脉冲时在t1的clk1产生1个脉冲从而实现t1计整圈,t2计不足一圈时的脉冲数,初次设计但仍有许多不解之处,从资料上看应采用方式0(计数结束中断方式),t2计数到后,out为高直至重新写入新的控制字,但是这样写我觉得可能会有数据丢失,而且高位即脉冲数不是设想的整数圈有哪能位高手帮忙一下不胜感激。


tsde equ 50h
org 0000h
  jmp starrt
org 0030h
starrt:
   mov r0,#00h
   mov tsde,#00h
start:
  mov dptr,#5fffh;8253选中
  mov a,#0b0h; 方式0计数方式:0b0h 10110000
  movx @dptr,a
  mov a,#0d0h
  mov dptr,#5ffeh
  movx @dptr,a
  mov a,#07h
  movx @dptr,a
main:
  mov a,80h;00000000b;闩锁读数
  mov dptr,#5fffh
  movx @dptr,a
  mov dptr,#5ffeh
  movx a,@dptr
  mov r2,a
  movx a,@dptr
  mov r3,a
  mov a,r3           ;r2,r3为不足一圈数
  cjne r3,#0ffh,main ;2000脉冲后重新加载
   mov a,tsde
   inc a
   mov tsde,a         ;50h 为整圈数,此处也用用8253的t1计数    
   ljmp start
 end

[img]c:\my documents\8253.bmp[/img]


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:求助:三星的彩屏液晶S6B33B0A怎么驱动啊?

[下一篇主题]:为什么我的程序一到串口中断中就死机了,但串口还可以发送接收,堆栈没错,也没其他的中断啊,也没用看门狗