找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6474|回复: 5
打印 上一主题 下一主题
收起左侧

用虚拟串口发现proteus内窗口显示的是好的,对串口调试助手内显示的是乱码,请问大...

[复制链接]
跳转到指定楼层
楼主
LZ试了试虚拟串口发现proteus[img=0,1]file:///D:\Documents\Tencent Files\731888784\Image\C2C\TY~SRF[6%0`A0X7HVC1R)C6.png[/img]内窗口显示的是好的,对串口调试助手内显示的是乱码,请问大神是怎么回事?
程序很简单如下:

/*******************************************************************************
* 实验名                           : 串口实验
* 使用的IO             : P2
* 实验效果       : 将接收到发送回电脑上面。
*        注意                                         :
*******************************************************************************/

#include<reg51.h>

//--声明全局函数--//
void UsartConfiguration();
/*******************************************************************************
* 函 数 名         : main
* 函数功能                   : 主函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/

void main()
{
        UsartConfiguration();
        while(1)
        {
        }
}
/*******************************************************************************
* 函 数 名         :UsartConfiguration()
* 函数功能                   :设置串口
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/

void UsartConfiguration()
{
        SCON=0X50;                        //设置为工作方式1
        TMOD=0X20;                        //设置计数器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;                    //计数器初始值设置,注意波特率是4800的
        TL1=0XF3;
        ES=1;                                                //打开接收中断
        EA=1;                                                //打开总中断
        TR1=1;                                            //打开计数器
}

/*******************************************************************************
* 函 数 名         :Delay(unsigned int i)
* 函数功能                   : 延时函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void Usart() interrupt 4
{
        unsigned char receiveData;
        receiveData=SBUF; //出去接收到的数据
        RI = 0;           //清除接收中断标志位
        SBUF=receiveData; //将接收到的数据放入到发送寄存器
        while(!TI);                  //等待发送数据完成
        TI=0;                          //清除发送完成标志
}


就是搞不清楚这乱码的情况,跪求大神

[img]file:///D:\Documents\Tencent Files\731888784\Image\C2C\TY~SRF[6%0`A0X7HVC1R)C6.png[/img]

[img]file:///D:\Documents\Tencent Files\731888784\Image\C2C\TY~SRF[6%0`A0X7HVC1R)C6.png[/img]




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:127023 发表于 2016-6-19 10:24 | 只看该作者
LZ已经自行解决,仿真内芯片晶振问题,开始内部是设置24M,后来把它改成12MHZ后就好了,但是keil编译时hex内是默认24Mhz,就是不清楚为什么改成12MHZ就好了。有知道的大神回复一下,小弟心切想知道。
回复

使用道具 举报

板凳
ID:110895 发表于 2016-6-19 17:32 | 只看该作者
你设置波特率加倍了。
回复

使用道具 举报

地板
ID:127023 发表于 2016-6-19 18:47 来自手机 | 只看该作者
liuyimao485812 发表于 2016-6-19 17:32
你设置波特率加倍了。

你的意思是若PCON内设置波特率加倍那么仿真时与hex相比芯片内 晶振也要减小一倍?
回复

使用道具 举报

5#
ID:110895 发表于 2016-6-21 06:10 | 只看该作者
对的,设置波特率为4800,加倍后,波特率就是9600了。
回复

使用道具 举报

6#
ID:127023 发表于 2016-6-21 13:02 | 只看该作者
嗯谢谢懂了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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