打印
[51单片机]

请大家帮帮忙,本人写的一个数码管计数程序始终不行啊

[复制链接]
2004|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 qjp1988113 于 2013-12-28 13:44 编辑


请大家帮帮忙,本人写的一个数码管计数程序始终不行啊。通电话,一直显示“0000”,按任何按键度没反应啊。。
本想把显示程序做到定时器里面的,但就是不行啊。请大家指点下小弟。不胜感激涕零!
描述:当有外部中断时,计数加1,当达到设定的总数是,外设1先停止,再延时(时间可通过按键设定)后,外设2停止。
有3个功能按钮;模式按钮,加减按钮,移位/清除按钮。按模式按钮,可切换3界面:正常计数界面,延时调整界面,总数设定界面。
加减按钮:加减数字;移位按钮:从个位到千位并特定模式可清零。数码管能显示不同页面所需的值。附上程序: 程序清单.rar (4.55 KB)

相关帖子

沙发
黄小俊| | 2013-12-28 22:10 | 只看该作者

使用特权

评论回复
板凳
gx_huang| | 2013-12-29 11:56 | 只看该作者
本帖最后由 gx_huang 于 2013-12-29 11:58 编辑

好复杂的程序,程序架构明显有问题。
应该把显示扫描程序放在定时中断里。
主程序只更新需要显示的显示缓冲,定时中断里读取显示缓冲,并显示出来,每次中断显示一个数码管。
你这样的程序,我肯定不愿意看的,好几个地方都有显示相关的程序,太累。

比如,显示缓冲:
uchar led[4];
0-F表示0-F的显示符号,0X10表示不显示,0X11表示其它符号,依次类推。
如果要显示1234
则:
led[0]=1;led[1]=2;led[3]=3;led[4]=4;

使用特权

评论回复
地板
cjseng| | 2013-12-29 13:37 | 只看该作者
建议单步调试,用proteus和keil联调,很容易排查问题的。

使用特权

评论回复
5
645886995| | 2013-12-29 19:39 | 只看该作者
看看。。。

使用特权

评论回复
6
创隆电子| | 2013-12-29 21:00 | 只看该作者
建议一步一步调试,可以先按静态扫描方式,先让数码管单个显示正常了,在缩短扫描时间

使用特权

评论回复
7
NE5532| | 2013-12-29 21:41 | 只看该作者
楼主调试程序的方法不对,建议读《程序调试黑宝书》

使用特权

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

本版积分规则

111

主题

627

帖子

2

粉丝