51单片机串口中断和产生波特率的定时器中断为什么不能同时开启?
测试情况:利用51单片机的定时器1的溢出率产生波特率,初始化串口并设置中断使能位ES=1,然后对定时器1也做了相应的配置,无意中设置ET1=1了,利用串口调试助手调试的结...
测试情况:利用51单片机的定时器1的溢出率产生波特率,初始化串口并设置中断使能位ES=1,然后对定时器1也做了相应的配置,无意中设置ET1=1了,利用串口调试助手调试的结果是连续不断的收到了*这个字符。。第二次实验的时候把ET1=0,就可以正常的收发了、、
请问:为什么串口中断和定时器1中断不能同时开启呢? 展开
请问:为什么串口中断和定时器1中断不能同时开启呢? 展开
展开全部
利用51单片机的定时器1的溢出率产生波特率,并不需要打开 T1 的中断。
如果打开了,你就应该编写相应的中断程序。
如果,你没有写中断程序,那么,它中断后,自然就会给你添乱。
如果打开了,你就应该编写相应的中断程序。
如果,你没有写中断程序,那么,它中断后,自然就会给你添乱。
追问
能更加深入的说明么?T1中断程序没有写,不做任何操作、、为什么会产生影响呢?
追答
楼主并没有编写 T1 中断程序,你以为,单片机就不做任何操作?
你如果开放了 T1 的中断,那么,每当 T1 定时溢出后,必定就会到
001BH 处,去执行 T1 的中断程序。
不管你写没写,单片机,都会执行 001BH 处的程序,直到执行 RETI,
才会返回断点。
楼主没有编写 T1 中断程序,逻辑上,已经错了,单片机,就被你弄糊涂了。
它把主程序当做中断程序来执行,这会产生什么影响,只有天知道。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询