51单片机8*8点阵,引脚转换,解决此点阵不符合正常思维的引脚

该文介绍了一种针对8*8点阵反常引脚分布问题的解决方案,通过编写代码重新映射P1和P2引脚的数据,利用位操作实现预期显示效果。主要涉及变量tP1和tP2的处理,通过一系列位移和按位与操作,将数据正确地映射到P1和P2上,确保点阵正常显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对8*8点阵,有一个特性,是引脚分布与我们正常思考不同,因此我通过一些代码解决这个问题。首先,使8*8点阵有刻印的一面正对我们,使我们引脚用杜邦线从P2^0到P2^7顺序连到Pin1到Pin8,使我们引脚从P1^0到P1^7顺序连到Pin9到Pin16。

void timer0(uchar k)
{
	while(k--)
	{
		for(i=0;i<n;i++)//for(i=0;i<SNAKE+1;i++)
		{
			tP2=mux(x[i]);
			tP1=255-mux(y[i]);
			P2=((tP2&0x10)>>4)+((tP2&0x40)>>5)+((tP1&0x02)<<1)+((tP1&0x04)<<1)+((tP2&0x80)>>3)+((tP1&0x10)<<1)+((tP2&0x20)<<1)+((tP2&0x04)<<5);
			P1=(tP2&0x01)+((tP1&0x08)>>2)+((tP1&0x20)>>3)+(tP2&0x08)+((tP1&0x01)<<4)+((tP2&0x02)<<4)+(tP1&0x40)+(tP1&0x80);
			turnkey();                     //上下左右键位处理
			delay(TIME);                //显示延迟
			//tP2=0x00;tP1=0xff;
			 //while(1);
			P1=0xd6;
			P2=0x2c;
		}
	}
} 

 重点的代码是对P1,P2的处理,我们可以通过正常的思维把数据给tP1,tP2。然后通过

P2=((tP2&0x10)>>4)+((tP2&0x40)>>5)+((tP1&0x02)<<1)+((tP1&0x04)<<1)+((tP2&0x80)>>3)+((tP1&0x10)<<1)+((tP2&0x20)<<1)+((tP2&0x04)<<5);
P1=(tP2&0x01)+((tP1&0x08)>>2)+((tP1&0x20)>>3)+(tP2&0x08)+((tP1&0x01)<<4)+((tP2&0x02)<<4)+(tP1&0x40)+(tP1&0x80);

使我们的代码得到我们想象中的效果

<think>嗯,用户遇到了Debian Jessie仓库无法更新的问题,提示“apt-secure repository does not have a Release file”。我需要先分析可能的原因。首先,Debian Jessie已经进入LTS阶段,可能官方仓库已经迁移到存档服务器了。原来的security仓库可能不再维护,导致Release文件缺失。 接下来,我应该检查用户是否还在使用旧的源列表。正确的做法是建议用户将源切换到archive.debian.org或者deb.debian.org的存档地址。此外,用户可能需要更新GPG密钥,因为旧的密钥可能已过期或被替换。 另外,用户可能没有正确配置源地址的组件,比如main、contrib、non-free部分是否齐全。需要提醒用户检查这些配置。还有,HTTPS支持可能需要安装apt-transport-https包,虽然Jessie默认应该支持,但确认一下也好。 然后,处理步骤应该包括修改sources.list文件,替换旧的URL,添加正确的deb行,可能还要导入新的密钥。最后执行apt-get update看看是否解决问题。如果还有其他问题,可能需要更详细的日志或者检查网络连接。 用户可能不太清楚如何编辑源列表,所以需要给出具体的命令示例,比如使用sed替换源地址,或者手动编辑文件。同时,提醒备份sources.list是个好习惯,防止出错。 最后,生成的相关问题应该覆盖常见后续疑问,比如如何完全升级系统、处理GPG错误、切换其他镜像源等。这样用户如果有其他问题,可以自行参考。</think>### Debian Jessie仓库Release文件缺失解决方案 Debian 8 "Jessie"已于2018年进入LTS(长期支持)阶段,其官方仓库已迁移至存档服务器。当出现"repository does not have a Release file"错误时,可按以下步骤修复: 1. **修改源列表** ```bash sudo sed -i 's/httpredir.debian.org/archive.debian.org/g' /etc/apt/sources.list sudo sed -i 's/security.debian.org/archive.debian.org\/debian-security/g' /etc/apt/sources.list ``` 2. **推荐的安全源配置** ```bash deb http://archive.debian.org/debian/ jessie main contrib non-free deb http://archive.debian.org/debian-security/ jessie/updates main ``` 3. **添加LTS支持源** ```bash deb http://deb.debian.org/debian jessie-backports main ``` 4. **更新软件包列表** ```bash sudo apt-get update -o Acquire::Check-Valid-Until=false ``` **注意**:需强制忽略过期时间戳检查[^1]。如果出现GPG错误,需导入新密钥: ```bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值