51单片机与pc串口通信为什么显示不正常
#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitdula=P2^6;//锁存器U1s...
#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit dula=P2^6; //锁存器 U1sbit wela=P2^7; //锁存器 u2uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar d;
void delay(uchar x){ uchar i,j; for(i=x;i>0;i--) for(j=110;j>0;j--);}
void display(uchar a,uchar b){ dula=0; P0=table[a]; dula=1; dula=0; wela=0; P0=0x7e; wela=1; wela=0; delay(2);
dula=0; P0=table[b]; dula=1; dula=0; wela=0; P0=0x7d; wela=1; wela=0; delay(2);}
void main(){ TMOD=0x20; TH1=0xfd; TL1=0xfd; REN=1; SM0=0; SM1=1; ES=1; TR1=1; EA=1; while(1) { display(d/10,d%10); }}
void t1() interrupt 4{ RI=0; d=SBUF;}
我之前做别的程序的时候写通信发现显示不正常 我用串口助手发送一个数据到单片机上 其中U1 U2两个寄存器链接到数码管上用来显示(P2.6和P2.7)
十进制发送数据以后数据总是在48-57之间
就是
0……48
1……49
类推
9……57
10……48
一直这样循环
我想这是为什么 怎么改才会显示正常 串口COM3是用的串口 波特率9600也没什么问题 我想问下具体问题出在什么地方 应该怎么修改才好 展开
void delay(uchar x){ uchar i,j; for(i=x;i>0;i--) for(j=110;j>0;j--);}
void display(uchar a,uchar b){ dula=0; P0=table[a]; dula=1; dula=0; wela=0; P0=0x7e; wela=1; wela=0; delay(2);
dula=0; P0=table[b]; dula=1; dula=0; wela=0; P0=0x7d; wela=1; wela=0; delay(2);}
void main(){ TMOD=0x20; TH1=0xfd; TL1=0xfd; REN=1; SM0=0; SM1=1; ES=1; TR1=1; EA=1; while(1) { display(d/10,d%10); }}
void t1() interrupt 4{ RI=0; d=SBUF;}
我之前做别的程序的时候写通信发现显示不正常 我用串口助手发送一个数据到单片机上 其中U1 U2两个寄存器链接到数码管上用来显示(P2.6和P2.7)
十进制发送数据以后数据总是在48-57之间
就是
0……48
1……49
类推
9……57
10……48
一直这样循环
我想这是为什么 怎么改才会显示正常 串口COM3是用的串口 波特率9600也没什么问题 我想问下具体问题出在什么地方 应该怎么修改才好 展开
4个回答
2013-07-26
展开全部
发送和接收的状态要一样,
16进制发就要16进制收,
字符发就要字符收,
这样收发的内容才是一样的!
16进制发就要16进制收,
字符发就要字符收,
这样收发的内容才是一样的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这就对了 0 的ascii码就是48
0-48
1-49
2-50
........
9-57
你是按字符发送的,如果用16进制发送,就会发多少得多少了
0-48
1-49
2-50
........
9-57
你是按字符发送的,如果用16进制发送,就会发多少得多少了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
点击那个 “十六进制显示”
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是波特率没有设置好呢
串口通信 很容易实现的啊
串口通信 很容易实现的啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询