打印

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

[复制链接]
3584|18
手机看帖
扫描二维码
随时随地手机跟帖
沙发
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控制数码管显示么。。

使用特权

评论回复
5
g6069205|  楼主 | 2013-4-4 23:25 | 只看该作者
NE5532 发表于 2013-4-4 15:18
编程序实现呗,命只有楼主自己救,方法给楼主说,用队列的数据结构来考虑。 ...

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

使用特权

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

貌似这个段选位选很简单啊

使用特权

评论回复
7
runmanmm| | 2013-4-5 10:22 | 只看该作者
很简单的,静下心来看书看书,动态扫描,命靠自己救

使用特权

评论回复
8
xupengyuan123| | 2013-4-5 11:05 | 只看该作者
循环

使用特权

评论回复
9
intermec| | 2013-4-5 11:18 | 只看该作者
开个缓冲,进一个数字就右移一下,,

使用特权

评论回复
10
tangtvc| | 2013-4-5 13:06 | 只看该作者

使用特权

评论回复
11
g6069205|  楼主 | 2013-4-5 15:19 | 只看该作者
intermec 发表于 2013-4-5 11:18
开个缓冲,进一个数字就右移一下,,

缓冲是什么啊?兄台

使用特权

评论回复
12
g6069205|  楼主 | 2013-4-5 15:26 | 只看该作者
NE5532 发表于 2013-4-4 15:18
编程序实现呗,命只有楼主自己救,方法给楼主说,用队列的数据结构来考虑。 ...

谢谢版主啊。。动态显示我会了。可是输入的时候又遇见问题了。
while(1)
{
p=key_scan();//键盘扫描,读入数字
......
}
我输入一个数字之后,它做完“......”里的内容,好像因为while的原因又开始循环扫描,不等我输入,怎么办呢?

使用特权

评论回复
13
NE5532| | 2013-4-5 15:37 | 只看该作者
呵呵,那你就想办法写语句让他等你输入啊。程序是你怎么写他怎么跑的,你愁啥啊?画流程图先。

使用特权

评论回复
14
g6069205|  楼主 | 2013-4-5 15:49 | 只看该作者
NE5532 发表于 2013-4-5 15:37
呵呵,那你就想办法写语句让他等你输入啊。程序是你怎么写他怎么跑的,你愁啥啊?画流程图先。 ...

版主大哥啊。。先教我一下吧。。马上就要交作业了学了一周 很多都还不会呢。怎么写程序让它等我输入啊?谢谢啊,救命啊。。

使用特权

评论回复
15
NE5532| | 2013-4-5 15:51 | 只看该作者
char a = null;

while(1)
{
a = scan();
if ( a!= null)
{
  Do something you want, like display;
  a = null;
}
}

使用特权

评论回复
16
g6069205|  楼主 | 2013-4-5 16:04 | 只看该作者
NE5532 发表于 2013-4-5 15:51
char a = null;

while(1)

谢谢版主耐心解答。这个方法我开始试过,不知道怎么搞的它还是老是乱循环,谢谢了

使用特权

评论回复
17
NE5532| | 2013-4-5 16:05 | 只看该作者
那即使你自己没写对三。你怎么设计的,程序就怎么跑,除非是你没写对或者没设计对。你试着【仔仔细细】的重新写进去调试呢。

使用特权

评论回复
18
g6069205|  楼主 | 2013-4-5 16:08 | 只看该作者
NE5532 发表于 2013-4-5 16:05
那即使你自己没写对三。你怎么设计的,程序就怎么跑,除非是你没写对或者没设计对。你试着【仔仔细细】的重 ...

恩。。好。我再好好看看

使用特权

评论回复
19
cqiang| | 2013-4-6 13:30 | 只看该作者
要让数码管每一个都出现不同的数字,你要位选跟段选在main函数中定义一下就行了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

9

帖子

0

粉丝