PC机串口调试助手与单片机通信字符问题
2017-08-13 22:06
246 查看
在利用PC机的串口调试助手与单片机通信时,单片机与PC机是以ASCII码的形式通信的,比如发送1,其实发送的是字符1,如果在接收区以十六进制显示的话,是31(1的ASCII码)。具体如下:
1. 十六进制发送与十六进制显示都为选中,发送与接收的都是字符的形式;
2.如果以十六进制发送或者十六进制显示的话,就是以十六进制的ASCII码的形式发送或显示。
如果在串口调试助手中发送十六进制数字,以单片机的数码管显示的话,把十六进制ASCII码,换算成十进制ASCII码,然后显示在数码管上。以下是程序示例:(单片机开发板为普中科技的HC6800-EM3 v3.0)
1. 十六进制发送与十六进制显示都为选中,发送与接收的都是字符的形式;
2.如果以十六进制发送或者十六进制显示的话,就是以十六进制的ASCII码的形式发送或显示。
如果在串口调试助手中发送十六进制数字,以单片机的数码管显示的话,把十六进制ASCII码,换算成十进制ASCII码,然后显示在数码管上。以下是程序示例:(单片机开发板为普中科技的HC6800-EM3 v3.0)
/************************* * 目标:以16进制发送一个1-255之间的任一数,当单片机收到后在数码管上动态显示出来 * 作者:panda * 日期:2017/08/13 *************************/ #include<reg52.h> 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<z;y++); } void wei2() { a_138=1; b_138=0; c_138=0; } void wei3() { a_138=0; b_138=1; c_138=0; } void wei4() { a_138=1; b_138=1; c_138=0; } void display(u8 bai,u8 shi,u8 ge) { wei4(); P0=table[ge]; delay(1); wei3(); P0=table[shi]; delay(1); wei2(); P0=table[bai]; delay(1); } void init() { bai=16; shi=16; ge=16; TMOD=0x20; //计数器工作在方式2,8位自动重装 PCON=0x00; //SMOD=0; 不倍频(不使波特率增倍) SMOD不可位寻址 TH1=0xf3; TL1=0xf3; //波特率为2400 TR1=1; SCON=0x50; // SM0=0; // SM1=1; // SM2=0; // REN=1; //允许串行接收位打开 EA=1; //开总中断 ES=1; //开串行口中断 } int main() { init(); while(1) { display(bai,shi,ge); } return 0; } void ser() interrupt 4 { RI=0; temp=SBUF; bai=temp/100; shi=temp%100/10; ge=temp%10; }
相关文章推荐
- 单片机与PC机通信
- 基于Arduino的GPS与单片机通信 GPS与PC机的通信
- PC机与单片机多机通讯问题
- 单片机与FPGA通信的跨时钟域问题多种解决方法总结
- 用VC++6.0实现PC机与单片机之间串行通信的方法
- sprintf在51单片机中转换字符出错问题解决
- 关于java串口通信 接受显示 乱码的字符转换问题解决方案
- 用VC++6.0实现PC机与单片机之间串行通信的方法
- 单片机C 浮点数转化为字符数组问题
- 问题解决——使用串口调试助手发送控制字符 协议指令 <ESC>!?
- 89和12单片机的I2C通信时序问题
- 关于单片机和PC通信显示中文的乱码问题。
- PC机与多个单片机间的通信
- 问题解决——使用串口调试助手发送控制字符 协议指令 <ESC>!?
- 上位机与单片机的通信问题
- 【转】用VC++6.0实现PC机与单片机之间串行通信的方法
- 开发板-PC机(宿主机)-虚拟机(VM)之间网络通信设置方法及需要注意的问题
- Android手机通过Wifi与PC机之间进行通信问题 (有代码)
- 单片机与PC机通信USB2COM
- 用VC++6.0实现PC机与单片机之间串行通信的方法