打印

51定时器的一个问题

[复制链接]
2666|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
421648362|  楼主 | 2012-1-3 16:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目是:51单片机已被使用两个外部中断即INT0和INT1,定时器T1工作在模式2,作串口通信的波特率;现在要求在单片机上再加一个外部中断源,并由P1.0引脚输出一个5KHZ的方波,金振是12MHZ
然后这个题目的答案应该是用T0的模式3,低八位设置成计数器,TL0=0FFH,当外部来一个脉冲就产生了中断,模拟成了外部中断,高八位就是定时器,拿来产生方波的

我的问题是,在T0高八位的时候,是占用了TF1和TR1的,可以产生T1的定时器中断,但是T1在里面产生波特率的时候定时也会有溢出,那么溢出后会不会误当做是T0高八位的中断,但是书上说T0高八位是占用了TF1和TR1的,所以应该这两个寄存器都不会变,那么波特率是根据什么T1溢出位来确定的

相关帖子

沙发
NE5532| | 2012-1-3 17:00 | 只看该作者
别看书了,去看数据手册,里面咋说的啥就是啥,这种逻辑性的东西没啥好讲得。
这道题的标准答案应该是搞清楚是边沿中断还是电平中断,电平中断的,再找个引脚来复用,系统级解决问题才是大师。

使用特权

评论回复
板凳
dengm| | 2012-1-3 19:19 | 只看该作者
但是T1在里面产生波特率的时候定时也会有溢出,那么溢出后会不会误当做是T0高八位的中断.
A:  Timer0 Mode 3 时, T1在里面产生波特率的时候定时也会有溢出,那么溢出后不会误当做是T0高八位的中断的, 大胆使用; 但要产生 完美的5KHZ的方波,技术要求比较高!!!

使用特权

评论回复
地板
dengm| | 2012-1-3 20:18 | 只看该作者
;完美的5KHZ的方波 @12MHZ

     ORG 1BH
         AJMP SUB_INT_T1
     ORG 50H
SUB_INT_T1:
         CLR TR1
         XCH A, TH0
         JB ACC.0, $+4
              NOP
          RR A
          CPL A
          ANL A, #7
          DJNZ ACC, $
          CPL P1.0
          MOV A, #(256-100+16+10)
          XCH A, TH0
           SETB TR1
           RETI

使用特权

评论回复
5
NE5532| | 2012-1-3 20:48 | 只看该作者
除非自加载,否则都不完美,其他中断一搅合,频率就不准了。

使用特权

评论回复
6
fjzzclc| | 2012-1-3 22:07 | 只看该作者
学习一下

使用特权

评论回复
7
dengm| | 2012-1-4 09:08 | 只看该作者
把中断优先定为唯一最高, 就不怕其他中断搅合了!!!
完美方波:  不仅频率准, 上下边缘也要准

使用特权

评论回复
8
wh6ic| | 2012-1-4 09:29 | 只看该作者
要频率相位都准,只有硬件支持一途。比如PCA的高速比较输出、PWM,比如部分51核定时器的溢出引脚翻转功能。
不过俺估计楼主的题目是没相位要求的。

使用特权

评论回复
9
dengm| | 2012-1-4 15:25 | 只看该作者
;完美的5KHZ的方波 @12MHZ (用时最大 22指令周期)
     ORG 1BH
       TH0BAK DATA 20H
       MOV TH0BAK, TH0 ; THOBAK== 4 ..10
       JB TH0BAK.3, SUB_INT_T8_10
       SJMP SUB_INT_T1
     ORG 50H

SUB_INT_T1:  ;   TH0BAK = 4  TO 7   
         JB TH0BAK.1, SUB_INT_T1_EX
           SJMP SUB_INT_T1_EX
SUB_INT_T8_10: ; TH0BAK = 8 TO 10
         JB TH0BAK.1, $+6
SUB_INT_T1_EX:
           JB TH0BAK.0, $+4
             NOP
       ;--------------
         MOV TL1, #(256-100+18)           
         CPL  CPL P1.0
         RETI

使用特权

评论回复
10
dengm| | 2012-1-5 01:50 | 只看该作者
没有硬件支持, 用软件要用 22/100 的机器时间, 中断优先级还要定为唯一最高,才能
产生完美的5KHZ的方波 @12MHZ 。

使用特权

评论回复
11
xhtxzxw| | 2012-1-5 03:56 | 只看该作者
以上回答都有些文不对题。
楼主的问题是:波特率发生器(由T1充当)会不会在计数溢出的时候产生不期望的中断?
回答:肯定不会。此时T1溢出的时候根本不会影响到TF1。

使用特权

评论回复
12
Songtion| | 2012-1-5 13:04 | 只看该作者
学习……

使用特权

评论回复
13
NE5532| | 2012-1-5 14:56 | 只看该作者
以上回答都有些文不对题。
楼主的问题是:波特率发生器(由T1充当)会不会在计数溢出的时候产生不期望的中断?
回答:肯定不会。此时T1溢出的时候根本不会影响到TF1。 ...
xhtxzxw 发表于 2012-1-5 03:56


这种简单明确的东东,我一般建议提问者去看数据手册。

使用特权

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

本版积分规则

1

主题

14

帖子

1

粉丝