PC机串口调试助手与单片机通信字符问题

2019-04-15 18:53发布

在利用PC机的串口调试助手与单片机通信时,单片机与PC机是以ASCII码的形式通信的,比如发送1,其实发送的是字符1,如果在接收区以十六进制显示的话,是31(1的ASCII码)。具体如下: 1. 十六进制发送与十六进制显示都为选中,发送与接收的都是字符的形式; 2.如果以十六进制发送或者十六进制显示的话,就是以十六进制的ASCII码的形式发送或显示。
如果在串口调试助手中发送十六进制数字,以单片机的数码管显示的话,把十六进制ASCII码,换算成十进制ASCII码,然后显示在数码管上。以下是程序示例:(单片机开发板为普中科技的HC6800-EM3 v3.0) /************************* * 目标:以16进制发送一个1-255之间的任一数,当单片机收到后在数码管上动态显示出来 * 作者:panda * 日期:2017/08/13 *************************/ #include typedef unsigned int u16; typedef unsigned char u8; u16 temp; u8 bai,shi,ge; sbit a_138=P1^0; //138译码器的A,B,C端,用于控制数码管的位端 sbit b_138=P1^1; sbit c_138=P1^2; u8 code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00}; void delay(u16 z) { u8 x,y; for(x=0;x<100;x++) for(y=0;y