大哥,我看了你写的串口通信程序真的不错。请问我要从单片机向PC发一个变量,怎么才能让PC正常显示?

如a是外部采集的数据变量,值可能为20,22,26等,怎么样才能通过串口调试助手传到PC上显示。谢谢了

这个要用到ASCII编码,把你的这个变量通过ASCII编码后,向PC发送,在PC机上串口调试助手里用字符型显示就可以了。
单片机程序可以这么写:比如要向上位机发送a=25;这个变量
SBUF=(a/10+48);while(TI!=0);TI=0;//发送十位
SBUF=(a%10+48);while(TI!=0);TI=0;//发送个位
上面这个40是ASCII中0对应的编码。
下面是ASCII表你看一下就知道了。
十进制 十六进制 所对应的字符
00 00 <NUL>
01 01 <SOH>
02 02 <STX>
03 03 <ETX>
04 04 <EOT>
05 05 <ENQ>
06 06 <ACK>
07 07 <BEL>
08 08 <BS>
09 09 <HT>
10 0A <LF>
11 0B <VT>
12 0C <FF>
13 0D <CR>
14 0E <SO>
15 0F <SI>
16 10 <DLE>
17 11 <DC1>
18 12 <DC2>
19 13 <DC3>
20 14 <DC4>
21 15 <NAK>
22 16 <SYN>
23 17 <ETB>
24 18 <CAN>
25 19 <EM>
26 1A <SUB>
27 1B <ESC>
28 1C <FS>
29 1D <GS>
30 1E <RS>
31 1F <US>
32 20 <SPACE>
33 21 !
34 22 "
35 23 #
36 24 $
37 25 %
38 26 &
39 27 '
40 28 (
41 29 )
42 2A *
43 2B +
44 2C ,
45 2D -
46 2E .
47 2F /
48 30 0
49 31 1
50 32 2
51 33 3
52 34 4
53 35 5
54 36 6
55 37 7
56 38 8
57 39 9
58 3A :
59 3B ;
60 3C <
61 3D =
62 3E >
63 3F ?
64 40 @
65 41 A
66 42 B
67 43 C
68 44 D
69 45 E
70 46 F
71 47 G
72 48 H
73 49 I
74 4A J
75 4B K
76 4C L
77 4D M
78 4E N
79 4F O
80 50 P
81 51 Q
82 52 R
83 53 S
84 54 T
85 55 U
86 56 V
87 57 W
88 58 X
89 59 Y
90 5A Z
91 5B [
92 5C \
93 5D ]
94 5E ^
95 5F _
96 60 `
97 61 a
98 62 b
99 63 c
100 64 d
101 65 e
102 66 f
103 67 g
104 68 h
105 69 i
106 6A j
107 6B k
108 6C l
109 6D m
110 6E n
111 6F o
112 70 p
113 71 q
114 72 r
115 73 s
116 74 t
117 75 u
118 76 v
119 77 w
120 78 x
121 79 y
122 7A z
123 7B {
124 7C |
125 7D }
126 7E ~
127 7F <DEL>
128 80 €
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-13
当你采集到数据 并存入数据变量 a 后。可以在主程序中直接把SBUF=a;就可以了。要想串口调试助手传到PC上显示, 你的程序中设定的波特率 和串口调试助手中的波特率一定要相同。否则会收不到数据,或收到不正确的数据。追问

我试过这样做,但是不行啊。比如我传个a=270;b=a%100;SBUF=b;(或printf (" %c\n",b);)都不行

第2个回答  2011-05-13
单片机 与 PC 串口 先 硬件 连接好
注意 单片机 串口 与 电脑 串口 的 电平 是否 一致,不一致 要用 max232转换

硬件连接 正确 了 才能正常通信

串口调试助手 可以 去武汉鸿伟光电 下载
第3个回答  2011-05-14
看了下你的程序,main函数里面最好再加点延时,隔段时间发送一次,否则这样的效果是向主机不断快速地发送字符A,特别快的。
至于串口调试工具,有好多种,大致都是差不多的。选择好你单片机系统与电脑连接的串口COM端口号,如果同时用这根线下载就是这下载线的串口号。波特率是程序里面设定的9600,数据位8位,停止位1位,校验位None,然后打开串口,会提示打开成功,显示区域设置如果要看到发送的字符a的话,不要钩“按十六进制显示”,有的工具有“以字符显示”的钩选项就钩上。给单片机上电,接收显示区就可以看到单片机发过来的字符了。
第4个回答  2011-05-19

你可以使用单片机多功能调试助手进行调试,例如串口调试界面或者串口监视界面等

相似回答