信誉好的免费网站建设,网站如何接广告赚钱,静安网站建设公司,可视化小程序开发工具数码管#xff0c;根据内部结构#xff0c;可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点#xff0c;共计8段。因此#xff0c;我们对它编程的时候#xff0c;刚好是用一个字节。 数码管的显示方式#xff1a;
1#xff09;静态显示#xff1b;
2根据内部结构可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点共计8段。因此我们对它编程的时候刚好是用一个字节。 数码管的显示方式
1静态显示
2动态显示 #includereg52.hsbit dula P2^6;
sbit wela P2^7;void main()
{P00x3F;dula1;dula0; //锁住段显P00xFE;wela1;wela0; //锁住位显while(1);
} 选择仿真 硬件仿真调试 我们使用了数组将共阴极的数码管的真值表下标正好对应的是数码管的显示数值这样就不用记真值表了。
#includereg52.h
#define uchar unsigned charsbit dula P2^6;
sbit wela P2^7;uchar table[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void main()
{P00xF0;wela1;wela0; //锁住位显P0table[0];dula1;dula0; //锁住段显while(1);
} 需要掌握锁存器的功能。 让1/3/5位的数码管从0到1循环显示。
#includereg52.h
#define uchar unsigned char
#define uint unsigned intsbit dula P2^6;
sbit wela P2^7;uchar table[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(uint);void main()
{while(1){P00xEA;wela1;wela0; //锁住位显P0table[0];dula1;dula0; //锁住段显0delay(1000);P0table[1];dula1;dula0; //锁住段显1delay(1000);}
}void delay(uint x)
{for(ix;i0;i--){for(j120;j0;j--);}
} 然后是使用for循环语句将所有的数码管都从0到F都进行循环显示。
#includereg52.h
#define uchar unsigned char
#define uint unsigned intsbit dula P2^6;
sbit wela P2^7;uchar num0;uchar table[]{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(uint);void main()
{while(1){
// P0table[0];
// dula1;
// dula0; //锁住段显0
// delay(1000);
// P0table[1];
// dula1;
// dula0; //锁住段显1
// delay(1000);for(num0;num16;num){P0table[num];dula1;dula0;P00xEA;wela1;wela0; //锁住位显delay(1000); //延迟1秒}}
}void delay(uint x)
{ uint i;uint j;for(ix;i0;i--){for(j120;j0;j--);}
}
关键字code没有加code的时候定义的变量都放在单片机的RAM中在程序中可以随意去改变这些变量的值。但是还有一种数据在程序中使用却不会改变它的值。定义这种数据的时候可以加一个code关键字进行下修饰。这个数据会存储到程序空间的Flash中。这样可以大大节省单片机的RAM的使用量。 共阳极数码管的真值表
unsigned char code table[]{
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};