个人总结:单片机C语言实现数码管显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EX2.1、最低位显示“A”

实验源程序:(全部程序请参考本章实验的程序文件夹)

//******************************************************************* ********** //主函数

//******************************************************************* ********** void main() //主函数

{

while(1) //进入while死循环

{

P1=0x7f; //0x7f=0111 1111,即选通数码管最低位

LE1=1; //锁存位

LE1=0; //断开锁存,位选573的Q7~Q0仍为0x7f

P1=0x77; //0x77为"A"的编码

LE2=1; //锁存段码

LE2=0; //断开锁存,段选573的Q7~Q0仍为0x77

}

}

备注0~9,A~F:

uchar code table[]= {

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

EX2.2、最低位显示0~9

实验源程序:(全部程序请参考本章实验的程序文件夹)

//********************************************************* //主函数

//********************************************************* void main() //主函数

{

uchar i;

while(1) //进入while死循环

{

P1=0x7f; //0x7f=0111 1111,即选通数码管最低位

LE1=1; //锁存位

LE1=0; //断开锁存,位选573的Q7~Q0仍为0x7f

for(i=0;i<10;i++) //如果要实现0~F循环,只需要将10改为16 {

P1=dis[i]; //0~9的编码

LE2=1; //锁存段码

LE2=0; //断开锁存,段选573的Q7~Q0仍为dis[i]

delay(5000); //延时保持一下

}

}

}

EX2.3、8位全部显示字母“E”

实验源程序:(全部程序请参考本章实验的程序文件夹)

//********************************************************* //主函数

//********************************************************* void main() //主函数

{

while(1) //进入while死循环

{

P1=0x00;//0x00=0000 0000,即选通数码管的全部8位

LE1=1; //锁存位

LE1=0; //断开锁存,位选573的Q7~Q0仍为0x00 P1=0x79; //0x79为"E"的编码

LE2=1; //锁存段码

LE2=0; //断开锁存,段选573的Q7~Q0仍为0x79 }

}

EX2.4、8位显示0~F

实验源程序:(全部程序请参考本章实验的程序文件夹)

//********************************************************* //主函数

//*********************************************************

void main() //主函数

{

uchar i;

while(1) //进入while死循环

{

P1=0x00; //0x7f=0000 0000,即选通数码全8位

LE1=1; //锁存位

LE1=0; //断开锁存,位选573的Q7~Q0仍为0x00

for(i=0;i<16;i++)//如果要实现0~10循环,只需要将16改为10

{

P1=dis[i]; //0~F的编码

LE2=1; //锁存段码

LE2=0; //断开锁存,段选573的Q7~Q0仍为dis[i]

delay(5000); //延时保持一下

}

}

}

EX2.5、8位动态扫描显示01234567

实验源程序:(全部程序请参考本章实验的程序文件夹)

//********************************************************* //主函数

//********************************************************* void main() //主函数

{

wei=0x01; //初始化位为0x01,即为最高位

i=0; //初始化段码为0

while(1) //进入while死循环

{

scan(); //数码管扫描函数

}

}

//********************************************************* //动态扫描函数

//********************************************************* scan()

{

P1=~wei;//由于共阴,低电平来选通某1位,所以需取反

LE1=1; //锁存位

LE1=0; //断开锁存,位选573的Q7~Q0仍保持

wei<<=1; //左移一位

P1=dis[i]; //0~7的编码

LE2=1; //锁存段码

LE2=0; //断开锁存,段选573的Q7~Q0仍保持

相关文档
最新文档