欢迎来到天天文库
浏览记录
ID:57731093
大小:13.50 KB
页数:2页
时间:2020-09-02
《单片机8位数码管动态显示数据.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机8位数码管动态显示数据编写:szjcdz日期:2010.9内容:8位数码管分别显示不同数字,这种扫描显示方式成为动态扫描,并不停变化赋值------------------------------------------------*/#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#defineDataPortP0//定义数据端口程序中遇到DataPort则用P0替换sbitLATCH1=P2^6;//定义锁存使能端口段锁存sbitLATCH2=P2^7;//位锁存unsignedcharcodeDuanMa[]={0x3f,0x
2、06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示段码值0~FunsignedcharcodeWeiMa[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//分别对应相应的数码管点亮,即位码voidDelay(unsignedintt);//函数声明/*------------------------------------------------主函数-----------------------------------------------
3、-*/main(){unsignedchari=0,num;unsignedintj;while(1){DataPort=WeiMa[i];//取位码LATCH2=1;//位锁存LATCH2=0;DataPort=DuanMa[num+i];//取显示数据,段码LATCH1=1;//段锁存LATCH1=0;Delay(200);//扫描间隙延时,时间太长会闪烁,太短会造成重影i++;j++;if(8==i)//检测8位扫描完全结束?如扫描完成则从第一个开始再次扫描8位i=0;if(j==500)//检测当前数值显示了一小段时间后,需要显示的数值加1,实现数据显示的变化{j=0;num++;
4、if(num==9)num=0;}}}/*------------------------------------------------延时函数,含有输入参数unsignedintt,无返回值unsignedint是定义无符号整形变量,其值的范围是0~65535------------------------------------------------*/voidDelay(unsignedintt){while(--t);}
此文档下载收益归作者所有