单片机与74HC138
答案:3 悬赏:0 手机版
解决时间 2021-11-16 15:43
- 提问者网友:沦陷
- 2021-11-15 16:04
单片机与74HC138
最佳答案
- 五星知识达人网友:鱼芗
- 2021-11-15 16:37
//你的电路没错的
//因为用的是38译码器,所以每一个时刻只能亮一个灯
#include
#include
sbit d1=P0^0;
sbit d1=P0^1;
sbit d1=P0^2;
unsigned char cc,tt,aa,bb;
void delay(unsigned char z) //误差 0us
{
unsigned char a,b;
for(b=199;b>0;b--)
for(a=z;a>0;a--);
}
void dingshi()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
bb=18;
aa=23;
}
void main()
{
init();
while(1)
{
if(cc==20)
{
cc=0;
tt++;
if(tt==60)
{
tt=0;
aa++;
if(aa==60)
{
aa=0;
bb++;
if(bb==24)
{
bb=0;
}
}} }
if(bb==1)//1点 第1个灯亮
{
d1=0;
d2=0;
d3=0;
}
if(bb==2)//2点 第2个灯亮
{
d1=1;
d2=0;
d3=0;
}
if(bb==3)//3点 第3个灯亮
{
d1=0;
d2=1;
d3=0;
}
if(bb==4)//4点 第4个灯亮
{
d1=1;
d2=1;
d3=0;
}
if(bb==5)//5点 第5个灯亮
{
d1=0;
d2=0;
d3=1;
}
if(bb==6)//6点 第6个灯亮
{
d1=1;
d2=0;
d3=1;
}
if(bb==7)//7点 第7个灯亮
{
d1=0;
d2=1;
d3=1;
}
if(bb==8)//8点 第8个灯亮
{
d1=1;
d2=1;
d3=1;
}
}}
void tine() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cc++;
}
//因为用的是38译码器,所以每一个时刻只能亮一个灯
#include
#include
sbit d1=P0^0;
sbit d1=P0^1;
sbit d1=P0^2;
unsigned char cc,tt,aa,bb;
void delay(unsigned char z) //误差 0us
{
unsigned char a,b;
for(b=199;b>0;b--)
for(a=z;a>0;a--);
}
void dingshi()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
bb=18;
aa=23;
}
void main()
{
init();
while(1)
{
if(cc==20)
{
cc=0;
tt++;
if(tt==60)
{
tt=0;
aa++;
if(aa==60)
{
aa=0;
bb++;
if(bb==24)
{
bb=0;
}
}} }
if(bb==1)//1点 第1个灯亮
{
d1=0;
d2=0;
d3=0;
}
if(bb==2)//2点 第2个灯亮
{
d1=1;
d2=0;
d3=0;
}
if(bb==3)//3点 第3个灯亮
{
d1=0;
d2=1;
d3=0;
}
if(bb==4)//4点 第4个灯亮
{
d1=1;
d2=1;
d3=0;
}
if(bb==5)//5点 第5个灯亮
{
d1=0;
d2=0;
d3=1;
}
if(bb==6)//6点 第6个灯亮
{
d1=1;
d2=0;
d3=1;
}
if(bb==7)//7点 第7个灯亮
{
d1=0;
d2=1;
d3=1;
}
if(bb==8)//8点 第8个灯亮
{
d1=1;
d2=1;
d3=1;
}
}}
void tine() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cc++;
}
全部回答
- 1楼网友:酒者煙囻
- 2021-11-15 18:49
不同的时刻亮,太不具体了。
74138的输出可以带8路,但任何时刻只有一路有效。追问我现在想法就是在C51外部加一个ADC0809把模拟量转化成数字量,然后用C51控制实现在不同的数字量下不同的灯亮。。。。。追答追问大神!我还是想问一下,程序怎么办?追答0809的程序写好了没有?追问0809的写好了,因为这个书上有直接搬过来了,⊙﹏⊙b汗,貌似图中单片机实现的是8-3编码的功能,这个用单片机怎么实现?追答将0809读出的数据直接送P0口就是了。
(1)汇编语言的(设数据在A中)
MOV P0,A
(2)C51语言的
P0=AD0809;447959510
74138的输出可以带8路,但任何时刻只有一路有效。追问我现在想法就是在C51外部加一个ADC0809把模拟量转化成数字量,然后用C51控制实现在不同的数字量下不同的灯亮。。。。。追答追问大神!我还是想问一下,程序怎么办?追答0809的程序写好了没有?追问0809的写好了,因为这个书上有直接搬过来了,⊙﹏⊙b汗,貌似图中单片机实现的是8-3编码的功能,这个用单片机怎么实现?追答将0809读出的数据直接送P0口就是了。
(1)汇编语言的(设数据在A中)
MOV P0,A
(2)C51语言的
P0=AD0809;447959510
- 2楼网友:平生事
- 2021-11-15 17:36
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。
74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC138译码器可接受3位二进制加权地址输入(A0, A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯