1
编程实验
数码管静态显示,就是每一个数码管的段码都要独占具有锁存功能的输出口,CPU把要显示的字码送到输出口上,就可以使数码管显示对应的字符,直到下一次送出另外一个字码之前,显示的内容一直不会消失;静态显示法的优点是显示稳定、亮度大,节约CPU时间,但占有I/O口线较多,硬件成本高。
51单片机共阴数码管静态显示程序如下。
#include
#define uchar unsigned char
#define uint unsigned int
//数码管的段码编码
Uchar table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void main() //主函数
{
P0 = table[5]; //显示5,大家可以修改里面的数据。
while(1); //程序不再执行其他步骤;
}
#include
unsigned int num = 12345;
unsigned char shuma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码
unsigned char weima[8] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位码/
void delay(){ unsigned int i=500; while(i--);}
/*---------------------------------------------------------
程序 名: void main()
程序功能: 主程序
---------------------------------------------------------*
/void main()
{
loop1:
P2=0xff; P0=0x40; P2=weima[0]; delay();
P2=0xff; P0=0x40; P2=weima[1]; delay();
P2=0xff; P0=0x40; P2=weima[2]; delay();
P2=0xff; P0=shuma[num/10000]; P2=weima[3]; delay();
P2=0xff; P0=shuma[num%10000/1000]; P2=weima[4]; delay();
P2=0xff; P0=shuma[num%1000/100]; P2=weima[5]; delay();
P2=0xff; P0=shuma[num%100/10]; P2=weima[6]; delay();
P2=0xff; P0=shuma[num%10]; P2=weima[7]; delay();
goto loop1;
}
全部0条评论
快来发表一下你的评论吧 !