求助:单片机AT89S52数码管如何实现依次输入1 2 3,数码管显示1 12 123,像计算器那样

[复制链接]
4407|18
 楼主| g6069205 发表于 2013-4-4 14:42 | 显示全部楼层 |阅读模式
NE5532 发表于 2013-4-4 15:18 | 显示全部楼层
编程序实现呗,命只有楼主自己救,方法给楼主说,用队列的数据结构来考虑。
SunFans 发表于 2013-4-4 15:43 | 显示全部楼层
貌似道理很简单哦,加个静态变量就OK了……;P
static unsigned int display_number = 0;
display_number = display_number*10 + input_number;
psprintf("%d", display_number);


 楼主| g6069205 发表于 2013-4-4 23:24 | 显示全部楼层
SunFans 发表于 2013-4-4 15:43
貌似道理很简单哦,加个静态变量就OK了……
static unsigned int display_number = 0;
display_number =  ...

单片机能用printf吗?不是只能用P0 P1控制数码管显示么。。
 楼主| g6069205 发表于 2013-4-4 23:25 | 显示全部楼层
NE5532 发表于 2013-4-4 15:18
编程序实现呗,命只有楼主自己救,方法给楼主说,用队列的数据结构来考虑。 ...

我就是不知道怎么在数码管上显示呢。。其它都知道    如何用P0 和 P1端口 控制显示呢?

评论

那你的问题是不会显示,而不是不会移位。先百度一下“数码管动态显示”  发表于 2013-4-5 09:16
xiaoqigai2 发表于 2013-4-4 23:42 | 显示全部楼层
g6069205 发表于 2013-4-4 23:25
我就是不知道怎么在数码管上显示呢。。其它都知道    如何用P0 和 P1端口 控制显示呢? ...

貌似这个段选位选很简单啊
runmanmm 发表于 2013-4-5 10:22 | 显示全部楼层
很简单的,静下心来看书看书,动态扫描,命靠自己救
xupengyuan123 发表于 2013-4-5 11:05 | 显示全部楼层
intermec 发表于 2013-4-5 11:18 | 显示全部楼层
开个缓冲,进一个数字就右移一下,,
tangtvc 发表于 2013-4-5 13:06 | 显示全部楼层
 楼主| g6069205 发表于 2013-4-5 15:19 | 显示全部楼层
intermec 发表于 2013-4-5 11:18
开个缓冲,进一个数字就右移一下,,

缓冲是什么啊?兄台
 楼主| g6069205 发表于 2013-4-5 15:26 | 显示全部楼层
NE5532 发表于 2013-4-4 15:18
编程序实现呗,命只有楼主自己救,方法给楼主说,用队列的数据结构来考虑。 ...

谢谢版主啊。。动态显示我会了。可是输入的时候又遇见问题了。
while(1)
{
p=key_scan();//键盘扫描,读入数字
......
}
我输入一个数字之后,它做完“......”里的内容,好像因为while的原因又开始循环扫描,不等我输入,怎么办呢?
NE5532 发表于 2013-4-5 15:37 | 显示全部楼层
呵呵,那你就想办法写语句让他等你输入啊。程序是你怎么写他怎么跑的,你愁啥啊?画流程图先。
 楼主| g6069205 发表于 2013-4-5 15:49 | 显示全部楼层
NE5532 发表于 2013-4-5 15:37
呵呵,那你就想办法写语句让他等你输入啊。程序是你怎么写他怎么跑的,你愁啥啊?画流程图先。 ...

版主大哥啊。。先教我一下吧。。马上就要交作业了学了一周 很多都还不会呢。怎么写程序让它等我输入啊?谢谢啊,救命啊。。
NE5532 发表于 2013-4-5 15:51 | 显示全部楼层
char a = null;

while(1)
{
a = scan();
if ( a!= null)
{
  Do something you want, like display;
  a = null;
}
}
 楼主| g6069205 发表于 2013-4-5 16:04 | 显示全部楼层
NE5532 发表于 2013-4-5 15:51
char a = null;

while(1)

谢谢版主耐心解答。这个方法我开始试过,不知道怎么搞的它还是老是乱循环,谢谢了
NE5532 发表于 2013-4-5 16:05 | 显示全部楼层
那即使你自己没写对三。你怎么设计的,程序就怎么跑,除非是你没写对或者没设计对。你试着【仔仔细细】的重新写进去调试呢。
 楼主| g6069205 发表于 2013-4-5 16:08 | 显示全部楼层
NE5532 发表于 2013-4-5 16:05
那即使你自己没写对三。你怎么设计的,程序就怎么跑,除非是你没写对或者没设计对。你试着【仔仔细细】的重 ...

恩。。好。我再好好看看
cqiang 发表于 2013-4-6 13:30 | 显示全部楼层
要让数码管每一个都出现不同的数字,你要位选跟段选在main函数中定义一下就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

9

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部