搜索

单片机读取定时器的值

gecimao 发表于 2019-08-08 23:41 | 查看: | 回复:

  单片机使用的是STC15F104E,8管脚的,串口只能下载不能输出。定时器0设置为16位自动充装,12分频,晶振6M。如果打开中断,定时器在跑中断有反应,关闭中断后,管脚没有一点反映了。头...

  单片机使用的是STC15F104E,8管脚的,串口只能下载不能输出。定时器0设置为16位自动充装,12分频,晶振6M。如果打开中断,定时器在跑中断有反应,关闭中断后,管脚没有一点反映了。头文件是官网下载的,电路板良好,应该只可能是软件问题,求高手解答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  EA=ET0=0,你计时、中断个毛啊更多追问追答追问那是我可以关了的,因为我不需要中断,只需要读取定时期的值,不用中断的,因为是要判断高低点评时间的。谢谢你的回答。追答那我建议你不要用==来判断,尝试用=来判断0xff00,因为指令周期不会那么准确的恰好在执行判断语句的时候和定时器的计数值温和,可能会差几个机器周期的计数。

  你这个语句T0Temp=TH0*0x100+TL0;错误了,很显然,T0Temp永远也打不到0xff00,最大也就0xff,*0可能是你的手误导,但是*100我有点不明白,按说应该*256啊用=来判断我试过了,依然没有反应;检测的原因是T0Temp一直都只是0,没有增加。十进制的256不就是0x100么?而且T0定时器用的是16位工作模式,0xff只能装下低八位的值,高八位的值就装不进去了嘛,所以T0Temp定义为无符号整型0~0xffff,而且因为有的判断时间比较长,一定会用到高八位的TH0,所以必须用16位的,再次感谢您你的TMOD=0XF0,说明定时器1为工作方式3计数,定时器0为工作方式0定时,显然你没有用到定时器1,而是定时器0,定时器0工作方式0为13位。我错了,TMOD初值是0,然后0&0xf0=0,然后你又没用T1定时器,只用的T0定时器,这和定时器1有个毛关系啊,小弟?

  读出低字节,高字节可能同时就变了,再读出高字节,就可能不是刚才的高字节了。

本文链接:http://kingstonflowers.net/dingshiqi/1049.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部