关于实现步进点亮8位LED模组的思考(一)

单片机的连接方式

本实验中,使用了普中A7单片机开发板,其中进行实验时,需要做的比较简单,我们需要将单片机的P3与8位键盘模块进行连接,将P2口与8位LED模块组进行连接。

关于延时函数思考

做站内的各类项目中,我对两种延时函数的实现方式较为熟悉
(一)

void delays(unsigned int xms)
{
	unsigned int x,y;
	x=2;
	y=239;
	while(xms)
	{
		do
		{
			while(--y);
		}while(--x);
		xms--;
	}
}

(二)

void delays(unsigned int xms)
{
	for(x=xms;x>=0;x--)
		for(y=110;y>=0;y--);
}

消除抖动进行的操作

在进行项目程序编写时,我们需要对按键动作进行消除抖动操作,现将程序写下,我们再做分析。

void main()
{
	if(P3_0==0)
		delays(20);
		while(P3_0==0)
		;//其实我在这一步是看不大懂的
		
}

总程序

void delays(unsigned int xms)
{
	unsigned int x,y;
	x=2;
	y=239;
	while(xms)
	{
		do
		{
			while(--y);
		}while(--x);
		xms--;
	}
}
void main()
{	
	unsigned char LEDNUM;
	while(1)
	{
		if(P3_0==0)
			delays(20);//
		while(P3_0==0);
		delays(20);
		P2=~(P2<<LEDNUM);
		LEDNUM++;
		if(LEDNUM>=7)
			LEDNUM=0;
	}
}

项目程序如上所示,粗略来看这个程序应该是没有问题的,但是我在进行程序烧录时,明显出现了延时程序的问题,无法正确消除按键的抖动,按照单片机的12MHz的工作频率,单片机的每一步的工作所消耗的时候大约为1μs。
截止本文章写完,我还是没有找到程序无法运行的问题。
RNM,普中退钱。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值