|
PSW是一定要进行现场保护的,CY标志位就在PSW里面 因为CJNE全影响CY位 计数这一块,个人感觉用DJNZ更好,代码少一点 中断中如果没有用到DPTR,就没有必要对数据指针进行现在保护了 |
| 帖出来的没有问题,问题出在未贴出来的串口上。 |
| 我觉得把Timer中断优先级设置最高,应该就没问题了。 |
|
串口与定时器0无关的啊,怎么会影响? 你的程序有严重问题,先后赋值同一个寄存器TMOD,前面的操作就无效了。你应该用与/或操作共用的寄存器。 |
| 不能直接操作TMOD,有些控制位在一个寄存器,C语言的时候要用&和|操作 |
|
InitTimer0: MOV TMOD,#01H //0000 0001 InitUART: MOV TMOD,#20H //0010 0000 你仔细看看,这2个TMOD的配置 如果你是同时使用的话,也就是说, 你在使用定时器1做串口的时候,吧定时器0给关了。 如果你想同时实现,应该吧TMOD合起来 : 0010 0001 = 》 0x21 同时,增加 优先级 IP寄存器的设置 |
| 你的串口初始化重新设置了T0的工作模式为0,当然定时就不对了 |
Hephaestus 发表于 2022-12-6 23:02 不知道怎么改 我是用单片机小精灵生成的定时器和串口波特率 复制过来就用了 |
| 不应该啊,T0优先级最高,你是不是改了IP寄存器了? |