51定时器的一个问题

[复制链接]
 楼主| 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
NE5532 发表于 2012-1-3 20:48 | 显示全部楼层
除非自加载,否则都不完美,其他中断一搅合,频率就不准了。
fjzzclc 发表于 2012-1-3 22:07 | 显示全部楼层
学习一下
dengm 发表于 2012-1-4 09:08 | 显示全部楼层
把中断优先定为唯一最高, 就不怕其他中断搅合了!!!
完美方波:  不仅频率准, 上下边缘也要准
wh6ic 发表于 2012-1-4 09:29 | 显示全部楼层
要频率相位都准,只有硬件支持一途。比如PCA的高速比较输出、PWM,比如部分51核定时器的溢出引脚翻转功能。
不过俺估计楼主的题目是没相位要求的。
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
dengm 发表于 2012-1-5 01:50 | 显示全部楼层
没有硬件支持, 用软件要用 22/100 的机器时间, 中断优先级还要定为唯一最高,才能
产生完美的5KHZ的方波 @12MHZ 。
xhtxzxw 发表于 2012-1-5 03:56 | 显示全部楼层
以上回答都有些文不对题。
楼主的问题是:波特率发生器(由T1充当)会不会在计数溢出的时候产生不期望的中断?
回答:肯定不会。此时T1溢出的时候根本不会影响到TF1。
Songtion 发表于 2012-1-5 13:04 | 显示全部楼层
学习……
NE5532 发表于 2012-1-5 14:56 | 显示全部楼层
以上回答都有些文不对题。
楼主的问题是:波特率发生器(由T1充当)会不会在计数溢出的时候产生不期望的中断?
回答:肯定不会。此时T1溢出的时候根本不会影响到TF1。 ...
xhtxzxw 发表于 2012-1-5 03:56


这种简单明确的东东,我一般建议提问者去看数据手册。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

14

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部