QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2357|回复: 1
收起左侧

[求助] 请教关于C51串口的问题

[复制链接]
发表于 2010-8-13 08:59:04 | 显示全部楼层 |阅读模式 来自: 中国上海

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
源程序如下:+ M' H( x$ G1 i* c4 e8 [* f6 f

5 |3 i+ J  ~& _/ W8 g+ K, U#include <reg51.h>
  _% y) \8 w' v" `$ [) i#define MESSAGE_LEN 3    // 定义数据长度
; ^' O! A9 A$ \0 P0 }unsigned char message[MESSAGE_LEN];6 I: j3 q8 ~- n, V6 W) p3 H9 |
void init_serialcomm()
7 W0 O5 X% J: R{3 `3 g/ r7 z1 O0 z& u/ X( G# D* \- ]
TMOD = 0x20; // 设置定时器1为工作方式1,波特率9600,初值为0X20
+ N" d% G' g: [' [) C' I TH1 = 0xfd;8 _8 Q7 {9 n7 m
TL1 = 0xfd;' b1 J! s/ |) K/ D4 X
TR1 = 1;2 B9 X; e1 U) ]; |' V. S
SCON = 0xd8;# n$ [( w! d( ]+ S
PCON = 0x00;; l7 v9 l* T9 p0 v, _' _: ^- j
IE = 0x90;$ F+ f, s* o: ~, t; {
}5 z  I1 i4 k5 m$ J' f9 a: i
void putchar(unsigned char ch)    // 串口发送一个字符
" O, j% D: |# W+ y# Y{/ i. z' Y: y8 |+ g) h+ S
SBUF = ch;
2 ~, D' M1 o" S# Z* t/ Q. N while (TI == 0);) n% d5 t& l$ V( v. |# R0 Y
TI = 0;
0 t+ B( \0 T( y( d}( H2 j  z% `3 ^- r, T6 i8 T
void send_message(void)    // 串口发送字符串
$ z  O$ G9 |. V{( Y; e$ }& k2 y" o8 Q
unsigned int i = 0;
. g* X+ j) w; ?( z  ]1 Q do8 q, Y) ]4 P  s4 L5 ~9 N
{
2 _( Y# W! ^2 q0 F- s% [  putchar(message[i]);7 Z: k4 z8 R3 O5 w6 m4 i
  i++; 9 b# B* N! v" J( Y* D# W
} while (i < MESSAGE_LEN);
8 ]( V& C$ c; U) ]% r! m. ]}
4 T9 H7 \0 b2 C! p, X/ Lmain()
1 ?% Q2 S3 _' g+ c{
# v9 g/ V" L; c2 l9 S0 m4 u message[MESSAGE_LEN] = {'M','C','S'};
! {6 b0 E3 O* ^9 F9 F1 @! j, d/ `4 T init_serialcomm();! j1 t2 \9 M2 J. r1 _1 |8 Q6 h: S
send_message();
2 c- i7 W  }( S  U, X5 b3 K1 W}7 ^3 ]# l! W  F. \4 J2 A' G

: [9 i9 f" Y1 E! I+ {使用KEIL编译后模拟仿真,在串行口输出窗口输出“MMCS”
2 I/ O1 A( S5 J本想显示“MCS”,为什么会显示错呢?
+ P- i7 m3 D$ K+ \0 s
; m( F( D" [6 f; l" ^6 Y哪位高手可以指导一下呢?
发表于 2010-8-13 11:22:05 | 显示全部楼层 来自: 中国湖南株洲
数据发送重复了;
6 K! O4 c! ?4 g. u+ l  e2 uunsigned int i = 0;" z+ ?- L* D- _8 O7 E- {0 t
do
9 I, ?2 n9 [$ p4 [( U: T- c{putchar(message[i]);
0 p; v, g. \* |9 H. k6 \. y2 b i++;
. a+ M  j. w" h2 k* F7 w} while (i < MESSAGE_LEN);/ Z# s$ t) M& b6 j8 L# u
这句是否有问题。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表