关于C语言交通灯的编写显示出了点问题

[复制链接]
1954|0
 楼主| 初学者007 发表于 2007-4-26 18:39 | 显示全部楼层 |阅读模式
这个程序能显示数字但是不能倒记时,数字一直显示15,请高手帮忙找找原因,谢谢!<br />#include&ltreg51.h&gt<br />#include&ltabsacc.h&gt<br />#define&nbsp;zhiwei&nbsp;XBYTE&nbsp;[0x3fff]&nbsp;&nbsp;&nbsp;&nbsp;//字位的地址<br />#define&nbsp;zhixing&nbsp;XBYTE&nbsp;[0x5fff]&nbsp;&nbsp;&nbsp;//字型的地址<br />#define&nbsp;deng&nbsp;XBYTE&nbsp;[0x1fff]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//灯的地址<br />#define&nbsp;uchar&nbsp;unsigned&nbsp;char<br />#define&nbsp;uint&nbsp;unsigned&nbsp;int<br />light(uchar&nbsp;a)&nbsp;&nbsp;;<br />xianshi(uint&nbsp;b);<br />void&nbsp;delay();<br /><br />uint&nbsp;e,b;<br />//===============中断服务程序===================<br />time()&nbsp;interrupt&nbsp;1&nbsp;using&nbsp;1<br />{TH0=0x3c;<br />TL0=0xb0;<br />if(--e==0)<br />{--b;<br />e=20;}<br />}<br />void&nbsp;delay()<br />{uint&nbsp;i;<br />for(i=0;i&lt100;++i);<br />}<br />//====灯显示程序====<br />light(uchar&nbsp;a)<br />{deng=a;<br />}<br />//===倒记时程序========<br />xianshi(uint&nbsp;b)<br />{while(b)<br />{const&nbsp;unsigned&nbsp;char&nbsp;design[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90};<br />zhiwei=0x02;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//确定字位<br />zhixing=design[b/10];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//确定字型<br />zhiwei=0x00;<br />delay();<br />zhiwei=0x01;<br />zhixing=design[b%10];<br />zhiwei=0x00;<br />delay();<br /><br />}<br />}<br /><br />void&nbsp;main()<br />{<br />e=20;<br />TMOD=0X01;&nbsp;//定时和中断的初始化<br />EA=1;<br />TR0=1;<br />ET0=1;<br />TH0=0x3c;<br />TL0=0xb0;<br />while(1)<br />{light(0x80);<br />xianshi(15);<br />light(0x40);<br />xianshi(6);<br />light(0x20);<br />xianshi(7);<br />}<br />}<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

10

帖子

0

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