想设计最大计数范围0-9的可预置计数器,最后显示在数码管上,帮忙看看为什么不亮一—连悬赏可加
U1的74LS161的ABCD引脚是不是应该接地啊,不接地,怎么从0开始计数呢?
可以参考下
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code count[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x00,0x90};//数码管段码表
sbit key1=P3^2;
sbit key2=P3^3;//定义按键端口
void DelayMS(uint x)//延时
{
uchar t;
while(x--){
for(t=0;t<120;t++);
}
}
void main()
{
uchar i=0;
P0=0x00;
while(1)
{
P0=count[i];
if(key1==0)
{
DelayMS(50);
while(!key1);//按键松手检测,!key1为非零时为真
i++;
}
if(i>9){i=0;}
if(key2==0)
{
DelayMS(50);
i=0;
}
}
}
数码管不显示,应该是个别地方的引脚没有连接好,建议逐个排查下。
逐个引脚排查一下,看是否有的没有连接好
设计可预置计数器需要考虑以下几个方面: