帮忙看看哪里错了

[复制链接]
2560|5
 楼主| wjcy131421 发表于 2008-5-21 17:29 | 显示全部楼层 |阅读模式
我在做51数码管动态显示的实验,出了问题,怎么也没找出来<br />硬件连接如下,8个数码管的位选接P2口,段选接P0口,<br />现要让8个数码管显示12345678,程序如下,看看那里出了问题<br />#include&ltreg52.h&gt<br />#define&nbsp;uchar&nbsp;unsigned&nbsp;char&nbsp;<br />uchar&nbsp;aa,numd,numw;<br />uchar&nbsp;code&nbsp;table[]={<br />0xc0,0xf9,0xa4,0xb0,<br />0x99,0x92,0x82,0xf8,<br />0x80,0x90,0x88,0x83,<br />0xc6,0xa1,0x86,0x8e};<br />uchar&nbsp;code&nbsp;tablew[]={<br />0xfe,0xfd,0xfb,0xf7,<br />0xef,0xdf,0xbf,0x7f};<br />void&nbsp;mian()<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;numw=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;numd=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;aa=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TMOD=0x01;<br />&nbsp;&nbsp;&nbsp;&nbsp;TH0=(65536-50000)/256;<br />&nbsp;&nbsp;&nbsp;&nbsp;TL0=(65536-50000)%256;<br />&nbsp;&nbsp;&nbsp;&nbsp;EA=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;ET0=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;TR0=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(aa==20)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numd++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(numd==9)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numd=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P0=table[numd];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numw++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(numw==8)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numw=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P2=tablew[numw];&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />void&nbsp;timer0()&nbsp;interrupt&nbsp;1<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TH0=(65536-50000)/256;<br />&nbsp;&nbsp;&nbsp;&nbsp;TL0=(65536-50000)%256;<br />&nbsp;&nbsp;&nbsp;&nbsp;aa++;<br />}
t.jm 发表于 2008-5-21 19:43 | 显示全部楼层

段,位不批配。

一个为共阴一个为共阳的数码管。
dontium 发表于 2008-5-21 21:23 | 显示全部楼层

嗨!!让我看了好半天

开始我也以为不可能不会执行的,仔细一编译:<br />linking...<br />***&nbsp;WARNING&nbsp;L16:&nbsp;UNCALLED&nbsp;SEGMENT,&nbsp;IGNORED&nbsp;FOR&nbsp;OVERLAY&nbsp;PROCESS<br />&nbsp;&nbsp;&nbsp;&nbsp;SEGMENT:&nbsp;?PR?MIAN?TIMER<br />Program&nbsp;Size:&nbsp;data=3.0&nbsp;xdata=0&nbsp;code=104<br />creating&nbsp;hex&nbsp;file&nbsp;from&nbsp;&quot;timer&quot;...<br />&quot;timer&quot;&nbsp;-&nbsp;0&nbsp;Error(s),&nbsp;1&nbsp;Warning(s).<br /><br /><br /><br />哈哈,没有执行主程序!!
jerkoh 发表于 2008-5-21 21:26 | 显示全部楼层

re

一眼看到了误写的&nbsp;mian()哈哈
 楼主| wjcy131421 发表于 2008-5-22 10:15 | 显示全部楼层

谢谢楼上两位了,问题已经解决了

真是受不了自己了,怎么会出现这么低级的错误哦&nbsp;!~~!<br /><br />不明白为什么没有执行主程序编译时不出现错误呢????<br /><br />那个警告都没看懂是什么意思,以为没什么问题呢
 楼主| wjcy131421 发表于 2008-5-22 10:17 | 显示全部楼层

回2楼

是共阳数码管,P0直接接段选,P2接PNP三极管后再将VCC接位选,<br /><br />和你说的没关系
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

318

帖子

0

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