C语言实现51单片机串口中断调试程序

需积分: 9 22 下载量 166 浏览量 更新于2024-11-08 收藏 2KB TXT 举报
本资源是一份针对51单片机的串口调试程序,使用C语言编写,重点在于实现串口通信的中断方式处理。程序标题表明了其功能是针对51单片机串口通信,而描述强调了程序是为调试目的设计的,并且定义了一个名为INTERSENDSTR的宏,这可能是用于启用或禁用字符串发送功能的开关。 首先,程序包含了几个必要的头文件,如<reg51.h>用于访问51单片机的寄存器,<string.h>提供字符串处理函数,以及自定义错误处理模块(err.h)。程序定义了两个数据缓冲区,sendComBuf用于存储待发送的数据,sRecComBuf则用于接收数据。 在主函数部分,首先定义了两个字符变量databOut和bIn,分别用于控制数据的输出和输入。然后,在INTERSENDSTR宏被激活时(即串口字符串发送模式),程序会进入一个循环,不断检查接收和发送缓冲区的匹配,直到数据发送完毕并清除中断标志。一旦串口设置完成,程序会置ES位进入接收状态。 对于串口波特率的设置,函数PSetBps()实现了9600波特率的配置,通过计算并调整定时器T2的设定值来实现。根据不同芯片(这里是8032和非8032)的特点,程序采用不同的计算方法。在8032模式下,如果波特率不能整除3456,会返回错误代码ERR_SET_BPS。而在非8032模式中,根据576的余数和波特率进行调整,确保计数器工作正常。 此外,程序还设置了串口的工作模式,包括使能接收中断(RI)、发送中断(TI),打开接收允许(REN),以及设置SM0、SM1和SM2寄存器的状态。当在串口字符串发送模式下,还会将当前接收的数据赋值给发送缓冲区的数据。 总结来说,这份C语言编写的51单片机串口调试程序提供了串口通信的基础设置,包括波特率的配置、中断方式的处理以及字符串传输功能。通过理解这些核心部分,用户可以深入学习51单片机串口通信的相关知识,并应用于实际项目中。