本程序在本站的试验板是通过,具体为在8 个LED数码管上显示“12345678”,本程序涉及了数组知识,以及用动态扫描的方法实现数字显示的知识。 include <REGX51.H> unsigned char sstbl[16]= { 0xf9,/*1*/ 0xa4,/*2*/ 0xb0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xf8,/*7*/ 0x80,/*8*/ }; //数组定义段数据 unsigned char loc[8]={0x7f, 0xbf, 0xdf, 0xef, 0xf7,0xfb,0xfd,0xfe} ; //定义位数据 loc void mDelay(int Dat) //延时子程序 { unsigned char j; for (;Dat>0;--Dat) for (j=255;j>0;--j); } main() { char i ; //显示变量 i (代表要显示之数值) i="0" ; //令 i 等于 0 for(;;){ P2=0xff; //关闭数码管显示 P0=sstbl ; //取得数组 sstbl 第 i+1 个数据并输出至PORTC (将数值显示于 LED 上) P2=loc[i++] ; //扫瞄第 i 个数码管 if(i >=8) //若 i 大于等于 8 则 i="0" ; //令 i = 0 mDelay(5) ; //延时 } } |
文章评论(0条评论)
登录后参与讨论