4646|2

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

设计一银行动态密码获取系统,通过单片机的双机通信实现动态密码... [复制链接]

甲机:#include
void main()             //主函数
{
   unsigned char i;  
   unsigned char send[]={0x01,0x03,0x05,0x07};    //定义要发送的数据,为了简化显示,发送数据在0~9之间
     TMOD=0x20;                       //定时器T1工作于方式2
         TL1=0xf4;                        //波特率为2400bps
         TH1=0xf4;
         SCON=0x40;                       //定义串行口工作于方式1
     TR1=1;
   for(i=0;i<4;i++)
      {
            SBUF=send[i];                   //发送第i个数据
            while(TI==0);                   //查询等待发送是否完成
            TI=0;                           //发送完成,TI由软件清0
          }
   while(1);

}
乙机:#include
code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77};
                                    //定义0~9显示字型码
unsigned char send[]={0x01,0x03,0x05,0x07}

//unsigned char buffer[]={0x00,0x00,0x00,0x00};   //定义接收数据缓冲区
void disp(void);            //显示函数声明
void main()                   //主函数
{
   unsigned char i;
    TMOD=0x20;                //定时器T1工作于方式2
        TL1=0xf4;                 //波特率定义
        TH1=0xf4;
        TR1=1;
        SCON=0x40;                //定义串行口工作于方式1
  
        for(i=0;i<4;i++)
           {
         REN=1;                    //接收允许
             while(RI==0);             //查询等待接收标志为1,表示接收到数据
             buffer[i]=SBUF;           //接收数据
             RI=0;                     //RI由软件清0          
           }
        for(;;)disp();            //显示接收数据
}
//函数名:disp
//函数功能:在4个LED上显示buffer中的4个数
//入口参数:无
//出口参数:无
void disp()
{
    unsigned char w,i,j;
         w=0xfd;                  //位码赋初值
         for(i=0;i<4;i++)
         {
            P1=~(tab[buffer[i]]);     //送显示字型段码,buffer[i]作为数组分量的下标
            P2=~w;                 //送位码
            for(j=0;j<100;j++);    //显示延时
            w<<=1;                 //w左移一位
     }
}

软件PrOteus仿真没有正确1,3,5,7,还出现段码不显示,我认为甲机发送程序,乙机发送程序是正确的,但是显示部分一直没有找到问题,请赐教?谢谢哦哦!
此帖出自单片机论坛

最新回复

没有正确1,3,5,7,还出现段码不显示。 先用直接查看双击通信数据,好像是数据传递过程中出了问题。  详情 回复 发表于 2015-12-13 22:44
点赞 关注
 

回复
举报

73

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
没有正确1,3,5,7,还出现段码不显示。
先用直接查看双击通信数据,好像是数据传递过程中出了问题。
此帖出自单片机论坛
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
无罪之宾 发表于 2015-12-13 22:44
没有正确1,3,5,7,还出现段码不显示。
先用直接查看双击通信数据,好像是数据传递过程中出了问题。

我觉得发送与接收程序是对的呀?
好像是显示部分的问题?
此帖出自单片机论坛
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【干货上新】电源解决方案和技术第二趴 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 9

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表