基于mcs-51单片机实现的秒表课程设计(c语言内容摘要:

dula=0。 //关闭断选 P0=0xff。 //送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存端造成混乱 wela=1。 //打开位选 P0=0xfd。 //送位选数据 wela=0。 //关闭位选 delayms(5)。 //延时 display(bai,shi,ge)。 } } void display(uchar bai, uchar shi,uchar ge) //数码管显示子函数 { dula=1。 //打开段选 P0=table[bai]。 //送段选数据 dula=0。 //关闭断选 P0=0xff。 //送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存端造成混乱 wela=1。 //打开位选 P0=0xfe。 //送位选数据 wela=0。 //关闭位选 delayms(5)。 //延时 dula=1。 //打开段选 P0=table[shi]。 //送段选数据 dula=0。 //关闭断选 P0=0xff。 //送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存端造成混乱 wela=1。 //打开位选 P0=0xfd。 //送位选数据 wela=0。 //关闭位选 delayms(5)。 //延时 dula=1。 //打开段选 P0=table[ge]。 //送段选数据 dula=0。 //关闭断选 P0=0xff。 //送位选数据前关闭所有显示,防止打开位选锁存时原来段选数据通过位锁存端造成混乱 wela=1。 //打开位选 P0=0xfb。 //送位选数据 wela=0。 //关闭位选 delayms(5)。 //延时 } void delayms(uint xms) //延时子函数 { uint i,j。 for(i=xms。 i0。 i) //i=xms 即延时约 xms 毫秒 for(j=110。 j0。 j)。 } void keyscan() //按键子函数 { if(key1==0) //清零 { delayms(10)。 //延时去抖 if(key1==0) { while(!key1) //等待按下 { TR0=0。 //定时器 TR0 关闭 TR1=1。 //定时器 TR1 打开 num=0。 //送数据 num=0 TR1=0。 //定时器 TR1 关闭 } } } if(key2==0) //暂停和开始 { delayms(10)。 if(key2==0) { while(!key2)。 TR0=0。 TR1=~TR1。 //每次按下, TR1 的状态时相反的 } } if(key3==0) //使计数器显示为 { delayms(10)。 if(key3==0) { while(!key3)。 TR0=0。 TR1=1。 num=600。 TR1=0。 } } if(key4==0) //实现计数器的倒数功能 { delayms(10)。 if(key4==0) {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。