学习目标:1
- 138译码器的作用
- 138译码器的使用(驱动动态数码管)
学习内容:
输入:A B C:3根线 2的3次方8种状态(编码)
输出:Y0-Y7,每根线各表示一个状态
控制:G1高电平 G2A低电平 G2B低电平,使能引脚
主要节约I/O口资源
#include<reg51.h> //头文件包含
void delay()
{
unsigned char i,j,k;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
for(k=0;k<20;k++);
}
unsigned char duanma[16] = {0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
unsigned char weima[8] = {0,1,2,3,4,5,6,7};
/* 接线方式
* P1.O对应A,P1.1对应B, P1.2对应C
* P0端口对应段码
*/
void main() //main()函数
{
///138译码器控制动态数码管测试///
// P1 = 0x00; //A B C都是0 ->Y0 第1个数码管亮
// P1 = 0x1; //A B C都是0 ->Y1 第2个数码管亮
// P1 = 0x7; //A B C都是0 ->Y7 第8个数码管亮
// P0 = duanma[0];
///138译码器控制动态数码管///
while(1)
{
unsigned char j = 0;
for(j=0;j<8;j++)
{
P1 = weima[j];
P0 = duanma[j+1]; //依次显示1-8
delay();
P0=0x00;
}
}
}