STC12C5A60S2 中断系统优先级疑问

已举报 回答
STC12C5A60S2 中断系统优先级疑问
问在线客服
扫码问在线客服
  • 回答数

    4

  • 浏览数

    7,999

4个回答 默认排序
  • 默认排序
  • 按时间排序

更换一个串口助手测试看看,排除串口软件的问题,测试是否是usb转串口驱动或者串口线的问题。
常备几个串口助手,格西烽火、SSCOM、串口调试助手等都比较稳定。
取消 评论
如果是数据输出, 那么分两个字节输出10位AD结果

如果是用8位DA输出, 那输出的精度要差很多啊
取消 评论
如果使用C语言编程,中断查询次序号就是中断号,例如:
void Int0_Routine(void) interrupt 0;
void Timer0_Rountine(void) interrupt 1;
void Int1_Routine(void) interrupt 2;
void Timer1_Rountine(void) interrupt 3;
void UART_Routine(void) interrupt 4;
void ADC_Routine(void) interrupt 5;
void LVD_Routine(void) interrupt 6;
void PCA_Routine(void) interrupt 7;
void UART2_Routine(void) interrupt 8;
void SPI_Routine(void) interrupt 9;

C51系列寄存器组是0-3.每个寄存器组分别有R0-R7组成。每个寄存器组都是独立的空间地址。
using 表示使用哪组寄存器组,using 0表示用0组寄存器,using 1表示用1组寄存器
在多个中断情况下,通过using 使用不同的寄存器组,进入中断时不需要太多的入栈,加快中断的实时响应速度。
例子:

void UART_Routine(void) interrupt 4 using 0//(0-3)随你用
{
if(RI)
{
}
if(TI)
{
}
}
void Seri1_Init()
{
SCON = 0x50; //8-bit variable UART
TMOD = 0x20; //Set Timer1 as 8-bit auto reload mode
TH1 = TL1 =0XFD; //Set auto-reload vaule
TR1 = 1; //Timer1 start run
ES = 1; //Enable UART interrupt
}
void main()
{
Seri1_Init();
EA=1;
while(1);
}

细节当然要看这方面的书籍了。我是专长这个,哈哈,快赏5分啊,我太给力啦
取消 评论
这次下载用的USB口还是上次的那个吗?
CH340认口的
取消 评论
ZOL问答 > 相机 > 其他分类 > STC12C5A60S2 中断系统优先级疑问

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?