发新帖我要提问
12
返回列表
打印

关于TIMER定时时

[复制链接]
楼主: mugangzhu
手机看帖
扫描二维码
随时随地手机跟帖
21
mugangzhu|  楼主 | 2010-1-18 16:01 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
??

使用特权

评论回复
22
warm_ice| | 2010-1-18 16:37 | 只看该作者
本帖最后由 warm_ice 于 2010-1-18 16:38 编辑

;***************
;程序
;****************
               ORG       0000H
               JMP       REST                                         
               RTNI
               JMP       TIMER0_ISP               
               JMP       TIMER1_ISP               
               RTNI
;****************************
;TM0中断服务子程序
;****************************
TIMER0_ISP:
              STA AC_BACK,00H
              ANDIM IRQ,1011B                          
              ORIM F_TIMER,0001B ;设置“5ms 到”标志         
              BA0 TIMER0_END                                                      
TIMER0_END:   
              ORIM IE,0110B                        
              LDA AC_BACK,00H
              RTNI                                       
;****************************
; TM1中断服务子程序
;****************************
TIMER1_ISP:
              STA AC1_BACK,00H
              ANDIM IRQ,1101B                           
              ORIM  F_TIMER,0010B
              EORIM  PORTC,0010B
TIMER1_END:   
              LDI IE,0110B                        
              LDA AC1_BACK,00H
              RTNI                                                                  
;****************
;上电初始化
;*****************
REST:
               NOP
               NOP            
               LDI  DPL,00H
               LDI  DPM,03H
               LDI  DPH,00H               
POWER_RESET_1:
               LDI  INX,00H
               ADIM DPL,01H
               LDI  TEMP,00H
               ADCM DPM,00H
               BA3  POWER_RESET_2
               JMP  POWER_RESET_3
POWER_RESET_2:
               ADIM DPH,01H
POWER_RESET_3:
               SBI  DPH,01H
               BNZ  POWER_RESET_1
               SBI  DPM,04H
               BNZ  POWER_RESET_1              
               CALL XTJCQ_IST              ;初始化系统寄存器
XTJCQ_IST:
               ;PORT口初始化
               LDI   PORTA,00H
               LDI   PORTB,00H
               LDI   PORTC,0001B
               LDI   PORTD,0FH;打开上拉电阻使用低电平按键有效
               LDI   PORTE,00H
               LDI   PACR,0FH
               LDI   PBCR,0FH
               LDI   PCCR,1110B;输出口
               LDI   PDCR,1000B;输入口
               LDI   PECR,0FH              
               ;TIMER初始化
               LDI   T0,00H;选择外部时钟
               LDI   TM0,07H

               LDI   T0L,00H
               LDI   T0H,00H
               LDI   TM1,00H;2048分频                                       
               LDI   T1L,00H;timer1设置
               LDI   T1H,00H
                                                                        
               LDI   IE,0110B ;打开timer0、timer1中断                                                                                                         
LOOP:
                NOP
                NOP
                LDA   WDT
                JMP LOOP
                                                                                                            你按上面的程序修改一下,然后测试PC.1口的波型.                  
                                             
               END

使用特权

评论回复
23
mugangzhu|  楼主 | 2010-1-18 16:43 | 只看该作者
这个时间差的更多了啊

使用特权

评论回复
24
mugangzhu|  楼主 | 2010-1-18 16:49 | 只看该作者
你这专家弄这个都那么费劲,看来问题很严重啊,我就想知道我这个程序错在什么地方啊,难啊

使用特权

评论回复
25
warm_ice| | 2010-1-18 17:15 | 只看该作者
你这专家弄这个都那么费劲,看来问题很严重啊,我就想知道我这个程序错在什么地方啊,难啊
mugangzhu 发表于 2010-1-18 16:49

我不相信我的程序还有问题.
我在自己的机子上做了测试,很正常.
图片如下:

程序如下:
69p42.rar (5.12 KB)

使用特权

评论回复
26
szshawn2010| | 2010-1-18 20:47 | 只看该作者
哥们你用的是什么软件测试的,我也想下一个.告诉我,谢谢

使用特权

评论回复
27
szshawn2010| | 2010-1-18 20:49 | 只看该作者
哥们,你用的是什么软件进行测试的.我也想下一个.告诉我,可以不

使用特权

评论回复
28
warm_ice| | 2010-1-19 08:54 | 只看该作者
哥们你用的是什么软件测试的,我也想下一个.告诉我,谢谢
szshawn2010 发表于 2010-1-18 20:47

是用中颖仿真软件IDE66,这有软件仿真功能,用虚拟器件来测试的.

使用特权

评论回复
29
mugangzhu|  楼主 | 2010-1-19 09:11 | 只看该作者
呵呵,我知道错在什么地方了啊,我只是注意了下面的这些设置,原来问题在上面的用户寄存器定义上,地址我定义错了F_TIMER  EQU 3H,应该是F_TIMER EQU 3FH才对的啊,非常感谢你的指导
我还有一个问题就是下面这个我这样时时扫描按键可以吗?这样定时的时间更精确些
OUT3_3:      
              SBI PORTD,0FH;时时扫面按键
              BNZ MAIN1
              ANDIM PORTC,1101B;关闭PC.1输出
              ADI F_TIMER,0010B;定时时间是否到
              BA1 OUT3_3
              ANDIM F_TIMER,1101B
              SBIM DELAY1,01H
              BNZ OUT3_3              
              ANDIM F_TIMER,1101B
              LDI DELAY1,0EH                           
OUT3_4:        
              SBI PORTD,0FH;时时扫描按键
              BNZ MAIN1                  
              ORIM PORTC,0010B;PC.1有输出
              ADI  F_TIMER,0010B
              BA1 OUT3_4              
              ANDIM F_TIMER,1101B              
              JMP OUT3_3

使用特权

评论回复
30
warm_ice| | 2010-1-19 09:18 | 只看该作者
按键扫描的部分只要能实现您的设计要求都是可以的,因为每个人的写程序习惯什么的都不太一样.

使用特权

评论回复
31
mugangzhu|  楼主 | 2010-1-19 09:22 | 只看该作者
好的,谢谢啊,我现在想怎么显示部分,想用74LS164来驱动数码管,请问在软件上应该怎么设置?有没有这方面的例子供参考的

使用特权

评论回复
32
warm_ice| | 2010-1-19 09:40 | 只看该作者
有问题是好事,有了问题,你如果能自己先查查资料,仔细分析一下,如果还有不明白,再把不明白的地方提出来,得到答案后,您的**会更深刻,也会更快转化成您自己的东西.

您自己再想想...

使用特权

评论回复
33
mugangzhu|  楼主 | 2010-1-19 12:02 | 只看该作者
没有这方面的例子想也没有地方去想啊

使用特权

评论回复
34
mugangzhu|  楼主 | 2010-1-19 15:59 | 只看该作者
大家有没有这方面的例子参考一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则