找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机串口通讯接口程序报错 大佬们 求助 谢谢

[复制链接]
跳转到指定楼层
楼主
ID:271732 发表于 2018-1-5 00:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
功能:
编写通讯接口程序,用串口调试助手向单片机发送字符串,字符串显示在数码管上,在目标机上调试好。
将收到的字符再发送回串口调试助手。

刚刚接触单片机,麻烦各位给指点指点谢谢
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. uchar cgf1[10]={"ABCDEFGHIJ"};        /*发送的字符串*/
  4. uchar cgf2[10]={0xbd,0x18,0x0d5,0xd9,0x78
  5.                                 0x0e9,0x0ed,0x98,0xfd,0xf9};        /*数码管显示字形表*/
  6. main(){
  7.         uchar i,j;
  8.         PCON &=0x7F;                //波特率不倍速
  9.         SCON = 0x50;                //8位数据,可变波特率
  10.         AUXR &= 0xBF;                //定时器1时钟为Fosc/12,即12T
  11.         AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
  12.         TMOD &= 0x0F;                //清除定时器1模式位
  13.         TMOD |= 0x20;                //设定定时器1为8位自动重装方式
  14.         TL1 = 0xFD;                        //设定定时初值
  15.         TH1 = 0xFD;                        //设定定时器重装值
  16.         ET1 = 0;                        //禁止定时器1中断
  17.         TR1 = 1;                        //启动定时器1
  18.         P1=0xf4;                         /*数码管显示“P”提示符*/
  19.         while(1)
  20.         {                                 /*循环*/
  21.     RI = 0;                                   
  22.         while(!RI);                         /*RI=0等待*/
  23.         i=SBUF;                                 /*RI=1接收,存入i变量*/
  24.         i=i&0x0f;                         /*保留低4位*/
  25.         PI=cfg2[i];                        /*查字型表送P1口数码管*/
  26.         RI=0;                                /*清RI*/
  27.         for(j=0;j<200;j++);        /*延时*/
  28.         TI=0;
  29.         SBUF=cgf1[i];                        /*取cgf1字符串中第i个字符发送*/
  30.         while(!TI);     // 等特数据传送
  31.         TI = 0;      // 清除数据传送标志
  32.         }
  33. }

复制代码

代码运行之后 报错   不太理解哪错了
  1. Build target 'Target 1'
  2. compiling whn001.c...
  3. WHN001.C(5): error C141: syntax error near '0x0e9'
  4. WHN001.C(6): error C141: syntax error near '{'
  5. WHN001.C(8): error C129: missing ';' before '&='
  6. Target not created
复制代码



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

使用道具 举报

沙发
ID:266627 发表于 2018-1-6 17:49 | 只看该作者
第4行,0x78后加上逗号
回复

使用道具 举报

板凳
ID:213173 发表于 2018-1-6 21:04 | 只看该作者
uchar cgf2[10]={0xbd,0x18,0x0d5,0xd9,0x78  少了逗号
PI=cfg2[i]; 应该是P1=cgf2[i];
AUXR &= 0xBF; AUXR &= 0xFE; 51头文件里没有此寄存器,需要声明
这是改后的程序,编译通过,未经实物验证:
#include<reg51.h>
#define uchar unsigned char
sfr AUXR=0x8E;   // 辅助寄存器
uchar cgf1[10]={"ABCDEFGHIJ"};        /*发送的字符串*/
uchar cgf2[10]={0xbd,0x18,0x0d5,0xd9,0x78,
                0x0e9,0x0ed,0x98,0xfd,0xf9}; /*数码管显示字形表*/
void main()
{
        uchar i,j;
        PCON &=0x7F;                //波特率不倍速
        SCON = 0x50;                //8位数据,可变波特率
        AUXR &= 0xBF;                //定时器1时钟为Fosc/12,即12T
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //清除定时器1模式位
        TMOD |= 0x20;                //设定定时器1为8位自动重装方式
        TL1 = 0xFD;                        //设定定时初值
        TH1 = 0xFD;                        //设定定时器重装值
        ET1 = 0;                        //禁止定时器1中断
        TR1 = 1;                        //启动定时器1
        P1=0xf4;                         /*数码管显示“P”提示符*/
        while(1)
        {                                 /*循环*/
                RI = 0;                                   
                while(!RI);                         /*RI=0等待*/
                i=SBUF;                                 /*RI=1接收,存入i变量*/
                i=i&0x0f;                         /*保留低4位*/
                P1=cgf2[i];                        /*查字型表送P1口数码管*/
                RI=0;                                /*清RI*/
                for(j=0;j<200;j++);        /*延时*/
                TI=0;
                SBUF=cgf1[i];                        /*取cgf1字符串中第i个字符发送*/
                while(!TI);     // 等特数据传送
                TI = 0;      // 清除数据传送标志
        }
}

       
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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