• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

菜鸟求助

timeing 2015-10-19 浏览量:730

菜鸟求助

请问这里的TH1=0xfa;TL1=0xfa;是表示T1计数器每计6个数(也就是6个机器周期)就产生一次中断吗
刚自学51看不懂,求大神指教

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
所有亮答 数量:2
  • 你好哈,首先回答问题你问题哈,不会在计数器每计6个数(也就是6个机器周期)就产生一次中断的。


    纠正一下,你的理解有误哈。   

            首先TH1 TH1是给串口使用的,中断产生在单片机内部,由此产生串口的波特率。

           你在程序中定义了定时器1,使用了8位自动重装,也就是TL1每减到0,就会再次重装回0Xfa,单片机执行这样一次的时间就是串口传输一个比特(位)的时间,波特率就是指每秒传输多少个位(bps),也就是,单片机每秒钟产生多少次定时器1的计数中断,然而这个中断是通过硬件的方式传递给串口的。

            至于单片机的中断,依照你的理解应该是中断服务程序。这个你的程序中是使用了定时器0,只有在定时器0计数到达后,就会产生一次软件中断,程序指针跳转到中断服务程序中去,如果你没有对中断标志位清0,再次装载计数初值的话,这样的中断是不会再次进来的。也就是只产生一次就结束了。


            至于你说的,关于计算机器周期时间不是这样理解的。

            1个机器周期=12个时钟周期。假设你的晶振频率是12Mhz,那么你的机器周期就是1us。

            除此之外,你还知道计数器做的减法的操作,这就需要自减指令,而指令,又涉及到指令周期。每条指令执行时间都是有一个或几个机器周期组成。MCS-51系统中,有单周期指令、双周期指令和四周期指令。自减令是单周期指令。所以需要1us。


  • 我理解的是,每次加到他溢出时,开始就可以执行你想执行的程序

相关问题

问题达人换一批

菜鸟求助