有用proteus的吗?有的话麻烦帮我一下……

redbat_228 2008-08-31 12:42:21
我编写了一个时钟程序,功能比较简单,显示总是为48,不知为何。。。
细细调试,查看到在程序中的函数Conv处发生很奇怪的现象,不知为和原因,想请人解释一下……
大家看到这幅图,刚进入函数,numhigh为30H,numlow为08H(按理说,他们是局部变量,刚进入为零才对啊,)暂且不管,看第二幅图


numbuff的值为0,但计算后numhigh,numlow的值却为30H和08H……


看第三幅图,经过一个加法运算后,numhigh的值未变,但numlow的值加了30H(numlow的计算是正确的)


还有,下面送显示时,numhigh是30H,按理应当显示0,但显示却是4;numlow显示8,与这地方的数值对应是正确的……(我的液晶显示模块已经调过,正确显示是没有问题的)……

很是郁闷,期待解答……

C仿真用得是keil uv3

...全文
53 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
redbat_228 2008-08-31
  • 打赏
  • 举报
回复
这是仿真源文件,包含电路和keil程序……
(从纳米盘的一个链接)
http://www.namipan.com/d/f0039b0c56c88b03fba98a4cce5880eb60370d2dddae0100

redbat_228 2008-08-31
  • 打赏
  • 举报
回复
谢谢楼上的答复,确认numbuff是0

我已经找到问题的根源了,是我在主程序和中断里都调用了一个显示函数,导致了函数内部数据的丢失所致。

不过通过这次教训也多学到了一点东西,以后写程序我要注意了……

疑惑终于解除了,谢谢楼上的热心人,把分给你结贴了……

sherlock_lai 2008-08-31
  • 打赏
  • 举报
回复
你确定你的numbuff是0?
定义一个aa=12; 然后用aa代替numbuff试试
还有一个刚定义的局部变量不一定是0的,但是这不妨碍你使用

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧