找回密码
 立即注册

QQ登录

只需一步,快速开始

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

我想通过串口通信来改变数码管的显示

[复制链接]
跳转到指定楼层
楼主
ID:183242 发表于 2017-4-1 17:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在的问题是:如果我成功显示了数字2,但是我在不复位的情况下,不能再次通过串口通信来让数码管显示数字3。希望大家教我一下。谢谢大家!!



#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit du=P2^6;
sbit we=P2^7;
uchar a;
char code table []={0x3f,0x06,0x5b,0x4f,0x66,0x6d,     0x7d,0x07,0x7f,0x6f,0x77,0x7c,     0x39,0x5e,0x79,0x71};

void main()
{
        SCON=0X50;
        PCON=0x00;
        TMOD=0X20;
        EA=1;
        ES=1;
        TL1=0Xfd;
        TH1=0Xfd;
        TR1=1;
        du=0;
        we=0;       

        while(1) ;
}

void zhongduan() interrupt 4
{
        ES=0;
        RI=0;
        a=SBUF;

        we=1;
        P0=0x00;
        we=0;
        P0=0xff;
        du=1;
        P0=table[a];
        du=0;

        EA=1;
}


QQ截图20170401123806.png (270.03 KB, 下载次数: 99)

这是原理图

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

使用道具 举报

沙发
ID:151348 发表于 2017-4-1 20:15 | 只看该作者
a=SBUF;
while(!RI);-//-等待数据接收完成,RI=1了,说明数据接收完成了,就不等待了,往下执行
RI=0;//置位标识符

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:183242 发表于 2017-4-1 20:38 | 只看该作者
imxuheng 发表于 2017-4-1 20:15
a=SBUF;
while(!RI);-//-等待数据接收完成,RI=1了,说明数据接收完成了,就不等待了,往下执行
RI=0;// ...

那有什么方式可以让他在显示完2之后,再次传送数字3,数码管由2变为3
回复

使用道具 举报

地板
ID:111634 发表于 2017-4-1 21:16 | 只看该作者
本帖最后由 zl2168 于 2017-4-1 21:18 编辑

双机串行通信方式1
Proteus仿真一下,确认有效。
实例77 双机通信方式1.rar (40.4 KB, 下载次数: 48)

以上摘自张志良编著80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行书中电路和程序设计有详细说明,程序语句条条有注解。
回复

使用道具 举报

5#
ID:111634 发表于 2017-4-1 21:19 | 只看该作者
双机串行通信方式2
Proteus仿真一下,确认有效。
实例78 双机通信方式2.rar (46.57 KB, 下载次数: 29)

以上摘自张志良编著80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行书中电路和程序设计有详细说明,程序语句条条有注解。
回复

使用道具 举报

6#
ID:111634 发表于 2017-4-1 21:20 | 只看该作者
本帖最后由 zl2168 于 2017-4-1 21:21 编辑

双机串行通信方式3
Proteus仿真一下,确认有效。
实例79 双机通信方式3.rar (45.3 KB, 下载次数: 43)

以上摘自张志良编著80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行书中电路和程序设计有详细说明,程序语句条条有注解。
回复

使用道具 举报

7#
ID:151348 发表于 2017-4-2 09:00 | 只看该作者
kaixinjiuhao 发表于 2017-4-1 20:38
那有什么方式可以让他在显示完2之后,再次传送数字3,数码管由2变为3

就是这三句,
void zhongduan() interrupt 4
{
        ES=0;

        a=SBUF;
        while(!RI);-//-等待数据接收完成,RI=1了,说明数据接收完成了,就不等待了,往下执行
        RI=0;//置位标识符

        we=1;
        P0=0x00;
        we=0;
        P0=0xff;
        du=1;
        P0=table[a];
        du=0;

        EA=1;
}
看看行不行
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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