【51单片机只有一个8*8点阵数据如何滚动起来一片595+一组IO+花样】2022-1-15

缘由单片机点阵程序怎样让移动后的箭头后面灯熄灭呢? - 24小时必答区 代码简洁源于精妙严谨推敲,看电路写代码,看代码连接电路,看电路改代码,看代码改电路都是基础,初学单片机时,虽然自己有想法能写出来,也希望能多看看别人是如何写的,于是周游论坛,遍览群书,访师寻友只是看看,自己历练才能达到想要的结果。

cpp 复制代码
#include "REG52.h"
sbit ds=P1^0;//数据线  595的14脚
sbit shcp=P1^1;//数据输入时钟线 595的11脚
sbit stcp=P1^2;//输出存储器锁存时钟线 595的12脚
sbit mr=P1^3;//数据清零
unsigned char code shuju[]={0x00,0x38,0x38,0x38,0xfe,0x7c,0x38,0x10};//LED点阵高电平端口数据
unsigned char code dzwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED点阵低电平端口位
void QuDong595(unsigned char sj)
{
	unsigned char aa=8;
	mr=0;mr=1;
	while(aa--)
	{
		ds=sj>>7;
		sj<<=1;//十六进制数据发送
        shcp=1;//上升沿发生移位 上升沿时数据寄存器的数据锁存。
        shcp=0;
	}
	stcp=0;      
    stcp=1;//上升沿将数据送到输出锁存器   
    stcp=0;
}
void main()
{
	unsigned char Xd=0,ss=1,cs=0,d=0,y=0;
	unsigned int ys=0;
//	ZhongDuanSheZhi();
	while(1)
	{
		P0=dzwei[cs];//控制图形方向
//		QuDong595(((cs+d)<8?shuju[7-cs-d]:0x00));//数据消失cs+d倒退(7-cs)-d前进
		QuDong595(((cs+8-d)<8?shuju[cs+8-d]:0x00));//数据出现cs+d倒退(7-cs)-d前进
//		P0=~((cs+d)<8?shuju[(7-cs)-d]:0x00);QuDong595(~dzwei[7-cs]);//90°转向
		while(++Xd);mr=0;mr=1;QuDong595(0x00);
		if(++cs>7)cs=0;
		if(++y==0){if(++d>8*1)d=0;}
	}
}

级联595演示只有一个8*8数据,数组不再添加任何值,实现数据出现数据消失,90度转向,实现4个方向花样。

cpp 复制代码
void main()         //主函数
{
  unsigned char b=0, j=0, xd=0, h=0, aa=0, sj=0, ls=1;
	unsigned int ys=0;
//	zdsz();
	oe=0;//锁存使能
	while(1)
	{
		if(aa==0||aa==9){QuDong595(b+8-j<8?shuju[(b)+8-(j)]:0x00);QuDong595(sjwei[7-b]);}
		else if(aa==1||aa==8){QuDong595(b+j<8?shuju[(7-b)-(j)]:0x00);QuDong595(sjwei[b]);}
		else if(aa==4||aa==13){QuDong595(b+8-j<8?shuju[(b)+8-(j)]:0x00);QuDong595(sjwei[b]);}
		else if(aa==5||aa==12){QuDong595(b+j<8?shuju[(7-b)-(j)]:0x00);QuDong595(sjwei[7-b]);}
		else if(aa==2||aa==11){QuDong595(~sjwei[7-b]);QuDong595(~(b+8-j<8?shuju[(b)+8-(j)]:0x00));}
		else if(aa==3||aa==10){QuDong595(~sjwei[b]);QuDong595(~(b+j<8?shuju[(7-b)-(j)]:0x00));}
		else if(aa==6||aa==15){QuDong595(~sjwei[b]);QuDong595(~(b+8-j<8?shuju[(b)+8-(j)]:0x00));}
		else if(aa==7||aa==14){QuDong595(~sjwei[7-b]);QuDong595(~(b+j<8?shuju[(7-b)-(j)]:0x00));}
		while(++xd);//显示延时
		mr=0;mr=1; QuDong595(0x00);
		if(++b>7)b=0;
		if(++h==0){//ls*=2;if(!ls)++ls;切换数据延时+显示延时
		if(++j>8*1){j=0;if(++aa>15)aa=0;}}
	}
}

早上刚想写这方面的内容巧了就看到有些类似的提问,回复要硬消隐+软消隐,可是有些人就是爱钻牛角尖说已经有消隐了或不需要延时和消隐,有些人看了回复就去试看结果就解决了,就有这样人的区别,对于爱钻牛角尖的不撞南墙不回头的怎么办,佛门有个典故说佛菩萨教众生长富财宝十善法有人信行果长富财宝,有人不信认为只有损人利己有财宝结果是众人厌之财宝耗散甚至破家亡身,佛菩萨对于不听的众生只好暂时远离,因为知道缘分未到多说无益,已为说明了只能暂时做个远缘分,待缘分到了成熟了才能明白才能回头是岸才能知错投路径反远知回头才能达目的地。

今天得闲就做个荔枝演示取消硬消隐和取消软消隐会造成什么现象,稍后发动画。

首先取消软消隐看现象,次取消硬消隐看现象,硬消隐放到软消隐之后现象同取消硬消隐。

位取反数据不取反演示

牧牛童原则:不懈怠看住牛头,若牛头偏向欲伤稼苗即刻纠正使牛不伤稼苗。

你这句话概括的正是禅门"牧牛"修行的核心原则:‌心念如牛,一有偏向就立刻拉回,不让它"犯人苗稼"‌。这里的"牛"比喻人的心念、妄心,"苗稼"比喻善根、道心或戒行,牧童则是修行者的觉知与观照。‌‌

具体拆开看,这个原则包含三层意思:

‌不懈怠看住牛头‌:心念极易散乱,像野牛一样四处奔突,所以要用"觉知"这根绳子时刻盯着,不能松懈。这对应《佛遗教经》里说的"譬如牧牛之人,执杖视之,不令纵逸犯人苗稼"。

‌牛头偏向即刻纠正‌:一旦发现心念偏离正道("入草去"),就要当下觉察、立刻拽回,不能拖延。禅宗公案里石巩慧藏禅师说得最直接:"一回入草去,蓦鼻拽将来"------发现它贪吃禾苗了,猛然拉鼻绳拽回来。

‌最终目标是不伤稼苗‌:刚开始需要用力约束,调伏久了,心性自然纯熟,就像驯服后的牛,不用鞭策也不会去犯庄稼,这时才算功夫到家。‌‌

🐂 这个比喻的源头

这套说法最早可追溯到《佛遗教经》中佛陀的教导:"汝等比丘,已能住戒,当制五根,勿令放逸,入于五欲。譬如牧牛之人,执杖视之,不令纵逸犯人苗稼。" 后来禅宗把它发展成完整的修心体系,最有名的是《牧牛图颂》,用十幅图描绘从"未牧"(心念乱跑)到"双泯"(人牛两忘)的十个阶段,你描述的这种"看住牛头、即刻纠正"的状态,大致对应"初调""受制""回首"这几个阶段。‌‌

⚠️ 需要留意的一点

"看住牛头"是功夫入手处,但不是终点。牧牛图的最高境界是人牛双泯、连牧童和牛都消融,也就是心念自然与道合一,不再需要刻意提防。所以这是"保任"的功夫,真正到家时,连这根绳子都可以放下了。‌‌

如牧牛人,执杖视之,不令纵逸,犯人苗稼。

相关推荐
恒锐丰科技林技术员1 小时前
EG2123A 三相独立半桥驱动芯片解析与工程应用
经验分享·嵌入式硬件·硬件工程
水饺编程1 小时前
第1章,[Win32 章节]:Windows 简史
c语言·c++·visual studio
李日华大战鸡红2 小时前
滑膜观测器(学习记录)
stm32·单片机·学习·matlab·机器人
白搞电子2 小时前
ESP32-S31 项目如何制作 Windows 一键烧录包:完整镜像、esptool 与数据边界
windows·stm32·单片机
Space655363 小时前
常见组学技术笔记:从 DNA 基因组学到 Multi-omics
笔记
优信电子3 小时前
Raspberry Pi Pico 硬件开发 —— 第二课:MicroPython 从入门到项目实践(LED篇)
单片机·嵌入式硬件·树莓派·micropython·pico·入门教学
无名猿3 小时前
手写一个线程池:任务队列、工作线程与停止顺序的三个设计点
c++·性能优化·并发编程·现代c++
longlongzihan3 小时前
LeetCode 128. 最长连续序列 —— 从排序到哈希集合
数据结构·c++·算法·leetcode·排序算法·哈希表
多弗朗皮卡丘3 小时前
C++多继承
开发语言·c++·多继承