普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 3038|回复: 2

串口通信与静态数码管关联的问题

[复制链接]

1

主题

1

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2020-12-19 21:58:11 | 显示全部楼层 |阅读模式
我将串口通信接收的值直接赋值到静态数码管的段选,然后单片机上静态数码管就没有显示了,求教这是什么原因?代码是这样的:
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

u8 smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
u8 receiveDate=1;
void UsartInit(){
TMOD=0x20;
TH1=0xF4;
TH2=0xF4;
PCON=0x80;
TR1=1;
SCON=0x50;
ES=1;
EA=1;
}
void main()
{
  UsartInit();
   LSA=0;
LSB=0;
LSC=0;
  while(1)
  {
P0=smgduan[receiveDate];
  }
}

void Usart() interrupt 4{
receiveDate=SBUF;
RI=0;
SBUF=receiveDate;
while(!TI){
}
TI=0;
}
运行结果是串口助手能接收到输入的值,但是单片机上的静态数码管直接没有显示了。
除此之外还尝试了新创建一个u8变量单独存放串口通信值给数码管,也没有显示,但是如果令此新变量在每次串口通信是自加1,数码管有显示。
回复

使用道具 举报

0

主题

4

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2021-5-23 20:39:18 来自手机 | 显示全部楼层
我感觉receivedat作为局部变量,不返回主函数吧
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-25 16:18 , Processed in 0.094158 second(s), 33 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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