3363|3

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

允计定时器1中断ET1 = 1;但没有写相应的中断函数。程序运行为什么就有错误了? [复制链接]


  1. #include
  2. unsigned char flag;

  3. void main()
  4. {
  5.      void init();

  6.      init();
  7.      while(1)
  8.      {
  9.          while(!flag)
  10.              ;
  11.          ES = 0;
  12.          P1 = SBUF;
  13.          flag = 0;      
  14.          SBUF = P1;  
  15.          while(!TI) //TI发送中断标志   
  16.              ;            
  17.          TI = 0;
  18.          ES = 1;  
  19.            
  20.      }        
  21. }

  22. void init()
  23. {
  24.      TMOD = 0x20; //定时器1工作方式2自动重装8位计时器
  25.      TH1 = 0xfd; //波特率9600
  26.      TH0 = 0xfd;
  27.      SM0 = 0;      //串行口工作方式1
  28.      SM1 = 1;
  29.      EA = 1;

  30. /*原来是这里多写了句ET1 = 1;导致我的程序出错*/
  31.      ET1 = 1; //为什么写了这句程序就出错了。
  32.      TR1 = 1;
  33.      ES = 1;
  34.      REN = 1;   //串行数据允许接收位
  35. }

  36. void serial() interrupt 4
  37. {
  38.      flag = 1;
  39.      RI = 0; //接收完数据后硬件将RI置1,必须软件归0
  40. }

  41. 我的目的是发一个数据给单片机。然后把数据赋给P1口。。再把该数据传回来。
复制代码

最新回复

如果是用作波特率发生器,是不允许T1中断的,ET1=1那一句要去掉.  详情 回复 发表于 2010-5-25 14:51
点赞 关注

回复
举报

2

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
我想是这样的,首先,你这里没必要打开定时器1中断,因为此时的定时器1是作为你的波特率发生器。而既然你打开了中断,应该就会有中断,而不管你有没有写中断函数,但是中断到了之后,还是会转到对应的中断地址执行。就是会有个跳变过程。这种跳转,可能会中断你的串口传输,而且频繁发生,对你串口传输更不利。还有一个可能是中断后,一些标志位没有办法清。。
不知道你加与不加的效果分别怎样,看效果就知道ET1 = 1到底影响了哪里。。。。
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
因为你启动了定时器,并允许它中断,但却没有提供正确的中断服务程序,这样当定时器满足产生中断的条件时,处理器就跳转向该定时器的向量地址....但这个地址上并没有正确的中断服务程序,当然就要出错了.
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

4
 
如果是用作波特率发生器,是不允许T1中断的,ET1=1那一句要去掉.
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表