主页 > 开源代码  > 

单片机学习3——数码管

单片机学习3——数码管

数码管,根据内部结构,可分为共阴极数码管和共阳极数码管。七段发光管加上一个小数点,共计8段。因此,我们对它编程的时候,刚好是用一个字节。

数码管的显示方式:

1)静态显示;

2)动态显示;

#include<reg52.h> sbit dula = P2^6; sbit wela = P2^7; void main() { P0=0x3F; dula=1; dula=0; //锁住段显 P0=0xFE; wela=1; wela=0; //锁住位显 while(1); }

选择仿真:

硬件仿真调试:

 

我们使用了数组,将共阴极的数码管的真值表,下标正好对应的是数码管的显示数值,这样就不用记真值表了。

#include<reg52.h> #define uchar unsigned char sbit 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() { P0=0xF0; wela=1; wela=0; //锁住位显 P0=table[0]; dula=1; dula=0; //锁住段显 while(1); }

需要掌握锁存器的功能。

让1/3/5位的数码管从0到1循环显示。

#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit 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) { P0=0xEA; wela=1; wela=0; //锁住位显 P0=table[0]; dula=1; dula=0; //锁住段显0 delay(1000); P0=table[1]; dula=1; dula=0; //锁住段显1 delay(1000); } } void delay(uint x) { for(i=x;i>0;i--) { for(j=120;j>0;j--); } }

 

然后是使用for循环语句将所有的数码管都从0到F都进行循环显示。

#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit dula = P2^6; sbit wela = P2^7; uchar num=0; 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) { // P0=table[0]; // dula=1; // dula=0; //锁住段显0 // delay(1000); // P0=table[1]; // dula=1; // dula=0; //锁住段显1 // delay(1000); for(num=0;num<16;num++) { P0=table[num]; dula=1; dula=0; P0=0xEA; wela=1; wela=0; //锁住位显 delay(1000); //延迟1秒 } } } void delay(uint x) { uint i; uint j; for(i=x;i>0;i--) { for(j=120;j>0;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 };

标签:

单片机学习3——数码管由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“单片机学习3——数码管