找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

138译码器的输入引脚由谁控制?

[复制链接]
admin 发表于 2012-9-2 11:57:16 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
/*******************************************************************************
* 标题: 试验数码管上显示数字(译码器位选 共阴极) *
* *
* 连接方法:P0与J12 用8PIN排线连接 *
********************************************************************************
* *
* 请学员认真消化本例程,用573锁存器和译码器控制和数码管 *
********************************************************************************/
#include <reg51.h>
#include <intrins.h>
sbit LS138A = P2^2; //定义138译码器的输入A脚由P2.2控制
sbit LS138B = P2^3; //定义138译码器的输入脚B由P2.3控制
sbit LS138C = P2^4; //定义138译码器的输入脚C由P2.4控制
void delay(unsigned int i); //函数声名
char DelayCNT;

//此表为 LED 的字模, 共阴数码管 0-9 -
unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
/************主函数**********************/
main()
{
unsigned int i,LedNumVal=1 ;
unsigned int LedOut[10];

DelayCNT=0;
while(1) //进入循环状态
{
if(++DelayCNT>=50)
{
DelayCNT=0; //延时计数 每扫描一次加一次
++LedNumVal; //每隔50个扫描周期加一次
}
LedOut[0]=Disp_Tab[LedNumVal%10000/1000];
LedOut[1]=Disp_Tab[LedNumVal%1000/100]|0x80;
LedOut[2]=Disp_Tab[LedNumVal%100/10];
LedOut[3]=Disp_Tab[LedNumVal%10];

LedOut[4]=Disp_Tab[LedNumVal%10000/1000]; //千位
LedOut[5]=Disp_Tab[LedNumVal%1000/100]|0x80; //百位带小数点
LedOut[6]=Disp_Tab[LedNumVal%100/10]; //十位
LedOut[7]=Disp_Tab[LedNumVal%10]; //个位

for( i=0; i<9; i++) //实现8位动态扫描循环
{
P0 = LedOut[i]; //将字模送到P0口显示

switch(i) //使用switch 语句控制位选 也可以是用查表的方式 学员可以试着自己修改
{
case 0:LS138A=0; LS138B=0; LS138C=0; break;
case 1:LS138A=1; LS138B=0; LS138C=0; break;
case 2:LS138A=0; LS138B=1; LS138C=0; break;
case 3:LS138A=1; LS138B=1; LS138C=0; break;
case 4:LS138A=0; LS138B=0; LS138C=1; break;
case 5:LS138A=1; LS138B=0; LS138C=1; break;
case 6:LS138A=0; LS138B=1; LS138C=1; break;
case 7:LS138A=1; LS138B=1; LS138C=1; break;

}

delay(1000);
}

}
}
/***************************************************************************
* *
* 延时程序 *
****************************************************************************/
void delay(unsigned int i)
{
char j;
for(i; i > 0; i--)
for(j = 200; j > 0; j--);
}



关于上面程序,有两个问题。一是:138译码器的输入引脚问什么不能改了?二是:为什么输入引脚由P2控制呢?
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 23:02 , Processed in 0.060841 second(s), 12 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表